seguinte, fiz um frame pra o usuario entrar com o codigo de barra do produto no Jtextfield, apos isso um inputdialog pergunta o valor da entrada e apos outro imput dialog pergunta a qtd. caindo o conteudo na tabela. ateh ai esta ok.
o meu problema eh na hora de gravar no banco, quando eu insiro mais de um produto e vou salvar o itementrada cria varios codigoentrada. o correto era na tabela entrada tem codigo entrada 1, e na tabela itementrada 3 vezes codigoentrada = 1 no caso d eu inserir 3 produtos, não sei se esta dando pra entender o problema. espero q possam me ajudar, caso vcs saberem outra maneira de fazer isso sera de grande ajuda, segue o codigo
VENDADAO();
[quote] public void insereEntrada(double preco) throws Exception {
Connection con = SQLUtil.getConnection();
//pegar ultimo codigo venda e fazer auto increment;
StringBuffer sql = new StringBuffer();
StringBuffer sql2 = new StringBuffer();
sql.append("select max(codigoEntrada) from entrada;");
PreparedStatement pstmt = con.prepareStatement(sql.toString());
ResultSet rs = pstmt.executeQuery();
rs.next();
int aux = rs.getInt(1);
aux = aux+1;
System.out.println("aux="+aux);
rs.close();
pstmt.close();
//System.out.println("aux=" + aux);
rs.close();
pstmt.close();
// inserir a venda
sql2.append("insert into entrada (codigoEntrada,data,preco) values (" + aux + "," + "CURRENT_DATE," + preco + ");");
pstmt = con.prepareStatement(sql2.toString());
pstmt.execute();
}
public void insereItemEntrada(Produto p,double precop, int qtd) throws Exception {
Connection con = SQLUtil.getConnection();
StringBuffer sql = new StringBuffer();
StringBuffer sql2 = new StringBuffer(); //pega o ultimo codigo da venda
sql2.append("select max(codigoEntrada) from itementrada;"); //codigo sql para pegar ultimo codigo
PreparedStatement pstmt2 = con.prepareStatement(sql2.toString());
ResultSet rs2 = pstmt2.executeQuery(); //executa codigo sql e joga na string
rs2.next();
int aux = rs2.getInt(1); //auxiliar cata ultimo codigo
rs2.close();
aux = aux + 1; // ultimo codigo + 1.
sql.append("insert into itementrada (codigoEntrada,codigoProduto,preco,qtd) values (" + aux + "," + p.getCodigo()+","+precop +","+qtd+")");
PreparedStatement pstmt = con.prepareStatement(sql.toString());
pstmt.execute();
//System.out.println(sql.toString());
}
[/quote]
BOTAO GRAVAR
[quote] Iterator i = insPro.iterator();
double soma = 0;
Produto pp = new Produto();
while (i.hasNext()) {
System.out.println("entrou no loop");
pp = (Produto) i.next();
soma = soma + (pc1);
try {
vd.insereItemEntrada(pp, pc1, qt1);
//pd.insereItemEntrada(pp, pc1, qt1);
} catch (Exception ex) {
}
try{
vd.insereEntrada(soma);
//pd.insereEntrada(pc1);
}catch (Exception e) {
}
}
// AQUI É PARA LIMPAR A TABELA
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
modelo.setNumRows(0);
jLabel6.setText("0"); //LIMPAR A JTEXTFIELDTOTAL
insPro.clear(); //LIMPAR ARRAYLIST, POIS A VENDA JA ESTA NO BANCO.
JOptionPane.showMessageDialog(null, "Pedido Realizado com Sucesso!");
tf_barras.requestFocus();
[/quote]