/* * Copyright (C) 2015 Allsoft * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package br.com.allsoft.avros.interfaces; import br.com.allsoft.avros.dao.ClienteDAO; import br.com.allsoft.avros.dao.OrcamentoDAO; import br.com.allsoft.avros.exceptions.ValorInvalidoMoedaException; import br.com.allsoft.avros.formulas.Cpf; import br.com.allsoft.avros.formulas.Moeda; import br.com.allsoft.avros.modelo.Cliente; import br.com.allsoft.avros.modelo.Orcamento; import java.awt.Container; import java.awt.Dimension; import java.sql.Date; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; /** * * @author wallace.oliveira */ public class IfrmPreSessao extends javax.swing.JInternalFrame { //Variáveis DefaultTableModel tblOrc = new DefaultTableModel(); private Orcamento orcamento = new Orcamento(); private Cliente cliente = new Cliente(); //Métodos /** * Cria um evento na tabela que é disparado quando algum item é selecionado, * pegando os dados do orçamento mostrado naquele item */ private void criaEventoSelecao() { jtblOrc.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent event) { if (jtblOrc.getSelectedRow() > -1) { int linha = jtblOrc.getSelectedRow(); String svalor = (String) tblOrc.getValueAt(linha, 4); double dvalor = 0; try { dvalor = Moeda.retornaDouble(svalor); } catch (ValorInvalidoMoedaException ex) { Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } orcamento.setId((int) tblOrc.getValueAt(linha, 0)); orcamento.setCriacao((Date) tblOrc.getValueAt(linha, 1)); orcamento.setSessoes((int) tblOrc.getValueAt(linha, 2)); orcamento.setValor(dvalor); orcamento.setTipoPagamento((String) tblOrc.getValueAt(linha, 5)); btnAbrir.setEnabled(true); } } }); } /** * Da corpo a tabela e a cria com os orçamentos listados * * @param orcamentos lista de ojava.sql.Date dataSql = orcamentoIdCli.get(i).getCriacao(); SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); format.format(dataSql);rçamentos * @param qtde quantidade de orçamentos listados */ private void preencheTabela(List<Orcamento> orcamentos, int qtde) { //Preenche ela for (int i = 0; i < qtde; i++) { tblOrc.addRow(new String[1]); int sessoes = orcamentos.get(i).getSessoes(); String valorTot = String.valueOf(orcamentos.get(i).getValor()); String valorSes = String.valueOf(orcamentos.get(i).getValor() / sessoes); java.sql.Date dataSql = orcamentos.get(i).getCriacao(); SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); format.format(dataSql); try { valorTot = Moeda.padraoBr(orcamentos.get(i).getValor()); valorSes = Moeda.calculaSessao(valorTot, sessoes); } catch (ValorInvalidoMoedaException ex) { Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } tblOrc.setValueAt(orcamentos.get(i).getId(), i, 0); tblOrc.setValueAt(dataSql, i, 1); tblOrc.setValueAt(sessoes, i, 2); tblOrc.setValueAt(valorSes, i, 3); tblOrc.setValueAt(valorTot, i, 4); tblOrc.setValueAt(orcamentos.get(i).getTipoPagamento(), i, 5); } } /** * Creates new form IfrmPreSessao */ public IfrmPreSessao() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { btgBuscar = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); btnBuscar = new javax.swing.JButton(); txtOrcamento = new javax.swing.JTextField(); txtCpf = new javax.swing.JTextField(); rdoCpf = new javax.swing.JRadioButton(); rdoOrca = new javax.swing.JRadioButton(); jScrollPane1 = new javax.swing.JScrollPane(); jtblOrc = new javax.swing.JTable(); btnAbrir = new javax.swing.JButton(); setClosable(true); setIconifiable(true); setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/allsoft/avros/img/orcapesq.png"))); // NOI18N addInternalFrameListener(new javax.swing.event.InternalFrameListener() { public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { formInternalFrameClosing(evt); } public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { formInternalFrameOpened(evt); } }); jLabel1.setFont(ClsEstilo.tituloFonte); jLabel1.setForeground(ClsEstilo.tituloCor); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel1.setText("Buscar orçamento"); btnBuscar.setFont(ClsEstilo.botaoFonte); btnBuscar.setForeground(ClsEstilo.botaoCor); btnBuscar.setText("Buscar"); btnBuscar.setEnabled(false); btnBuscar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBuscarActionPerformed(evt); } }); txtOrcamento.setFont(ClsEstilo.textoInputFonte); txtOrcamento.setForeground(ClsEstilo.textoInputCor); txtOrcamento.setEnabled(false); txtOrcamento.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { txtOrcamentoKeyTyped(evt); } }); txtCpf.setFont(ClsEstilo.textoInputFonte); txtCpf.setForeground(ClsEstilo.textoInputCor); txtCpf.setEnabled(false); txtCpf.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { txtCpfKeyPressed(evt); } public void keyTyped(java.awt.event.KeyEvent evt) { txtCpfKeyTyped(evt); } }); btgBuscar.add(rdoCpf); rdoCpf.setFont(ClsEstilo.labelFonte); rdoCpf.setForeground(ClsEstilo.labelCor); rdoCpf.setText("Busque pelo CPF do cliente:"); rdoCpf.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { rdoCpfStateChanged(evt); } }); btgBuscar.add(rdoOrca); rdoOrca.setFont(ClsEstilo.labelFonte); rdoOrca.setForeground(ClsEstilo.labelCor); rdoOrca.setText("Busque pelo código do orçamento:"); rdoOrca.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { rdoOrcaStateChanged(evt); } }); jtblOrc.setFont(ClsEstilo.labelFonte); jtblOrc.setForeground(ClsEstilo.textoCor); jtblOrc.setModel(tblOrc); jScrollPane1.setViewportView(jtblOrc); btnAbrir.setText("Abrir"); btnAbrir.setEnabled(false); btnAbrir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAbrirActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(62, 62, 62) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rdoOrca) .addComponent(rdoCpf)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtOrcamento) .addComponent(txtCpf, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 470, Short.MAX_VALUE)) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnBuscar) .addGap(81, 81, 81) .addComponent(btnAbrir) .addGap(133, 133, 133)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtCpf, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(rdoCpf)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtOrcamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(rdoOrca)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 327, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnBuscar) .addComponent(btnAbrir)) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarActionPerformed //Pesquisa por CPF if (rdoCpf.isSelected()) { String cpf = txtCpf.getText(); if (Cpf.isCpf(cpf)) { cliente.setCpf(cpf); try { cliente = ClienteDAO.cclienteCpf(cpf); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Ocorreu um erro ao carregar informações do representante.", "Erro", JOptionPane.ERROR_MESSAGE); cliente = null; Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } if (!(cliente == null)) { List<Orcamento> orcamentos = new ArrayList<>(); try { orcamentos = OrcamentoDAO.corcamentoIdCli(cliente.getId()); int qtde = orcamentos.size(); if (qtde > 0) { //Abre a Tabela jScrollPane1.setVisible(true); jScrollPane1.setSize(472, 327); jtblOrc.setVisible(true); jtblOrc.setSize(472, 327); this.setSize(508, 536); criaEventoSelecao(); preencheTabela(orcamentos, qtde); cliente = ClienteDAO.cclienteCpf(cpf); } else { if (cliente.getCpf() == null) { JOptionPane.showMessageDialog(this, "O cliente não está cadastrado no sistema."); } else { JOptionPane.showMessageDialog(this, cliente.getNome() + " não possui orçamentos salvos no sistema."); } } } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Ocorreu um erro ao buscar orçamento.", "Erro", JOptionPane.ERROR_MESSAGE); Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } } } } else if (rdoOrca.isSelected()) { int codigo = Integer.valueOf(txtOrcamento.getText()); try { orcamento = OrcamentoDAO.corcamento(codigo); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Ocorreu um erro ao carregar o orçamento.", "Erro", JOptionPane.ERROR_MESSAGE); Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } try { cliente = ClienteDAO.cclienteId(orcamento.getIdCliente()); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Ocorreu um erro ao carregar o cliente.", "Erro", JOptionPane.ERROR_MESSAGE); Logger.getLogger(IfrmPreSessao.class.getName()).log(Level.SEVERE, null, ex); } if (!(orcamento == null) && !(cliente == null)) { btnAbrir.setEnabled(true); } } }//GEN-LAST:event_btnBuscarActionPerformed private void txtCpfKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCpfKeyTyped btnBuscar.setEnabled(true); }//GEN-LAST:event_txtCpfKeyTyped private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameOpened Container a = this.getContentPane(); a.setBackground(ClsEstilo.formbg); Dimension dim = this.getParent().getSize(); this.setLocation(dim.width / 2 - this.getSize().width / 2, dim.height / 2 - this.getSize().height / 2 + 50); this.setSize(508, 205); String[] cab = {"Código", "Data", "Sessões", "Valor", "Total", "Pagamento"}; tblOrc.setColumnIdentifiers(cab); jtblOrc.setVisible(false); jScrollPane1.setVisible(false); jtblOrc.setGridColor(ClsEstilo.tabelaGrid); jtblOrc.setBackground(ClsEstilo.tabelaBg); jScrollPane1.getViewport().setBackground(ClsEstilo.tabelaBg); jScrollPane1.setBorder(null); jtblOrc.setSelectionBackground(ClsEstilo.tabelaSelec); jtblOrc.setSelectionForeground(ClsEstilo.tabelaTextoSelec); jtblOrc.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); }//GEN-LAST:event_formInternalFrameOpened private void txtCpfKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCpfKeyPressed }//GEN-LAST:event_txtCpfKeyPressed private void rdoCpfStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rdoCpfStateChanged if (rdoCpf.isSelected()) { txtCpf.setEnabled(true); txtOrcamento.setEnabled(false); }; }//GEN-LAST:event_rdoCpfStateChanged private void rdoOrcaStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rdoOrcaStateChanged if (rdoOrca.isSelected()) { txtCpf.setEnabled(false); txtOrcamento.setEnabled(true); }; }//GEN-LAST:event_rdoOrcaStateChanged private void txtOrcamentoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtOrcamentoKeyTyped btnBuscar.setEnabled(true); }//GEN-LAST:event_txtOrcamentoKeyTyped private void btnAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAbrirActionPerformed FrmPrincipal.addFrame(new IfrmCadSessao(orcamento, cliente)); }//GEN-LAST:event_btnAbrirActionPerformed private void formInternalFrameClosing(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameClosing FrmPrincipal.bPreAgendarSessao = false; }//GEN-LAST:event_formInternalFrameClosing // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup btgBuscar; private javax.swing.JButton btnAbrir; private javax.swing.JButton btnBuscar; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jtblOrc; private javax.swing.JRadioButton rdoCpf; private javax.swing.JRadioButton rdoOrca; private javax.swing.JTextField txtCpf; private javax.swing.JTextField txtOrcamento; // End of variables declaration//GEN-END:variables }