Notem que o valor total item de cada produto está correto (6 gabinetes a R$ 5.333,22 cada, valor total Item: R$ 31.999,32) o segundo item tbm está correto…vejam que na parte inferior há o campo valor total da compra, porém em vez dele somar todos os campos “valor total item” ele está substituindo pelo próximo produto add.
Nesta imagem o valor total da compra deveria ser por exemplo: R$ 53.175,56
não consegui achar meu erro, tenho certeza de que é alguma coisa simples que esqueci de colocar no código…se alguém puder me ajudar…fico grato…muito obg a todos
este é o trecho do código que creio onde está o problema:
txtQuantidade.setHasControls(true);txtQuantidade.setValue(null);txtQuantidade.setMin(1);txtQuantidade.addValueChangeListener(event->{NumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));doublevalorTotal=0;try{valorTotal=formatter.parse(txtValorUnitario.getValue()).doubleValue()*txtQuantidade.getValue();}catch(ParseExceptione1){// TODO Auto-generated catch blocke1.printStackTrace();}txtValorTotalItem.setValue(formatter.format(valorTotal));campoSomaValores.setValue(formatter.format(++valorTotal));});
Sua variável valorTotal está recebendo os valores de txtValorUnitario que acredito ser a variável do item juntamente com a txtQuantidade. Quando na verdade você teria que pegar todos os valores unitários de TODOS os produtos e multiplicar pelas respectivas quantidades, e no final somar tudo então assim você pode atribuir este valor a sua variável valorTotal.
obg por sua resposta…vou ver se consigo arrumar aqui
G
GabrielA21 like
E acredito que seja aqui que você esteja setando o valor no campo do valor final, perceba que ele só atribui o valor da variavel valorTotal, que no caso é de apenas um item.
Você pode criar uma lista e toda vez que um item for adicionado ou removido você adiciona/tira dessa lista, pensando mais além ainda seria interessante vc criar uma interface pra esse produto cria uma classe Produto.class, faça valores base como id, valor, quantidade, etc…E posteriormente você pode trabalhar com a classe Produto que já irá retornar todas as variáveis que você declarou do produto.
R
rafaspara2017
Alguma outra ideia de como resolver? Tentei fazer como o @GabrielA2 disse, mas não funcionou (não sei se fiz certo tbm)
G
GabrielA21 like
Acredito que você não deve ter executado da forma que falei, por que em teoria, o valor final de uma compra é a soma de todos os valores totais de todos os itens da compra. Posta seu código ai…
txtQuantidade.setHasControls(true);txtQuantidade.setValue(null);txtQuantidade.setMin(1);txtQuantidade.addValueChangeListener(event->{NumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));doublevalorTotal=0;try{valorTotal=formatter.parse(txtValorUnitario.getValue()).doubleValue()*txtQuantidade.getValue();}catch(ParseExceptione1){// TODO Auto-generated catch blocke1.printStackTrace();}txtValorTotalItem.setValue(formatter.format(valorTotal));campoSomaValores.setValue(formatter.format(valorTotal*txtQuantidade.getValue()));});
R
rafaspara2017
tbm tentei isto:
txtQuantidade.setHasControls(true);txtQuantidade.setValue(null);txtQuantidade.setMin(1);txtQuantidade.addValueChangeListener(event->{NumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));doublevalorTotal=0;try{valorTotal=formatter.parse(txtValorUnitario.getValue()).doubleValue()*txtQuantidade.getValue();}catch(ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();}txtValorTotalItem.setValue(formatter.format(valorTotal));doublesomaValores=0;somaValores+=valorTotal;campoSomaValores.setValue(formatter.format(somaValores));});
txtQuantidade.addValueChangeListener(event->{NumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));doublevalorTotal=0;try{valorTotal=formatter.parse(txtValorUnitario.getValue()).doubleValue()*txtQuantidade.getValue();}catch(ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();}txtValorTotalItem.setValue(formatter.format(valorTotal));somaValores+=valorTotal;campoSomaValores.setValue(formatter.format(somaValores));});