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 com.gnadenheimer.mg.frames.operaciones.ingresos; import ca.odell.glazedlists.BasicEventList; import ca.odell.glazedlists.EventList; import ca.odell.glazedlists.GlazedLists; import ca.odell.glazedlists.matchers.TextMatcherEditor; import ca.odell.glazedlists.swing.AutoCompleteSupport; import com.gnadenheimer.mg.domain.TblAsientos; import com.gnadenheimer.mg.domain.TblCategoriasArticulos; import com.gnadenheimer.mg.domain.TblCuentasContablesPorDefecto; import com.gnadenheimer.mg.domain.TblEventoDetalle; import com.gnadenheimer.mg.domain.TblEventoTipos; import com.gnadenheimer.mg.domain.TblEventos; import com.gnadenheimer.mg.domain.miembros.TblEntidades; import com.gnadenheimer.mg.utils.CurrentUser; import com.gnadenheimer.mg.utils.Utils; import com.gnadenheimer.utils.FormatCtaCte; import java.awt.Color; import java.awt.EventQueue; import java.awt.KeyboardFocusManager; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.Beans; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.io.FileInputStream; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; import javax.persistence.Persistence; import javax.persistence.RollbackException; import javax.swing.JFileChooser; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.UIManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; /** * * @author user */ public class FrameColectasDetalle extends JInternalFrame { private static final Logger LOGGER = LogManager.getLogger(FrameColectasDetalle.class); Map<String, String> persistenceMap = new HashMap<>(); EventList<TblEntidades> eventListMiembros = new BasicEventList<>(); CurrentUser currentUser = CurrentUser.getInstance(); TblEventoTipos idEventoTipo; Set forwardKeys = getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); Set newForwardKeys = new HashSet(forwardKeys); TblCuentasContablesPorDefecto cuentasContablesPorDefecto; public FrameColectasDetalle() { super("Colectas", true, //resizable true, //closable true, //maximizable true);//iconifiable try { persistenceMap = Utils.getInstance().getPersistenceMap(); //newForwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); //setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newForwardKeys); //InputMap im = newButton.getInputMap(WIDTH).getInputMap(); //im.put(KeyStroke.getKeyStroke("ENTER"), "pressed"); //im.put(KeyStroke.getKeyStroke("released ENTER"), "released"); initComponents(); cboMiembro.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() { @Override public void keyReleased(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ENTER) { montoField.requestFocusInWindow(); } } }); this.dateTimeTableCellRenderer1.setEnProceso(true); this.numberCellRenderer1.setEnProceso(true); this.normalTableCellRenderer1.setEnProceso(true); if (!Beans.isDesignTime()) { entityManager.getTransaction().begin(); entityManager1.getTransaction().begin(); } cuentasContablesPorDefecto = entityManager.find(TblCuentasContablesPorDefecto.class, 1); //AutoCompleteDecorator.decorate(cboFechaRemate); //AutoCompleteDecorator.decorate(cboCategoria); AutoCompleteSupport support = AutoCompleteSupport.install(cboFechaColecta, GlazedLists.eventListOf(listEventos.toArray())); support.setFilterMode(TextMatcherEditor.CONTAINS); eventListMiembros.clear(); eventListMiembros.addAll(listMiembros); AutoCompleteSupport support2 = AutoCompleteSupport.install(cboMiembro, eventListMiembros); support2.setFilterMode(TextMatcherEditor.CONTAINS); Optional<TblEventos> value = listEventos.stream() .filter(a -> a.getFecha().equals(LocalDate.now().atStartOfDay())).findFirst(); if (value.isPresent()) { cboFechaColecta.setSelectedItem(value.get()); } else { cboFechaColecta.setSelectedIndex(-1); } idEventoTipo = entityManager.find(TblEventoTipos.class, 2); KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener("permanentFocusOwner", new PropertyChangeListener() { @Override public void propertyChange(final PropertyChangeEvent e) { if (e.getNewValue() instanceof JFormattedTextField) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFormattedTextField textField = (JFormattedTextField) e.getNewValue(); textField.selectAll(); } }); } } }); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } } /** * 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 = java.beans.Beans.isDesignTime() ? null : Persistence.createEntityManagerFactory("mg_PU", persistenceMap).createEntityManager(); entityManager1 = java.beans.Beans.isDesignTime() ? null : Persistence.createEntityManagerFactory("mg_PU", persistenceMap).createEntityManager(); queryMiembros = java.beans.Beans.isDesignTime() ? null : entityManager1.createQuery("SELECT t FROM TblEntidades t ORDER BY t.ctacte"); listMiembros = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(queryMiembros.getResultList()); normalTableCellRenderer1 = new com.gnadenheimer.mg.utils.NormalTableCellRenderer(); categoriasConverter1 = new com.gnadenheimer.mg.utils.CategoriasConverter(); queryEventos = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery( "SELECT t FROM TblEventos t WHERE t.idEventoTipo.id = 2 AND t.idGrupo IN :grupos AND EXTRACT(YEAR FROM t.fecha) = :anoActivo ORDER BY t.fecha"); queryEventos.setParameter("grupos", currentUser.getUser().getTblGruposList()); queryEventos.setParameter("anoActivo", persistenceMap.get("anoActivo")); listEventos = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(queryEventos.getResultList()); queryEventoDetalle = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery( "SELECT t FROM TblEventoDetalle t WHERE t.idEvento = :eventoId ORDER BY t.idEntidad.ctacte, t.id"); queryEventoDetalle.setParameter("eventoId", null); listEventoDetalle = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(queryEventoDetalle.getResultList()); jXDatePicker1 = new org.jdesktop.swingx.JXDatePicker(); dateTimeTableCellRenderer1 = new com.gnadenheimer.mg.utils.DateTimeTableCellRenderer(); integerLongConverter1 = new com.gnadenheimer.mg.utils.IntegerLongConverter(); numberCellRenderer1 = new com.gnadenheimer.mg.utils.NumberCellRenderer(); dateTimeToStringConverter1 = new com.gnadenheimer.mg.utils.DateTimeToStringConverter(); tblCategoriasArticulosQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT t FROM TblCategoriasArticulos t ORDER BY t.descripcion"); tblCategoriasArticulosList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(tblCategoriasArticulosQuery.getResultList()); tblFormasDePagoQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT t FROM TblFormasDePago t ORDER BY t.id"); tblFormasDePagoList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections .observableList(tblFormasDePagoQuery.getResultList()); ctaCteTableCellRenderer1 = new com.gnadenheimer.mg.utils.CtaCteTableCellRenderer(); masterScrollPane = new javax.swing.JScrollPane(); masterTable = new javax.swing.JTable(); montoLabel = new javax.swing.JLabel(); idMiembroLabel = new javax.swing.JLabel(); saveButton = new javax.swing.JButton(); refreshButton = new javax.swing.JButton(); newButton = new javax.swing.JButton(); deleteButton = new javax.swing.JButton(); idMiembroLabel1 = new javax.swing.JLabel(); txtCtaCte = new javax.swing.JTextField(); idMiembroLabel2 = new javax.swing.JLabel(); dateTableCellRenderer1 = new com.gnadenheimer.mg.utils.DateTimeTableCellRenderer(); cboMiembro = new javax.swing.JComboBox(); jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); lblTotal = new javax.swing.JLabel(); lblTotalOperaciones = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); cboFechaColecta = new javax.swing.JComboBox(); montoField = new javax.swing.JFormattedTextField(); jButton2 = new javax.swing.JButton(); montoLabel1 = new javax.swing.JLabel(); cboForma = new javax.swing.JComboBox(); jButton1 = new javax.swing.JButton(); FormListener formListener = new FormListener(); normalTableCellRenderer1.setText("normalTableCellRenderer1"); dateTimeTableCellRenderer1.setText("dateTimeTableCellRenderer1"); numberCellRenderer1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); numberCellRenderer1.setText("numberCellRenderer1"); ctaCteTableCellRenderer1.setText("ctaCteTableCellRenderer1"); addInternalFrameListener(formListener); masterTable.setAutoCreateRowSorter(true); masterTable.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N masterTable.setRowHeight(20); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings .createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, listEventoDetalle, masterTable); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idEntidad.ctacte}")); columnBinding.setColumnName("Cta. Cte."); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idEntidad}")); columnBinding.setColumnName("Donador"); columnBinding.setColumnClass(com.gnadenheimer.mg.domain.miembros.TblEntidades.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${monto}")); columnBinding.setColumnName("Monto"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); masterScrollPane.setViewportView(masterTable); if (masterTable.getColumnModel().getColumnCount() > 0) { masterTable.getColumnModel().getColumn(0).setCellRenderer(ctaCteTableCellRenderer1); masterTable.getColumnModel().getColumn(1).setPreferredWidth(80); masterTable.getColumnModel().getColumn(2).setPreferredWidth(20); masterTable.getColumnModel().getColumn(2).setCellRenderer(numberCellRenderer1); } montoLabel.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N montoLabel.setText("Monto:"); idMiembroLabel.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N idMiembroLabel.setText("Donador:"); saveButton.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N saveButton.setText("Guardar"); saveButton.addActionListener(formListener); refreshButton.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N refreshButton.setText("Cancelar"); refreshButton.addActionListener(formListener); newButton.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N newButton.setText("Nuevo"); org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, listEventos, org.jdesktop.beansbinding.ELProperty.create("${size!=null}"), newButton, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); newButton.addActionListener(formListener); deleteButton.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N deleteButton.setText("Eliminar"); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), deleteButton, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); deleteButton.addActionListener(formListener); idMiembroLabel1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N idMiembroLabel1.setText("Cta. Cte.:"); txtCtaCte.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), txtCtaCte, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); txtCtaCte.addFocusListener(formListener); txtCtaCte.addKeyListener(formListener); idMiembroLabel2.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N idMiembroLabel2.setText("Nombre:"); cboMiembro.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings .createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, listMiembros, cboMiembro); bindingGroup.addBinding(jComboBoxBinding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.idEntidad}"), cboMiembro, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), cboMiembro, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); cboMiembro.addPopupMenuListener(formListener); cboMiembro.addActionListener(formListener); cboMiembro.addKeyListener(formListener); jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLabel1.setText("Total Operaciones:"); lblTotal.setBackground(new java.awt.Color(204, 255, 204)); lblTotal.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N lblTotal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); lblTotal.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); lblTotalOperaciones.setBackground(new java.awt.Color(204, 255, 204)); lblTotalOperaciones.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N lblTotalOperaciones.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLabel3.setText("Total Guaranies:"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(16, 16, 16) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblTotalOperaciones, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 76, Short.MAX_VALUE) .addComponent(lblTotal, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap())); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblTotal, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblTotalOperaciones, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap())); jLabel2.setText("Fecha de Colecta:"); jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, listEventos, cboFechaColecta); bindingGroup.addBinding(jComboBoxBinding); cboFechaColecta.addActionListener(formListener); montoField.setColumns(9); montoField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.NumberFormatter(java.text.NumberFormat.getIntegerInstance()))); montoField.setHorizontalAlignment(javax.swing.JTextField.TRAILING); montoField.setText("0"); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.monto}"), montoField, org.jdesktop.beansbinding.BeanProperty.create("value")); binding.setConverter(integerLongConverter1); bindingGroup.addBinding(binding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), montoField, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); montoField.addFocusListener(formListener); montoField.addMouseListener(formListener); montoField.addActionListener(formListener); montoField.addKeyListener(formListener); jButton2.setText("Actualizar"); jButton2.addActionListener(formListener); montoLabel1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N montoLabel1.setText("Forma de Pago:"); cboForma.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tblFormasDePagoList, cboForma); bindingGroup.addBinding(jComboBoxBinding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.idFormaDePagoPreferida}"), cboForma, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), cboForma, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); cboForma.addActionListener(formListener); cboForma.addKeyListener(formListener); jButton1.setText("Importar de Excel (CtaCte / Importe)"); jButton1.addActionListener(formListener); 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().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(masterScrollPane) .addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(332, 332, 332).addComponent( dateTableCellRenderer1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup().addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cboFechaColecta, javax.swing.GroupLayout.PREFERRED_SIZE, 347, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton1)))) .addGroup(layout.createSequentialGroup().addComponent(montoLabel).addGap(65, 65, 65) .addComponent(montoField, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup().addComponent(idMiembroLabel).addGap(54, 54, 54) .addComponent(idMiembroLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtCtaCte, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(12, 12, 12).addComponent(idMiembroLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cboMiembro, javax.swing.GroupLayout.PREFERRED_SIZE, 324, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2)) .addGroup(layout.createSequentialGroup().addComponent(montoLabel1).addGap(18, 18, 18) .addComponent(cboForma, javax.swing.GroupLayout.PREFERRED_SIZE, 324, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE) .addComponent(newButton, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(refreshButton, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(deleteButton, javax.swing.GroupLayout.Alignment.TRAILING)))) .addContainerGap())); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] { deleteButton, refreshButton }); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(5, 5, 5).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2) .addComponent(cboFechaColecta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(masterScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(idMiembroLabel).addComponent(idMiembroLabel1) .addComponent(txtCtaCte, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(idMiembroLabel2) .addComponent(cboMiembro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(montoLabel1).addComponent(cboForma, 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.BASELINE) .addComponent(montoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(montoLabel)) .addGap(41, 41, 41) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(newButton, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup().addComponent(deleteButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(refreshButton)))) .addGap(131, 131, 131) .addComponent(dateTableCellRenderer1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); bindingGroup.bind(); } // Code for dispatching events from components to event handlers. private class FormListener implements java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.KeyListener, java.awt.event.MouseListener, javax.swing.event.InternalFrameListener, javax.swing.event.PopupMenuListener { FormListener() { } public void actionPerformed(java.awt.event.ActionEvent evt) { if (evt.getSource() == saveButton) { FrameColectasDetalle.this.saveButtonActionPerformed(evt); } else if (evt.getSource() == refreshButton) { FrameColectasDetalle.this.refreshButtonActionPerformed(evt); } else if (evt.getSource() == newButton) { FrameColectasDetalle.this.newButtonActionPerformed(evt); } else if (evt.getSource() == deleteButton) { FrameColectasDetalle.this.deleteButtonActionPerformed(evt); } else if (evt.getSource() == cboMiembro) { FrameColectasDetalle.this.cboMiembroActionPerformed(evt); } else if (evt.getSource() == cboFechaColecta) { FrameColectasDetalle.this.cboFechaColectaActionPerformed(evt); } else if (evt.getSource() == montoField) { FrameColectasDetalle.this.montoFieldActionPerformed(evt); } else if (evt.getSource() == jButton2) { FrameColectasDetalle.this.jButton2ActionPerformed(evt); } else if (evt.getSource() == cboForma) { FrameColectasDetalle.this.cboFormaActionPerformed(evt); } else if (evt.getSource() == jButton1) { FrameColectasDetalle.this.jButton1ActionPerformed(evt); } } public void focusGained(java.awt.event.FocusEvent evt) { if (evt.getSource() == txtCtaCte) { FrameColectasDetalle.this.txtCtaCteFocusGained(evt); } else if (evt.getSource() == montoField) { FrameColectasDetalle.this.montoFieldFocusGained(evt); } } public void focusLost(java.awt.event.FocusEvent evt) { } public void keyPressed(java.awt.event.KeyEvent evt) { } public void keyReleased(java.awt.event.KeyEvent evt) { if (evt.getSource() == txtCtaCte) { FrameColectasDetalle.this.txtCtaCteKeyReleased(evt); } else if (evt.getSource() == cboMiembro) { FrameColectasDetalle.this.cboMiembroKeyReleased(evt); } else if (evt.getSource() == montoField) { FrameColectasDetalle.this.montoFieldKeyReleased(evt); } else if (evt.getSource() == cboForma) { FrameColectasDetalle.this.cboFormaKeyReleased(evt); } } public void keyTyped(java.awt.event.KeyEvent evt) { } public void mouseClicked(java.awt.event.MouseEvent evt) { if (evt.getSource() == montoField) { FrameColectasDetalle.this.montoFieldMouseClicked(evt); } } public void mouseEntered(java.awt.event.MouseEvent evt) { } public void mouseExited(java.awt.event.MouseEvent evt) { } public void mousePressed(java.awt.event.MouseEvent evt) { } public void mouseReleased(java.awt.event.MouseEvent evt) { } public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { if (evt.getSource() == FrameColectasDetalle.this) { FrameColectasDetalle.this.formInternalFrameActivated(evt); } } public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { } public void popupMenuCanceled(javax.swing.event.PopupMenuEvent evt) { } public void popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) { if (evt.getSource() == cboMiembro) { FrameColectasDetalle.this.cboMiembroPopupMenuWillBecomeInvisible(evt); } } public void popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) { } }// </editor-fold>//GEN-END:initComponents @SuppressWarnings("unchecked") void refresh() { try { if (cboFechaColecta.getSelectedItem() != null && entityManager.getTransaction().isActive()) { entityManager.getTransaction().rollback(); entityManager.getTransaction().begin(); queryEventoDetalle.setParameter("eventoId", ((TblEventos) cboFechaColecta.getSelectedItem())); java.util.List data = queryEventoDetalle.getResultList(); data.stream().forEach((entity) -> { entityManager.refresh(entity); }); listEventoDetalle.clear(); listEventoDetalle.addAll(data); entityManager1.getTransaction().rollback(); entityManager1.getTransaction().begin(); data = queryMiembros.getResultList(); data.stream().forEach((entity) -> { entityManager1.refresh(entity); }); listMiembros.clear(); listMiembros.addAll(data); eventListMiembros.clear(); eventListMiembros.addAll(data); lblTotal.setText( String.format("%,d", listEventoDetalle.stream().mapToInt(a -> a.getMonto()).sum())); lblTotalOperaciones.setText( String.format("%,d", listEventoDetalle.stream().mapToInt(a -> a.getMonto()).count())); txtCtaCte.setText(""); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } } private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed try { int[] selected = masterTable.getSelectedRows(); List<TblEventoDetalle> toRemove = new ArrayList<>(selected.length); for (Integer idx = 0; idx < selected.length; idx++) { TblEventoDetalle t = listEventoDetalle.get(masterTable.convertRowIndexToModel(selected[idx])); toRemove.add(t); entityManager.remove(t); } listEventoDetalle.removeAll(toRemove); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_deleteButtonActionPerformed private void newDetalle() { try { TblEventoDetalle t = new TblEventoDetalle(); TblEventos currEvento = (TblEventos) cboFechaColecta.getSelectedItem(); t.setFechahora(currEvento.getFecha().atStartOfDay()); t.setIdCategoriaArticulo(entityManager.find(TblCategoriasArticulos.class, 1)); t.setIdEvento(currEvento); t.setIdUser(currentUser.getUser()); entityManager.persist(t); listEventoDetalle.add(t); Integer row = listEventoDetalle.size() - 1; masterTable.setRowSelectionInterval(row, row); masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true)); cboForma.setSelectedIndex(0); txtCtaCte.requestFocusInWindow(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } } private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_newButtonActionPerformed newDetalle(); }//GEN-LAST:event_newButtonActionPerformed private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed save(); }//GEN-LAST:event_saveButtonActionPerformed private void save() { try { if (((Number) montoField.getValue()).intValue() == 0) { JOptionPane.showMessageDialog(null, "El monto no puede ser 0."); montoField.requestFocusInWindow(); return; } /*TblEventos currentEvento = (TblEventos) cboFechaColecta.getSelectedItem(); actialuazr transferencias y recibos if ((Integer) (long) entityManager.createQuery("SELECT COUNT(t) FROM TblTransferencias t WHERE t.cobrado = true AND t.idEvento.id = " + String.valueOf(currentEvento.getId())).getSingleResult() > 0) { JOptionPane.showMessageDialog(null, "Los cambios realizados a este evento no tendrn efecto sobre los pagos realizados porque ya hay transferencias cobradas para este evento. Deber modificar las transferencias y los recibos manualmente."); } else { Integer executeUpdate = entityManager.createQuery("DELETE FROM TblTransferencias t WHERE t.idEvento.id = " + String.valueOf(currentEvento.getId())).executeUpdate(); executeUpdate = entityManager.createQuery("DELETE FROM TblRecibos t WHERE t.idEvento.id = " + String.valueOf(currentEvento.getId())).executeUpdate(); for (TblEventoDetalle t : listEventoDetalle) { if (t.getIdFormaDePagoPreferida().getId().equals(1)) { TblTransferencias transf = new TblTransferencias(); transf.setFechahora(t.getFechahora()); transf.setConcepto(currentEvento.getDescripcion()); transf.setIdEntidad(t.getIdEntidad()); transf.setIdEvento(currentEvento); transf.setMonto(t.getMonto()); transf.setPorcentajeAporte(currentEvento.getPorcentajeAporte()); transf.setCobrado(false); transf.setIdUser(t.getIdUser()); entityManager.persist(transf); } else { TblRecibos recibo = new TblRecibos(); recibo.setFechahora(t.getFechahora()); recibo.setConcepto(currentEvento.getDescripcion()); recibo.setIdEntidad(t.getIdEntidad()); recibo.setIdEvento(currentEvento); recibo.setMonto(t.getMonto()); recibo.setPorcentajeAporte(currentEvento.getPorcentajeAporte()); recibo.setIdUser(t.getIdUser()); entityManager.persist(recibo); } } } //------------------------------------*/ for (TblEventoDetalle evd : listEventoDetalle) { if (entityManager.contains(evd)) { if (evd.getTblAsientosList().size() == 2) { Integer indexAsientoAporte = -1; Integer indexAsientoDonacion = -1; if (((List<TblAsientos>) evd.getTblAsientosList()).get(0).getIdCuentaContableHaber() .equals(cuentasContablesPorDefecto.getIdCuentaAportes())) { indexAsientoAporte = 0; indexAsientoDonacion = 1; } else if (((List<TblAsientos>) evd.getTblAsientosList()).get(1).getIdCuentaContableHaber() .equals(cuentasContablesPorDefecto.getIdCuentaAportes())) { indexAsientoAporte = 1; indexAsientoDonacion = 0; } ((List<TblAsientos>) evd .getTblAsientosList()) .get(indexAsientoAporte) .setMonto(((Long) (evd.getMonto().longValue() * evd.getIdEvento().getPorcentajeAporte().longValue() / 100)) .intValue()); ((List<TblAsientos>) evd.getTblAsientosList()).get(indexAsientoDonacion) .setMonto(evd.getMonto() - ((List<TblAsientos>) evd.getTblAsientosList()) .get(indexAsientoAporte).getMonto()); entityManager.merge(evd); } else if (evd.getTblAsientosList().isEmpty()) { List<TblAsientos> ts = evd.getTblAsientosList(); if (ts == null) { ts = new LinkedList<>(); evd.setTblAsientosList((List) ts); } TblAsientos asientoAporte = new TblAsientos(); asientoAporte.setFechahora(evd.getIdEvento().getFecha().atStartOfDay()); asientoAporte.setIdCentroDeCostoDebe(evd.getIdEvento().getIdCentroDeCosto()); asientoAporte.setIdCentroDeCostoHaber(evd.getIdEvento().getIdCentroDeCosto()); asientoAporte.setIdCuentaContableDebe(cuentasContablesPorDefecto.getIdCuentaACobrar()); asientoAporte.setIdCuentaContableHaber(cuentasContablesPorDefecto.getIdCuentaAportes()); asientoAporte.setMonto(((Long) (evd.getMonto().longValue() * evd.getIdEvento().getPorcentajeAporte().longValue() / 100)).intValue()); asientoAporte.setIdUser(currentUser.getUser()); ts.add(asientoAporte); TblAsientos asientoDonacion = new TblAsientos(); asientoDonacion.setFechahora(evd.getIdEvento().getFecha().atStartOfDay()); asientoDonacion.setIdCentroDeCostoDebe(evd.getIdEvento().getIdCentroDeCosto()); asientoDonacion.setIdCentroDeCostoHaber(evd.getIdEvento().getIdCentroDeCosto()); asientoDonacion.setIdCuentaContableDebe(cuentasContablesPorDefecto.getIdCuentaACobrar()); asientoDonacion .setIdCuentaContableHaber(cuentasContablesPorDefecto.getIdCuentaDonaciones()); asientoDonacion.setMonto(evd.getMonto() - asientoAporte.getMonto()); asientoDonacion.setIdUser(currentUser.getUser()); ts.add(asientoDonacion); entityManager.merge(evd); } } } entityManager.getTransaction().commit(); entityManager.getTransaction().begin(); refresh(); //newButton.requestFocus(); } catch (RollbackException ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); entityManager.getTransaction().begin(); List<com.gnadenheimer.mg.domain.TblEventoDetalle> merged = new ArrayList<>(listEventoDetalle.size()); listEventoDetalle.stream().forEach((t) -> { merged.add(entityManager.merge(t)); }); listEventoDetalle.clear(); listEventoDetalle.addAll(merged); } catch (Exception exx) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + exx.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), exx); } } private void txtCtaCteKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCtaCteKeyReleased try { /*if (evt.getKeyCode() == KeyEvent.VK_ENTER) { cboMiembro.requestFocusInWindow(); }*/ txtCtaCte.setBackground(Color.white); if (txtCtaCte.getText().length() > 4) { List<TblEntidades> list = listMiembros; Optional<TblEntidades> value = list.stream() .filter(a -> a.getCtacte().equals(Integer.valueOf(txtCtaCte.getText()))).findFirst(); if (value.isPresent()) { cboMiembro.setSelectedItem(value.get()); txtCtaCte.setBackground(Color.green); montoField.requestFocus(); } } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } // TODO add your handling code here: }//GEN-LAST:event_txtCtaCteKeyReleased private void txtCtaCteFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCtaCteFocusGained try { txtCtaCte.selectAll(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } // TODO add your handling code here: }//GEN-LAST:event_txtCtaCteFocusGained private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameActivated refresh(); }//GEN-LAST:event_formInternalFrameActivated @SuppressWarnings("unchecked") private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshButtonActionPerformed refresh(); }//GEN-LAST:event_refreshButtonActionPerformed private void cboFechaColectaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cboFechaColectaActionPerformed try { refresh(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_cboFechaColectaActionPerformed private void montoFieldFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_montoFieldFocusGained montoField.selectAll(); }//GEN-LAST:event_montoFieldFocusGained private void montoFieldMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_montoFieldMouseClicked }//GEN-LAST:event_montoFieldMouseClicked private void montoFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_montoFieldActionPerformed }//GEN-LAST:event_montoFieldActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed try { List data = queryMiembros.getResultList(); data.stream().forEach((entity) -> { entityManager1.refresh(entity); }); listMiembros.clear(); listMiembros.addAll(data); eventListMiembros.clear(); eventListMiembros.addAll(data); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_jButton2ActionPerformed private void cboMiembroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cboMiembroActionPerformed try { if (cboMiembro.getSelectedItem() != null) { txtCtaCte.setText(((TblEntidades) cboMiembro.getSelectedItem()).getCtacte().toString()); } else { txtCtaCte.setText(""); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_cboMiembroActionPerformed private void cboFormaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cboFormaActionPerformed // TODO add your handling code here: }//GEN-LAST:event_cboFormaActionPerformed private void montoFieldKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_montoFieldKeyReleased try { if (evt.getKeyCode() == KeyEvent.VK_ENTER) { if (((Number) montoField.getValue()).intValue() == 0) { JOptionPane.showMessageDialog(null, "El monto no puede ser 0."); montoField.requestFocusInWindow(); return; } if (cboMiembro.getSelectedItem() == null) { JOptionPane.showMessageDialog(null, "No ha eligido un donador."); txtCtaCte.requestFocusInWindow(); return; } save(); Integer reply = JOptionPane.showConfirmDialog(null, "Desea crear un nuevo registro?", title, JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION) { newDetalle(); } } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_montoFieldKeyReleased private void cboFormaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_cboFormaKeyReleased try { if (evt.getKeyCode() == KeyEvent.VK_ENTER) { montoField.requestFocusInWindow(); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_cboFormaKeyReleased private void cboMiembroKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_cboMiembroKeyReleased }//GEN-LAST:event_cboMiembroKeyReleased private void cboMiembroPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {//GEN-FIRST:event_cboMiembroPopupMenuWillBecomeInvisible }//GEN-LAST:event_cboMiembroPopupMenuWillBecomeInvisible private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed try { JFileChooser fc = new JFileChooser(); Integer returnVal = fc.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file)); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row; Integer rows; // No of rows rows = sheet.getPhysicalNumberOfRows(); Integer cols = 0; // No of columns Integer tmp = 0; // This trick ensures that we get the data properly even if it doesn't start from first few rows for (Integer i = 0; i < 10 || i < rows; i++) { row = sheet.getRow(i); if (row != null) { tmp = sheet.getRow(i).getPhysicalNumberOfCells(); if (tmp > cols) { cols = tmp; } } } for (Integer r = 1; r <= rows; r++) { row = sheet.getRow(r); if (row != null) { TblEventoDetalle t = new TblEventoDetalle(); TblEventos currEvento = (TblEventos) cboFechaColecta.getSelectedItem(); t.setFechahora(currEvento.getFecha().atStartOfDay()); t.setIdCategoriaArticulo(entityManager.find(TblCategoriasArticulos.class, 1)); t.setIdEvento(currEvento); t.setIdUser(currentUser.getUser()); Integer ctaCte = 0; if (row.getCell(0).getCellType() == Cell.CELL_TYPE_STRING) { if (!row.getCell(0).getStringCellValue().replaceAll("[^\\d.]", "").equals("")) { ctaCte = Integer .valueOf(row.getCell(0).getStringCellValue().replaceAll("[^\\d.]", "")); } } else if (row.getCell(0).getCellType() == Cell.CELL_TYPE_NUMERIC) { ctaCte = (int) (row.getCell(0).getNumericCellValue()); } if (ctaCte != 0) { final Integer cc = ctaCte; List<TblEntidades> list = listMiembros; Optional<TblEntidades> value = list.stream().filter(a -> a.getCtacte().equals(cc)) .findFirst(); if (value.isPresent()) { t.setIdEntidad(value.get()); t.setIdFormaDePagoPreferida(tblFormasDePagoList.get(0)); if (row.getCell(1).getCellType() == Cell.CELL_TYPE_NUMERIC) { t.setMonto((int) (row.getCell(1).getNumericCellValue())); entityManager.persist(t); listEventoDetalle.add(t); } } else { JOptionPane.showMessageDialog(null, "No hay entidad registrada con Cta.Cte N " + FormatCtaCte.format(ctaCte)); } } } } } } catch (Exception ex) { JOptionPane.showMessageDialog(null, Thread.currentThread().getStackTrace()[1].getMethodName() + " - " + ex.getMessage()); LOGGER.error(Thread.currentThread().getStackTrace()[1].getMethodName(), ex); } }//GEN-LAST:event_jButton1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private com.gnadenheimer.mg.utils.CategoriasConverter categoriasConverter1; private javax.swing.JComboBox cboFechaColecta; private javax.swing.JComboBox cboForma; private javax.swing.JComboBox cboMiembro; private com.gnadenheimer.mg.utils.CtaCteTableCellRenderer ctaCteTableCellRenderer1; private com.gnadenheimer.mg.utils.DateTimeTableCellRenderer dateTableCellRenderer1; private com.gnadenheimer.mg.utils.DateTimeTableCellRenderer dateTimeTableCellRenderer1; private com.gnadenheimer.mg.utils.DateTimeToStringConverter dateTimeToStringConverter1; private javax.swing.JButton deleteButton; private javax.persistence.EntityManager entityManager; private javax.persistence.EntityManager entityManager1; private javax.swing.JLabel idMiembroLabel; private javax.swing.JLabel idMiembroLabel1; private javax.swing.JLabel idMiembroLabel2; private com.gnadenheimer.mg.utils.IntegerLongConverter integerLongConverter1; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private org.jdesktop.swingx.JXDatePicker jXDatePicker1; private javax.swing.JLabel lblTotal; private javax.swing.JLabel lblTotalOperaciones; private java.util.List<com.gnadenheimer.mg.domain.TblEventoDetalle> listEventoDetalle; private java.util.List<com.gnadenheimer.mg.domain.TblEventos> listEventos; private java.util.List listMiembros; private javax.swing.JScrollPane masterScrollPane; private javax.swing.JTable masterTable; private javax.swing.JFormattedTextField montoField; private javax.swing.JLabel montoLabel; private javax.swing.JLabel montoLabel1; private javax.swing.JButton newButton; private com.gnadenheimer.mg.utils.NormalTableCellRenderer normalTableCellRenderer1; private com.gnadenheimer.mg.utils.NumberCellRenderer numberCellRenderer1; private javax.persistence.Query queryEventoDetalle; private javax.persistence.Query queryEventos; private javax.persistence.Query queryMiembros; private javax.swing.JButton refreshButton; private javax.swing.JButton saveButton; private java.util.List<com.gnadenheimer.mg.domain.TblCategoriasArticulos> tblCategoriasArticulosList; private javax.persistence.Query tblCategoriasArticulosQuery; private java.util.List<com.gnadenheimer.mg.domain.TblFormasDePago> tblFormasDePagoList; private javax.persistence.Query tblFormasDePagoQuery; private javax.swing.JTextField txtCtaCte; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables public static void main(String[] args) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE); for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(FrameColectasDetalle.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(FrameColectasDetalle.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(FrameColectasDetalle.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(FrameColectasDetalle.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> //</editor-fold> /* Create and display the form */ EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setContentPane(new FrameColectasDetalle()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }); } }