Olá pessoal!
Tenho um sistema que faz venda. Alguns produtos são pegos de uma tabela produtos através de um comboBox e outros através de um textField. Esses itens são inseridos numa tabela e posteriormente gravados no banco de dados. Só q nunca todos os dados do banco são preenhidos então dá erro. Gostaria de uma dica de vcs de como testar esses campos que nem sempre são preenchidos.
Segue trecho do código:
public static void inserir(ItemVenda item) {
try {
String sql = "Insert into item_venda (produtos_id_produtos, quantidade, valor_unit, valor_total, venda_id_venda, descricao_tinta_maquina, unidade_id_unidade, peso) values(?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = GerenciadorBD.getConexao().prepareStatement(sql);
ps.setInt(1, item.getProdutos().getIdProdutos());
ps.setInt(2,item.getQuantidade());
ps.setFloat(3, item.getValorUnit());
ps.setFloat(4, item.getValorTotal());
ps.setInt(5, item.getVendaIdVenda());
ps.setString(6, item.getDescricaoTintaMaquina());
ps.setInt(7, item.getUnidade().getIdUnidade());
ps.setFloat(8, item.getPeso());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e);
}
}
public void actionPerformed(java.awt.event.ActionEvent e) {
Venda venda = new Venda();
venda.setTipoPagamento((TipoPagamento)cbTipoPagamento.getSelectedItem());
venda.setFormaPagamento((FormaPagamento)cbFormaPagamento.getSelectedItem());
venda.setNumPedido(Integer.parseInt(tfNumPedido.getText()));
venda.setClienteJuridico((ClienteJuridico)cbNomeFantasia.getSelectedItem());
venda.setFuncionario((Funcionario)cbVendedor.getSelectedItem());
venda.setPesoCarga(tfPesoCarga.getText());
venda.setNumParcelas(Integer.parseInt(tfNumParcelas1.getText()));
venda.setMeiaVenda(rbMeiaVendaSim.isSelected()?"S":"N");
String str = tfValorParcela.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setValorParcela(Float.parseFloat(str));
str = tfTotalPedido.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setTotalPedido(Float.parseFloat(str));
str = tfDesconto.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setDesconto(Float.parseFloat(str));
str = tfSubTotal.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setSubTotal(Float.parseFloat(str));
//Se não houver desconto adicional
if(!tfDescAdicional.getText().equals("")){
str = tfTotalGeral.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setTotalGeral(Float.parseFloat(str));
}else
venda.setTotalGeral(Float.parseFloat(str1));
if(!tfDescontoAdicional.getText().equalsIgnoreCase("")){
str = tfDescAdicional.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
venda.setDescontoAdicional(Float.parseFloat(str));
}
SimpleDateFormat formata = new SimpleDateFormat("dd/MM/yyyy");
try {
Date dataPedido = (tfDataPedido.getText().length() == 10) ? formata.parse(tfDataPedido.getText()) : null;
venda.setDataPedido(dataPedido);
}catch (ParseException e1) {
e1.printStackTrace();
}
int id = GerenciadorBDVenda.inserir(venda);
//inserir itens da venda
for (int i = 0; i < itens.size(); i++) {
((ItemVenda)itens.get(i)).setVendaIdVenda(id);
GerenciadorBDItemVenda.inserir((ItemVenda)itens.get(i));
}
itens = null;
JOptionPane.showMessageDialog(null, "Venda realizada com sucesso!!", "Venda", JOptionPane.OK_OPTION +
javax.swing.JOptionPane.INFORMATION_MESSAGE);
ItemVenda item = new ItemVenda();
if(checkTintaMaquina.isSelected()){
tintaMaquina = 1;
item.setProdutos(null);
item.setDescricaoTintaMaquina(tfDescricaoTintaMaquinaAndOthers.getText());
item.setQuantidade(Integer.parseInt(tfQuantidadeTintaMaquina.getText()));
item.setPeso(Integer.parseInt(tfPeso.getText()));
item.setUnidade((Unidade)cbUnidade.getSelectedItem());
String str = tfValorUnitTintaMaquina.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
item.setValorUnit(Float.parseFloat(str));
str = tfValorTotalTintaMaquina.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
item.setValorTotal(Float.parseFloat(str));
((ModeloTabelaVendas)tabelaVendas.getModel()).adiciona(tfQuantidadeTintaMaquina.getText(), tfDescricaoTintaMaquinaAndOthers.getText(), tfValorUnitTintaMaquina.getText(), tfValorTotalTintaMaquina.getText(), tfPeso.getText(), cbUnidade.getSelectedItem().toString());
tabelaVendas.updateUI();
}else{
item.setProdutos((Produto)cbDescricao.getSelectedItem());
item.setQuantidade(Integer.parseInt(tfQuantidade.getText()));
item.setDescricaoTintaMaquina(null);
item.setPeso(0);
item.setUnidade(null);
String str = tfValorUnit.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
item.setValorUnit(Float.parseFloat(str));
str = tfValorTotal.getText().replaceAll("\.", "");
str = str.substring(0, str.lastIndexOf(",")) + "." + str.substring(str.lastIndexOf(",")+1, str.length());
item.setValorTotal(Float.parseFloat(str));
((ModeloTabelaVendas)tabelaVendas.getModel()).adiciona(tfQuantidade.getText(), cbDescricao.getSelectedItem().toString(), tfValorUnit.getText(), tfValorTotal.getText(), null, null);
tabelaVendas.updateUI();
}
if(itens == null){
itens = new ArrayList();
}
itens.add(item);
}
Os dados que nem sempre são preenchidos utilizando como base o primeiro código aqui mostrado é o 1 ou 6, 7 e 8.
Valeu galera!