Boa tarde pessoal, sou novo aqui no forum, estou com dificuldades em somar quantos itens o usuário adicionou a uma venda na jtbale e trazer este total para um jtextfield.
Segue abaixo o código do formulário Vendas.
package Tela;
import Conexao.ConexaoBD;
import ModeloBeans.BeansVendaCaixa;
import ModeloBeans.Utilidades;
import ModeloDao.DaoVendaCaixa;
import ModeloDao.PreencherTabela;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
public class VendaCaixa extends javax.swing.JDialog {
BeansVendaCaixa mod = new BeansVendaCaixa();
DaoVendaCaixa addItem = new DaoVendaCaixa();
ConexaoBD conecta = new ConexaoBD();
int flag = 1;
int IDvenda;
float PrecoProduto;
float Total;
private PesquisarClientes pesquisarClientes;
private PesquisarProdutos pesquisarProdutos;
private ParcelamentoVenda parcelamento;
private int IdVenda;
private String Data;
private float Valor;
/**
* Creates new form VendaCaixa
*/
public VendaCaixa(javax.swing.JDialog parent, boolean modal) {
super(parent, modal);
initComponents();
preencherProdutos();
this.pesquisarClientes = new PesquisarClientes(this, true);
this.pesquisarProdutos = new PesquisarProdutos(this, true);
this.parcelamento = new ParcelamentoVenda(this, true);
jTextFieldQtdeItens.setText("0");
SimpleDateFormat DF = new SimpleDateFormat("dd/MM/yyyy");
Date hoje = new Date();
jFormattedTextFieldData.setText(DF.format(hoje));
}
public void preencherProdutos() {
conecta.conexao();
conecta.executaSQL("select *from produtos order by descricao_produto");
try {
conecta.rs.first();
//jComboBoxProdutos.removeAllItems();
do{
//jComboBoxProdutos.addItem(conecta.rs.getString("descricao_produto"));
}while(conecta.rs.next());
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, "Erro ao preencher a lista de Produtos!"+ex);
}
conecta.desconexao();
}
public void preencherTabelaItensVenda(String Sql) {
ArrayList dados = new ArrayList();
String [] colunas = new String [] {"Itens","ID Prod.","Descrição","Qtde","Preço","Sub Total"};
conecta.conexao();
conecta.executaSQL(Sql);
try{
conecta.rs.first();
do{
float ValorProduto = conecta.rs.getFloat("precovenda_produto");
int QtdVendida = conecta.rs.getInt("qtde_produto");
//int Itens = conecta.rs.getInt("qtde_itens");
dados.add(new Object[] {conecta.rs.getInt("qtde_itens"),conecta.rs.getInt("id_produto"),conecta.rs.getString("descricao_produto"),conecta.rs.getInt("qtde_produto"),conecta.rs.getFloat("precovenda_produto"), ValorProduto*QtdVendida,});
}while(conecta.rs.next());
}catch(SQLException ex) {
// Preenchendo a tabela
JOptionPane.showMessageDialog(rootPane, “Erro ao preencher tabela!”+ex);
}
PreencherTabela modelo = new PreencherTabela(dados, colunas);
jTableItensVenda.setModel(modelo);
jTableItensVenda.getColumnModel().getColumn(0).setPreferredWidth(80);
jTableItensVenda.getColumnModel().getColumn(0).setResizable(false);
jTableItensVenda.getColumnModel().getColumn(1).setPreferredWidth(80);
jTableItensVenda.getColumnModel().getColumn(1).setResizable(false);
jTableItensVenda.getColumnModel().getColumn(2).setPreferredWidth(400);
jTableItensVenda.getColumnModel().getColumn(2).setResizable(false);
jTableItensVenda.getColumnModel().getColumn(3).setPreferredWidth(120);
jTableItensVenda.getColumnModel().getColumn(3).setResizable(false);
jTableItensVenda.getColumnModel().getColumn(4).setPreferredWidth(120);
jTableItensVenda.getColumnModel().getColumn(4).setResizable(false);
jTableItensVenda.getTableHeader().setReorderingAllowed(false);
jTableItensVenda.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTableItensVenda.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
SomaProdutos();
conecta.desconexao();
QtdItens();
}
private void QtdItens() {
int Item = jTableItensVenda.getRowCount();
int SomaItens = 0;
for(int i = 0; i<Item; i++) {
SomaItens += Utilidades.objectToInt(jTableItensVenda.getValueAt(i,0));
}
jTextFieldQtdeItens.setText("" + SomaItens);
}
public void SomaProdutos () {
Total = 0;
int Qtde = 0;
float valor = 0;
conecta.executaSQL("select * from itens_venda inner join produtos on itens_venda.id_produto = produtos.id_produto where id_venda="+IDvenda);
try {
//conecta.rs.first();
while(conecta.rs.next()) {
Qtde = conecta.rs.getInt("qtde_produto");
valor = conecta.rs.getFloat("precovenda_produto");
Total = Total + conecta.rs.getFloat("precovenda_produto")*conecta.rs.getInt("qtde_produto");
}
jTextFieldTotal.setText(String.valueOf(Total));
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao efetuar a soma do total da venda!!"+ ex);
}
}
public void SomaItens () {
//nao esta funcionando ainda
Total = 0;
int Qtde = 0;
int item = 0;
conecta.executaSQL("select * from itens_venda inner join produtos on itens_venda.id_produto = produtos.id_produto where id_vendas="+IDvenda);
try {
//conecta.rs.first();
while(conecta.rs.next()) {
Qtde = conecta.rs.getInt("qtde_produto");
//item = conecta.rs.getInt("qtde_itens");
Total = Total + conecta.rs.getInt("qtde_produto")*conecta.rs.getInt("qtde_itens");
}
jTextFieldItem.setText(String.valueOf(Total));
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao efetuar a soma dos itens da venda!!"+ ex);
}
}
private void jButtonBuscarClienteActionPerformed(java.awt.event.ActionEvent evt) {
this.pesquisarClientes.setVisible(true);
this.jTextFieldNomeCliente.setText((this.pesquisarClientes.getCliente()));
//jComboBoxProdutos.setEnabled(true);
//jTextFieldQtdeProdutos.setEnabled(true);
jTextFieldNomeCliente.setEnabled(false);
jButtonBuscarProduto.setEnabled(true);
}
private void jButtonBuscarProdutoActionPerformed(java.awt.event.ActionEvent evt) {
this.pesquisarProdutos.setVisible(true);
this.jTextFieldIDProduto.setText((this.pesquisarProdutos.getIdProduto()));
this.jTextFieldProduto.setText((this.pesquisarProdutos.getProduto()));
this.jTextFieldPrecoProduto.setText((this.pesquisarProdutos.getPrecoProduto()));
this.jTextFieldSubTotal.setText((this.pesquisarProdutos.getPrecoProduto()));
//jComboBoxProdutos.setEnabled(true);
jTextFieldProduto.setEnabled(false);
jTextFieldQtdeProdutos.setEnabled(true);
jTextFieldQtdeProdutos.setText("1");
jTextFieldQtdeProdutos.requestFocus();
//jTextFieldProduto.setText("");
jButtonIncluir.setEnabled(true);
}
private void jTextFieldQtdeProdutosKeyReleased(java.awt.event.KeyEvent evt) {
float subTotal;
subTotal = Float.valueOf(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
jTextFieldSubTotal.setText(String.valueOf(subTotal));
}
private void jButtonIncluirActionPerformed(java.awt.event.ActionEvent evt) {
try {
int idvenda;
int qtde = 0;
conecta.conexao();
conecta.executaSQL("select * from produtos where descricao_produto='"+jTextFieldProduto.getText()+"'");
conecta.rs.first();
qtde = conecta.rs.getInt("qtdeatual_produto");
if (qtde >= Integer.parseInt(jTextFieldQtdeProdutos.getText())) {
//mod.setQtdeItens(Integer.parseInt(jTextFieldIDProduto.getText()));
mod.setIdProduto(Integer.parseInt(jTextFieldIDProduto.getText()));
mod.setProduto(jTextFieldProduto.getText());
mod.setQtdeProduto(Integer.parseInt(jTextFieldQtdeProdutos.getText()));
mod.setPrecoProduto(Float.valueOf(jTextFieldPrecoProduto.getText()));
mod.setTotalProduto(Float.valueOf(jTextFieldSubTotal.getText()));
mod.setIdVenda(IDvenda);
//jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_venda")));
addItem.AdicionaItem(mod);
preencherTabelaItensVenda("select * from produtos inner join itens_venda"
+ " on produtos.id_produto = itens_venda.id_produto inner join vendas"
+ " on vendas.id_vendas = itens_venda.id_venda where vendas.id_vendas="+IDvenda);
}else{
JOptionPane.showMessageDialog(rootPane, "Não hã quantidade disponivel no estoque deste produto!");
}
//Total = Total + Float.parseFloat(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
//jTextFieldTotal.setText(String.valueOf(Total));
jTextFieldIDProduto.setText("");
jTextFieldProduto.setText("");
//jTextFieldNomeCliente.setText("");
jTextFieldQtdeProdutos.setText("");
jTextFieldPrecoProduto.setText("");
jTextFieldSubTotal.setText("");
jTextFieldItem.setEnabled(true);
jComboBoxPagamento.setEnabled(true);
jTextFieldQtdeProdutos.setEnabled(false);
//Inserindo quantidade de itens
//jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_venda")));
} catch (SQLException ex) {
//JOptionPane.showMessageDialog(rootPane, "Erro ao pesquisar a quantidade!"+ ex);
}
jTableItensVenda.setEnabled(true);
jButtonDeletarItem.setEnabled(true);
jButtonDesconto.setEnabled(true);
jButtonFinalizar.setEnabled(true);
jButtonCancelar.setEnabled(true);
jButtonConcluirDepois.setEnabled(true);
//QtdItens();
}
private void jTextFieldQtdeProdutosFocusGained(java.awt.event.FocusEvent evt) {
/*float subTotal;
subTotal = Float.valueOf(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
jTextFieldSubTotal.setText(String.valueOf(subTotal));*/
}
private void jButtonFinalizarActionPerformed(java.awt.event.ActionEvent evt) {
if(jComboBoxPagamento.getSelectedItem().equals("A vista")) {
mod.setIdVenda(IDvenda);
mod.setCliente(jTextFieldNomeCliente.getText());
mod.setDataVenda(jFormattedTextFieldData.getText());
mod.setValorVenda(Float.parseFloat(jTextFieldTotal.getText()));
mod.setFormaPagto((String)jComboBoxPagamento.getSelectedItem());
addItem.FinalizarVenda(mod);
jTextFieldNomeCliente.setText("");
jTextFieldQtdeItens.setText("");
jTextFieldTotal.setText("");
jTextFieldProduto.setEnabled(false);
jButtonBuscarProduto.setEnabled(false);
jTextFieldQtdeProdutos.setEnabled(false);
jButtonIncluir.setEnabled(false);
//jTableItensVenda.setEnabled(false);
jTableItensVenda.setVisible(false);
jButtonDeletarItem.setEnabled(false);
jButtonDesconto.setEnabled(false);
jButtonFinalizar.setEnabled(false);
jButtonCancelar.setEnabled(false);
jButtonConcluirDepois.setEnabled(false);
//dispose();
}else {
mod.setIdVenda(IDvenda);
mod.setCliente(jTextFieldNomeCliente.getText());
mod.setDataVenda(jFormattedTextFieldData.getText());
mod.setValorVenda(Float.parseFloat(jTextFieldTotal.getText()));
mod.setFormaPagto((String)jComboBoxPagamento.getSelectedItem());
addItem.FinalizarVenda(mod);
jTextFieldNomeCliente.setText("");
jTextFieldQtdeItens.setText("");
jTextFieldTotal.setText("");
jTextFieldProduto.setEnabled(false);
jButtonBuscarProduto.setEnabled(false);
jTextFieldQtdeProdutos.setEnabled(false);
jButtonIncluir.setEnabled(false);
//jTableItensVenda.setEnabled(false);
jTableItensVenda.setVisible(false);
jButtonDeletarItem.setEnabled(false);
jButtonDesconto.setEnabled(false);
jButtonFinalizar.setEnabled(false);
jButtonCancelar.setEnabled(false);
jButtonConcluirDepois.setEnabled(false);
this.parcelamento.setVisible(true);
this.IdVenda = Integer.parseInt(this.jTextFieldID.getText());
this.Data = (this.jFormattedTextFieldData.getText());
this.Valor = Float.parseFloat(this.jTextFieldTotal.getText());
//ParcelamentoVenda frm = new ParcelamentoVenda(IDvenda);
//this.jTextFieldNomeCliente.setText((this.pesquisarClientes.getCliente()));
}
}
private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {
addItem.CancelarVenda();
dispose();
}
private void jButtonDeletarItemActionPerformed(java.awt.event.ActionEvent evt) {
mod.setItemDeletado(Integer.parseInt(jTextFieldItem.getText()));
addItem.ExcluirItem(mod);
preencherTabelaItensVenda("select * from produtos inner join itens_venda"
+ " on produtos.id_produto = itens_venda.id_produto inner join vendas"
+ " on vendas.id_vendas = itens_venda.id_venda where vendas.id_vendas="+IDvenda);
jTextFieldItem.setText("");
}
private void jTableItensVendaMouseClicked(java.awt.event.MouseEvent evt) {
String id_produto = "" + jTableItensVenda.getValueAt(jTableItensVenda.getSelectedRow(), 1);
conecta.conexao();
conecta.executaSQL("select *from itens_venda where id_produto = '"+ id_produto + "'");
try {
conecta.rs.first();
jTextFieldItem.setText(String.valueOf(conecta.rs.getInt("id_produto")));
}catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao selecionar item!"+ex);
}
}
private void jButtonBuscarCliente1ActionPerformed(java.awt.event.ActionEvent evt) {
conecta.conexao();
try {
PreparedStatement pst = conecta.Con.prepareStatement("insert into vendas (valor_vendas)values (?)");
pst.setFloat(1,0);
pst.execute();
conecta.executaSQL("select * from vendas");
conecta.rs.last();
IDvenda = conecta.rs.getInt("id_vendas");
jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_vendas")));
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, "Não foi possivel inserir esta venda"+ ex);
}
jButtonBuscarCliente.setEnabled(true);
jButtonCancelar.setEnabled(true);
}
public int getIdVenda() {
return IdVenda;
}
public void setIdVenda(int IdVenda) {
this.IdVenda = IdVenda;
}
public String getData() {
return Data;
}
public void setData(String Data) {
this.Data = Data;
}
public float getValor() {
return Valor;
}
public void setValor(float Valor) {
this.Valor = Valor;
}
}