Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package br.com.tcc.view; import Conexao.ConnectionFactory; import br.com.tcc.entity.Orcamentodetalhe; import br.com.tcc.entity.OrcamentodetalhePK; import br.com.tcc.entity.Orcamentoregistro; import br.com.tcc.entity.Produto; import br.com.tcc.util.EntityManagerUtil; import br.com.tcc.util.Uteis; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * * @author Leonardo */ public class MovimentoOrcamentoView extends javax.swing.JFrame { Boolean editando; // Variavel global responsavel pela ativaes dos componentes da classe(ex: botes, tabelas e campos). Double valorTotal = 0.0; public static String sql; public String mes, dia, ano, dia_semana, hora; public MovimentoOrcamentoView() { initComponents(); orcamentoDetalheList.clear(); editando = false; btnImprimir.setEnabled(false); trataEdicao(); } /** * 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() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); entityManager = EntityManagerUtil.getEntityManager(); orcamentoDetalheQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT pd FROM Orcamentodetalhe pd"); orcamentoDetalheList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(orcamentoDetalheQuery.getResultList()); tipoPagamentoQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT tp FROM Tipopagamento tp"); tipoPagamentoList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(tipoPagamentoQuery.getResultList()); orcamentoRegistroQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT pr FROM Orcamentoregistro pr"); orcamentoRegistroList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(orcamentoRegistroQuery.getResultList()); funcionarioQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT f FROM Funcionario f"); funcionarioList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(funcionarioQuery.getResultList()); clienteQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT c FROM Cliente c"); clienteList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(clienteQuery.getResultList()); produtoQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT p FROM Produto p"); produtoList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(produtoQuery.getResultList()); pnlBotoesVenda = new javax.swing.JPanel(); btnNovaVenda = new javax.swing.JButton(); btnExcluir = new javax.swing.JButton(); btnConfirmar = new javax.swing.JButton(); btnImprimir = new javax.swing.JButton(); pnlRegistroVenda = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); txtVenda = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); cbxCliente = new javax.swing.JComboBox(); jLabel3 = new javax.swing.JLabel(); cbxFuncionario = new javax.swing.JComboBox(); jLabel5 = new javax.swing.JLabel(); txtTotalOrcamento = new javax.swing.JTextField(); spnQuantidade = new javax.swing.JSpinner(); jLabel4 = new javax.swing.JLabel(); pnlDetalheVenda = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); tblDetalhe = new javax.swing.JTable(); jScrollPane2 = new javax.swing.JScrollPane(); tblRegistro = new javax.swing.JTable(); jPanel1 = new javax.swing.JPanel(); jScrollPane3 = new javax.swing.JScrollPane(); tblProduto = new javax.swing.JTable(); lblProduto = new javax.swing.JLabel(); txtPesquisar = new javax.swing.JTextField(); btnAdicionar = new javax.swing.JToggleButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Efetuar Oramento "); pnlBotoesVenda.setBackground(new java.awt.Color(204, 204, 255)); btnNovaVenda.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/tcc/imagem/Vendax32.png"))); // NOI18N btnNovaVenda.setText("Nova Oramento"); btnNovaVenda.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNovaVendaActionPerformed(evt); } }); btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/tcc/imagem/excluir32.png"))); // NOI18N btnExcluir.setText("Excluir"); org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblDetalhe, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), btnExcluir, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); btnExcluir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExcluirActionPerformed(evt); } }); btnConfirmar .setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/tcc/imagem/confirmar32.png"))); // NOI18N btnConfirmar.setText("Confirmar"); btnConfirmar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConfirmarActionPerformed(evt); } }); btnImprimir.setText("Imprimir"); btnImprimir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnImprimirActionPerformed(evt); } }); javax.swing.GroupLayout pnlBotoesVendaLayout = new javax.swing.GroupLayout(pnlBotoesVenda); pnlBotoesVenda.setLayout(pnlBotoesVendaLayout); pnlBotoesVendaLayout.setHorizontalGroup(pnlBotoesVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlBotoesVendaLayout.createSequentialGroup().addContainerGap() .addGroup(pnlBotoesVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlBotoesVendaLayout.createSequentialGroup().addGroup(pnlBotoesVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnNovaVenda, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnExcluir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnConfirmar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(btnImprimir, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap())); pnlBotoesVendaLayout.setVerticalGroup(pnlBotoesVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlBotoesVendaLayout.createSequentialGroup().addContainerGap().addComponent(btnNovaVenda) .addGap(18, 18, 18).addComponent(btnExcluir).addGap(18, 18, 18).addComponent(btnConfirmar) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnImprimir) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); pnlRegistroVenda.setBorder(javax.swing.BorderFactory.createTitledBorder("Registro de Oramento")); jLabel1.setText("Cdigo oramento:"); txtVenda.setEnabled(false); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblRegistro, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.id}"), txtVenda, org.jdesktop.beansbinding.BeanProperty.create("text")); bindingGroup.addBinding(binding); jLabel2.setText("Cliente:"); org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings .createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, clienteList, cbxCliente); bindingGroup.addBinding(jComboBoxBinding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblRegistro, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.idCliente}"), cbxCliente, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); jLabel3.setText("Funcionrio:"); jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, funcionarioList, cbxFuncionario); bindingGroup.addBinding(jComboBoxBinding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblRegistro, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.idFuncionario}"), cbxFuncionario, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); jLabel5.setText("Total Venda R$:"); txtTotalOrcamento.setEnabled(false); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblRegistro, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.vlrTotalOrcamento}"), txtTotalOrcamento, org.jdesktop.beansbinding.BeanProperty.create("text")); bindingGroup.addBinding(binding); jLabel4.setText("Quantidade:"); javax.swing.GroupLayout pnlRegistroVendaLayout = new javax.swing.GroupLayout(pnlRegistroVenda); pnlRegistroVenda.setLayout(pnlRegistroVendaLayout); pnlRegistroVendaLayout.setHorizontalGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlRegistroVendaLayout.createSequentialGroup().addContainerGap() .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlRegistroVendaLayout.createSequentialGroup().addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(cbxFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlRegistroVendaLayout.createSequentialGroup().addComponent(jLabel5) .addGap(18, 18, 18) .addComponent(txtTotalOrcamento, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(spnQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlRegistroVendaLayout.createSequentialGroup() .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1).addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtVenda, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cbxCliente, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); pnlRegistroVendaLayout.setVerticalGroup( pnlRegistroVendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlRegistroVendaLayout.createSequentialGroup().addContainerGap() .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1).addComponent(txtVenda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cbxCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2)) .addGap(18, 18, 18) .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3).addComponent(cbxFuncionario, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(pnlRegistroVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(txtTotalOrcamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spnQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4)) .addContainerGap(37, Short.MAX_VALUE))); pnlDetalheVenda.setBorder(javax.swing.BorderFactory.createTitledBorder("Detalhe do Oramento")); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings .createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, orcamentoDetalheList, tblDetalhe); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding( org.jdesktop.beansbinding.ELProperty.create("${orcamentodetalhePK.idOrcamentoRegistro}")); columnBinding.setColumnName("Cdigo Venda"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${orcamentodetalhePK.idProduto}")); columnBinding.setColumnName("Produto"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${qtde}")); columnBinding.setColumnName("Qtde"); columnBinding.setColumnClass(Integer.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${vlrUnitario}")); columnBinding.setColumnName("Valor Unit R$"); columnBinding.setColumnClass(Double.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${vlrTotal}")); columnBinding.setColumnName("Valor Total R$"); columnBinding.setColumnClass(Double.class); columnBinding.setEditable(false); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane1.setViewportView(tblDetalhe); javax.swing.GroupLayout pnlDetalheVendaLayout = new javax.swing.GroupLayout(pnlDetalheVenda); pnlDetalheVenda.setLayout(pnlDetalheVendaLayout); pnlDetalheVendaLayout.setHorizontalGroup( pnlDetalheVendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, pnlDetalheVendaLayout.createSequentialGroup() .addContainerGap().addComponent(jScrollPane1).addContainerGap())); pnlDetalheVendaLayout.setVerticalGroup(pnlDetalheVendaLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(pnlDetalheVendaLayout .createSequentialGroup().addContainerGap().addComponent(jScrollPane1).addContainerGap())); jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, orcamentoRegistroList, tblRegistro); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}")); columnBinding.setColumnName("Id"); columnBinding.setColumnClass(Integer.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idCliente.nome}")); columnBinding.setColumnName("Id Cliente"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idFuncionario.nome}")); columnBinding.setColumnName("Id Funcionario"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${dataOrcamento}")); columnBinding.setColumnName("Data Orcamento"); columnBinding.setColumnClass(java.util.Date.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${vlrTotalOrcamento}")); columnBinding.setColumnName("Vlr Total Orcamento"); columnBinding.setColumnClass(Double.class); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane2.setViewportView(tblRegistro); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Produtos")); jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, produtoList, tblProduto); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}")); columnBinding.setColumnName("Cdigo"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${descricao}")); columnBinding.setColumnName("Produto"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idUnidade.descricao}")); columnBinding.setColumnName("Unidade"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idFornecedor.nome}")); columnBinding.setColumnName("Fornecedor"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${numEstoque}")); columnBinding.setColumnName("Estoque"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${vlrVenda}")); columnBinding.setColumnName("Preo"); columnBinding.setColumnClass(Double.class); columnBinding.setEditable(false); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane3.setViewportView(tblProduto); if (tblProduto.getColumnModel().getColumnCount() > 0) { tblProduto.getColumnModel().getColumn(1).setPreferredWidth(200); } lblProduto.setText("Produto:"); txtPesquisar.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { txtPesquisarKeyPressed(evt); } }); btnAdicionar.setText("Adicionar >>"); btnAdicionar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAdicionarActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(lblProduto) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(txtPesquisar) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnAdicionar))) .addContainerGap())); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblProduto) .addComponent(txtPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnAdicionar)) .addContainerGap(14, Short.MAX_VALUE))); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap() .addComponent(pnlBotoesVenda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(pnlRegistroVenda, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 174, Short.MAX_VALUE) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(420, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup().addGap(18, 18, 18).addComponent( pnlDetalheVenda, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(pnlBotoesVenda, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(pnlRegistroVenda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlDetalheVenda, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap())); bindingGroup.bind(); pack(); }// </editor-fold>//GEN-END:initComponents private void btnNovaVendaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovaVendaActionPerformed editando = true; trataEdicao(); orcamentoDetalheList.clear(); orcamentoRegistroList.add((Orcamentoregistro) new Orcamentoregistro()); int row = orcamentoRegistroList.size() - 1; tblRegistro.setRowSelectionInterval(row, row); spnQuantidade.setValue(1); }//GEN-LAST:event_btnNovaVendaActionPerformed private void btnConfirmarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConfirmarActionPerformed try { int row = orcamentoDetalheList.size() - 1; if (row >= 0) { entityManager.getTransaction().begin(); entityManager.getTransaction().commit(); JOptionPane.showMessageDialog(null, "Oramento Realizada com Sucesso"); btnImprimir.setEnabled(true); } else { JOptionPane.showMessageDialog(null, "Insira um produto ao Oramento"); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao Gravar \n" + e.getMessage()); } }//GEN-LAST:event_btnConfirmarActionPerformed private void txtPesquisarKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPesquisarKeyPressed atualizaGridProduto(); }//GEN-LAST:event_txtPesquisarKeyPressed private void btnAdicionarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAdicionarActionPerformed if (validaCampos()) { salvarRegistroOrcamento(); Orcamentodetalhe vd = new Orcamentodetalhe(); OrcamentodetalhePK vdpk = new OrcamentodetalhePK(); int indexRegistro = tblRegistro.getSelectedRow(); // seleciona o registro da jTable vendaRegistro int indexProduto = tblProduto.getSelectedRow(); // seleciona o registro da jTable produto int indexOrcamentoDetalhe = tblDetalhe.getSelectedRow(); vdpk.setIdOrcamentoRegistro(orcamentoRegistroList.get(indexRegistro).getId()); // adiciona ao idVendaRegistro o id da vendaRegistro selecionado na lista de vendaRegistroList vdpk.setIdProduto(produtoList.get(indexProduto).getId()); // adiciona ao idProduto o id do produto selecionado na lista de produtoList vd.setOrcamentodetalhePK(vdpk); // adiciona a vendeDetalhePK os registro de vdpk(idVendaRegistro e idProduto) int quantidade; boolean continuar = true; quantidade = (Integer) spnQuantidade.getValue(); if (quantidade >= 1) { if (quantidade <= produtoList.get(indexProduto).getNumEstoque()) { continuar = false;//caso o valor informado esteja dentro da faixa, o lao termina int linhaClicada = tblProduto.getSelectedRow(); Produto obj = produtoList.get(linhaClicada); // int produtoExtra = quantidade; // int entradaEstoque = produtoList.get(indexProduto).getNumEstoque() - quantidade; // obj.setNumEstoque(entradaEstoque); vd.setQtde(quantidade); vd.setVlrUnitario(produtoList.get(indexProduto).getVlrVenda()); vd.setVlrTotal(quantidade * produtoList.get(indexProduto).getVlrVenda()); valorTotal = valorTotal + vd.getVlrTotal(); txtTotalOrcamento.setText(String.valueOf(valorTotal)); orcamentoDetalheList.add(vd); entityManager.persist(vd); produtoList.clear(); produtoList.addAll(produtoQuery.getResultList()); spnQuantidade.setValue(1); } else if (produtoList.get(indexProduto).getNumEstoque() == 0) { JOptionPane.showMessageDialog(null, "O " + produtoList.get(indexProduto).getDescricao() + " No possui estoque"); spnQuantidade.setValue(1); } else if (quantidade > produtoList.get(indexProduto).getNumEstoque()) { JOptionPane.showMessageDialog(null, "Numero de estoque de " + produtoList.get(indexProduto).getDescricao() + " " + produtoList.get(indexProduto).getNumEstoque()); spnQuantidade.setValue(1); } } else { JOptionPane.showMessageDialog(null, "Smente quantidades positivas"); spnQuantidade.setValue(1); } } // if (validaCampos()) { // salvarRegistroOrcamento(); // chama mtodo para salvar a venda e assim podendo inserir itens ao oramento // // Orcamentodetalhe vd = new Orcamentodetalhe(); // OrcamentodetalhePK vdpk = new OrcamentodetalhePK(); // // int indexRegistro = tblRegistro.getSelectedRow(); // seleciona o registro da jTable vendaRegistro // int indexProduto = tblProduto.getSelectedRow(); // seleciona o registro da jTable produto // vdpk.setIdOrcamentoRegistro(orcamentoRegistroList.get(indexRegistro).getId()); // adiciona ao idVendaRegistro o id da vendaRegistro selecionado na lista de vendaRegistroList // vdpk.setIdProduto(produtoList.get(indexProduto).getId()); // adiciona ao idProduto o id do produto selecionado na lista de produtoList // vd.setOrcamentodetalhePK(vdpk); // adiciona a vendeDetalhePK os registro de vdpk(idVendaRegistro e idProduto) // // // // int quantidade; // boolean continuar = true; // while (continuar) { // quantidade = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantidade?")); // // if (quantidade >= 1) { // if (quantidade <= produtoList.get(indexProduto).getNumEstoque()) { // continuar = false;//caso o valor informado esteja dentro da faixa, o lao termina // vd.setQtde(quantidade); // vd.setVlrUnitario(produtoList.get(indexProduto).getVlrVenda()); // vd.setVlrTotal(quantidade * produtoList.get(indexProduto).getVlrVenda()); // valorTotal = valorTotal + vd.getVlrTotal(); // txtTotalOrcamento.setText(String.valueOf(valorTotal)); // entityManager.getTransaction().begin(); // entityManager.persist(vd); // orcamentoDetalheList.add(vd); // entityManager.getTransaction().commit(); // } else { // JOptionPane.showMessageDialog(null, "Numero de estoque de " + produtoList.get(indexProduto).getDescricao() // + " " + produtoList.get(indexProduto).getNumEstoque()); // } // } else { // JOptionPane.showInputDialog(null, "Quantidade?"); // } // // } // // } }//GEN-LAST:event_btnAdicionarActionPerformed private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed if (Uteis.confirmar("Confirma Excluo?")) { int linhaClicada = tblDetalhe.getSelectedRow(); if (linhaClicada < 0) { JOptionPane.showMessageDialog(null, "Selecione um registro para excluir"); } else { try { Orcamentodetalhe obj = orcamentoDetalheList.get(linhaClicada); valorTotal = valorTotal - obj.getVlrTotal(); orcamentoDetalheList.remove(linhaClicada); txtTotalOrcamento.setText(String.valueOf(valorTotal)); entityManager.getTransaction().begin(); entityManager.remove(obj); entityManager.getTransaction().commit(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao Excluir \n" + e.getMessage()); if (entityManager.getTransaction().isActive() == false) { entityManager.getTransaction().begin(); } entityManager.getTransaction().rollback(); } } } }//GEN-LAST:event_btnExcluirActionPerformed private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImprimirActionPerformed int row = tblRegistro.getSelectedRow(); int id = orcamentoRegistroList.get(row).getId(); sql = "SELECT produto.descricao, orcamentodetalhe.qtde, orcamentodetalhe.vlrUnitario, orcamentodetalhe.vlrTotal from orcamentodetalhe as orcamentodetalhe INNER JOIN produto as produto ON (orcamentodetalhe.idProduto = produto.ID) where idOrcamentoRegistro = " + id; System.out.println(sql); try { relat(sql); } catch (SQLException ex) { Logger.getLogger(MovimentoEntradaView.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(MovimentoEntradaView.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(MovimentoEntradaView.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_btnImprimirActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JToggleButton btnAdicionar; private javax.swing.JButton btnConfirmar; private javax.swing.JButton btnExcluir; private javax.swing.JButton btnImprimir; private javax.swing.JButton btnNovaVenda; private javax.swing.JComboBox cbxCliente; private javax.swing.JComboBox cbxFuncionario; private java.util.List<br.com.tcc.entity.Cliente> clienteList; private javax.persistence.Query clienteQuery; private javax.persistence.EntityManager entityManager; private java.util.List<br.com.tcc.entity.Funcionario> funcionarioList; private javax.persistence.Query funcionarioQuery; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JLabel lblProduto; private java.util.List<br.com.tcc.entity.Orcamentodetalhe> orcamentoDetalheList; private javax.persistence.Query orcamentoDetalheQuery; private java.util.List<br.com.tcc.entity.Orcamentoregistro> orcamentoRegistroList; private javax.persistence.Query orcamentoRegistroQuery; private javax.swing.JPanel pnlBotoesVenda; private javax.swing.JPanel pnlDetalheVenda; private javax.swing.JPanel pnlRegistroVenda; private java.util.List<br.com.tcc.entity.Produto> produtoList; private javax.persistence.Query produtoQuery; private javax.swing.JSpinner spnQuantidade; private javax.swing.JTable tblDetalhe; private javax.swing.JTable tblProduto; private javax.swing.JTable tblRegistro; private java.util.List<br.com.tcc.entity.Tipopagamento> tipoPagamentoList; private javax.persistence.Query tipoPagamentoQuery; private javax.swing.JTextField txtPesquisar; private javax.swing.JTextField txtTotalOrcamento; private javax.swing.JTextField txtVenda; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables private void atualizaGridProduto() { String sql = "from Produto"; String ordem = ""; ordem = "descricao"; String filtro = txtPesquisar.getText(); if (filtro.length() > 0 && filtro != null) { sql += " where upper(" + ordem + ") like '" + filtro.toUpperCase() + "%' "; } sql += " order by " + ordem; System.out.println("SQL Gerado: " + sql); produtoQuery = entityManager.createQuery(sql); produtoList.clear(); produtoList.addAll(produtoQuery.getResultList()); int row = produtoList.size() - 1; if (row >= 0) { tblProduto.setRowSelectionInterval(row, row); tblProduto.scrollRectToVisible(tblProduto.getCellRect(row, row, true)); } } private void salvarRegistroOrcamento() { int linhaClicada = tblRegistro.getSelectedRow(); Orcamentoregistro obj = orcamentoRegistroList.get(linhaClicada); Date data = new Date(System.currentTimeMillis()); obj.setDataOrcamento(data); entityManager.getTransaction().begin(); entityManager.persist(obj); entityManager.getTransaction().commit(); } private void trataEdicao() { // botes e campos de filtro btnAdicionar.setEnabled(editando); btnConfirmar.setEnabled(editando); cbxCliente.setEnabled(editando); cbxFuncionario.setEnabled(editando); tblDetalhe.setEnabled(editando); tblProduto.setEnabled(editando); txtPesquisar.setEnabled(editando); } /** * Mtodo que valida o campos de preenchimento de formulrio * * @return */ private boolean validaCampos() { if (cbxCliente.getSelectedIndex() < 0) { JOptionPane.showMessageDialog(null, "Selecione um Cliente"); cbxCliente.requestFocus(); return false; } if (cbxFuncionario.getSelectedIndex() < 0) { JOptionPane.showMessageDialog(null, "Selecione um Funcionrio"); cbxFuncionario.requestFocus(); return false; } return true; } private void relat(String sql) throws IOException, DocumentException, SQLException { /* Create Connection objects */ Connection con = new ConnectionFactory().getConnection(); Statement stmt = con.createStatement(); int row = tblRegistro.getSelectedRow(); int id = orcamentoRegistroList.get(row).getId(); SimpleDateFormat horaformatada = new SimpleDateFormat("HH:mm:ss"); Date horaAtual = new Date(); hora = horaformatada.format(horaAtual); Date data = new Date(); // mes = ""+Data.getMonth();//0 a 11 dia = "" + data.getDate(); ano = "" + (1900 + data.getYear()); switch (data.getMonth()) { case 0: mes = "Janeiro"; break; case 1: mes = "Fevereiro"; break; case 2: mes = "Maro"; break; case 3: mes = "Abril"; break; case 4: mes = "Maio"; break; case 5: mes = "Junho"; break; case 6: mes = "Julho"; break; case 7: mes = "Agosto"; break; case 8: mes = "Setembro"; break; case 9: mes = "Outubro"; break; case 10: mes = "Novembro"; break; case 11: mes = "Dezembro"; break; } /* Define the SQL query */ // sql = "SELECT cliente.nome, funcionario.nome, tipopagamento.descricao, vendaregistro.dataVenda, vendaregistro.vlrSugerido, vendaregistro.totalVenda, vendaregistro.parcela, vendaregistro.1vencimento, vendaregistro.ativo FROM vendaregistro as vendaregistro INNER JOIN cliente as cliente ON (vendaregistro.idCliente = cliente.id) \n" + //"INNER JOIN funcionario as funcionario ON (vendaregistro.idFuncionario = funcionario.id) INNER JOIN tipopagamento as tipopagamento ON (vendaregistro.idTipoPagamento = tipopagamento.id) WHERE dataVenda = CURRENT_DATE"; ResultSet query = stmt.executeQuery(sql); /* Step-2: Initialize PDF documents - logical objects */ Document PDFLogReport = new Document(); PdfWriter.getInstance(PDFLogReport, new FileOutputStream("C:\\Users\\Leonardo P Souza\\Desktop\\Relat\\Oramento " + id + ".pdf")); PDFLogReport.open(); Paragraph cabecalho = new Paragraph("AGRO EMPRESARIAL - SISTEMA DE GERENCIAMENTO\n" + "RUA GONALVES CHAVES, 602 PELOTAS/RS\n" + "FONE:(53) 3232-3232 BAIRRO: CENTRO\n" + "CNPJ: 12.345.678/1011-12\n" + "-------------------------------------------\n" + dia + "/" + mes + "/" + ano + " " + hora + " COD: " + id + " \n\n"); cabecalho.setAlignment(Element.ALIGN_CENTER); PDFLogReport.add(cabecalho); //we have two columns in our table PdfPTable LogTable = new PdfPTable(4); // Ttulo para a tabela Paragraph tableHeader = new Paragraph("Oramento"); PdfPCell header = new PdfPCell(tableHeader); // Definindo que o header vai ocupar as 2 colunas header.setColspan(4); // Definindo alinhamento do header header.setHorizontalAlignment(Paragraph.ALIGN_CENTER); // Adicionando o header tabela Font fonte = new Font(Font.FontFamily.HELVETICA, 7, Font.BOLD, BaseColor.BLACK); Font fonteDados = new Font(Font.FontFamily.TIMES_ROMAN, 6, Font.NORMAL, BaseColor.BLACK); LogTable.addCell(header); LogTable.addCell(new Paragraph("Produto ", fonte)); LogTable.addCell(new Paragraph("Quantidade", fonte)); LogTable.addCell(new Paragraph("Valor Unitrio", fonte)); LogTable.addCell(new Paragraph("Valor Total", fonte)); //create a cell object // PdfPCell table_cell; while (query.next()) { String produto = query.getString("produto.descricao"); LogTable.addCell(new Paragraph(produto, fonteDados)); String quantidade = query.getString("qtde"); LogTable.addCell(new Paragraph(quantidade, fonteDados)); String vlrSugerido = query.getString("vlrUnitario"); LogTable.addCell(new Paragraph(vlrSugerido, fonteDados)); String vlrTotal = query.getString("vlrTotal"); LogTable.addCell(new Paragraph(vlrTotal, fonteDados)); } /* Attach report table to PDF */ PDFLogReport.add(LogTable); double valor = orcamentoRegistroList.get(row).getVlrTotalOrcamento(); Paragraph paragrafoValor = new Paragraph("Valor R$: " + valor); paragrafoValor.setAlignment(Element.ALIGN_RIGHT); PDFLogReport.add(paragrafoValor); PDFLogReport.close(); /* Close all DB related objects */ query.close(); stmt.close(); con.close(); String file; file = "C:\\Users\\Leonardo P Souza\\Desktop\\Relat\\Oramento " + id + ".pdf"; Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + file); } }