//Metodo salvar entrada
private void salva_entrada() {
String sql = "Insert into entrada(datarec,fornecedor,dtnfe,usuario,nfe,vlr_nfe) values (?,?,?,?,?,?)";
try {
pst = conexao.prepareStatement(sql);
java.util.Date data = new java.util.Date();
SimpleDateFormat formatar = new SimpleDateFormat("yyyy/MM/dd");
String dataFormatada = formatar.format(data);
pst.setString(1, dataFormatada);
pst.setString(2, jTextFieldFornecedor.getText());
//conversao de string to date para mysql 18/03/1983 1983-03-18
String dia = jTextFieldDtNfe.getText().substring(0, 2);
String mes = jTextFieldDtNfe.getText().substring(3, 5);
String ano = jTextFieldDtNfe.getText().substring(6);
String datanfe = ano + "-" + mes + "-" + dia;
pst.setString(3, datanfe);
pst.setString(4, jComboBoxUsuario.getSelectedItem().toString());
pst.setString(5, jTextFieldNfe.getText());
pst.setString(6, jTextFieldVlrNfe.getText());
int adicionar = pst.executeUpdate();
if (adicionar > 0) {
JOptionPane.showMessageDialog(null, "Entrada Realizada!");
//Obter id da ultima entrada
String sql2 = "select identrada from entrada order by identrada desc limit 1";
pst = conexao.prepareStatement(sql2);
rs = pst.executeQuery();
if (rs.first()) {
String identrada = rs.getString("identrada");
System.out.println(identrada);
//Atualiza a entrada_item 0 para a ultima entrada
String sql3 = "Update entrada_item set identrada_item = ? where identrada_item = '0'";
pst = conexao.prepareStatement(sql3);
pst.setString(1, identrada);
int atualiza = pst.executeUpdate();
if (atualiza > 0) {
JOptionPane.showMessageDialog(null, "Itens da entrada gravados com sucesso!");
//Obtem os dados da ultima entrada item
String sql4 = "Select * from entrada_item where identrada_item = ?";
pst = conexao.prepareStatement(sql4);
pst.setString(1, identrada);
rs = pst.executeQuery();
while (rs.next()) {
String id = rs.getString("identrada_item");
String idpro = rs.getString("idproduto");
String qtd = rs.getString("qtd_item");
String lote = rs.getString("lote");
String validade = rs.getString("validade");
String estmin = rs.getString("est_min");
int qtd_atual = Integer.parseInt(qtd);
//Verifica estoque existente e Captura o valor do estoque atual do produto caso exista
String sql5 = "select est from estoque where idproduto = ? and lote = ?";
pst = conexao.prepareStatement(sql5);
pst.setString(1, idpro);
pst.setString(2, lote);
rs = pst.executeQuery();
if (rs.next()) {
String est_atual = rs.getString("est");
int est_atual_new = Integer.parseInt(est_atual);
//Calculo de estoque atual + entrada
int total_est = est_atual_new + qtd_atual;
String total_est_new = Integer.toString(total_est);
//Atualizar os valores de estoque no banco
String sql6 = "update estoque set est = ?,est_min = ? where idproduto = ? and lote= ?";
pst = conexao.prepareStatement(sql6);
pst.setString(1, total_est_new);
pst.setString(2, estmin);
pst.setString(3, idpro);
pst.setString(4, lote);
int ajustado = pst.executeUpdate();
if (ajustado > 0) {
JOptionPane.showMessageDialog(null, "Estoque ajustado com sucesso!");
}
}
}
}
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
OBS: Existem 2 resultados no meu While rs.next() preciso que ele faça o update na tabela de estoque para os 2 resultados, porem o while ao executar o primeiro encerra o laço e não executa a proxima linha