Ola,
Eu fiz uma tela bem simples apenas para dar uma sugestao de compra e o cliente informar a quantidade que deseja e salvar para uma cotação.
Esse sistema funcionou ate ontem.
O que esta acontecendo é que quando eu mando salvar ele pegava os valores da tela atualizava normalmente a quantidade e salvava. No codigo nao mudou absolutamente nada. Simplemente deixou de funcionar isso. Pode ser alguam atualizacao recente do java que provocou isso? Alguma ideia?
<p:dataTable id="tabelaProdutos" value="#{leilaoController.itens}" var="item"
scrollable="true" scrollHeight="300" style="width: 100%;margin: auto;">
<p:column headerText="ID" width="5">
<center>#{item.produto.id}</center>
</p:column>
<p:column headerText="EAN" width="10">
<center>#{item.produto.ean}</center>
</p:column>
<p:column headerText="DESCRICAO" width="70">
#{item.produto.descricao}
</p:column>
<p:column headerText="CONSUMO" width="5">
<center>#{item.produto.produtosLoja[0].consumo}</center>
</p:column>
<p:column headerText="MEDIA" width="10">
<center>#{item.produto.produtosLoja[0].vendaMedia}</center>
</p:column>
<p:column headerText="ESTOQUE" width="5">
<center>#{item.produto.produtosLoja[0].estoque}</center>
</p:column>
<p:column headerText="SUGESTÃO" width="10">
<center>
<h:inputText value="#{item.quantidade}" size="10">
<f:convertNumber integerOnly="true" maxFractionDigits="0" minFractionDigits="0"/>
</h:inputText>
</center>
</p:column>
<p:column headerText="AÇÕES" width="5">
<center>
<p:commandButton title="Remover" icon="ui-icon-trash"
action="#{leilaoController.removerItem(item)}"
update=":formItensLeilao:tabelaProdutos">
</p:commandButton>
</center>
</p:column>
</p:dataTable>
metodo salvar
public String salvar() {
if (leilao.getId() == null) {
dao.salvar(leilao, itens);
} else {
dao.atualizarItensLeilao(leilao, itens);
}
leilao = new Leilao();
itens = new ArrayList<>();
dias = 0;
dataConsumoFinal = null;
dataConsumoInicial = null;
FacesUtil.adicionarMensagemInformacao("Leilão salvo com sucesso.");
return null;
}
metodo dentro do dao
public void salvar(Leilao leilao, List<LeilaoItens> itens) {
Connection conn = Database.getInstance().getConnection();
try {
conn.setAutoCommit(false);
PreparedStatement psmt = conn.prepareStatement(SQL_INSERT, PreparedStatement.RETURN_GENERATED_KEYS);
psmt.setInt(1, leilao.getLoja().getId());
psmt.setDate(2, new Date(leilao.getDataInicial().getTime()));
psmt.setDate(3, new Date(leilao.getDataFinal().getTime()));
psmt.setString(4, leilao.getSituacao());
psmt.setString(5, leilao.getDescricao());
psmt.execute();
ResultSet rs = psmt.getGeneratedKeys();
while (rs.next()) {
leilao.setId(rs.getInt(1));
}
salvarItensLeilao(leilao, itens, conn);
conn.commit();
rs.close();
psmt.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
private void salvarItensLeilao(Leilao leilao, List<LeilaoItens> itens, Connection conn) {
try {
PreparedStatement psmt = conn.prepareStatement(SQL_INSERT_ITENS);
for (LeilaoItens item : itens) {
if (item.getQuantidade().doubleValue() > 0) {
psmt.setInt(1, leilao.getId());
psmt.setInt(2, item.getProduto().getId());
psmt.setBigDecimal(3, item.getQuantidade());
psmt.setString(4, item.getProduto().getUnidade());
psmt.setBigDecimal(5, BigDecimal.ONE);
System.out.println("SALVANDO...\t" + leilao.getId() + "\t"
+ "ITEM:\t" + item.getProduto().getDescricao()
+ "QUANTIDADE:\t" + item.getQuantidade());
psmt.addBatch();
}
}
psmt.executeBatch();
} catch (SQLException ex) {
ex.printStackTrace();
Logger.getLogger(LeilaoDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
