/** * <p>Title: T2Ti ERP</p> * <p>Description: PAF-ECF + TEF - Tela do Caixa.</p> * * <p>The MIT License</p> * * <p>Copyright: Copyright (C) 2010 T2Ti.COM</p> * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * The author may be contacted at: * t2ti.com@gmail.com</p> * * @author Albert Eije (T2Ti.COM) * @version 1.0 */ package com.t2tierp.pafecf.view; import com.t2tierp.pafecf.controller.ConfiguracaoController; import com.t2tierp.pafecf.controller.DAVController; import com.t2tierp.pafecf.controller.MovimentoController; import com.t2tierp.pafecf.controller.PreVendaController; import com.t2tierp.pafecf.controller.ProdutoController; import com.t2tierp.pafecf.controller.VendaController; import com.t2tierp.pafecf.controller.VendedorController; import com.t2tierp.pafecf.infra.Biblioteca; import com.t2tierp.pafecf.infra.Ecf; import com.t2tierp.pafecf.infra.Paf; import jACBr.ACBrECF; import jACBr.EstadoECF; import com.t2tierp.pafecf.vo.ClienteVO; import com.t2tierp.pafecf.vo.ConfiguracaoVO; import com.t2tierp.pafecf.vo.DAVDetalheVO; import com.t2tierp.pafecf.vo.FuncionarioVO; import com.t2tierp.pafecf.vo.MovimentoVO; import com.t2tierp.pafecf.vo.PosicaoComponentesVO; import com.t2tierp.pafecf.vo.PreVendaDetalheVO; import com.t2tierp.pafecf.vo.ProdutoVO; import com.t2tierp.pafecf.vo.SangriaVO; import com.t2tierp.pafecf.vo.SuprimentoVO; import com.t2tierp.pafecf.vo.VendaCabecalhoVO; import com.t2tierp.pafecf.vo.VendaDetalheVO; import java.awt.AWTKeyStroke; import java.awt.CardLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.KeyboardFocusManager; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Random; import javax.swing.AbstractAction; import javax.swing.DefaultListModel; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class Caixa extends javax.swing.JFrame implements MouseListener, EstadoECF { //****************************************************************************// // Variáveis de instância // //****************************************************************************// private static int menuAberto = 0; // 0-não | 1-sim private static int statusCaixa = 0; // 0-aberto | 1-venda em andamento | 2-venda em recuperação ou importação de PV/DAV private static int itemCupom = 0; private static Double subTotal, totalGeral = 0.0; private DefaultListModel modelMenuPrincipal; private DefaultListModel modelMenuOperacoes; private DefaultListModel modelMenuFiscal; private DefaultListModel modelBobina; private DefaultListModel modelSubMenuGerente; private DefaultListModel modelSubMenuSupervisor; public static String MD5; public static ConfiguracaoVO configuracao; public static MovimentoVO movimento; public static ClienteVO cliente; public static VendaCabecalhoVO vendaCabecalho; public static ACBrECF ACBrECF; private VendaController vendaControl; private VendaDetalheVO vendaDetalhe; private ProdutoVO produto; private ArrayList<VendaDetalheVO> listaVendaDetalhe; private NumberFormat formatter = new DecimalFormat("0.00"); private Thread bannerRotativo; //****************************************************************************// // Construtor // //****************************************************************************// @SuppressWarnings("LeakingThisInConstructor") public Caixa() { initComponents(); configuracao = new ConfiguracaoController().pegaConfiguracao(); try { ACBrECF = new ACBrECF(); } catch (Throwable t) { JOptionPane.showMessageDialog(rootPane, t.getMessage(), "Erro do Sistema", JOptionPane.ERROR_MESSAGE); } configuraACBr(); verificaEstadoImpressora(); if (!Paf.ECFAutorizado()) { JOptionPane.showMessageDialog(rootPane, "ECF não autorizado - aplicação será encerrada.", "Aviso do Sistema", JOptionPane.ERROR_MESSAGE); System.exit(0); } MD5 = Paf.geraMD5(); movimento = new MovimentoController().verificaMovimento(); if (movimento != null) { MovimentoAberto ma = new MovimentoAberto(this, true); ma.setLocationRelativeTo(null); ma.setVisible(true); } else { IniciaMovimento im = new IniciaMovimento(this, true); im.setLocationRelativeTo(null); im.setVisible(true); } menuAberto = 0; vendaControl = new VendaController(); labelImagemTela.setIcon(new javax.swing.ImageIcon(getClass().getResource(configuracao.getCaminhoImagensLayout() + configuracao.getResolucaoVO().getImagemTela()))); modelBobina = new DefaultListModel(); bobina.setModel(modelBobina); setResolucao(this); telaPadrao(); labelTitulo.setText(configuracao.getTituloTelaCaixa()); definirMenuPrincipal(); definirMenuOperacoes(); definirMenuFiscal(); definirSubMenuGerente(); definirSubMenuSupervisor(); panelF1.addMouseListener(this); panelF2.addMouseListener(this); panelF3.addMouseListener(this); panelF4.addMouseListener(this); panelF5.addMouseListener(this); panelF6.addMouseListener(this); panelF7.addMouseListener(this); panelF8.addMouseListener(this); panelF9.addMouseListener(this); panelF10.addMouseListener(this); panelF11.addMouseListener(this); panelF12.addMouseListener(this); F1Action f1Action = new F1Action(); panelF1.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "F1Action"); panelF1.getActionMap().put("F1Action", f1Action); F2Action f2Action = new F2Action(); panelF2.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "F2Action"); panelF2.getActionMap().put("F2Action", f2Action); F3Action f3Action = new F3Action(); panelF3.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), "F3Action"); panelF3.getActionMap().put("F3Action", f3Action); F4Action f4Action = new F4Action(); panelF4.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), "F4Action"); panelF4.getActionMap().put("F4Action", f4Action); F5Action f5Action = new F5Action(); panelF5.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), "F5Action"); panelF5.getActionMap().put("F5Action", f5Action); F6Action f6Action = new F6Action(); panelF6.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "F6Action"); panelF6.getActionMap().put("F6Action", f6Action); F7Action f7Action = new F7Action(); panelF7.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0), "F7Action"); panelF7.getActionMap().put("F7Action", f7Action); F8Action f8Action = new F8Action(); panelF8.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0), "F8Action"); panelF8.getActionMap().put("F8Action", f8Action); F9Action f9Action = new F9Action(); panelF9.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0), "F9Action"); panelF9.getActionMap().put("F9Action", f9Action); F10Action f10Action = new F10Action(); panelF10.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F10, 0), "F10Action"); panelF10.getActionMap().put("F10Action", f10Action); F11Action f11Action = new F11Action(); panelF11.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0), "F11Action"); panelF11.getActionMap().put("F11Action", f11Action); F12Action f12Action = new F12Action(); panelF12.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F12, 0), "F12Action"); panelF12.getActionMap().put("F12Action", f12Action); ESCAction escAction = new ESCAction(); containerPrincipal.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "ESCAction"); containerPrincipal.getActionMap().put("ESCAction", escAction); EnterAction enterAction = new EnterAction(); containerPrincipal.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "EnterAction"); containerPrincipal.getActionMap().put("EnterAction", enterAction); SetaAcimaAction setaAcimaAction = new SetaAcimaAction(); containerPrincipal.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0, true), "SetaAcimaAction"); containerPrincipal.getActionMap().put("SetaAcimaAction", setaAcimaAction); SetaAbaixoAction setaAbaixoAction = new SetaAbaixoAction(); containerPrincipal.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0, true), "SetaAbaixoAction"); containerPrincipal.getActionMap().put("SetaAbaixoAction", setaAbaixoAction); if (movimento != null) { labelCaixa.setText("Terminal: " + movimento.getNomeCaixa()); labelOperador.setText("Operador: " + movimento.getLoginOperador()); } else { labelCaixa.setText(""); labelOperador.setText(""); } verificaVendaAberta(); //troca TAB por ENTER para os edits de código e quantidade HashSet conj = new HashSet(this.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0)); editCodigo.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj); editQuantidade.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj); this.setPreferredSize(new Dimension(configuracao.getResolucaoVO().getLargura(), configuracao.getResolucaoVO().getAltura())); containerPrincipal.setPreferredSize(new Dimension(configuracao.getResolucaoVO().getLargura(), configuracao.getResolucaoVO().getAltura())); labelImagemTela.setBounds(0, 0, configuracao.getResolucaoVO().getLargura(), configuracao.getResolucaoVO().getAltura()); this.pack(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; containerPrincipal = new javax.swing.JLayeredPane(); labelTitulo = new javax.swing.JLabel(); labelOperador = new javax.swing.JLabel(); labelCaixa = new javax.swing.JLabel(); panelBotoes = new javax.swing.JPanel(); panelF1 = new javax.swing.JPanel(); labelF1 = new javax.swing.JLabel(); panelF2 = new javax.swing.JPanel(); labelF2 = new javax.swing.JLabel(); panelF3 = new javax.swing.JPanel(); labelF3 = new javax.swing.JLabel(); panelF4 = new javax.swing.JPanel(); labelF4 = new javax.swing.JLabel(); panelF5 = new javax.swing.JPanel(); labelF5 = new javax.swing.JLabel(); panelF6 = new javax.swing.JPanel(); labelF6 = new javax.swing.JLabel(); panelF7 = new javax.swing.JPanel(); labelF7 = new javax.swing.JLabel(); panelF8 = new javax.swing.JPanel(); labelF8 = new javax.swing.JLabel(); panelF9 = new javax.swing.JPanel(); labelF9 = new javax.swing.JLabel(); panelF10 = new javax.swing.JPanel(); labelF10 = new javax.swing.JLabel(); panelF11 = new javax.swing.JPanel(); labelF11 = new javax.swing.JLabel(); panelF12 = new javax.swing.JPanel(); labelF12 = new javax.swing.JLabel(); panelSubMenu = new javax.swing.JPanel(); panelCard = new javax.swing.JPanel(); panelSubMenuGerente = new javax.swing.JScrollPane(); listaSubMenuGerente = new javax.swing.JList(); panelSubMenuSupervisor = new javax.swing.JScrollPane(); listaSubMenuSupervisor = new javax.swing.JList(); jLabel10 = new javax.swing.JLabel(); panelMenuPrincipal = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); listaMenuPrincipal = new javax.swing.JList(); jLabel2 = new javax.swing.JLabel(); panelMenuOperacoes = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel(); jScrollPane4 = new javax.swing.JScrollPane(); listaMenuOperacoes = new javax.swing.JList(); jLabel5 = new javax.swing.JLabel(); panelMenuFiscal = new javax.swing.JPanel(); jLabel6 = new javax.swing.JLabel(); jScrollPane5 = new javax.swing.JScrollPane(); listaMenuFiscal = new javax.swing.JList(); jLabel7 = new javax.swing.JLabel(); panelBobina = new javax.swing.JScrollPane(); bobina = new javax.swing.JList(); editUnitario = new javax.swing.JFormattedTextField(); editCodigo = new javax.swing.JFormattedTextField(); editQuantidade = new javax.swing.JFormattedTextField(); editSubTotal = new javax.swing.JFormattedTextField(); editTotalItem = new javax.swing.JFormattedTextField(); labelImagemProduto = new javax.swing.JLabel(); labelDescricaoProduto = new javax.swing.JLabel(); labelTotalGeral = new javax.swing.JLabel(); labelMensagens = new javax.swing.JLabel(); labelImagemTela = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); setMinimumSize(new java.awt.Dimension(800, 600)); setResizable(false); setUndecorated(true); getContentPane().setLayout(new java.awt.GridLayout(1, 0)); containerPrincipal.setPreferredSize(new java.awt.Dimension(1024, 738)); labelTitulo.setFont(new java.awt.Font("Verdana", 1, 14)); labelTitulo.setForeground(new java.awt.Color(255, 255, 255)); labelTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelTitulo.setText("T2Ti PDV - T2Ti Tecnologia da Informação LTDA. - (61) 3042.5277"); labelTitulo.setFocusable(false); labelTitulo.setName("labelTitulo"); // NOI18N labelTitulo.setRequestFocusEnabled(false); labelTitulo.setBounds(300, 10, 710, 20); containerPrincipal.add(labelTitulo, javax.swing.JLayeredPane.DEFAULT_LAYER); labelOperador.setFont(new java.awt.Font("Tahoma", 1, 11)); labelOperador.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); labelOperador.setText("jLabel1"); labelOperador.setBounds(754, 60, 230, 14); containerPrincipal.add(labelOperador, javax.swing.JLayeredPane.DEFAULT_LAYER); labelCaixa.setFont(new java.awt.Font("Tahoma", 1, 11)); labelCaixa.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); labelCaixa.setText("jLabel8"); labelCaixa.setBounds(754, 80, 230, 14); containerPrincipal.add(labelCaixa, javax.swing.JLayeredPane.DEFAULT_LAYER); panelBotoes.setBackground(new Color(255,255,255,0)); panelBotoes.setMinimumSize(new java.awt.Dimension(950, 56)); panelBotoes.setName("panelBotoes"); // NOI18N panelBotoes.setPreferredSize(new java.awt.Dimension(950, 56)); panelBotoes.setLayout(new java.awt.GridBagLayout()); panelF1.setBackground(new Color(255,255,255,0)); panelF1.setToolTipText(""); panelF1.setName("panelF1"); // NOI18N panelF1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoCliente.png"))); // NOI18N labelF1.setText("F1 - Identifica Cliente"); labelF1.setName("labelF1"); // NOI18N panelF1.add(labelF1); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF1, gridBagConstraints); panelF2.setBackground(new Color(255,255,255,0)); panelF2.setName("panelF2"); // NOI18N panelF2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoMenuPrincipal.png"))); // NOI18N labelF2.setText("F2 - Menu Principal"); labelF2.setName("labelF2"); // NOI18N panelF2.add(labelF2); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF2, gridBagConstraints); panelF3.setBackground(new Color(255,255,255,0)); panelF3.setName("panelF3"); // NOI18N panelF3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoMenuOperacoes.png"))); // NOI18N labelF3.setText("F3 - Menu Operações"); labelF3.setName("labelF3"); // NOI18N panelF3.add(labelF3); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF3, gridBagConstraints); panelF4.setBackground(new Color(255,255,255,0)); panelF4.setName("panelF4"); // NOI18N panelF4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoMenuFiscal.png"))); // NOI18N labelF4.setText("F4 - Menu Fiscal"); labelF4.setName("labelF4"); // NOI18N panelF4.add(labelF4); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF4, gridBagConstraints); panelF5.setBackground(new Color(255,255,255,0)); panelF5.setName("panelF5"); // NOI18N panelF5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoCalculadora.png"))); // NOI18N labelF5.setText("F5 - Calculadora"); labelF5.setName("labelF5"); // NOI18N panelF5.add(labelF5); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF5, gridBagConstraints); panelF6.setBackground(new Color(255,255,255,0)); panelF6.setName("panelF6"); // NOI18N panelF6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoPesquisa.png"))); // NOI18N labelF6.setText("F6 - Pesquisa Produto"); labelF6.setName("labelF6"); // NOI18N panelF6.add(labelF6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF6, gridBagConstraints); panelF7.setBackground(new Color(255,255,255,0)); panelF7.setName("panelF7"); // NOI18N panelF7.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoEncerraVenda.png"))); // NOI18N labelF7.setText("F7 - Encerra Venda"); labelF7.setName("labelF7"); // NOI18N panelF7.add(labelF7); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF7, gridBagConstraints); panelF8.setBackground(new Color(255,255,255,0)); panelF8.setName("panelF8"); // NOI18N panelF8.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoCancelaItem.png"))); // NOI18N labelF8.setText("F8 - Cancela Item"); labelF8.setName("labelF8"); // NOI18N panelF8.add(labelF8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF8, gridBagConstraints); panelF9.setBackground(new Color(255,255,255,0)); panelF9.setName("panelF9"); // NOI18N panelF9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoCancelaCupom.png"))); // NOI18N labelF9.setText("F9 - Cancela Cupom"); labelF9.setName("labelF9"); // NOI18N panelF9.add(labelF9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF9, gridBagConstraints); panelF10.setBackground(new Color(255,255,255,0)); panelF10.setName("panelF10"); // NOI18N panelF10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoDesconto.png"))); // NOI18N labelF10.setText("F10 - Concede Desconto"); labelF10.setName("labelF10"); // NOI18N panelF10.add(labelF10); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF10, gridBagConstraints); panelF11.setBackground(new Color(255,255,255,0)); panelF11.setName("panelF11"); // NOI18N panelF11.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoGaveta.png"))); // NOI18N labelF11.setText("F11 - Identifica Vendedor"); labelF11.setName("labelF11"); // NOI18N panelF11.add(labelF11); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF11, gridBagConstraints); panelF12.setBackground(new Color(255,255,255,0)); panelF12.setName("panelF12"); // NOI18N panelF12.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); labelF12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/imgBotoes/21botaoSair.png"))); // NOI18N labelF12.setText("F12 - Sai do Caixa"); labelF12.setName("labelF12"); // NOI18N panelF12.add(labelF12); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; panelBotoes.add(panelF12, gridBagConstraints); panelBotoes.setBounds(38, 705, 950, 56); containerPrincipal.add(panelBotoes, javax.swing.JLayeredPane.DEFAULT_LAYER); panelSubMenu.setBackground(new Color(255,255,255,0)); panelSubMenu.setName("panelSubMenu"); // NOI18N panelSubMenu.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); panelCard.setLayout(new java.awt.CardLayout()); panelSubMenuGerente.setBorder(null); panelSubMenuGerente.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); listaSubMenuGerente.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); panelSubMenuGerente.setViewportView(listaSubMenuGerente); panelCard.add(panelSubMenuGerente, "cardGerente"); panelSubMenuSupervisor.setBorder(null); panelSubMenuSupervisor.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); listaSubMenuSupervisor.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); panelSubMenuSupervisor.setViewportView(listaSubMenuSupervisor); panelCard.add(panelSubMenuSupervisor, "cardSupervisor"); panelSubMenu.add(panelCard, new org.netbeans.lib.awtextra.AbsoluteConstraints(8, 22, 450, 180)); jLabel10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/layout/SubMenu.png"))); // NOI18N panelSubMenu.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1)); panelSubMenu.setBounds(10, 280, 467, 212); containerPrincipal.add(panelSubMenu, javax.swing.JLayeredPane.DEFAULT_LAYER); panelMenuPrincipal.setBackground(new Color(255,255,255,0)); panelMenuPrincipal.setName("panelMenuPrincipal"); // NOI18N panelMenuPrincipal.setPreferredSize(new java.awt.Dimension(213, 200)); panelMenuPrincipal.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel3.setFont(new java.awt.Font("Tahoma", 1, 16)); jLabel3.setForeground(new java.awt.Color(255, 255, 255)); jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel3.setText("Menu Principal"); panelMenuPrincipal.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 8, 190, -1)); jScrollPane2.setBorder(null); jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); listaMenuPrincipal.setFont(new java.awt.Font("Tahoma", 1, 12)); listaMenuPrincipal.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); listaMenuPrincipal.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); listaMenuPrincipal.setAutoscrolls(false); jScrollPane2.setViewportView(listaMenuPrincipal); panelMenuPrincipal.add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(7, 35, 200, 160)); jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/layout/Menu.png"))); // NOI18N panelMenuPrincipal.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1)); panelMenuPrincipal.setBounds(685, 40, 213, 200); containerPrincipal.add(panelMenuPrincipal, javax.swing.JLayeredPane.DEFAULT_LAYER); panelMenuOperacoes.setBackground(new Color(255,255,255,0)); panelMenuOperacoes.setName("panelMenuOperacoes"); // NOI18N panelMenuOperacoes.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel4.setFont(new java.awt.Font("Tahoma", 1, 16)); jLabel4.setForeground(new java.awt.Color(255, 255, 255)); jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel4.setText("Menu Operações"); panelMenuOperacoes.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 8, 190, -1)); jScrollPane4.setBorder(null); jScrollPane4.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); listaMenuOperacoes.setFont(new java.awt.Font("Tahoma", 1, 12)); listaMenuOperacoes.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); listaMenuOperacoes.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); listaMenuOperacoes.setAutoscrolls(false); jScrollPane4.setViewportView(listaMenuOperacoes); panelMenuOperacoes.add(jScrollPane4, new org.netbeans.lib.awtextra.AbsoluteConstraints(7, 35, 200, 160)); jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/layout/Menu.png"))); // NOI18N panelMenuOperacoes.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1)); panelMenuOperacoes.setBounds(715, 40, 213, 200); containerPrincipal.add(panelMenuOperacoes, javax.swing.JLayeredPane.DEFAULT_LAYER); panelMenuFiscal.setBackground(new Color(255,255,255,0)); panelMenuFiscal.setName("panelMenuFiscal"); // NOI18N panelMenuFiscal.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel6.setFont(new java.awt.Font("Tahoma", 1, 16)); jLabel6.setForeground(new java.awt.Color(255, 255, 255)); jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel6.setText("Menu Fiscal"); panelMenuFiscal.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 8, 190, -1)); jScrollPane5.setBorder(null); jScrollPane5.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); listaMenuFiscal.setFont(new java.awt.Font("Tahoma", 1, 12)); listaMenuFiscal.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); listaMenuFiscal.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); listaMenuFiscal.setAutoscrolls(false); listaMenuFiscal.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jScrollPane5.setViewportView(listaMenuFiscal); panelMenuFiscal.add(jScrollPane5, new org.netbeans.lib.awtextra.AbsoluteConstraints(7, 35, 200, 160)); jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/layout/Menu.png"))); // NOI18N panelMenuFiscal.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1)); panelMenuFiscal.setBounds(745, 40, 213, 200); containerPrincipal.add(panelMenuFiscal, javax.swing.JLayeredPane.DEFAULT_LAYER); panelBobina.setBorder(null); panelBobina.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); panelBobina.setName("panelBobina"); // NOI18N bobina.setBackground(new java.awt.Color(255, 253, 228)); bobina.setFont(new java.awt.Font("Courier New", 1, 14)); bobina.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); bobina.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); bobina.setFocusable(false); bobina.setName("Bobina"); // NOI18N panelBobina.setViewportView(bobina); panelBobina.setBounds(40, 240, 405, 360); containerPrincipal.add(panelBobina, javax.swing.JLayeredPane.DEFAULT_LAYER); editUnitario.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); editUnitario.setBorder(null); editUnitario.setEditable(false); editUnitario.setHorizontalAlignment(javax.swing.JTextField.RIGHT); editUnitario.setText("0,00"); editUnitario.setFocusable(false); editUnitario.setFont(new java.awt.Font("Verdana", 1, 18)); editUnitario.setName("editUnitario"); // NOI18N editUnitario.setBounds(490, 462, 200, 30); containerPrincipal.add(editUnitario, javax.swing.JLayeredPane.DEFAULT_LAYER); editCodigo.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); editCodigo.setBorder(null); editCodigo.setHorizontalAlignment(javax.swing.JTextField.RIGHT); editCodigo.setText("0"); editCodigo.setFont(new java.awt.Font("Verdana", 1, 18)); editCodigo.setName("editCodigo"); // NOI18N editCodigo.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { editCodigoFocusLost(evt); } }); editCodigo.setBounds(490, 262, 200, 30); containerPrincipal.add(editCodigo, javax.swing.JLayeredPane.DEFAULT_LAYER); editQuantidade.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); editQuantidade.setBorder(null); editQuantidade.setHorizontalAlignment(javax.swing.JTextField.RIGHT); editQuantidade.setText("0"); editQuantidade.setFont(new java.awt.Font("Verdana", 1, 18)); editQuantidade.setName("editQuantidade"); // NOI18N editQuantidade.setBounds(490, 362, 200, 30); containerPrincipal.add(editQuantidade, javax.swing.JLayeredPane.DEFAULT_LAYER); editSubTotal.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); editSubTotal.setBorder(null); editSubTotal.setEditable(false); editSubTotal.setHorizontalAlignment(javax.swing.JTextField.RIGHT); editSubTotal.setText("0,00"); editSubTotal.setFocusable(false); editSubTotal.setFont(new java.awt.Font("Verdana", 1, 18)); editSubTotal.setName("editSubTotal"); // NOI18N editSubTotal.setBounds(730, 562, 250, 30); containerPrincipal.add(editSubTotal, javax.swing.JLayeredPane.DEFAULT_LAYER); editTotalItem.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); editTotalItem.setBorder(null); editTotalItem.setEditable(false); editTotalItem.setHorizontalAlignment(javax.swing.JTextField.RIGHT); editTotalItem.setText("0,00"); editTotalItem.setFocusable(false); editTotalItem.setFont(new java.awt.Font("Verdana", 1, 18)); editTotalItem.setName("editTotalItem"); // NOI18N editTotalItem.setBounds(490, 562, 200, 30); containerPrincipal.add(editTotalItem, javax.swing.JLayeredPane.DEFAULT_LAYER); labelImagemProduto.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelImagemProduto.setFocusable(false); labelImagemProduto.setName("imageProduto"); // NOI18N labelImagemProduto.setBounds(730, 250, 250, 250); containerPrincipal.add(labelImagemProduto, javax.swing.JLayeredPane.DEFAULT_LAYER); labelDescricaoProduto.setFont(new java.awt.Font("Verdana", 1, 48)); labelDescricaoProduto.setForeground(new java.awt.Color(255, 255, 255)); labelDescricaoProduto.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelDescricaoProduto.setText("Produto para venda"); labelDescricaoProduto.setName("labelDescricaoProduto"); // NOI18N labelDescricaoProduto.setBounds(40, 110, 945, 83); containerPrincipal.add(labelDescricaoProduto, javax.swing.JLayeredPane.DEFAULT_LAYER); labelTotalGeral.setFont(new java.awt.Font("Verdana", 1, 27)); labelTotalGeral.setForeground(new java.awt.Color(255, 255, 255)); labelTotalGeral.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); labelTotalGeral.setText("2.785.565,44"); labelTotalGeral.setFocusable(false); labelTotalGeral.setName("labelTotalGeral"); // NOI18N labelTotalGeral.setBounds(40, 652, 400, 40); containerPrincipal.add(labelTotalGeral, javax.swing.JLayeredPane.DEFAULT_LAYER); labelMensagens.setFont(new java.awt.Font("Verdana", 1, 18)); labelMensagens.setForeground(new java.awt.Color(255, 255, 0)); labelMensagens.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelMensagens.setText("<html>Mensagem grande mensagem grande mensagem grande mensagem grande</html>"); labelMensagens.setFocusable(false); labelMensagens.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); labelMensagens.setName("labelMensagens"); // NOI18N labelMensagens.setPreferredSize(new java.awt.Dimension(772, 20)); labelMensagens.setBounds(485, 650, 500, 45); containerPrincipal.add(labelMensagens, javax.swing.JLayeredPane.DEFAULT_LAYER); labelImagemTela.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/layout/Tela1024x768.jpg"))); // NOI18N labelImagemTela.setFocusable(false); labelImagemTela.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); labelImagemTela.setName("labelImagemTela"); // NOI18N labelImagemTela.setRequestFocusEnabled(false); labelImagemTela.setBounds(0, 0, 1024, 768); containerPrincipal.add(labelImagemTela, javax.swing.JLayeredPane.DEFAULT_LAYER); getContentPane().add(containerPrincipal); pack(); }// </editor-fold>//GEN-END:initComponents private void editCodigoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_editCodigoFocusLost editCodigoProdutoPerdeFoco(); }//GEN-LAST:event_editCodigoFocusLost // ***************************************************************************// // Metodos principais e de infra // // ***************************************************************************// public static void main(String args[]) { //seta o look and feel para o do SO try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Caixa c = new Caixa(); c.setVisible(true); } }); } private void sair() { if (statusCaixa == 0) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja sair do sistema?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { System.exit(0); } } else { JOptionPane.showMessageDialog(rootPane, "Existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.ERROR_MESSAGE); } } private void configuraACBr() { try { ACBrECF.setPorta(configuracao.getPortaECF()); ACBrECF.setTimeOut(configuracao.getTimeOutECF()); ACBrECF.setIntervaloAposComando(configuracao.getIntervaloECF()); ACBrECF.setModelo(Integer.valueOf(configuracao.getImpressoraVO().getModeloACBr())); ACBrECF.ativar(); ACBrECF.carregaAliquotas(); ACBrECF.carregaFormasPagamento(); } catch (Throwable t) { JOptionPane.showMessageDialog(rootPane, t.getMessage(), "Erro do Sistema", JOptionPane.ERROR_MESSAGE); } } private void verificaEstadoImpressora() { try { Integer estado = ACBrECF.getEstado(); if (estado == NAO_INICIALIZADA || estado == DESCONHECIDO) { JOptionPane.showMessageDialog(rootPane, "Problemas com a porta serial - aplicação será encerrada.", "Aviso do Sistema", JOptionPane.ERROR_MESSAGE); System.exit(0); } if (estado == VENDA || estado == PAGAMENTO) { JOptionPane.showMessageDialog(rootPane, "Existe uma venda em andamento. Cupom fiscal será cancelado.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); // TODO : Podemos cancelar um cupom aqui? Ecf.cancelaCupom(); } if (estado == REQUER_X) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "É necessário emitir uma Leitura X. Deseja fazer isso agora?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Ecf.leituraX(); } } if (estado == REQUER_Z) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "É necessário emitir uma Redução Z. Deseja fazer isso agora?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Ecf.reducaoZ(); } } } catch (Throwable t) { JOptionPane.showMessageDialog(rootPane, t.getMessage(), "Erro do Sistema", JOptionPane.ERROR_MESSAGE); } } private void setResolucao(Container container) { String nomeFonte = ""; int estiloFonte = 0; // ConfiguracaoController configuracaoControl = new ConfiguracaoController(); List<PosicaoComponentesVO> listaPosicoes = new ArrayList<PosicaoComponentesVO>(); PosicaoComponentesVO posicaoComponente = new PosicaoComponentesVO(); listaPosicoes = configuracaoControl.verificaPosicaoTamanho(); String nomeComponente = ""; for (Component componente : container.getComponents()) { nomeComponente = componente.getName(); if (nomeComponente != null) { for (int i = 0; i < listaPosicoes.size(); i++) { posicaoComponente = listaPosicoes.get(i); if (posicaoComponente.getNomeComponente().equals(nomeComponente)) { ((JComponent) componente).setBounds(posicaoComponente.getEsquerda(), posicaoComponente.getTopo(), posicaoComponente.getLargura(), posicaoComponente.getAltura()); if (posicaoComponente.getTamanhoFonte() > 0) { nomeFonte = ((JComponent) componente).getFont().getName(); estiloFonte = ((JComponent) componente).getFont().getStyle(); ((JComponent) componente).setFont(new Font(nomeFonte, estiloFonte, posicaoComponente.getTamanhoFonte())); } if (componente instanceof JLabel) { ((JLabel) componente).setText(posicaoComponente.getTextoComponente()); } break; } } } setResolucao((Container) componente); } } private void verificaVendaAberta() { listaVendaDetalhe = (ArrayList) vendaControl.vendaAberta(); if (listaVendaDetalhe != null) { if (listaVendaDetalhe.get(0).getIdentificacaoCliente() != null) { Ecf.abreCupom(listaVendaDetalhe.get(0).getIdentificacaoCliente()); } else { Ecf.abreCupom(""); } imprimeCabecalhoBobina(); parametrosIniciaisVenda(); statusCaixa = 2; vendaCabecalho = new VendaCabecalhoVO(); vendaCabecalho.setAcrescimo(0.0); vendaCabecalho.setDesconto(0.0); vendaCabecalho.setIdMovimento(movimento.getId()); vendaCabecalho.setId(listaVendaDetalhe.get(0).getIdVendaCabecalho()); labelMensagens.setText("Venda recuperada em andamento..."); for (int i = 0; i < listaVendaDetalhe.size(); i++) { vendaDetalhe = listaVendaDetalhe.get(i); consultaProduto(vendaDetalhe.getGTIN()); compoeItemParaVenda(); imprimeItemBobina(); subTotal = subTotal + vendaDetalhe.getValorTotal(); totalGeral = totalGeral + vendaDetalhe.getValorTotal(); atualizaTotais(); Ecf.vendeItem(vendaDetalhe); } editCodigo.requestFocus(); statusCaixa = 1; } } private void telaPadrao() { if (movimento == null) { labelMensagens.setText("CAIXA FECHADO"); } else { if (movimento.getStatusMovimento().equals("T")) { labelMensagens.setText("SAIDA TEMPORÁRIA"); } else { labelMensagens.setText("CAIXA ABERTO"); } } if (statusCaixa == 1) { labelMensagens.setText("Venda em andamento..."); } editQuantidade.setText("1"); editCodigo.setText(""); editUnitario.setText("0.00"); editTotalItem.setText("0.00"); editSubTotal.setText("0.00"); labelTotalGeral.setText("0.00"); labelDescricaoProduto.setText(""); modelBobina.clear(); if (configuracao.getMarketingAtivo().equals("S")) { Banner b = new Banner(); bannerRotativo = new Thread(b); bannerRotativo.start(); } else { setarImagem("padrao.png"); } panelMenuPrincipal.setVisible(false); panelMenuOperacoes.setVisible(false); panelMenuFiscal.setVisible(false); panelSubMenu.setVisible(false); } private void setarImagem(String nome) { try { labelImagemProduto.setIcon(new javax.swing.ImageIcon(getClass().getResource(configuracao.getCaminhoImagensProdutos() + nome))); } catch (Exception e) { labelImagemProduto.setIcon(new javax.swing.ImageIcon(getClass().getResource(configuracao.getCaminhoImagensProdutos() + "padrao.png"))); } } // ***************************************************************************// // Métodos para definição e acionamento dos menus e submenus // // ***************************************************************************// private void definirMenuPrincipal() { modelMenuPrincipal = new DefaultListModel(); listaMenuPrincipal.setModel(modelMenuPrincipal); modelMenuPrincipal.addElement("Supervisor"); modelMenuPrincipal.addElement("Gerente"); modelMenuPrincipal.addElement("Saída Temporária"); } private void definirMenuOperacoes() { modelMenuOperacoes = new DefaultListModel(); listaMenuOperacoes.setModel(modelMenuOperacoes); modelMenuOperacoes.addElement("Carrega Pré-Venda"); modelMenuOperacoes.addElement("Mescla Pré-Venda"); modelMenuOperacoes.addElement("Carrega DAV (Orçamento)"); modelMenuOperacoes.addElement("Mescla DAV"); } private void definirMenuFiscal() { modelMenuFiscal = new DefaultListModel(); listaMenuFiscal.setModel(modelMenuFiscal); modelMenuFiscal.addElement("LX - Leitura X"); modelMenuFiscal.addElement("<html><center>LMFC - Leitura Memória <br>Fiscal Completa</center></html>"); modelMenuFiscal.addElement("<html><center>LMFS - Leitura Memória <br>Fiscal Simplificada LMFS</center></html>"); modelMenuFiscal.addElement("Espelho MFD"); modelMenuFiscal.addElement("Arquivo MFD"); modelMenuFiscal.addElement("Tabela de Produtos"); modelMenuFiscal.addElement("Estoque"); modelMenuFiscal.addElement("Movimento por ECF"); modelMenuFiscal.addElement("Meios de Pagamento"); modelMenuFiscal.addElement("DAV Emitidos"); modelMenuFiscal.addElement("Identificação do PAF-ECF"); modelMenuFiscal.addElement("Vendas do Período"); modelMenuFiscal.addElement("<html><center>Tabela Índice Técnicos <br>de Produção</center></html>"); } private void definirSubMenuGerente() { modelSubMenuGerente = new DefaultListModel(); listaSubMenuGerente.setModel(modelSubMenuGerente); modelSubMenuGerente.addElement("Iniciar Movimento"); modelSubMenuGerente.addElement("Encerrar Movimento"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Suprimento"); modelSubMenuGerente.addElement("Sangria"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Acréscimo em Dinheiro no Cupom"); modelSubMenuGerente.addElement("Acréscimo Percentual no Cupom"); modelSubMenuGerente.addElement("Desconto em Dinheiro no Cupom"); modelSubMenuGerente.addElement("Desconto Percentual no Cupom"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Redução Z"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Consultar Cliente"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Configurações Caixa"); modelSubMenuGerente.addElement(" "); modelSubMenuGerente.addElement("Importar Tabelas com Dispositivo (pen-drive)"); modelSubMenuGerente.addElement("Exportar Tabelas com Dispositivo (pen-drive)"); } private void definirSubMenuSupervisor() { modelSubMenuSupervisor = new DefaultListModel(); listaSubMenuSupervisor.setModel(modelSubMenuSupervisor); modelSubMenuSupervisor.addElement("Iniciar Movimento"); modelSubMenuSupervisor.addElement("Encerrar Movimento"); modelSubMenuSupervisor.addElement(" "); modelSubMenuSupervisor.addElement("Suprimento"); modelSubMenuSupervisor.addElement("Sangria"); modelSubMenuSupervisor.addElement(" "); modelSubMenuSupervisor.addElement("Acréscimo em Dinheiro no Cupom"); modelSubMenuSupervisor.addElement("Acréscimo Percentual no Cupom"); modelSubMenuSupervisor.addElement("Desconto em Dinheiro no Cupom"); modelSubMenuSupervisor.addElement("Desconto Percentual no Cupom"); modelSubMenuSupervisor.addElement(" "); modelSubMenuSupervisor.addElement("Redução Z"); } private void acionaMenuPrincipal() { if (menuAberto == 0) { panelMenuPrincipal.setVisible(true); listaMenuPrincipal.requestFocus(); listaMenuPrincipal.setSelectedIndex(0); menuAberto = 1; } } private void acionaMenuOperacoes() { if (menuAberto == 0) { panelMenuOperacoes.setVisible(true); listaMenuOperacoes.requestFocus(); listaMenuOperacoes.setSelectedIndex(0); menuAberto = 1; } } private void acionaMenuFiscal() { if (menuAberto == 0) { panelMenuFiscal.setVisible(true); listaMenuFiscal.requestFocus(); listaMenuFiscal.setSelectedIndex(0); menuAberto = 1; } } private void fechaMenuOperacoes() { panelMenuOperacoes.setVisible(false); labelMensagens.setText(""); menuAberto = 0; } // ***************************************************************************// // Actions vinculadas ao pressionamento de teclas // // ***************************************************************************// private class F1Action extends AbstractAction { public F1Action() { } public void actionPerformed(ActionEvent e) { identificaCliente(); } } private class F2Action extends AbstractAction { public F2Action() { } public void actionPerformed(ActionEvent e) { acionaMenuPrincipal(); } } private class F3Action extends AbstractAction { public F3Action() { } public void actionPerformed(ActionEvent e) { acionaMenuOperacoes(); } } private class F4Action extends AbstractAction { public F4Action() { } public void actionPerformed(ActionEvent e) { acionaMenuFiscal(); } } private class F5Action extends AbstractAction { public F5Action() { } public void actionPerformed(ActionEvent e) { //TODO : Devemos fazer uma calculadora própria? try { Runtime.getRuntime().exec("calc.exe"); } catch (Exception ex) { } } } private class F6Action extends AbstractAction { public F6Action() { } public void actionPerformed(ActionEvent e) { localizaProduto(); } } private class F7Action extends AbstractAction { public F7Action() { } public void actionPerformed(ActionEvent e) { iniciaEncerramentoVenda(); } } private class F8Action extends AbstractAction { public F8Action() { } public void actionPerformed(ActionEvent e) { cancelaItem(); } } private class F9Action extends AbstractAction { public F9Action() { } public void actionPerformed(ActionEvent e) { cancelaCupom(); } } private class F10Action extends AbstractAction { public F10Action() { } public void actionPerformed(ActionEvent e) { descontoValor(); } } private class F11Action extends AbstractAction { public F11Action() { } public void actionPerformed(ActionEvent e) { identificaVendedor(); } } private class F12Action extends AbstractAction { public F12Action() { } public void actionPerformed(ActionEvent e) { sair(); } } private class ESCAction extends AbstractAction { public ESCAction() { } public void actionPerformed(ActionEvent e) { teclouESC(); } } private class EnterAction extends AbstractAction { public EnterAction() { } public void actionPerformed(ActionEvent e) { teclouEnter(); } } private class SetaAcimaAction extends AbstractAction { public SetaAcimaAction() { } public void actionPerformed(ActionEvent e) { teclouSetaAcimaAbaixo(); } } private class SetaAbaixoAction extends AbstractAction { public SetaAbaixoAction() { } public void actionPerformed(ActionEvent e) { teclouSetaAcimaAbaixo(); } } // ***************************************************************************// // Controle do pressionamento das teclas // // ***************************************************************************// private void teclouEnter() { //menu principal if (this.getFocusOwner() == listaMenuPrincipal) { //supervisor if (listaMenuPrincipal.getSelectedIndex() == 0) { panelSubMenu.setVisible(true); ((CardLayout) panelCard.getLayout()).show(panelCard, "cardSupervisor"); listaSubMenuSupervisor.requestFocus(); listaSubMenuSupervisor.setSelectedIndex(0); } //gerente if (listaMenuPrincipal.getSelectedIndex() == 1) { panelSubMenu.setVisible(true); ((CardLayout) panelCard.getLayout()).show(panelCard, "cardGerente"); listaSubMenuGerente.requestFocus(); listaSubMenuGerente.setSelectedIndex(0); } //saida temporaria if (listaMenuPrincipal.getSelectedIndex() == 2) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja fechar o caixa temporariamente?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { MovimentoController movimentoControl = new MovimentoController(); movimentoControl.saidaTemporaria(movimento); MovimentoAberto ma = new MovimentoAberto(this, true); ma.setLocationRelativeTo(null); ma.setVisible(true); } } } //menu principal - submenu supervisor if (this.getFocusOwner() == listaSubMenuSupervisor) { //inicia movimento if (listaSubMenuSupervisor.getSelectedIndex() == 0) { iniciaMovimento(); } //encerra movimento if (listaSubMenuSupervisor.getSelectedIndex() == 1) { encerraMovimento(); } //suprimento if (listaSubMenuSupervisor.getSelectedIndex() == 3) { suprimento(); } //sangria if (listaSubMenuSupervisor.getSelectedIndex() == 4) { sangria(); } //acrescimo em dinheiro no cupom if (listaSubMenuSupervisor.getSelectedIndex() == 6) { acrescimoValor(); } //acrescimo percentual no cupom if (listaSubMenuSupervisor.getSelectedIndex() == 7) { acrescimoTaxa(); } //desconto em dinheiro no cupom if (listaSubMenuSupervisor.getSelectedIndex() == 8) { descontoValor(); } //desconto percentual no cupom if (listaSubMenuSupervisor.getSelectedIndex() == 9) { descontoTaxa(); } //reducao z if (listaSubMenuSupervisor.getSelectedIndex() == 11) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Tem Certeza Que Deseja Executar a Redução Z?\nO Movimento da Impressora Será Suspenso no dia de Hoje.", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Ecf.reducaoZ(); } } } //menu principal - submenu gerente if (this.getFocusOwner() == listaSubMenuGerente) { //inicia movimento if (listaSubMenuGerente.getSelectedIndex() == 0) { iniciaMovimento(); } //encerra movimento if (listaSubMenuGerente.getSelectedIndex() == 1) { encerraMovimento(); } //suprimento if (listaSubMenuGerente.getSelectedIndex() == 3) { suprimento(); } //sangria if (listaSubMenuGerente.getSelectedIndex() == 4) { sangria(); } //acrescimo em dinheiro no cupom if (listaSubMenuGerente.getSelectedIndex() == 6) { acrescimoValor(); } //acrescimo percentual no cupom if (listaSubMenuGerente.getSelectedIndex() == 7) { acrescimoTaxa(); } //desconto em dinheiro no cupom if (listaSubMenuGerente.getSelectedIndex() == 8) { descontoValor(); } //desconto percentual no cupom if (listaSubMenuGerente.getSelectedIndex() == 9) { descontoTaxa(); } //reducao z if (listaSubMenuGerente.getSelectedIndex() == 11) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Tem Certeza Que Deseja Executar a Redução Z?\nO Movimento da Impressora Será Suspenso no dia de Hoje.", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Ecf.reducaoZ(); } } //consultar cliente if (listaSubMenuGerente.getSelectedIndex() == 13) { ImportaCliente.main(new String[1]); } //configurações if (listaSubMenuGerente.getSelectedIndex() == 15) { Configuracao.main(new String[1]); } } //menu operacoes if (this.getFocusOwner() == listaMenuOperacoes) { //carrega pre-venda if (listaMenuOperacoes.getSelectedIndex() == 0) { if (statusCaixa == 0) { ValorInteiro janelaValorInteiro = new ValorInteiro(this, true); janelaValorInteiro.setLocationRelativeTo(null); janelaValorInteiro.setVisible(true); Integer valor = janelaValorInteiro.retornaValor(); if (valor > 0) { fechaMenuOperacoes(); carregaPreVenda(janelaValorInteiro.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Já existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } //mescla pre-venda if (listaMenuOperacoes.getSelectedIndex() == 1) { if (statusCaixa == 0) { mesclaPreVenda(); } else { JOptionPane.showMessageDialog(rootPane, "Já existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } //carrega dav if (listaMenuOperacoes.getSelectedIndex() == 2) { if (statusCaixa == 0) { ValorInteiro janelaValorInteiro = new ValorInteiro(this, true); janelaValorInteiro.setLocationRelativeTo(null); janelaValorInteiro.setVisible(true); Integer valor = janelaValorInteiro.retornaValor(); if (valor > 0) { fechaMenuOperacoes(); carregaDAV(janelaValorInteiro.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Já existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } //mescla dav if (listaMenuOperacoes.getSelectedIndex() == 3) { if (statusCaixa == 0) { mesclaDAV(); } else { JOptionPane.showMessageDialog(rootPane, "Já existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } } //menu fiscal if (this.getFocusOwner() == listaMenuFiscal) { //Leitura X if (listaMenuFiscal.getSelectedIndex() == 0) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Confirma a emissão da Leitura X?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Ecf.leituraX(); } } //LMFC if (listaMenuFiscal.getSelectedIndex() == 1) { LMFC.main(new String[1]); } //LMFS if (listaMenuFiscal.getSelectedIndex() == 2) { LMFS.main(new String[1]); } //Espelho MFD if (listaMenuFiscal.getSelectedIndex() == 3) { EspelhoMFD.main(new String[1]); } //Arquivo MFD if (listaMenuFiscal.getSelectedIndex() == 4) { ArquivoMFD.main(new String[1]); } //Tabela de Produtos if (listaMenuFiscal.getSelectedIndex() == 5) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja gerar o arquivo da Tabela de Produtos?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Paf.geraTabelaProdutos(); } } //Estoque if (listaMenuFiscal.getSelectedIndex() == 6) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja gerar o arquivo do Estoque?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Paf.geraArquivoEstoque(); } } //Movimento ECF if (listaMenuFiscal.getSelectedIndex() == 7) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja gerar o movimento?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Paf.geraMovimentoECF(); } } //Meios de Pagamento if (listaMenuFiscal.getSelectedIndex() == 8) { MeiosPagamento.main(new String[1]); } //DAV Emitidos if (listaMenuFiscal.getSelectedIndex() == 9) { DAVEmitidos.main(new String[1]); } //Identificação PAF-ECF if (listaMenuFiscal.getSelectedIndex() == 10) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja emitir o relatório de identificação do PAF-ECF?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { Paf.identificacaoPafEcf(); } } //Vendas no período if (listaMenuFiscal.getSelectedIndex() == 11) { VendasPeriodo.main(new String[1]); } //Tabela de indice tecnico de produção //TODO : Devemos implementar essa funcionalidade? if (listaMenuFiscal.getSelectedIndex() == 12) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Devemos implementar essa funcionalidade?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { JOptionPane.showMessageDialog(rootPane, "Ponha sua opinião no EAD.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } } } private void teclouESC() { if (this.getFocusOwner() == listaMenuPrincipal) { panelMenuPrincipal.setVisible(false); menuAberto = 0; } if (this.getFocusOwner() == listaMenuOperacoes) { panelMenuOperacoes.setVisible(false); menuAberto = 0; } if (this.getFocusOwner() == listaMenuFiscal) { panelMenuFiscal.setVisible(false); menuAberto = 0; } if (this.getFocusOwner() == listaSubMenuGerente || this.getFocusOwner() == listaSubMenuSupervisor) { listaMenuPrincipal.requestFocus(); listaMenuPrincipal.setSelectedIndex(0); panelSubMenu.setVisible(false); } } private void teclouSetaAcimaAbaixo() { String selecionado = ""; if (this.getFocusOwner() == listaMenuPrincipal) { selecionado = (String) modelMenuPrincipal.get(listaMenuPrincipal.getSelectedIndex()); } if (this.getFocusOwner() == listaMenuOperacoes) { selecionado = (String) modelMenuOperacoes.get(listaMenuOperacoes.getSelectedIndex()); } if (this.getFocusOwner() == listaMenuFiscal) { selecionado = (String) modelMenuFiscal.get(listaMenuFiscal.getSelectedIndex()); } if (this.getFocusOwner() == listaSubMenuGerente) { selecionado = (String) modelSubMenuGerente.get(listaSubMenuGerente.getSelectedIndex()); } if (this.getFocusOwner() == listaSubMenuSupervisor) { selecionado = (String) modelSubMenuSupervisor.get(listaSubMenuSupervisor.getSelectedIndex()); } labelMensagens.setText(selecionado); this.repaint(); } // ***************************************************************************// // Métodos referentes ao Menu Principal e seus SubMenus // // ***************************************************************************// private void iniciaMovimento() { MovimentoController movimentoControl = new MovimentoController(); movimento = movimentoControl.verificaMovimento(); if (movimento != null) { JOptionPane.showMessageDialog(rootPane, "Já existe um movimento aberto.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } else { IniciaMovimento im = new IniciaMovimento(this, true); im.setLocationRelativeTo(null); im.setVisible(true); } } private void encerraMovimento() { MovimentoController movimentoControl = new MovimentoController(); movimento = movimentoControl.verificaMovimento(); if (movimento == null) { JOptionPane.showMessageDialog(rootPane, "Não existe movimento aberto.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } else { EncerraMovimento em = new EncerraMovimento(this, true); em.setLocationRelativeTo(null); em.setVisible(true); } } private void suprimento() { if (statusCaixa == 0) { ValorReal janelaValorReal = new ValorReal(this, true); janelaValorReal.setLocationRelativeTo(null); janelaValorReal.setVisible(true); Double valorSuprimento = janelaValorReal.retornaValor(); if (valorSuprimento > 0) { Ecf.suprimento(valorSuprimento, configuracao.getDescricaoSuprimento()); SuprimentoVO suprimento = new SuprimentoVO(); suprimento.setIdMovimento(movimento.getId()); java.util.Date data = new java.util.Date(); java.sql.Date hoje = new java.sql.Date(data.getTime()); suprimento.setDataSuprimento(hoje); suprimento.setValor(valorSuprimento); MovimentoController movimentoControl = new MovimentoController(); movimentoControl.suprimento(suprimento); movimento.setTotalSuprimento(movimento.getTotalSuprimento() + valorSuprimento); } } else { JOptionPane.showMessageDialog(rootPane, "Existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void sangria() { if (statusCaixa == 0) { ValorReal janelaValorReal = new ValorReal(this, true); janelaValorReal.setLocationRelativeTo(null); janelaValorReal.setVisible(true); Double valorSangria = janelaValorReal.retornaValor(); if (valorSangria > 0) { Ecf.sangria(valorSangria, configuracao.getDescricaoSangria()); SangriaVO sangria = new SangriaVO(); sangria.setIdMovimento(movimento.getId()); java.util.Date data = new java.util.Date(); java.sql.Date hoje = new java.sql.Date(data.getTime()); sangria.setDataSangria(hoje); sangria.setValor(valorSangria); MovimentoController movimentoControl = new MovimentoController(); movimentoControl.sangria(sangria); movimento.setTotalSangria(movimento.getTotalSangria() + valorSangria); } } else { JOptionPane.showMessageDialog(rootPane, "Existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void acrescimoValor() { if (statusCaixa == 1) { DescontoAcrescimo janelaDescontoAcrescimo = new DescontoAcrescimo(this, true); janelaDescontoAcrescimo.setLocationRelativeTo(null); janelaDescontoAcrescimo.setVisible(true); Double valor = janelaDescontoAcrescimo.retornaValor(); if (valor > 0) { vendaCabecalho.setAcrescimo(janelaDescontoAcrescimo.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void acrescimoTaxa() { if (statusCaixa == 1) { DescontoAcrescimo janelaDescontoAcrescimo = new DescontoAcrescimo(this, true); janelaDescontoAcrescimo.setLocationRelativeTo(null); janelaDescontoAcrescimo.setVisible(true); Double valor = janelaDescontoAcrescimo.retornaValor(); if (valor > 0) { vendaCabecalho.setTaxaAcrescimo(janelaDescontoAcrescimo.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void descontoValor() { if (statusCaixa == 1) { DescontoAcrescimo janelaDescontoAcrescimo = new DescontoAcrescimo(this, true); janelaDescontoAcrescimo.setLocationRelativeTo(null); janelaDescontoAcrescimo.setVisible(true); Double valor = janelaDescontoAcrescimo.retornaValor(); if (valor > 0) { vendaCabecalho.setDesconto(janelaDescontoAcrescimo.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void descontoTaxa() { if (statusCaixa == 1) { DescontoAcrescimo janelaDescontoAcrescimo = new DescontoAcrescimo(this, true); janelaDescontoAcrescimo.setLocationRelativeTo(null); janelaDescontoAcrescimo.setVisible(true); Double valor = janelaDescontoAcrescimo.retornaValor(); if (valor > 0) { vendaCabecalho.setTaxaDesconto(janelaDescontoAcrescimo.retornaValor()); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } // ***************************************************************************// // Métodos referentes ao Menu Operações // // ***************************************************************************// public void carregaPreVenda(Integer numero) { PreVendaDetalheVO preVendaDetalhe = new PreVendaDetalheVO(); ProdutoController produtoControl = new ProdutoController(); PreVendaController preVendaControl = new PreVendaController(); List<PreVendaDetalheVO> listaPreVenda = (ArrayList) preVendaControl.carregaPreVenda(numero); if (listaPreVenda != null) { iniciaVenda(); statusCaixa = 2; vendaCabecalho.setIdPreVenda(listaPreVenda.get(0).getIdPreVendaCabecalho()); for (int i = 0; i < listaPreVenda.size(); i++) { preVendaDetalhe = listaPreVenda.get(i); produto = produtoControl.consultaId(preVendaDetalhe.getIdProduto()); vendaDetalhe = new VendaDetalheVO(); vendaDetalhe.setQuantidade(preVendaDetalhe.getQuantidade()); vendaDetalhe.setValorUnitario(preVendaDetalhe.getValorUnitario()); vendaDetalhe.setValorTotal(preVendaDetalhe.getValorTotal()); vendeItem(); subTotal = subTotal + vendaDetalhe.getValorTotal(); totalGeral = totalGeral + vendaDetalhe.getValorTotal(); atualizaTotais(); } editCodigo.requestFocus(); statusCaixa = 1; } else { JOptionPane.showMessageDialog(rootPane, "Pré-Venda inexistente ou já efetivada/mesclada.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } public void carregaDAV(Integer numero) { DAVDetalheVO DAVDetalhe = new DAVDetalheVO(); ProdutoController produtoControl = new ProdutoController(); DAVController DAVControl = new DAVController(); List<DAVDetalheVO> listaDAV = (ArrayList) DAVControl.carregaDAV(numero); if (listaDAV != null) { iniciaVenda(); statusCaixa = 2; vendaCabecalho.setIdDAV(listaDAV.get(0).getIdDAVCabecalho()); for (int i = 0; i < listaDAV.size(); i++) { DAVDetalhe = listaDAV.get(i); produto = produtoControl.consultaId(DAVDetalhe.getIdProduto()); vendaDetalhe = new VendaDetalheVO(); vendaDetalhe.setQuantidade(DAVDetalhe.getQuantidade()); vendaDetalhe.setValorUnitario(DAVDetalhe.getValorUnitario()); vendaDetalhe.setValorTotal(DAVDetalhe.getValorTotal()); vendeItem(); subTotal = subTotal + vendaDetalhe.getValorTotal(); totalGeral = totalGeral + vendaDetalhe.getValorTotal(); atualizaTotais(); } editCodigo.requestFocus(); statusCaixa = 1; } else { JOptionPane.showMessageDialog(rootPane, "DAV inexistente ou já efetivado/mesclado.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void mesclaPreVenda() { MesclaPreVenda janelaMesclaPreVenda = new MesclaPreVenda(this, true); janelaMesclaPreVenda.setLocationRelativeTo(null); janelaMesclaPreVenda.setVisible(true); if (janelaMesclaPreVenda.idNovaPreVenda != null) { carregaPreVenda(janelaMesclaPreVenda.idNovaPreVenda); fechaMenuOperacoes(); } } private void mesclaDAV() { MesclaDAV janelaMesclaDAV = new MesclaDAV(this, true); janelaMesclaDAV.setLocationRelativeTo(null); janelaMesclaDAV.setVisible(true); if (janelaMesclaDAV.idNovoDAV != null) { carregaDAV(janelaMesclaDAV.idNovoDAV); fechaMenuOperacoes(); } } // ***************************************************************************// // Métodos para controle da venda // // ***************************************************************************// private void localizaProduto() { if (statusCaixa == 1) { ImportaProduto janelaImportaProduto = new ImportaProduto(this, true); janelaImportaProduto.setLocationRelativeTo(null); janelaImportaProduto.setVisible(true); editCodigo.setText(janelaImportaProduto.getGTIN()); } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void identificaCliente() { if (movimento != null) { if (statusCaixa != 1) { IdentificaCliente.main(new String[1]); } else { JOptionPane.showMessageDialog(rootPane, "Já existe uma venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe movimento aberto.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void identificaVendedor() { if (statusCaixa == 1) { ValorInteiro janelaValorInteiro = new ValorInteiro(this, true); janelaValorInteiro.setLocationRelativeTo(null); janelaValorInteiro.setVisible(true); Integer valor = janelaValorInteiro.retornaValor(); VendedorController vendedorControl = new VendedorController(); FuncionarioVO vendedor = vendedorControl.consultaVendedor(valor); if (vendedor != null) { vendaCabecalho.setIdVendedor(vendedor.getId()); } else { JOptionPane.showMessageDialog(rootPane, "Vendedor: código inválido ou inexistente.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void iniciaVenda() { if (movimento == null) { JOptionPane.showMessageDialog(rootPane, "Não existe um movimento aberto.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } else { try { //instancia venda e detalhe vendaCabecalho = new VendaCabecalhoVO(); vendaCabecalho.setAcrescimo(0.0); vendaCabecalho.setDesconto(0.0); listaVendaDetalhe = new ArrayList<VendaDetalheVO>(); //atribui dados do cliente e abre o cupom if (cliente != null) { vendaCabecalho.setIdCliente(cliente.getId()); vendaCabecalho.setNomeCliente(cliente.getNome()); vendaCabecalho.setCPFouCNPJCliente(cliente.getCPFOuCNPJ()); Ecf.abreCupom(cliente.getCPFOuCNPJ()); } else { Ecf.abreCupom(""); } imprimeCabecalhoBobina(); parametrosIniciaisVenda(); statusCaixa = 1; labelMensagens.setText("Venda em andamento..."); vendaCabecalho.setIdMovimento(movimento.getId()); java.util.Date data = new java.util.Date(); java.sql.Timestamp hoje = new java.sql.Timestamp(data.getTime()); vendaCabecalho.setDataHoraVenda(hoje); vendaCabecalho.setStatusVenda("A"); vendaCabecalho.setIdCFOP(configuracao.getCFOPECF()); vendaCabecalho.setCOO(Integer.valueOf(ACBrECF.getNumCupom())); vendaCabecalho.setCCF(Integer.valueOf(ACBrECF.getNumCCF())); vendaCabecalho = vendaControl.iniciaVenda(vendaCabecalho); editCodigo.requestFocus(); editCodigo.selectAll(); } catch (Throwable t) { JOptionPane.showMessageDialog(rootPane, t.getMessage(), "Erro do Sistema", JOptionPane.ERROR_MESSAGE); } } } private void parametrosIniciaisVenda() { setarImagem("padrao.png"); itemCupom = 0; subTotal = 0.0; totalGeral = 0.0; } private void imprimeCabecalhoBobina() { modelBobina.addElement(Biblioteca.repete("-", 48)); modelBobina.addElement(" ** CUPOM FISCAL ** "); modelBobina.addElement(Biblioteca.repete("-", 48)); modelBobina.addElement("ITEM CÓDIGO DESCRIÇÃO "); modelBobina.addElement("QTD. UN VL.UNIT.(R$) ST VL.ITEM(R$)"); modelBobina.addElement(Biblioteca.repete("-", 48)); } private void editCodigoProdutoPerdeFoco() { if (!editCodigo.getText().equals("")) { if (menuAberto == 0) { if (statusCaixa == 0) { iniciaVenda(); } if (!editCodigo.getText().equals("")) { //pega dados do produto consultaProduto(editCodigo.getText()); if (produto != null) { editUnitario.setText(produto.getValorVenda().toString()); labelDescricaoProduto.setText(produto.getDescricaoPDV()); //carrega imagem do produto String imagem = editCodigo.getText() + ".jpg"; setarImagem(imagem); Double total = produto.getValorVenda() * Double.valueOf(editQuantidade.getText()); editTotalItem.setText(total.toString()); vendaDetalhe = new VendaDetalheVO(); vendeItem(); subTotal = subTotal + vendaDetalhe.getValorTotal(); totalGeral = totalGeral + vendaDetalhe.getValorTotal(); atualizaTotais(); editCodigo.setText(""); editCodigo.requestFocus(); editQuantidade.setText("1"); //formata valores para tela String unitario = formatter.format(produto.getValorVenda()); editUnitario.setText(unitario); String totalItem = formatter.format(total); editTotalItem.setText(totalItem); } else { JOptionPane.showMessageDialog(rootPane, "Código não encontrado.", "Aviso do Sistema", JOptionPane.ERROR_MESSAGE); SwingUtilities.invokeLater(new Runnable() { public void run() { editUnitario.setText("0,00"); editTotalItem.setText("0,00"); editQuantidade.setText("1"); labelDescricaoProduto.setText(""); editCodigo.requestFocus(); } }); } } } } } private void consultaProduto(String codigo) { ProdutoController produtoControl = new ProdutoController(); produto = produtoControl.consulta(codigo); } private void vendeItem() { compoeItemParaVenda(); vendaDetalhe = vendaControl.inserirItem(vendaDetalhe); listaVendaDetalhe.add(vendaDetalhe); imprimeItemBobina(); Ecf.vendeItem(vendaDetalhe); } private void compoeItemParaVenda() { itemCupom++; vendaDetalhe.setIdProduto(produto.getId()); vendaDetalhe.setIdCFOP(configuracao.getCFOPECF()); vendaDetalhe.setIdTributo(produto.getIdTributo()); vendaDetalhe.setIdVendaCabecalho(vendaCabecalho.getId()); vendaDetalhe.setDescricaoPDV(produto.getDescricaoPDV()); vendaDetalhe.setUnidadeProduto(produto.getUnidadeProduto()); vendaDetalhe.setCST(produto.getSituacaoTributaria()); vendaDetalhe.setECFICMS(produto.getECFICMS()); vendaDetalhe.setTotalizadorParcial(produto.getTotalizadorParcial()); vendaDetalhe.setGTIN(produto.getGTIN()); vendaDetalhe.setItem(itemCupom); if (produto.getIPPT().equals("T")) { vendaDetalhe.setMovimentaEstoque("S"); } else { vendaDetalhe.setMovimentaEstoque("N"); } if (statusCaixa == 1) { vendaDetalhe.setQuantidade(Double.valueOf(editQuantidade.getText())); vendaDetalhe.setValorUnitario(produto.getValorVenda()); vendaDetalhe.setValorTotal(Double.valueOf(editTotalItem.getText())); } } private void imprimeItemBobina() { String quantidade = formatter.format(vendaDetalhe.getQuantidade()); String unitario = formatter.format(vendaDetalhe.getValorUnitario()); String total = formatter.format(vendaDetalhe.getValorTotal()); String descricao = vendaDetalhe.getDescricaoPDV(); if (descricao.length() > 28) { descricao = descricao.substring(0, 28); } //linha 1 do item modelBobina.addElement( Biblioteca.repete("0", 3 - String.valueOf(itemCupom).length()) + itemCupom + " " + vendaDetalhe.getGTIN() + Biblioteca.repete(" ", 14 - vendaDetalhe.getGTIN().length()) + " " + descricao); //linha 2 do item modelBobina.addElement( Biblioteca.repete(" ", 8 - quantidade.length()) + quantidade + " " + vendaDetalhe.getUnidadeProduto().substring(0, 3) + " x " + Biblioteca.repete(" ", 13 - unitario.length()) + unitario + " " + Biblioteca.repete(" ", 5 - vendaDetalhe.getECFICMS().length()) + vendaDetalhe.getECFICMS() + Biblioteca.repete(" ", 13 - total.length()) + total); } private void atualizaTotais() { String fSubTotal = formatter.format(subTotal); String fTotalGeral = formatter.format(totalGeral); editSubTotal.setText(fSubTotal); labelTotalGeral.setText(fTotalGeral); vendaCabecalho.setValorVenda(subTotal); } private void iniciaEncerramentoVenda() { if (statusCaixa == 1) { if (listaVendaDetalhe.size() > 0) { EfetuaPagamento telaEfetuaPagamento = new EfetuaPagamento(this, true); //telaEfetuaPagamento.setLocationRelativeTo(null); telaEfetuaPagamento.setVisible(true); if (telaEfetuaPagamento.pagamentoOK == true) { concluiEncerramentoVenda(); } } else { JOptionPane.showMessageDialog(rootPane, "Não existem itens para a venda..", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void concluiEncerramentoVenda() { //TODO : precisamos fazer esses testes? porque? if (vendaCabecalho.getTotalProdutos() == null) { vendaCabecalho.setTotalProdutos(0.0); } if (vendaCabecalho.getTotalDocumento() == null) { vendaCabecalho.setTotalDocumento(0.0); } if (vendaCabecalho.getBaseICMS() == null) { vendaCabecalho.setBaseICMS(0.0); } if (vendaCabecalho.getTaxaDesconto() == null) { vendaCabecalho.setTaxaDesconto(0.0); } if (vendaCabecalho.getDesconto() == null) { vendaCabecalho.setDesconto(0.0); } if (vendaCabecalho.getTaxaAcrescimo() == null) { vendaCabecalho.setTaxaAcrescimo(0.0); } if (vendaCabecalho.getAcrescimo() == null) { vendaCabecalho.setAcrescimo(0.0); } if (vendaCabecalho.getTroco() == null) { vendaCabecalho.setTroco(0.0); } vendaControl.encerraVenda(vendaCabecalho); statusCaixa = 0; telaPadrao(); } private void cancelaCupom() { if (statusCaixa == 1) { String[] opcoes = {"Sim", "Não"}; int escolha = JOptionPane.showOptionDialog(null, "Deseja cancelar o cupom atual?", "Pergunta do Sistema", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, null); if (escolha == 0) { //TODO : É melhor persistir o valor nulo ou zerado? Por que? if (vendaCabecalho.getValorVenda() == null) { vendaCabecalho.setValorVenda(0.0); } if (vendaCabecalho.getValorCancelado() == null) { vendaCabecalho.setValorCancelado(0.0); } vendaControl.cancelaVenda(vendaCabecalho); Ecf.cancelaCupom(); statusCaixa = 0; telaPadrao(); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } private void cancelaItem() { if (statusCaixa == 1) { ValorInteiro janelaValorInteiro = new ValorInteiro(this, true); janelaValorInteiro.setLocationRelativeTo(null); janelaValorInteiro.setVisible(true); Integer cancela = janelaValorInteiro.retornaValor(); if (cancela <= listaVendaDetalhe.size()) { vendaDetalhe = listaVendaDetalhe.get(cancela - 1); if (vendaDetalhe.getCancelado() == null) { Ecf.cancelaItem(cancela); vendaDetalhe.setCancelado("S"); vendaControl.cancelaItem(vendaDetalhe); String descricao = vendaDetalhe.getDescricaoPDV(); if (descricao.length() > 28) { descricao = descricao.substring(0, 28); } modelBobina.addElement(Biblioteca.repete("*", 48)); modelBobina.addElement( Biblioteca.repete("0", 3 - String.valueOf(cancela).length()) + cancela + " " + vendaDetalhe.getGTIN() + Biblioteca.repete(" ", 14 - vendaDetalhe.getGTIN().length()) + " " + descricao); modelBobina.addElement("ITEM CANCELADO"); modelBobina.addElement(Biblioteca.repete("*", 48)); subTotal = subTotal - vendaDetalhe.getValorTotal(); totalGeral = totalGeral - vendaDetalhe.getValorTotal(); atualizaTotais(); } else { JOptionPane.showMessageDialog(rootPane, "O item solicitado já foi cancelado.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(rootPane, "O item solicitado não existe na venda atual.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(rootPane, "Não existe venda em andamento.", "Aviso do Sistema", JOptionPane.INFORMATION_MESSAGE); } } //****************************************************************************// // Aparência e controle dos painéis com as funções do programa - F1 a F12 // //****************************************************************************// public void mouseClicked(MouseEvent e) { if (e.getSource() == panelF1) { identificaCliente(); } if (e.getSource() == panelF2) { acionaMenuPrincipal(); } if (e.getSource() == panelF3) { acionaMenuOperacoes(); } if (e.getSource() == panelF4) { acionaMenuFiscal(); } if (e.getSource() == panelF5) { //TODO : Devemos fazer uma calculadora própria? if (listaMenuPrincipal.getSelectedIndex() == 1) { try { Runtime.getRuntime().exec("calc.exe"); } catch (Exception ex) { } } } if (e.getSource() == panelF6) { localizaProduto(); } if (e.getSource() == panelF7) { iniciaEncerramentoVenda(); } if (e.getSource() == panelF8) { cancelaItem(); } if (e.getSource() == panelF9) { cancelaCupom(); } if (e.getSource() == panelF10) { descontoValor(); } if (e.getSource() == panelF11) { identificaVendedor(); } if (e.getSource() == panelF12) { sair(); } } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { if (e.getSource() == panelF1) { panelF1.setBackground(Color.WHITE); } if (e.getSource() == panelF2) { panelF2.setBackground(Color.WHITE); } if (e.getSource() == panelF3) { panelF3.setBackground(Color.WHITE); } if (e.getSource() == panelF4) { panelF4.setBackground(Color.WHITE); } if (e.getSource() == panelF5) { panelF5.setBackground(Color.WHITE); } if (e.getSource() == panelF6) { panelF6.setBackground(Color.WHITE); } if (e.getSource() == panelF7) { panelF7.setBackground(Color.WHITE); } if (e.getSource() == panelF8) { panelF8.setBackground(Color.WHITE); } if (e.getSource() == panelF9) { panelF9.setBackground(Color.WHITE); } if (e.getSource() == panelF10) { panelF10.setBackground(Color.WHITE); } if (e.getSource() == panelF11) { panelF11.setBackground(Color.WHITE); } if (e.getSource() == panelF12) { panelF12.setBackground(Color.WHITE); } this.repaint(); } public void mouseExited(MouseEvent e) { if (e.getSource() == panelF1) { panelF1.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF2) { panelF2.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF3) { panelF3.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF4) { panelF4.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF5) { panelF5.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF6) { panelF6.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF7) { panelF7.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF8) { panelF8.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF9) { panelF9.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF10) { panelF10.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF11) { panelF11.setBackground(new Color(255, 255, 255, 0)); } if (e.getSource() == panelF12) { panelF12.setBackground(new Color(255, 255, 255, 0)); } this.repaint(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JList bobina; private javax.swing.JLayeredPane containerPrincipal; private javax.swing.JFormattedTextField editCodigo; private javax.swing.JFormattedTextField editQuantidade; private javax.swing.JFormattedTextField editSubTotal; private javax.swing.JFormattedTextField editTotalItem; private javax.swing.JFormattedTextField editUnitario; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JScrollPane jScrollPane5; private javax.swing.JLabel labelCaixa; private javax.swing.JLabel labelDescricaoProduto; private javax.swing.JLabel labelF1; private javax.swing.JLabel labelF10; private javax.swing.JLabel labelF11; private javax.swing.JLabel labelF12; private javax.swing.JLabel labelF2; private javax.swing.JLabel labelF3; private javax.swing.JLabel labelF4; private javax.swing.JLabel labelF5; private javax.swing.JLabel labelF6; private javax.swing.JLabel labelF7; private javax.swing.JLabel labelF8; private javax.swing.JLabel labelF9; private javax.swing.JLabel labelImagemProduto; private javax.swing.JLabel labelImagemTela; private javax.swing.JLabel labelMensagens; private javax.swing.JLabel labelOperador; private javax.swing.JLabel labelTitulo; private javax.swing.JLabel labelTotalGeral; private javax.swing.JList listaMenuFiscal; private javax.swing.JList listaMenuOperacoes; private javax.swing.JList listaMenuPrincipal; private javax.swing.JList listaSubMenuGerente; private javax.swing.JList listaSubMenuSupervisor; private javax.swing.JScrollPane panelBobina; private javax.swing.JPanel panelBotoes; private javax.swing.JPanel panelCard; private javax.swing.JPanel panelF1; private javax.swing.JPanel panelF10; private javax.swing.JPanel panelF11; private javax.swing.JPanel panelF12; private javax.swing.JPanel panelF2; private javax.swing.JPanel panelF3; private javax.swing.JPanel panelF4; private javax.swing.JPanel panelF5; private javax.swing.JPanel panelF6; private javax.swing.JPanel panelF7; private javax.swing.JPanel panelF8; private javax.swing.JPanel panelF9; private javax.swing.JPanel panelMenuFiscal; private javax.swing.JPanel panelMenuOperacoes; private javax.swing.JPanel panelMenuPrincipal; private javax.swing.JPanel panelSubMenu; private javax.swing.JScrollPane panelSubMenuGerente; private javax.swing.JScrollPane panelSubMenuSupervisor; // End of variables declaration//GEN-END:variables //TODO : Existe algum problema na implementação dessa Thread - Banner? class Banner implements Runnable { @Override public void run() { Random aleatorio = new Random(); int numero = 0; try { while (true) { if (statusCaixa == 0) { numero = aleatorio.nextInt(6); labelImagemProduto.setIcon(new javax.swing.ImageIcon(getClass().getResource(configuracao.getCaminhoImagensMarketing() + numero + ".jpg"))); Thread.sleep(5000); } } } catch (Exception e) { labelImagemProduto.setIcon(new javax.swing.ImageIcon(getClass().getResource(configuracao.getCaminhoImagensProdutos() + "padrao.png"))); } } } }