Meu sistema me retorna erro porem gera a venda

6 respostas
java7java-seprogramação
M

Boa tarde

meu sistema ele gera a venda normal

mas ele mostra um erro, sera que devo ignorar como esta funcionando normal?

Eis a questao?

public void cadastrarItem_compra (Item_compra item_compra, int quantidadejt)

{

Connection conexao = ConnectionFactory.getConexao();

try{

boolean falta = false;

String pesquisaProduto = select * from produto where id = ?;

PreparedStatement pstmtP1 = conexao.prepareStatement(pesquisaProduto);

pstmtP1.setInt(1, item_compra.getId_produto());

ResultSet rsP = pstmtP1.executeQuery();

int qtdade_produto = 0;

while(rsP.next()){

qtdade_produto = rsP.getInt(qtdade);

qtdade_produto = qtdade_produto - quantidadejt;

if(qtdade_produto < 0){

JOptionPane.showMessageDialog(null, Produto com estoque insuficiente!);

falta = true;

}
}
        if(!falta){
            String abateProduto = "update produto set qtdade = ? where id = ?";
            PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
            pstmtP2.setInt(1, qtdade_produto);
            pstmtP2.setInt(2, item_compra.getId_produto());
            int alteracoesP = pstmtP2.executeUpdate();
            int prox = 0;
            
            if(alteracoesP !=1){
                System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                
                prox = 1;
            }
        
            if(prox == 1){

                String verificaItens = "select * from item_compra where id_produto = ? and id_venda = ?";
                PreparedStatement pstmt1 = conexao.prepareStatement(verificaItens);
                pstmt1.setInt(1, item_compra.getId_produto());
                pstmt1.setInt(2, item_compra.getId_venda());
                ResultSet rs = pstmt1.executeQuery();
                int cont = 0;
                int qtdade = 0;
                while(rs.next()){
                    cont++;
                    qtdade = rs.getInt("qtdade");
                }
                if(cont >= 1){
                    String updateItem = "update item_compra set qtdade = ? where id_produto = ? and id_venda = ?";
                    PreparedStatement pstmt2 = conexao.prepareStatement(updateItem);
                    qtdade = qtdade + item_compra.getQtdade();
                    pstmt2.setInt(1, qtdade);
                    pstmt2.setInt(2, item_compra.getId_produto());
                    pstmt2.setInt(3, item_compra.getId_venda());
                    int alteracoes = pstmt2.executeUpdate();

                    if(alteracoes!=1){
                        System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra2");
                    }else{
                        System.out.println("Produto alterado com sucesso!");
                    }
                    pstmt1.close();
                    pstmt2.close();
                }

                if(cont == 0){
                    String cadastroItens = "Insert into item_compra (id_venda, qtdade, id_produto) values (?,?,?)";
                    PreparedStatement pstmt3 = conexao.prepareStatement(cadastroItens);
                    pstmt3.setInt(1, item_compra.getId_venda());
                    pstmt3.setInt(2, item_compra.getQtdade());
                    pstmt3.setInt(3, item_compra.getId_produto());

                    int resultado = pstmt3.executeUpdate();

                    if(resultado!=1){
                        System.out.println("Houve um erro na inserção, tente novamente!");
                    }else{
                        System.out.println("Produto inserido com sucesso!");
                    }
                    pstmt3.close();
                }
            }  
            pstmtP1.close();
            pstmtP2.close();
        }
    }catch(SQLException e){
        System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
        while(e!=null){
            System.out.println("Sql state: "+e.getSQLState());
            System.out.println("Mensagem: "+e.getMessage());
            System.out.println("Error code: "+e.getErrorCode());
            e = e.getNextException();
        }
    }finally{
        System.out.println("Encerrando conexão");
        try{
            conexao.close();
            System.out.println("Conexão Terminada");
        }catch(SQLException ex){
            
        }
    }
}

public List<Item_compra> listarItem_compra(String id_venda){
    Connection conexao = ConnectionFactory.getConexao();
    List<Item_compra> itens_compra = new ArrayList();
    try{
        String consultaProduto = "Select * from item_compra where id_venda = ?";
        PreparedStatement pstmt = conexao.prepareStatement(consultaProduto);
        pstmt.setString(1, id_venda);
        ResultSet rs = pstmt.executeQuery();
        Item_compra item_compra;
        while(rs.next()){
            item_compra = new Item_compra();
            item_compra.setId(rs.getInt("id"));
            item_compra.setId_venda(rs.getInt("id_venda"));
            item_compra.setQtdade(rs.getInt("qtdade"));
            item_compra.setId_produto(rs.getInt("id_produto"));
            
            itens_compra.add(item_compra);
        }
        pstmt.close();
    }catch(SQLException e){
        System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
        while(e!=null){
            System.out.println("Sql state: "+e.getSQLState());
            System.out.println("Mensagem: "+e.getMessage());
            System.out.println("Error code: "+e.getErrorCode());
            e = e.getNextException();
        }
    }finally{
        System.out.println("Encerrando conexão");
        try{
            conexao.close();
            System.out.println("Conexão Terminada");
        }catch(SQLException ex){
            
        }
    }
    return itens_compra;   
}

ele retorna esse print de msg

Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 0

6 Respostas

Villagram

Verifique a saída desta parte do código…provavelmente você está fazendo a verificação do número errado.

{

System.out.println(alteracoesP);

}

M

a saida é 0
zero

System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 0

Villagram

Se a saída é 0 a mensagem apresentada está correta segundo sua verificação…afinal 0 é diferente de 1…troca o valor na verificação e seja feliz.

M

O estranho é que passa os dois

if(!falta){
            String abateProduto = "update produto set qtdade = ? where id = ?";
            PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
            pstmtP2.setInt(1, qtdade_produto);
            pstmtP2.setInt(2, item_compra.getId_produto());
            int alteracoesP = pstmtP2.executeUpdate();
            int prox = 0;
            if(alteracoesP!=1){
                System.out.println("Houve um erro na alteração, tente novamente! erro " + alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                prox = 1;
            }





            if(alteracoesP!=1){
                System.out.println("Houve um erro na alteração, tente novamente! erro " + alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                prox = 1;
            }

mas se eu mudar de 1 para 0 o sistema não funciona

Villagram

Só esse pedaço de código não ajuda muito para saber o que realmente acontece…é necessário debugar a aplicação a partir do ponto onde o processo é iniciado, só assim você saberá realmente o que está acontecendo no seu código.

M
public void cadastrarItem_compra (Item_compra item_compra, int quantidadejt)

{

Connection conexao = ConnectionFactory.getConexao();

try{

boolean falta = false;

String pesquisaProduto = select * from produto where id = ?;

PreparedStatement pstmtP1 = conexao.prepareStatement(pesquisaProduto);

pstmtP1.setInt(1, item_compra.getId_produto());

ResultSet rsP = pstmtP1.executeQuery();

int qtdade_produto = 0;

while(rsP.next()){

qtdade_produto = rsP.getInt(qtdade);

qtdade_produto = qtdade_produto - quantidadejt;

if(qtdade_produto < 0){

JOptionPane.showMessageDialog(null, Produto com estoque insuficiente!);

falta = true;

}
}
    if(!falta){
        String abateProduto = "update produto set qtdade = ? where id = ?";
        PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
        pstmtP2.setInt(1, qtdade_produto);
        pstmtP2.setInt(2, item_compra.getId_produto());
        int alteracoesP = pstmtP2.executeUpdate();
        int prox = 0;
        
        if(alteracoesP !=1){
            System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
        }else{
            System.out.println("Produto alterado com sucesso!");
            
            prox = 1;
        }
    
        if(prox == 1){

            String verificaItens = "select * from item_compra where id_produto = ? and id_venda = ?";
            PreparedStatement pstmt1 = conexao.prepareStatement(verificaItens);
            pstmt1.setInt(1, item_compra.getId_produto());
            pstmt1.setInt(2, item_compra.getId_venda());
            ResultSet rs = pstmt1.executeQuery();
            int cont = 0;
            int qtdade = 0;
            while(rs.next()){
                cont++;
                qtdade = rs.getInt("qtdade");
            }
            if(cont >= 1){
                String updateItem = "update item_compra set qtdade = ? where id_produto = ? and id_venda = ?";
                PreparedStatement pstmt2 = conexao.prepareStatement(updateItem);
                qtdade = qtdade + item_compra.getQtdade();
                pstmt2.setInt(1, qtdade);
                pstmt2.setInt(2, item_compra.getId_produto());
                pstmt2.setInt(3, item_compra.getId_venda());
                int alteracoes = pstmt2.executeUpdate();

                if(alteracoes!=1){
                    System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra2");
                }else{
                    System.out.println("Produto alterado com sucesso!");
                }
                pstmt1.close();
                pstmt2.close();
            }

            if(cont == 0){
                String cadastroItens = "Insert into item_compra (id_venda, qtdade, id_produto) values (?,?,?)";
                PreparedStatement pstmt3 = conexao.prepareStatement(cadastroItens);
                pstmt3.setInt(1, item_compra.getId_venda());
                pstmt3.setInt(2, item_compra.getQtdade());
                pstmt3.setInt(3, item_compra.getId_produto());

                int resultado = pstmt3.executeUpdate();

                if(resultado!=1){
                    System.out.println("Houve um erro na inserção, tente novamente!");
                }else{
                    System.out.println("Produto inserido com sucesso!");
                }
                pstmt3.close();
            }
        }  
        pstmtP1.close();
        pstmtP2.close();
    }
}catch(SQLException e){
    System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
    while(e!=null){
        System.out.println("Sql state: "+e.getSQLState());
        System.out.println("Mensagem: "+e.getMessage());
        System.out.println("Error code: "+e.getErrorCode());
        e = e.getNextException();
    }
}finally{
    System.out.println("Encerrando conexão");
    try{
        conexao.close();
        System.out.println("Conexão Terminada");
    }catch(SQLException ex){
        
    }
}

}

public List<Item_compra> listarItem_compra(String id_venda){

Connection conexao = ConnectionFactory.getConexao();

List<Item_compra> itens_compra = new ArrayList();

try{

String consultaProduto = Select * from item_compra where id_venda = ?;

PreparedStatement pstmt = conexao.prepareStatement(consultaProduto);

pstmt.setString(1, id_venda);

ResultSet rs = pstmt.executeQuery();

Item_compra item_compra;

while(rs.next()){

item_compra = new Item_compra();

item_compra.setId(rs.getInt(id));

item_compra.setId_venda(rs.getInt(id_venda));

item_compra.setQtdade(rs.getInt(qtdade));

item_compra.setId_produto(rs.getInt(id_produto));
itens_compra.add(item_compra);
    }
    pstmt.close();
}catch(SQLException e){
    System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
    while(e!=null){
        System.out.println("Sql state: "+e.getSQLState());
        System.out.println("Mensagem: "+e.getMessage());
        System.out.println("Error code: "+e.getErrorCode());
        e = e.getNextException();
    }
}finally{
    System.out.println("Encerrando conexão");
    try{
        conexao.close();
        System.out.println("Conexão Terminada");
    }catch(SQLException ex){
        
    }
}
return itens_compra;

}

Criado 17 de maio de 2018
Ultima resposta 19 de mai. de 2018
Respostas 6
Participantes 2