Boa tarde,
Estou tentando adicionar itens em uma tabela ao clicar em um botão adicionar e depois atualizá-la com o estoque atualizado para cada produto ,só que ao inserir as linhas a comparação entre os campos não é feita e são adicionados produtos além do estoque no banco.
a comparação é feita apenas uma vez e se mantém apartir dessa inserção com o dado atual , repetindo o valor de estoque restante e permitindo a inserção além do estoque.
Eis o código:
private void btnAdicProdutoActionPerformed(java.awt.event.ActionEvent evt) {
modelProdutos = controllerProdutos.retornarProdutoController(Integer.parseInt(txtCodProd.getText()));
int codigoProduto = modelProdutos.getIdProduto();
double quantidade = 0;
double somaQuantidadeDigitada = 0;
quantidade = Double.parseDouble(txtQuantProd.getText());// passando de int para double para poder calcular o valor total abaixo.
somaQuantidadeDigitada = somaQuantidadeDigitada + quantidade;
//Double quantidadeAtual = quantidade;
// int primeiroIdInserido = (int) tblCadVendas.getValueAt(0, 0);
int estoque = modelProdutos.getProEstoque();
DefaultTableModel modelo = (DefaultTableModel) tblCadVendas.getModel();
if (txtQuantProd.getText().equals("") || txtQuantProd.getText().equals("0")) {
JOptionPane.showMessageDialog(null, "Prencha uma quantidade válida para o produto desejado!");
txtQuantProd.setText("1");
//
} else if (quantidade < estoque && estoque > 0) {
//
int cont = 0;
for (int i = 0; i < cont; i++) {
modelo.setNumRows(0);
}
// tblCadVendas.revalidate();
//adicionando uma linha na tabela a cada iteração do for
modelo.addRow(new Object[]{
//adicionando o conteudo das colunas a cada iteração do for
modelProdutos.getIdProduto(),
modelProdutos.getProNome(),
txtQuantProd.getText(),
modelProdutos.getProvalor(),
quantidade * modelProdutos.getProvalor(), //calculo do valor total resultado da quantidade de itens multiplicado pelo valor do produto (por linha ou subtotais)
modelProdutos.getProEstoque(),
modelProdutos.getProEstoque() - Integer.parseInt(txtQuantProd.getText())
});
int novoEstoque = modelProdutos.getProEstoque() - Integer.parseInt(txtQuantProd.getText());
estoque = novoEstoque;
somaValorTotalProdutos();
//
} else if (quantidade == estoque && estoque > 0) {
//
// //adicionando uma linha na tabela a cada iteração do for
//
modelo.addRow(new Object[]{
//adicionando o conteudo das colunas a cada iteração do for
modelProdutos.getIdProduto(),
modelProdutos.getProNome(),
txtQuantProd.getText(),
modelProdutos.getProvalor(),
quantidade * modelProdutos.getProvalor(), //calculo do valor total resultado da quantidade de itens multiplicado pelo valor do produto (por linha ou subtotais)
modelProdutos.getProEstoque(),
modelProdutos.getProEstoque() - Integer.parseInt(txtQuantProd.getText())
});
// int cont = 0;
//
// for (int i = 0; i < cont; i++) {
// tblCadVendas.setValueAt(estoque - quantidade, i, 6);
// estoque = (int) tblCadVendas.getValueAt(i, 6);
// }
//
// // a linha abaixo seleciona a primeira linha da tabela
// //tblCadVendas.addRowSelectionInterval(0, 0);
//// dispose();
//// new ViewPedido12().setVisible(true);
} else {
// novoultimoId = modelProdutos.getIdProduto();
// proximoIdInserido = proximoIdInserido;
JOptionPane.showMessageDialog(this, “Produto ou quantidade indisponivel!”);
quantidade = 0;
somaQuantidadeDigitada = 0;
somaValorTotalProdutos();
}
int novoEstoque = modelProdutos.getProEstoque() - Integer.parseInt(txtQuantProd.getText());
estoque = novoEstoque;
somaValorTotalProdutos();
// System.out.println(“primeiroIdInserido”+primeiroIdInserido);
// System.out.println("proximoIdInserido "+proximoIdInserido);
System.out.println(“Quantidade” + quantidade);
System.out.println(“somaquantidade” + somaQuantidadeDigitada);
}