public void adicionar(Produto produto) { int posicaoEncontrada = -1; for (int pos = 0; pos < listaItensVenda.size() && posicaoEncontrada < 0; pos++) { Itens_Venda itemTemp = listaItensVenda.get(pos); if (itemTemp.getProduto().equals(produto)) { posicaoEncontrada = pos; } } int testeQuantidade = produto.getQuantidade(); System.out.println("Quantidade ProdutoAAAAAAAAAAAAAAAA " + testeQuantidade); Itens_Venda item = new Itens_Venda(); item.setProduto(produto); if (produto.getQuantidade() != 0) { if (posicaoEncontrada < 0) { item.setQuantidade(1); item.setValor_parcial_venda(produto.getPreco()); listaItensVenda.add(item); } else { Itens_Venda itemTemp = listaItensVenda.get(posicaoEncontrada); item.setQuantidade(itemTemp.getQuantidade() + 1); if (item.getQuantidade() <= testeQuantidade) { // Novo BigDecicmal multiplico pelo preco do produto item.setValor_parcial_venda( produto.getPreco().multiply(new BigDecimal(item.getQuantidade()))); listaItensVenda.set(posicaoEncontrada, item); System.out.println("IGUAL OS VALORES AAA"); vendaCadastro.setValor_total_venda( vendaCadastro.getValor_total_venda().add(produto.getPreco())); vendaCadastro.setQuantidade(vendaCadastro.getQuantidade() + 1); } else { FacesUtil.adicionarMsgErro("Quantidade adicionada maior do que a do estoque"); } } if (posicaoEncontrada < 0) { vendaCadastro.setValor_total_venda( vendaCadastro.getValor_total_venda().add(produto.getPreco())); vendaCadastro.setQuantidade(vendaCadastro.getQuantidade() + 1); } } else { FacesUtil.adicionarMsgErro("Produto zerado em estoque"); } }
public void remover(Itens_Venda itemVenda) { // Marca a posicao q eu encontro, -1 é nenhuma int posicaoEncontrada = -1; // ListaItensVenda.size = Quebra a repeticao quando nao tem nada // posicaoEncontrada<0 = caso eu encontro eu quebro a repeticao for (int pos = 0; pos < listaItensVenda.size() && posicaoEncontrada < 0; pos++) { Itens_Venda itemTemp = listaItensVenda.get(pos); if (itemTemp.getProduto().equals(itemVenda.getProduto())) { posicaoEncontrada = pos; } } if (posicaoEncontrada > -1) { listaItensVenda.remove(posicaoEncontrada); vendaCadastro.setValor_total_venda( vendaCadastro.getValor_total_venda().subtract(itemVenda.getValor_parcial_venda())); vendaCadastro.setQuantidade(vendaCadastro.getQuantidade() - itemVenda.getQuantidade()); } }
public void salvar() { Integer verificarZero = new Integer(vendaCadastro.getQuantidade()); if (verificarZero == 0) { FacesUtil.adicionarMsgErro("Nenhum produto adicionado para venda"); } else { try { VendaDAO vendaDao = new VendaDAO(); Long idVenda = vendaDao.salvar(vendaCadastro); Venda vendaFK = vendaDao.buscarPorCodigo(idVenda); for (Itens_Venda item : listaItensVenda) { item.setVenda(vendaFK); Itens_VendaDAO itemDAO = new Itens_VendaDAO(); itemDAO.salvar(item); Produto produto = item.getProduto(); int quantidade = produto.getQuantidade() - item.getQuantidade(); produto.setQuantidade(quantidade); ProdutoDAO produtoDAO = new ProdutoDAO(); produtoDAO.editar(produto); } FacesUtil.adicionarMsgInfo("Venda Salva com sucesso"); vendaCadastro = new Venda(); vendaCadastro.setValor_total_venda(new BigDecimal(0)); vendaCadastro.setQuantidade(0); listaItensVenda = new ArrayList<Itens_Venda>(); vendaCadastro.setValorTroco(new BigDecimal("0.00")); } catch (RuntimeException ex) { FacesUtil.adicionarMsgErro("Erro ao tentar salvar a venda: " + ex.getMessage()); } } }