Preciso de ajuda para dar baixa no estoque

6 respostas
V

oi gente to com um problema no meu sisteminha, é assim:preciso dar baixa no meu estoque assim que uma venda for relizada…Fiz um List de produtos para ir adiconando os produtos na lista antes da venda ser efetuada e todos os produtos só serão gravados no banco quando clicar em finalizar venda:
esta é a lista:

public void IncluirProdutoTabela() throws SQLException {
        if (VerificaQtd() && VerificaEstoque()&& VerificaProduto()) {
            Venda gv = new Venda();
            gv.setCod_prod(Integer.parseInt(String.valueOf(jTCodProd.getText())));
            gv.setQtdvendida(Integer.parseInt(String.valueOf(jFormattedQtd.getValue())));
            gv.setValortotalprod(Double.parseDouble(jFormattedPreco.getText()) * Integer.parseInt(jFormattedQtd.getText()));
            Venda_produto.add(gv);
        }
    }

Então quando uma venda for efutuada quero que de baixa no estoque de todos os produtos que estão na lista, tentei fazer assim com um FOR para percorrer a lista de produtos mais não deu muito certo, vejam:

public void atualizaEstoque() {
        try {
         for (int i = 0; i < Venda_produto.size(); i++) {
         int qtd=Venda_produto.get(i).getQtdvendida();
         int pro=Venda_produto.get(i).getCod_prod();
           int estoqueatual = saldoEstoque - qtd;
                 String sql = "UPDATE produto SET quantidade = '" + estoqueatual
                    + "' where cod_prod = " + pro;
            stmt = conecta.getConexao().prepareStatement(sql);
                int rs = stmt.executeUpdate(sql);
             
           }
            JOptionPane.showMessageDialog(null, "Dado Baixa no Estoque com sucesso!");                      
        } catch (SQLException erro) {
            JOptionPane.showMessageDialog(null, "Erro a tentar dar baixa no estoque.." + erro);
        }
    }

Por gente é urgente preciso muito fazer isso até segunda, me ajudem.Desde agradeço a todos!

6 Respostas

nel

Oi!

1 - Recomendo não utilizar variaveis que iniciem com letra maíscula, foge ao padrão Java.
2 - Recomendo fechar o PrepareStatement para cada iteração
3 - Você pode dar um update de uma única vez, senão me engano, usando a função IN(seus ids). Dessa forma, evita usar o laço.
4 - Se estiver gerando erro, poste o código completo e o erro.

Abraços.

duduribeiro

qual o erro e/ sua dúvida?

V

A minha duvida é :como alterar o meu estoque dando um UpDate na minha lista de produtos, onde estão os produtos inseridos e sua repectiva quantidade. E em relação a exeção de sql, não esta dando nenhuma, o unico erro é que deixa a quantidade de todos os produtos (que foram inseridos na lista)com o mesmo valor no estoque, não importando a quantidade que foi vendida, por exemplo: inseri na lista o produto 1, o 2 e o 3, onde o 1 tem no estoque 10, o 2 tem 20 e o 3 tem 15, vendi 5 do produto 1, 10 do produto 2 e 4 do produto 3, quando o código acima que tentei fazer é executado, ele deixa no banco de dados o saldo do estoque dos tres como 11, que está correto mas somente para o ultimo produto os outros estão sendo igualados ao ultimo…
Tá complicado mais é isso que ta acontecendo!!! alguém alguma dica de código???

Anime

Oi,

Não entendi seu código… Não precisa do for…

int estoqueatual=saldoEstoque - Integer.parseInt(tf_quant_vend.getText());
String sql = "UPDATE produto SET quantidade = '" + estoqueatual  
                  + "' where cod_prod ="+ tf_cod_prod.getText() ;
V

Humm…deve estar errado mesmo, mais foi a maneira que imaginei como seria, tem alguma dica?

Anime

Já dei a dica… Não entendeu…

Criado 10 de junho de 2011
Ultima resposta 10 de jun. de 2011
Respostas 6
Participantes 4