Bom pessoal estou fazendo um sistema e estou tendo alguns problemas. Estou usando o firebird, e os códigos estou fazendo automático com as trigger, funcionando aki tudo bem…
Mas na tela Venda, quando click em confirmar os valores dos campos Venda são salvos no banco. Mas na tabela item Venda os dados não são salvos no banco de dados, só está salvando o primeiro registro, os outros não.
E está acontecendo algo de errado por exemplo: adicionei 3 itens de venda, quando confirmo para salvar so o primeiro é salvo, mas o código do primeiro fica com o registro do tem 3 no banco de dados. Alguem que manja ai pode me ajudar desde já agredeço…
Observações estou usando o novo firebird 2.5.2, será que tem algum bug ?
[code]public Venda venda = new Venda();
public DaoVenda daoVenda = new DaoVenda(venda);
private ItemVenda itemVenda;// = new ItemVenda(venda);
private DaoItemVenda daoItemVenda = new DaoItemVenda();
// private DaoItemVenda daoItemVenda;// = new DaoItemVenda(null);
// private List itensVenda = new ArrayList<>();
private List itensVenda = null;
public TelaVenda(){
super("Venda");
montaComponente();
campoQuantidade.addFocusListener(this);
campoDesconto.addFocusListener(this);
habilitarCampos(false);
pack();
}
private void montaComponente() {
larguraColunas();
eventosBotoes();
}
public void setPersistencia(){
venda.setCodVenda(Integer.parseInt("0" + campoCodigoVenda.getText()));
venda.getCliente().setCodCliente(campoCliente.getValor());
venda.setData(campoData.getValor());
venda.setValorTotalVenda(Double.parseDouble(campoTotalVenda.getValor()));
if (btRadio1.isSelected()){
venda.setTipo(btRadio1.getText()); //Venda
}else if (btRadio2.isSelected()){
venda.setTipo(btRadio2.getText()); //Oraçmento
}
if (check1.isSelected()){
venda.setTipoVenda(check1.getText()); //a vista
}else if (check2.isSelected()){
venda.setTipoVenda(check2.getText()); // a prazo
}
//-> Itens Venda
// itensVenda = new ArrayList();
// for (int i = 0; i < dtm.getRowCount(); i++){
// itemVenda = new ItemVenda(venda);
//// itemVenda.setVenda(venda);
// itemVenda.setCodItemVenda(Integer.parseInt(“0” + String.valueOf(dtm.getValueAt(i, 0))));
// if (i >= 0){
// int id = getIndiceCodigoProduto(i);
// itemVenda.getProduto().setCodigo(id);
// }
// itemVenda.setQuantidade(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 2)).replace(",", “.”)));
// itemVenda.setDesconto(Double.parseDouble(“0” + String.valueOf(dtm.getValueAt(i, 3)).replace(",", “.”)));
// itemVenda.setValorUnitario(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 4)).replace(",", “.”)));
// itemVenda.setValorTotal(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 5)).replace(",", “.”)));
//// itemVenda.getVenda().setCodVenda(venda.getCodVenda());
// itensVenda.add(itemVenda);
// System.out.print(itemVenda);
// }
}
public void setPersistenciaItemVenda(){
try{
itensVenda = new ArrayList();
for (int i = 0; i < tabela.getRowCount(); i++){
itemVenda = new ItemVenda(venda);
itemVenda.setCodItemVenda(Integer.parseInt("0" + String.valueOf(dtm.getValueAt(i, 0))));
if (i >= 0){
int id = getIndiceCodigoProduto(i);
itemVenda.getProduto().setCodigo(id);
}
itemVenda.setQuantidade(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 2)).replace(",", ".")));
itemVenda.setDesconto(Double.parseDouble("0" + String.valueOf(dtm.getValueAt(i, 3)).replace(",", ".")));
itemVenda.setValorUnitario(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 4)).replace(",", ".")));
itemVenda.setValorTotal(Double.parseDouble(String.valueOf(dtm.getValueAt(i, 5)).replace(",", ".")));
// itemVenda.getVenda().setCodVenda(venda.getCodVenda());
itensVenda.add(itemVenda);
System.out.print(itemVenda);
}
}catch(Exception e){
e.printStackTrace();
}
}
@Override
public boolean incluirBD() throws ExceptionInInitializerError
{
boolean retorno = false;
try {
setPersistencia();
daoVenda.inserir();
setPersistenciaItemVenda();
for (int i = 0; i < itensVenda.size(); i++){
daoItemVenda.setItemVenda(itensVenda.get(i));
retorno = daoItemVenda.inserir();
if (retorno == true){
continue;
}else{
break;
}
}
// for (ItemVenda item : itensVenda){
// daoItemVenda.setItemVenda(item);
// daoItemVenda.inserir();
// }
campoCodigoVenda.setText("" + venda.getCodVenda());
return true;
} catch (ExceptionInInitializerError e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, “Erro ao inserir”);
return false;
}
}
@Override
public void focusGained(FocusEvent e) {
if (e.getSource() == campoQuantidade){
String tamanho, valorTotal;
tamanho = Calculos.mulitiplica(campoComprimento.getText(), campoLargura.getText());
campoQuantidade.setText(tamanho);
valorTotal = Calculos.mulitiplica(campoValorUnitario.getText(), tamanho);
campoValorTotal.setText(valorTotal);
}
}
@Override
public void focusLost(FocusEvent e) {
if (e.getSource() == campoDesconto){
if (campoComprimento.getText().trim().equals("") && campoLargura.getText().trim().equals("")){
String valorTotal = null;
valorTotal = Calculos.mulitiplicaDesconto(campoQuantidade.getText(), campoValorUnitario.getText(), campoDesconto.getText());
campoValorTotal.setText(valorTotal);
}else{
String valorTotal = null;
valorTotal = Calculos.mulitiplicaDesconto(campoValorTotal.getText(), campoDesconto.getText());
campoValorTotal.setText(valorTotal);
}
}else if (e.getSource() == campoQuantidade){
String valorTotal = null;
valorTotal = Calculos.mulitiplica(campoValorUnitario.getText(), campoQuantidade.getText());
campoValorTotal.setText(valorTotal);
}
}
private void eventosBotoes() {
btLimpar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
limparCampos();
limparTabela();
campoTotalVenda.limpar();
}
});
btIncluir.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try{
// campoCodigoItemVenda.setText("" + itemVenda.getCodItemVenda());
// ItemVenda ite;
// carregarItens();
Vector vetor = new Vector();
codigosProduto = new ArrayList();
atualizaVenda();
vetor.add(campoCodigoItemVenda.getText());
vetor.add(campoProduto.getSelectedItem());
codigosProduto.add(campoProduto.getValor());
vetor.add(campoQuantidade.getText());
vetor.add(campoDesconto.getText());
vetor.add(campoValorUnitario.getText());
vetor.add(campoValorTotal.getText());
if (dtm.getRowCount() >= -1){
dtm.addRow(vetor);
}
limparCamposItemVenda();
}catch(Exception ee){
ee.printStackTrace();
}
}
});
btExcluir.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double a = 0;
int indice = 0;
try{
if (tabela.getSelectedRow() >= 0){
indice = tabela.getSelectedRow();
a = Double.valueOf(String.valueOf(dtm.getValueAt(indice, 5)).replace(",", “.”));
dtm.removeRow(tabela.getSelectedRow());
soma = soma - a;
// updateUI();
System.out.println(a + “–” + indice + "soma: " + soma);
campoTotalVenda.setValor(String.valueOf(soma));
}
}catch(Exception ee){
ee.printStackTrace();
}
}
});
}
public void atualizaVenda(){
double somaTem = 0;
somaTem = Double.parseDouble(campoValorTotal.getText().trim().replace(",", "."));
lista.add(somaTem);
soma = soma + somaTem;
BigDecimal a = new BigDecimal(soma);
campoTotalVenda.setValor(a.toString());
}
@Override
public void limparTabela(){
while(dtm.getRowCount() > 0){
dtm.removeRow(0);
}
soma = 0;
}
private int getIndiceCodigoProduto(int p) {
int retorno = 0;
for (int i = 0; i < codigosProduto.size(); i++){
if (p == i){
retorno = codigosProduto.get(i);
// break;
}
}
return retorno;
}
public void removeItensVenda(){
for (int i = 0; i < itensVenda.size(); i++){
itensVenda.remove(i);
}
}
public void limparCamposItemVenda(){
campoCodigoItemVenda.setText("");
campoProduto.limpar();
campoValorUnitario.setText("");
campoComprimento.setText("");
campoLargura.setText("");
campoQuantidade.setText("");
campoDesconto.setText("");
campoValorTotal.setText("");
}
// [/code]