Pessoal não sei o que estou fazendo de errado....
eu recebo um objeto no meu método nota e nessa nota tem uma lista de itens.
Quanto faço o insert na tabela sem os itens...vai beleza.... cria um registro para cada nota na minha tabela de notas......
Quando eu faço um for each para inserir os itens de uma nota..vai beleza tb.....na tabela de itens.
Agora, quando tem mais de uma nota, na tabela de nota vai legal....agora os itens eles inserem os itens da nota 1 + os itens da nota 2 nas duas notas...
galera não sei se fui claro.... segue o código ai....
public void cadastrarNotaEdiVale(NotaFiscal f, NotaFiscal nota) {
System.out.println("Cadastrando nota...");
try {
int codNota = 0;
int codarquivo = 0;
int origem = 0;
int destino = 0;
Connection con = Conexao.getConexao;
String sql = "SELECT SEQCODNOTA.NEXTVAL FROM DUAL";
PreparedStatement st1 = con.prepareStatement(sql);
ResultSet rs1 = st1.executeQuery();
if (rs1.next()) {
codNota = rs1.getInt(1);
}
String sql2 = "SELECT CODEDIARQUIVOS.NEXTVAL FROM DUAL";
PreparedStatement st2 = con.prepareStatement(sql2);
ResultSet rs2 = st2.executeQuery();
if (rs2.next()) {
codarquivo = rs2.getInt(1);
}
String sql5 = " INSERT INTO TNOTAS( COD, " +
"TPARTIORIGEM, " +
"TPARTIDESTINO," +
"NUMERO_NF, " +
"SERIE_NF, " +
"CGC_FORNECEDOR, " +
"CGC_CLIENTE, " +
"DATA_EMISSAO, " +
"VALOR_ICMS, " +
"VALOR_IPI, " +
"BASE_IPI, " +
"BASE_ICMS, " +
"TOTAL_PRODUTOS, " +
"TOTAL_NF )" +
"VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement stmt5 = con.prepareStatement(sql5);
stmt5.setInt(1, codNota);
stmt5.setInt(3, f.getCodOrigem());
stmt5.setInt(4, f.getCodDestino());
stmt5.setString(5, nota.getNumeroNota());
stmt5.setString(6, nota.getSerieNota());
stmt5.setString(7, nota.getCnpjFornecedor());
stmt5.setString(8, nota.getCnpjDestino());
stmt5.setString(9, new SimpleDateFormat("yyyyMMdd").format(nota.getDataEmissaoNota()));
stmt5.setString(10, new ConvertDoubleToString().completaValor(nota.getValorICMS()));
stmt5.setString(11, new ConvertDoubleToString().completaValor(nota.getValorIPI()));
stmt5.setString(12, new ConvertDoubleToString().completaValor(nota.getBaseIPI()));
stmt5.setString(13, new ConvertDoubleToString().completaValor(nota.getBaseICMS()));
stmt5.setString(14, new ConvertDoubleToString().completaValor(nota.getTotaProdutos()));
stmt5.setString(15, new ConvertDoubleToString().completaValor(nota.getTotalNotaFiscal()));
stmt5.execute();
String sql6 = "INSERT INTO TNOTASITENS(COD, " +
"TPARTIORIGEM, " +
"TPARTIDESTINO," +
"CODNOTA," +
"QUANTIDADE, " +
"VALOR_UNIT, " +
"NUMERO_NF, " +
"NUMERO_ITEM" +
")VALUES(?,?,?,?,?,?,?,?,?)";
PreparedStatement stmt6 = con.prepareStatement(sql6);
for (ItemNota itens : nota.getItens()) {
stmt6.setInt(1, codNota);
stmt6.setInt(2, f.getCodOrigem());
stmt6.setInt(3, f.getCodDestino());
stmt6.setInt(4, codNota);
stmt6.setDouble(5, itens.getQuantidade());
stmt6.setDouble(6, itens.getValorProduto());
stmt6.setString(7, nota.getNumeroNota());
stmt6.setString(8, itens.getCodItem());
stmt6.executeUpdate();
}