0
Good afternoon, I am creating a shopping cart, the add item part is working perfectly but the decrease item part is not working, follow the code.
public void adicionar(Produto produto) {
int posicaoEncontrada = -1;
for (int pos = 0; pos < itens.size() && posicaoEncontrada < 0; pos++) {
Item itemTemp = itens.get(pos);
if (itemTemp.getProduto().equals(produto)) {
posicaoEncontrada = pos;
}
}
Item item = new Item();
item.setProduto(produto);
if (posicaoEncontrada < 0) {
item.setQuantidade(1);
item.setValor_parceial(produto.getPreco());
itens.add(item);
} else {
Item itemTemp = itens.get(posicaoEncontrada);
item.setQuantidade(itemTemp.getQuantidade() + 1);
item.setValor_parceial(produto.getPreco().multiply(new BigDecimal(item.getQuantidade())));
itens.set(posicaoEncontrada, item);
}
vendaCadastro.setValor_total(vendaCadastro.getValor_total().add(produto.getPreco()));
}
public void diminuir(Produto produto) {
int posicaoEncontrada = -1;
for (int pos = 0; pos < itens.size() && posicaoEncontrada < 0; pos++) {
Item itemTemp = itens.get(pos);
if (itemTemp.getProduto().equals(produto)) {
posicaoEncontrada = pos;
}
}
Item item = new Item();
item.setProduto(produto);
if (posicaoEncontrada > 0) {
item.setQuantidade(1);
item.setValor_parceial(produto.getPreco());
itens.remove(item);
} else {
Item itemTemp = itens.get(posicaoEncontrada);
item.setQuantidade(itemTemp.getQuantidade() -1 );
item.setValor_parceial(produto.getPreco().multiply(new BigDecimal(item.getQuantidade())));
itens.set(posicaoEncontrada, item);
}
vendaCadastro.setValor_total(vendaCadastro.getValor_total().subtract(produto.getPreco()));
}
The line
if (posicaoEncontrada > 0) {
of functiondiminuir
shouldn’t beif (posicaoEncontrada < 0) {
? The signal is switched with respect to functionaumentar
– Rodrigo Tognin