Dúvida Groovy - Grails - Controle de Estoque
25/03/2010 00:00
0
Pessoal estou construindo uma pequena aplicação de controle de estoque com o objetivo de aprendizado da linguagem, já li um livro de grails disponibilizado pela InfoQ e agora eatou lendo Groovy in Action, devido ter menos de dois dias de manejo com a linguagem ainda tenho muitas dúvidas relacionado a sintaxe da linguagem, com isso estou com um problema, tenho uma classe Produto, Venda e ItemVenda, nessa classe ItemVenda quando eu adicionar um produto, ela vai ter que deduzir da quantidade de produto e alterar o valor da classe venda, estou disponibilizando o código que está sem erro de compilação mais que me retorna um erro em tempo de execução, gostaria que alguém me ajudasse, como vou poder realizar essa manipulação, e o erro que ele me retorna é:
"Property quantidade threw exception; nested exception is groovy.lang.MissingPropertyException: No such property: params for class: ItemVenda".

Código classe ItemVenda:

class ItemVenda {
Produto produto
Integer quantidade
Venda venda
static belongsTo = Venda
static constraints = {
produto(nullable:false)
venda(nullabe:false)
quantidade(min:1,max:10)
}
public void setQuantidade(Integer quantidade){
produto= Produto.get(params.id)
this.quantidade=quantidade;
Integer qtd=produto.getQuantidade();
if(qtd>this.quantidade){
Integer nov=qtd-this.quantidade;
produto.setQuantidade(nov);
Float valor=produto.getPreco();
Float total=total+valor*this.quantidade;
venda=Venda.get(params.id);
venda.setValor(total);
}

}
}
Tags: Groovy


0
Oi Julio,

o problema que você está tendo ocorre porque na sua classe ItemVenda você referencia um atributo (params) que ela não possui nesta linha:

produto= Produto.get(params.id)


A variável params se encontra no Controlador. Provavelmente você está confundindo uma com a outra.
Na realidade, se o produto já estiver definido, você poderia sobrescrevela da seguinte maneira:

public void setQuantidade(Integer quantidade){
//produto= Produto.get(params.id) repare, comentei a linha, porque você já possui um atributo chamado produto na mesma classe
this.quantidade=quantidade;
Integer qtd=produto.quantidade // produto.getQuantidade(); gets em Groovy são desnecessários
if(qtd>this.quantidade){
Integer nov=qtd-this.quantidade;
produto.quantidade = nov // sets são desnecessários em Groovy setQuantidade(nov);
Float valor= produto.preco // gets são desnecessários em Groovy produto.getPreco();
Float total=total+valor*this.quantidade;
venda=Venda.get(params.id);
venda.valor = total // sets são desnecessarios em Groovy setValor(total);
}


0
Erro:O campo quantidade deve ser um número válido.

Mudando para o seu código ele está me retornando que o campo quantidade tem que ser válido.
26/03/2010 00:00


0
Julio, verifique se o seu atributo produto presente na classe não está nulo.
Se estiver, você passará por problemas similares ao qu está apontando.


0
[quote="kicolobo"]Julio, verifique se o seu atributo produto presente na classe não está nulo.
Se estiver, você passará por problemas similares ao qu está apontando.[/quote]

Meu nome é Reginaldo, estou desenvolvendo um sistema em contabilidade pública já está
bem adiantado, gostaria que alguém me orientasse em formulário de fornecedor que existe
no projeto, porque a pessoa tem que escolher pessoa física o jurídica como eu fasso para
validar esses campos, quando o usuário escolher pessoa física ele aceitar só o cpf e não o
cnpj e vice-versa.
08/11/2010 00:00


0
[quote="reginaldof"][quote="kicolobo"]Julio, verifique se o seu atributo produto presente na classe não está nulo.
Se estiver, você passará por problemas similares ao qu está apontando.[/quote]

Meu nome é Reginaldo, estou desenvolvendo um sistema em contabilidade pública já está
bem adiantado, gostaria que alguém me orientasse em formulário de fornecedor que existe
no projeto, porque a pessoa tem que escolher pessoa física o jurídica como eu fasso para
validar esses campos, quando o usuário escolher pessoa física ele aceitar só o cpf e não o
cnpj e vice-versa.[/quote]

OI reginaldof, rola de abrir um novo post com este seu problema? Ai fica mais organizado e fácil de te ajudar.

Grande abraço!



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto