Ola pessoal tudo bem?
Estou desenvolvendo um sistema de caixa aqui e estou com problemas com o comando de canelar produto da copra;
Bem primeiramente tentarei explicar para vcs como funciona o sistema;
-usando MySQL;
-Primeiramente o usuario digita o cod. de barras do produto em uma jTextField, ao clicar no btn ‘OK’ o sistema procura no BD dentro da table estoque o produto com o cod. barras equivalente ao buscado;
-Ao encontrar o cod. barras, ele retorna e seta o nome e preço daquele em duas labels distintas;
-Pego o conteudo das duas labels e insiro em uma table chamada ‘nota_fiscal’, apos cadastrado os produtos nesta table, busco e jogo tudo que a ha na table ‘nota_fiscal’ em uma jTable, chamada jTable_nota_fiscal(que funcionara como uma especie de nota fiscal da compra);
-Somo tudo que tem no campo preço da table ‘nota_fiscal’, com o comando “SELECT SUM(preco) AS preco FROM nota_fiscal”, e seto uma label que exibe o total da compra;
Agora estou com o problema para o evento ‘cancelar compra’, a intenção é que o usuario clique no produto que deseja cancelar dentro da jTable_nota_fiscal e clique no btn cancelar produto;
Ele teria que voltar o produto para o estoque e deletar da table nota_fiscal e ai re-somar o total da compra;
Creio que o erro estaja nas linhas em que pego o que foi selecionado na jTable e busca conforme o codigo de barras;
Estou tentando com os seguintes codigos
//metodo para exluir produto da table nota_fiscal
private void Excluir_Produto()
{
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con =DriverManager.getConnection("jdbc:mysql://localhost/mercado","root","root");
int row = jTable_Nota_Fiscal.getSelectedRow();
String cod_selecionado = (jTable_Nota_Fiscal.getModel().getValueAt(row,3).toString());//linha na qual creio que esteja o erro
//na jTable a ordem das colunas é: Preço, nome do produto, cod. barras
String query = "delete from nota_fiscal where cod_barras ="+cod_selecionado+"'";
PreparedStatement cmd = con.prepareStatement(query);
cmd.executeUpdate();
JOptionPane.showMessageDialog(null, "Excluido", "Excluido", JOptionPane.QUESTION_MESSAGE);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, "DRIVER NAO ENCONTRADO");
}catch (SQLException e) {
JOptionPane.showMessageDialog(null, "ERRO DE SQL");
}
}
[code]
//Metodo para voltar o produto ao estoque
private void voltar_estoque1()
{
try
{
int row = jTable_Nota_Fiscal.getSelectedRow();
String table_click = (jTable_Nota_Fiscal.getModel().getValueAt(row,3).toString());
Class.forName("com.mysql.jdbc.Driver");
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhost/mercado","root","root");
String query1 = "UPDATE estoque set qtde = qtde+1 WHERE cod_barras='"+table_click+"'";
PreparedStatement cmd ;
cmd = conn.prepareStatement(query1);
cmd.executeUpdate();
}
catch (ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, "DRIVER NAO ENCONTRADO");
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null, "ERRO DE SQL");
}
}
[/code]
Antes que me perguntem, estou colocando primeiramente o evento pra voltar o produto ao estoque, ai o que exlui da table ‘nota_fiscal’, ai consulto novamente a table ‘nota_fical’ e seto dentro da jTable, ai sim somo novamente;
Tentei colocar tudo o que creio ser necessario para vcs me ajudarem, desculpem por qualquer erro, se precisarem de mais alguma coisa…
Grato desde ja Fabio Silva, SouJava