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 vistas; import Controlador.GastosExtrasDao; import Controlador.GastosExtrasDaoImpl; import Controlador.ProductoDao; import Controlador.ProductoDaoImpl; import javax.swing.DefaultComboBoxModel; import Controlador.UsuarioDao; import Controlador.UsuarioDaoImpl; import Modelo.Usuario; import java.awt.Color; import java.awt.Desktop; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; import java.io.FileOutputStream; import java.sql.Date; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ComboBoxModel; import javax.swing.JComboBox; import javax.swing.JOptionPane; import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.table.DefaultTableModel; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.RowFilter; import javax.swing.table.TableRowSorter; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * * @author alonso */ public class MantenedorReportes extends javax.swing.JFrame { /** * Creates new form MantenedorReportes */ public MantenedorReportes() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); cbxFecha = new javax.swing.JCheckBox(); cbxUsuario = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); cbSeleccionUsuario = new javax.swing.JComboBox(); jLabel3 = new javax.swing.JLabel(); btnConsultarGastos = new javax.swing.JButton(); btnExportarGastos = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel(); lblTotalGastos = new javax.swing.JLabel(); tbGastos = new javax.swing.JScrollPane(); tbGastosExtras = new javax.swing.JTable(); calDesdeGastos = new com.toedter.calendar.JDateChooser(); calHastaGastos = new com.toedter.calendar.JDateChooser(); pbGastosExtras = new javax.swing.JProgressBar(); jPanel2 = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); btnConsultarProductos = new javax.swing.JButton(); rbtnMayorAMenorProductos = new javax.swing.JRadioButton(); rbtnMenorAMayorProductos = new javax.swing.JRadioButton(); btnExportarProductos = new javax.swing.JButton(); txtFiltroNombre = new javax.swing.JTextField(); jScrollPane2 = new javax.swing.JScrollPane(); tbProductos = new javax.swing.JTable(); calDesdeProductos = new com.toedter.calendar.JDateChooser(); calHastaProductos = new com.toedter.calendar.JDateChooser(); jLabel5 = new javax.swing.JLabel(); pbProductos = new javax.swing.JProgressBar(); jLabel11 = new javax.swing.JLabel(); lblComboBox = new javax.swing.JLabel(); cbxProductosUnidad = new javax.swing.JCheckBox(); cbxProductosPeso = new javax.swing.JCheckBox(); jLabel12 = new javax.swing.JLabel(); lblProductosTipo = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); btnConsultarVendedores = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); jPanel7 = new javax.swing.JPanel(); jPanel6 = new javax.swing.JPanel(); lblAvisoVendedores = new javax.swing.JLabel(); jScrollPane3 = new javax.swing.JScrollPane(); tbVendedores = new javax.swing.JTable(); calDesdeVendedores = new com.toedter.calendar.JDateChooser(); calHastaVendedores = new com.toedter.calendar.JDateChooser(); btnExportarVendedores = new javax.swing.JButton(); pbVendedores = new javax.swing.JProgressBar(); jLabel10 = new javax.swing.JLabel(); rbtnMayoresVentas = new javax.swing.JRadioButton(); rbtnMenoresVentas = new javax.swing.JRadioButton(); jPanel8 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); tbInventario = new javax.swing.JTable(); jLabel13 = new javax.swing.JLabel(); txtFiltroInventario = new javax.swing.JTextField(); btnConsultarInvetarios = new javax.swing.JButton(); btnExportarInventario = new javax.swing.JButton(); pbInventario = new javax.swing.JProgressBar(); cbxMayoraMenorInventario = new javax.swing.JCheckBox(); cbxMenoramayorInventario = new javax.swing.JCheckBox(); lblOrdenInventario = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); lblSeleccioncbxInventario = new javax.swing.JLabel(); lblAvisoInventario = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setFocusTraversalPolicyProvider(true); cbxFecha.setText("Ver por fecha"); cbxFecha.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxFechaActionPerformed(evt); } }); cbxUsuario.setText("Ver por usuario"); cbxUsuario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxUsuarioActionPerformed(evt); } }); jLabel1.setText("Desde:"); jLabel2.setText("Hasta:"); cbSeleccionUsuario.setMaximumRowCount(30); cbSeleccionUsuario.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Seleccione Usuario" })); cbSeleccionUsuario.setToolTipText(""); cbSeleccionUsuario.setEnabled(false); cbSeleccionUsuario.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cbSeleccionUsuarioItemStateChanged(evt); } }); cbSeleccionUsuario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbSeleccionUsuarioActionPerformed(evt); } }); cbSeleccionUsuario.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { cbSeleccionUsuarioKeyPressed(evt); } }); jLabel3.setText("Seleccione usuario:"); btnConsultarGastos.setText("Consultar"); btnConsultarGastos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConsultarGastosActionPerformed(evt); } }); btnExportarGastos.setText("Exportar a Excel"); btnExportarGastos.setEnabled(false); btnExportarGastos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportarGastosActionPerformed(evt); } }); jLabel4.setText("Total gastos extras: $"); lblTotalGastos.setText("0"); tbGastosExtras.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "n", "Vendedor", "Fecha", "Descripcin", "Valor" }) { boolean[] canEdit = new boolean[] { false, false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); tbGastos.setViewportView(tbGastosExtras); calDesdeGastos.setEnabled(false); calDesdeGastos.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { calDesdeGastosKeyTyped(evt); } }); calHastaGastos.setEnabled(false); 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(21, 21, 21).addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cbxFecha).addComponent(cbxUsuario)) .addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(26, 26, 26) .addComponent(jLabel3) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cbSeleccionUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup().addGap(22, 22, 22) .addComponent(jLabel1) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(calDesdeGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 190, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(50, 50, 50).addComponent(jLabel2).addGap(18, 18, 18) .addComponent(calHastaGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(33, 33, 33) .addComponent(btnConsultarGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(btnExportarGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(lblTotalGastos)))) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(tbGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 986, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent( pbGastosExtras, javax.swing.GroupLayout.PREFERRED_SIZE, 986, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(293, Short.MAX_VALUE))); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(18, 18, 18).addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnConsultarGastos).addComponent(btnExportarGastos)) .addComponent(cbxFecha)) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2).addComponent(calHastaGastos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(calDesdeGastos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cbxUsuario) .addComponent(cbSeleccionUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4).addComponent(lblTotalGastos)) .addGap(30, 30, 30) .addComponent(tbGastos, javax.swing.GroupLayout.PREFERRED_SIZE, 271, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(39, 39, 39) .addComponent(pbGastosExtras, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(88, Short.MAX_VALUE))); jTabbedPane1.addTab("Gastos extras", jPanel1); jLabel6.setText("Desde:"); jLabel7.setText("Hasta:"); btnConsultarProductos.setText("Consultar"); btnConsultarProductos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConsultarProductosActionPerformed(evt); } }); rbtnMayorAMenorProductos.setText("Mayor a menor"); rbtnMayorAMenorProductos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbtnMayorAMenorProductosActionPerformed(evt); } }); rbtnMenorAMayorProductos.setText("Menor a mayor"); rbtnMenorAMayorProductos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbtnMenorAMayorProductosActionPerformed(evt); } }); btnExportarProductos.setText("Exportar a Excel"); btnExportarProductos.setEnabled(false); btnExportarProductos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportarProductosActionPerformed(evt); } }); txtFiltroNombre.setEnabled(false); txtFiltroNombre.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtFiltroNombreActionPerformed(evt); } }); txtFiltroNombre.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { txtFiltroNombreKeyReleased(evt); } }); tbProductos.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "n", "Codigo", "Nombre", "Marca", "Precio Compra", "Precio Venta", "Utilidad Unitaria", "Unidades vendidas", "Peso vendido (Kg)", "Utilidad Final", "Perodo anterior" })); jScrollPane2.setViewportView(tbProductos); jLabel5.setText("Productos vendidos por:"); jLabel11.setText("Filtrar por nombre:"); lblComboBox.setFont(new java.awt.Font("Liberation Mono", 1, 14)); // NOI18N lblComboBox.setForeground(new java.awt.Color(255, 0, 0)); cbxProductosUnidad.setText("Unidad"); cbxProductosUnidad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxProductosUnidadActionPerformed(evt); } }); cbxProductosPeso.setText("Peso"); cbxProductosPeso.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxProductosPesoActionPerformed(evt); } }); jLabel12.setText("Ordenados de:"); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addContainerGap().addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 190, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cbxProductosUnidad).addGap(18, 18, 18) .addComponent(cbxProductosPeso).addGap(44, 44, 44) .addComponent(lblProductosTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 369, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel4Layout.createSequentialGroup().addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(calDesdeProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(25, 25, 25).addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(calHastaProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(58, 58, 58) .addComponent(btnConsultarProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(btnExportarProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel4Layout.createSequentialGroup().addComponent(jLabel12) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbtnMayorAMenorProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbtnMenorAMayorProductos, javax.swing.GroupLayout.PREFERRED_SIZE, 168, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 522, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 354, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup().addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel4Layout.createSequentialGroup().addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtFiltroNombre, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 1339, Short.MAX_VALUE) .addComponent(pbProductos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))); jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addGap(2, 2, 2).addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5).addComponent(cbxProductosUnidad) .addComponent(cbxProductosPeso)) .addComponent(lblProductosTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnConsultarProductos).addComponent(btnExportarProductos)) .addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(calHastaProductos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(calDesdeProductos, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addComponent(jLabel6)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel12).addComponent(rbtnMayorAMenorProductos) .addComponent(rbtnMenorAMayorProductos)) .addComponent(lblComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(14, 14, 14) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11).addComponent(txtFiltroNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(14, 14, 14) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 271, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(31, 31, 31) .addComponent(pbProductos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(65, Short.MAX_VALUE))); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 41, Short.MAX_VALUE))); jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); jTabbedPane1.addTab("Productos", jPanel2); jLabel8.setText("Desde:"); jLabel9.setText("Hasta:"); btnConsultarVendedores.setText("Consultar"); btnConsultarVendedores.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConsultarVendedoresActionPerformed(evt); } }); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 185, Short.MAX_VALUE)); jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 122, Short.MAX_VALUE)); javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 134, Short.MAX_VALUE)); jPanel7Layout.setVerticalGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 100, Short.MAX_VALUE)); lblAvisoVendedores.setFont(new java.awt.Font("Liberation Mono", 1, 15)); // NOI18N lblAvisoVendedores.setForeground(new java.awt.Color(255, 0, 0)); javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout .setHorizontalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup().addContainerGap() .addComponent(lblAvisoVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, 503, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(78, Short.MAX_VALUE))); jPanel6Layout.setVerticalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup().addGap(30, 30, 30) .addComponent(lblAvisoVendedores, javax.swing.GroupLayout.DEFAULT_SIZE, 26, Short.MAX_VALUE) .addContainerGap())); tbVendedores.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "n", "Vendedor", "Ventas totales", "Utilidades", "Das trabajados", "Horas trabajadas" })); jScrollPane3.setViewportView(tbVendedores); btnExportarVendedores.setText("Exportar a Excel"); btnExportarVendedores.setEnabled(false); btnExportarVendedores.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportarVendedoresActionPerformed(evt); } }); jLabel10.setText("Ordernar por:"); rbtnMayoresVentas.setText("Mayores ventas"); rbtnMayoresVentas.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbtnMayoresVentasActionPerformed(evt); } }); rbtnMenoresVentas.setText("Menores ventas"); rbtnMenoresVentas.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbtnMenoresVentasActionPerformed(evt); } }); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel3Layout .createSequentialGroup().addGap(20, 20, 20).addGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( jPanel3Layout.createSequentialGroup().addComponent(jLabel8) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(calDesdeVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(28, 28, 28).addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent( calHastaVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, 198, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(43, 43, 43) .addComponent(btnConsultarVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(btnExportarVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel3Layout.createSequentialGroup().addGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(pbVendedores, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent( jLabel10, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup() .addComponent(rbtnMayoresVentas) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbtnMenoresVentas)) .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 936, Short.MAX_VALUE)) .addGap(505, 505, 505) .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(194, 194, 194) .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup().addGap(21, 21, 21).addGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8).addComponent(jLabel9).addComponent(btnConsultarVendedores) .addComponent(btnExportarVendedores)) .addComponent(calDesdeVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(calHastaVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel3Layout.createSequentialGroup().addComponent(jLabel10) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(rbtnMayoresVentas).addComponent(rbtnMenoresVentas)) .addGap(18, 18, 18).addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(32, 32, 32) .addComponent(pbVendedores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(86, Short.MAX_VALUE))); jTabbedPane1.addTab("Vendedores", jPanel3); tbInventario.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "n", "Codigo", "Nombre", "Marca", "Stock" })); jScrollPane1.setViewportView(tbInventario); jLabel13.setText("Filtrar por nombre:"); txtFiltroInventario.setEnabled(false); txtFiltroInventario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtFiltroInventarioActionPerformed(evt); } }); txtFiltroInventario.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { txtFiltroInventarioKeyReleased(evt); } }); btnConsultarInvetarios.setText("Consultar"); btnConsultarInvetarios.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConsultarInvetariosActionPerformed(evt); } }); btnExportarInventario.setText("Exportar Excel"); btnExportarInventario.setEnabled(false); btnExportarInventario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportarInventarioActionPerformed(evt); } }); cbxMayoraMenorInventario.setText("Mayor a menor"); cbxMayoraMenorInventario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxMayoraMenorInventarioActionPerformed(evt); } }); cbxMenoramayorInventario.setText("Menor a mayor"); cbxMenoramayorInventario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbxMenoramayorInventarioActionPerformed(evt); } }); lblOrdenInventario.setText("Ordernar inventario de:"); lblAvisoInventario.setFont(new java.awt.Font("Liberation Mono", 1, 15)); // NOI18N lblAvisoInventario.setForeground(new java.awt.Color(255, 0, 0)); javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8); jPanel8.setLayout(jPanel8Layout); jPanel8Layout.setHorizontalGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addContainerGap().addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addComponent(jLabel13) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtFiltroInventario, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 439, Short.MAX_VALUE) .addComponent(lblSeleccioncbxInventario, javax.swing.GroupLayout.PREFERRED_SIZE, 441, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(212, Short.MAX_VALUE)) .addGroup(jPanel8Layout.createSequentialGroup().addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pbInventario, javax.swing.GroupLayout.PREFERRED_SIZE, 918, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 918, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel8Layout.createSequentialGroup().addComponent(lblOrdenInventario) .addGap(18, 18, 18) .addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(cbxMenoramayorInventario).addGap(98, 98, 98) .addComponent(jLabel14)) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(cbxMayoraMenorInventario).addGap(89, 89, 89) .addComponent(btnConsultarInvetarios, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(lblAvisoInventario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(18, 18, 18).addComponent(btnExportarInventario, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 0, Short.MAX_VALUE))))); jPanel8Layout.setVerticalGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addGap(16, 16, 16) .addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnConsultarInvetarios).addComponent(btnExportarInventario)) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel8Layout.createSequentialGroup().addContainerGap().addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblOrdenInventario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(cbxMayoraMenorInventario)))) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup().addGap(3, 3, 3) .addComponent(cbxMenoramayorInventario).addGap(26, 26, 26) .addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel13).addComponent(txtFiltroInventario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblAvisoInventario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(jPanel8Layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel8Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblSeleccioncbxInventario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(jLabel14).addGap(0, 0, Short.MAX_VALUE))))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(32, 32, 32) .addComponent(pbInventario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(95, 95, 95))); jTabbedPane1.addTab("Inventario", jPanel8); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1412, javax.swing.GroupLayout.PREFERRED_SIZE)); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTabbedPane1)); pack(); }// </editor-fold>//GEN-END:initComponents private void cbSeleccionUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSeleccionUsuarioActionPerformed // TODO add your handling code here: cbSeleccionUsuario.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { cbSeleccionUsuario.getSelectedIndex(); } } }); }//GEN-LAST:event_cbSeleccionUsuarioActionPerformed private void btnConsultarGastosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConsultarGastosActionPerformed // TODO add your handling code here: int numFilas = tbGastosExtras.getRowCount(); //Si hay registros de anterioridad, entonces seteamos el jtable para no juntar los registros de ambas consultas. if (numFilas >= 1) { DefaultTableModel tablaGastos = (DefaultTableModel) tbGastosExtras.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaGastos.removeRow(0); } tbGastosExtras.setModel(tablaGastos); lblTotalGastos.setText("0"); btnExportarGastos.setEnabled(false); } //btnExportarGastos.setEnabled(true); if (Color.RED == calDesdeGastos.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Desde:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } if (Color.RED == calHastaGastos.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Hasta:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } //Gastos por fechas. if (cbxFecha.isSelected() && !cbxUsuario.isSelected()) { if (calDesdeGastos.getDate() == null || calHastaGastos.getDate() == null) { JOptionPane.showMessageDialog(null, "Debe rellenar ambos campos porfavor", "Precaucin", JOptionPane.WARNING_MESSAGE); return; } String formato = calDesdeGastos.getDateFormatString(); java.util.Date date = calDesdeGastos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); String formato2 = calHastaGastos.getDateFormatString(); java.util.Date date2 = calHastaGastos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); if (compAno <= -1) //Si el ao es menor, no se compara el mes ni dia. { System.out.println("ao menor, entonces fecha valida: " + compAno); try { GastosExtrasDao ge = new GastosExtrasDaoImpl(); ResultSet rsFinal; rsFinal = ge.gastosPorFecha(fechaDesdeReal, fechaHastaReal); if (rsFinal == null) { btnExportarGastos.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay gastos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarGastos.setEnabled(true); } DefaultTableModel tablaGastos = (DefaultTableModel) tbGastosExtras.getModel(); Object[] gasto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; gasto[0] = contador; gasto[1] = rsFinal.getObject(1); gasto[2] = rsFinal.getObject(2); gasto[3] = rsFinal.getObject(3); int val = rsFinal.getInt(4); String ff = formateador.format(val); gasto[4] = ff; int total = 0; total = total + Integer.parseInt(rsFinal.getObject("total").toString()); tablaGastos.addRow(gasto); while (rsFinal.next()) { int cont = contador++; ff = formateador.format(cont); gasto[0] = ff; gasto[1] = rsFinal.getObject(1); gasto[2] = rsFinal.getObject(2); gasto[3] = rsFinal.getObject(3); val = rsFinal.getInt(4); ff = formateador.format(val); gasto[4] = ff; total = total + Integer.parseInt(rsFinal.getObject("total").toString()); tablaGastos.addRow(gasto); } tbGastosExtras.setModel(tablaGastos); String texto = String.valueOf(total); ff = formateador.format(Double.parseDouble(texto)); lblTotalGastos.setText(String.valueOf(ff)); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error en el metodo consultar por fecha", "Error metodo", JOptionPane.ERROR_MESSAGE); } } else if (compAno == 0) //Si el ao es igual, se comparara, mes y dia. { if (compMes <= -1 || compMes == 0) //Si el mes es menor o ogial, esta bien. { if (compDia <= -1 || compDia == 0) //Si el dia es menor o igual esta bien. { try { GastosExtrasDao ge = new GastosExtrasDaoImpl(); ResultSet rsFinal; rsFinal = ge.gastosPorFecha(fechaDesdeReal, fechaHastaReal); if (rsFinal == null) { btnExportarGastos.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay gastos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarGastos.setEnabled(true); } DefaultTableModel tablaGastos = (DefaultTableModel) tbGastosExtras.getModel(); Object[] gasto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; gasto[0] = contador; gasto[1] = rsFinal.getObject(1); gasto[2] = rsFinal.getObject(2); gasto[3] = rsFinal.getObject(3); int val = rsFinal.getInt(4); String ff = formateador.format(val); gasto[4] = ff; int total = 0; total = total + Integer.parseInt(rsFinal.getObject("total").toString()); tablaGastos.addRow(gasto); while (rsFinal.next()) { int cont = contador++; ff = formateador.format(cont); gasto[0] = ff; gasto[0] = contador; gasto[1] = rsFinal.getObject(1); gasto[2] = rsFinal.getObject(2); gasto[3] = rsFinal.getObject(3); val = rsFinal.getInt(4); ff = formateador.format(val); gasto[4] = ff; total = total + Integer.parseInt(rsFinal.getObject("total").toString()); tablaGastos.addRow(gasto); } tbGastosExtras.setModel(tablaGastos); String texto = String.valueOf(total); ff = formateador.format(Double.parseDouble(texto)); lblTotalGastos.setText(String.valueOf(ff)); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error en el metodo consultar por fecha", "Error metodo", JOptionPane.ERROR_MESSAGE); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } //Gastos solo por usuario. if (cbxUsuario.isSelected() && !cbxFecha.isSelected()) { int nombreUsuario = cbSeleccionUsuario.getSelectedIndex() + 1; UsuarioDao usuario = new UsuarioDaoImpl(); //int idUser = usuario.idUsuario(nombreUsuario); System.out.println("nomuser: " + nombreUsuario); GastosExtrasDao gastos2 = new GastosExtrasDaoImpl(); //Gastos por usuario pasandole el NOMBRE DEL USUARIO. try { ResultSet rsFinal2 = gastos2.gastosPorUsuario(nombreUsuario); DefaultTableModel tablaGastos2 = (DefaultTableModel) tbGastosExtras.getModel(); if (rsFinal2 == null) { btnExportarGastos.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay gastos de este usuario", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarGastos.setEnabled(true); } Object[] GastoUser = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; GastoUser[0] = contador; GastoUser[1] = rsFinal2.getObject(1); GastoUser[2] = rsFinal2.getObject(2); GastoUser[3] = rsFinal2.getObject(3); int val = rsFinal2.getInt(4); String ff = formateador.format(val); GastoUser[4] = ff; int total = 0; total = total + Integer.parseInt(rsFinal2.getObject("total").toString()); tablaGastos2.addRow(GastoUser); while (rsFinal2.next()) { int cont = contador++; ff = formateador.format(cont); GastoUser[0] = ff; GastoUser[0] = contador; GastoUser[1] = rsFinal2.getObject(1); GastoUser[2] = rsFinal2.getObject(2); GastoUser[3] = rsFinal2.getObject(3); val = rsFinal2.getInt(4); ff = formateador.format(val); GastoUser[4] = ff; total = total + Integer.parseInt(rsFinal2.getObject("total").toString()); tablaGastos2.addRow(GastoUser); } tbGastosExtras.setModel(tablaGastos2); String texto = String.valueOf(total); ff = formateador.format(Double.parseDouble(texto)); lblTotalGastos.setText(String.valueOf(ff)); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error en el metodo consultar por fecha", "Error metodo", JOptionPane.ERROR_MESSAGE); } } //Gastos por usuario y fechas. if (cbxUsuario.isSelected() && cbxFecha.isSelected()) { if (calDesdeGastos.getDate() == null || calHastaGastos.getDate() == null) { JOptionPane.showMessageDialog(null, "Debe rellenar ambos campos porfavor", "Precaucin", JOptionPane.WARNING_MESSAGE); return; } String formato = calDesdeGastos.getDateFormatString(); java.util.Date date = calDesdeGastos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaGastos.getDateFormatString(); java.util.Date date2 = calHastaGastos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); if (compAno <= -1) //Si el ao Desde: es menor que el ao Hasta: . { try { UsuarioDao user2 = new UsuarioDaoImpl(); GastosExtrasDao gastosNew = new GastosExtrasDaoImpl(); int nombUser = cbSeleccionUsuario.getSelectedIndex() + 1; //int idUser = user2.idUsuario(nombUser); System.out.println("nombuser: " + nombUser); ResultSet rsNew = gastosNew.gastosUsuarioYFecha(fechaDesdeReal, fechaHastaReal, nombUser); DefaultTableModel tablaGastos2 = (DefaultTableModel) tbGastosExtras.getModel(); if (rsNew == null) { btnExportarGastos.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay gastos de este usuario en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarGastos.setEnabled(true); } Object[] object = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int j = 1; //contador. object[0] = j; object[1] = rsNew.getObject(1); object[2] = rsNew.getObject(2); object[3] = rsNew.getObject(3); int val = rsNew.getInt(4); String ff = formateador.format(val); object[4] = ff; tablaGastos2.addRow(object); int total = 0; total = total + Integer.parseInt(rsNew.getObject("total").toString()); while (rsNew.next()) { int cont = j++; ff = formateador.format(cont); object[0] = ff; object[0] = j; object[1] = rsNew.getObject(1); object[2] = rsNew.getObject(2); object[3] = rsNew.getObject(3); val = rsNew.getInt(4); ff = formateador.format(val); object[4] = ff; total = total + Integer.parseInt(rsNew.getObject("total").toString()); tablaGastos2.addRow(object); } tbGastosExtras.setModel(tablaGastos2); String texto = String.valueOf(total); ff = formateador.format(Double.parseDouble(texto)); lblTotalGastos.setText(String.valueOf(ff)); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error en el metodo consultar por fecha y usuario", "Error metodo", JOptionPane.ERROR_MESSAGE); } } else if (compAno == 0) //Si son el mismo ao. { if (compMes <= -1 || compMes == 0) //Si el mes Desde: es menor o igual que el mes Hasta: . { if (compDia <= -1 || compDia == 0) //Si el dia Desde: es menor o igual que el dia Hasta: . { try { UsuarioDao user2 = new UsuarioDaoImpl(); GastosExtrasDao gastosNew = new GastosExtrasDaoImpl(); int nombUser = cbSeleccionUsuario.getSelectedIndex() + 1; //int idUser = user2.idUsuario(nombUser); System.out.println("nombuser: " + nombUser); ResultSet rsNew = gastosNew.gastosUsuarioYFecha(fechaDesdeReal, fechaHastaReal, nombUser); DefaultTableModel tablaGastos2 = (DefaultTableModel) tbGastosExtras.getModel(); if (rsNew == null) { btnExportarGastos.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay gastos de este usuario en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarGastos.setEnabled(true); } Object[] object = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int j = 1; object[0] = j; object[1] = rsNew.getObject(1); object[2] = rsNew.getObject(2); object[3] = rsNew.getObject(3); int val = rsNew.getInt(4); String ff = formateador.format(val); object[4] = ff; tablaGastos2.addRow(object); int total = 0; total = total + Integer.parseInt(rsNew.getObject("total").toString()); while (rsNew.next()) { int cont = j++; ff = formateador.format(cont); object[0] = ff; object[0] = j; object[1] = rsNew.getObject(1); object[2] = rsNew.getObject(2); object[3] = rsNew.getObject(3); val = rsNew.getInt(4); ff = formateador.format(val); object[4] = ff; total = total + Integer.parseInt(rsNew.getObject("total").toString()); tablaGastos2.addRow(object); } tbGastosExtras.setModel(tablaGastos2); String texto = String.valueOf(total); ff = formateador.format(Double.parseDouble(texto)); lblTotalGastos.setText(String.valueOf(ff)); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error en el metodo consultar por fecha y usuario", "Error metodo", JOptionPane.ERROR_MESSAGE); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else //Si el ao Desde: es mayor que el ao Hasta: . { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } }//GEN-LAST:event_btnConsultarGastosActionPerformed private void cbxFechaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxFechaActionPerformed // TODO add your handling code here: if (cbxFecha.isSelected()) { btnConsultarGastos.setEnabled(true); calDesdeGastos.setEnabled(true); calHastaGastos.setEnabled(true); } if (!cbxFecha.isSelected()) { calDesdeGastos.setEnabled(false); calHastaGastos.setEnabled(false); } }//GEN-LAST:event_cbxFechaActionPerformed private void cbxUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxUsuarioActionPerformed // TODO add your handling code here: if (cbxUsuario.isSelected()) { btnConsultarGastos.setEnabled(true); cbSeleccionUsuario.setEnabled(true); try { final DefaultComboBoxModel modeloCombo; modeloCombo = new DefaultComboBoxModel(); UsuarioDao usuarioDao = new UsuarioDaoImpl(); ResultSet result = usuarioDao.todosUsuarios(); //Tengo la lista de usuarios en un ResultSet. modeloCombo.addElement(result.getObject("nombre")); //1er elemento del ResultSet. while (result.next()) { modeloCombo.addElement(result.getObject("nombre")); } cbSeleccionUsuario.setModel(modeloCombo); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } if (!cbxUsuario.isSelected()) { cbSeleccionUsuario.setEnabled(false); //lblUsuarioGastos.setText("S/N"); } }//GEN-LAST:event_cbxUsuarioActionPerformed private void cbSeleccionUsuarioKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_cbSeleccionUsuarioKeyPressed // TODO add your handling code here: }//GEN-LAST:event_cbSeleccionUsuarioKeyPressed private void cbSeleccionUsuarioItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbSeleccionUsuarioItemStateChanged // TODO add your handling code here: }//GEN-LAST:event_cbSeleccionUsuarioItemStateChanged private void calDesdeGastosKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_calDesdeGastosKeyTyped // TODO add your handling code here: evt.consume(); }//GEN-LAST:event_calDesdeGastosKeyTyped private void btnExportarGastosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportarGastosActionPerformed Thread t; t = new Thread() { @Override public void run() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet hoja = workbook.createSheet(); XSSFRow fila = hoja.createRow(0); fila.createCell(0).setCellValue("N"); fila.createCell(1).setCellValue("Vendedor"); fila.createCell(2).setCellValue("Fecha (Ao-Mes-Da)"); fila.createCell(3).setCellValue("Descripcin"); fila.createCell(4).setCellValue("Valor"); pbGastosExtras.setMaximum(tbGastosExtras.getRowCount()); XSSFRow filas; Rectangle rect; for (int i = 0; i < tbGastosExtras.getRowCount(); i++) { rect = tbGastosExtras.getCellRect(i, 0, true); tbGastosExtras.scrollRectToVisible(rect); tbGastosExtras.setRowSelectionInterval(i, i); pbGastosExtras.setValue((i + 1)); filas = hoja.createRow((i + 1)); filas.createCell(0).setCellValue(tbGastosExtras.getValueAt(i, 0).toString()); filas.createCell(1).setCellValue(tbGastosExtras.getValueAt(i, 1).toString()); filas.createCell(2).setCellValue(tbGastosExtras.getValueAt(i, 2).toString()); filas.createCell(3).setCellValue(tbGastosExtras.getValueAt(i, 3).toString()); filas.createCell(4).setCellValue(tbGastosExtras.getValueAt(i, 4).toString()); } pbGastosExtras.setValue(0); try { workbook.write(new FileOutputStream(new File("Excel.xlsx"))); Desktop.getDesktop().open(new File("Excel.xlsx")); } catch (Exception e) { } } }; t.start(); }//GEN-LAST:event_btnExportarGastosActionPerformed private void rbtnMayorAMenorProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbtnMayorAMenorProductosActionPerformed // TODO add your handling code here: rbtnMenorAMayorProductos.setSelected(false); }//GEN-LAST:event_rbtnMayorAMenorProductosActionPerformed private void rbtnMenorAMayorProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbtnMenorAMayorProductosActionPerformed // TODO add your handling code here: rbtnMayorAMenorProductos.setSelected(false); }//GEN-LAST:event_rbtnMenorAMayorProductosActionPerformed private void btnConsultarProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConsultarProductosActionPerformed // TODO add your handling code here: lblProductosTipo.setText(""); int numFilas = tbProductos.getRowCount(); //Si hay registros de anterioridad, entonces seteamos el jtable para no juntar los registros de ambas consultas. if (numFilas >= 1) { DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaProductos.removeRow(0); } tbProductos.setModel(tablaProductos); btnExportarProductos.setEnabled(false); } //btnExportarGastos.setEnabled(true); if (Color.RED == calDesdeProductos.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Desde:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } if (Color.RED == calHastaProductos.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Hasta:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } if (calDesdeProductos.getDate() == null || calHastaProductos.getDate() == null) { JOptionPane.showMessageDialog(null, "Debe rellenar ambos campos porfavor", "Precaucin", JOptionPane.WARNING_MESSAGE); return; } //Si selecciona checkbox de unidad se consulta por productos por unidad. if (cbxProductosUnidad.isSelected()) { //Consultamos que opcin fue elejida por el usuario. if (rbtnMayorAMenorProductos.isSelected()) { lblComboBox.setText(""); String formato = calDesdeProductos.getDateFormatString(); java.util.Date date = calDesdeProductos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaProductos.getDateFormatString(); java.util.Date date2 = calHastaProductos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); int anoDesdeAnterior = Integer.parseInt(anoDesde); anoDesdeAnterior = anoDesdeAnterior - 1; String anoDesdeAntReal = String.valueOf(anoDesdeAnterior); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; String fechaDesdeAntReal = anoDesdeAnterior + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); int anoHastaAnterior = Integer.parseInt(anoHasta); anoHastaAnterior = anoHastaAnterior - 1; String anoHastaAntReal = String.valueOf(anoHastaAnterior); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; String fechaHastaAntReal = anoHastaAnterior + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Arreglar para separar por aos, igual que en gastos extras. if (compAno <= -1 || compAno == 0) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMasVendidosUnidadFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; //Preguntar por el tipo de producto y agregar la cantidad unitaria vendidad o la cantidad en kg vendida. int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } } if (rbtnMenorAMayorProductos.isSelected()) { lblComboBox.setText(""); String formato = calDesdeProductos.getDateFormatString(); java.util.Date date = calDesdeProductos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaProductos.getDateFormatString(); java.util.Date date2 = calHastaProductos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); int anoDesdeAnterior = Integer.parseInt(anoDesde); anoDesdeAnterior = anoDesdeAnterior - 1; String anoDesdeAntReal = String.valueOf(anoDesdeAnterior); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; String fechaDesdeAntReal = anoDesdeAntReal + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); int anoHastaAnterior = Integer.parseInt(anoHasta); anoHastaAnterior = anoHastaAnterior - 1; String anoHastaAntReal = String.valueOf(anoHastaAnterior); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; String fechaHastaAntReal = anoHastaAntReal + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Arreglar para separar por aos, igual que en gastos extras. if (compAno <= -1) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosUnidadFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else if (compAno == 0) { if (compMes <= -1 || compMes == 0) //Si el mes Desde: es menor o igual que el mes Hasta: . { if (compDia <= -1 || compDia == 0) //Si el dia Desde: es menor o igual que el dia Hasta: . { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosUnidadFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } if (rbtnMayorAMenorProductos.isSelected() == false && rbtnMenorAMayorProductos.isSelected() == false) { lblComboBox.setText("SELECCIONE ALGUNA DE LAS 2 OPCIONES PORFAVOR"); } } else if (cbxProductosPeso.isSelected()) { //Consultamos que opcin fue elejida por el usuario. if (rbtnMayorAMenorProductos.isSelected()) { lblComboBox.setText(""); String formato = calDesdeProductos.getDateFormatString(); java.util.Date date = calDesdeProductos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaProductos.getDateFormatString(); java.util.Date date2 = calHastaProductos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); int anoDesdeAnterior = Integer.parseInt(anoDesde); anoDesdeAnterior = anoDesdeAnterior - 1; String anoDesdeAntReal = String.valueOf(anoDesdeAnterior); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; String fechaDesdeAntReal = anoDesdeAnterior + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); int anoHastaAnterior = Integer.parseInt(anoHasta); anoHastaAnterior = anoHastaAnterior - 1; String anoHastaAntReal = String.valueOf(anoHastaAnterior); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; String fechaHastaAntReal = anoHastaAnterior + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Arreglar para separar por aos, igual que en gastos extras. if (compAno <= -1 || compAno == 0) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMasVendidosPesoFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } } if (rbtnMenorAMayorProductos.isSelected()) { lblComboBox.setText(""); String formato = calDesdeProductos.getDateFormatString(); java.util.Date date = calDesdeProductos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaProductos.getDateFormatString(); java.util.Date date2 = calHastaProductos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); int anoDesdeAnterior = Integer.parseInt(anoDesde); anoDesdeAnterior = anoDesdeAnterior - 1; String anoDesdeAntReal = String.valueOf(anoDesdeAnterior); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; String fechaDesdeAntReal = anoDesdeAntReal + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); int anoHastaAnterior = Integer.parseInt(anoHasta); anoHastaAnterior = anoHastaAnterior - 1; String anoHastaAntReal = String.valueOf(anoHastaAnterior); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; String fechaHastaAntReal = anoHastaAntReal + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Arreglar para separar por aos, igual que en gastos extras. if (compAno <= -1) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosPesoFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else if (compAno == 0) { if (compMes <= -1 || compMes == 0) //Si el mes Desde: es menor o igual que el mes Hasta: . { if (compDia <= -1 || compDia == 0) //Si el dia Desde: es menor o igual que el dia Hasta: . { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosPesoFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } if (rbtnMayorAMenorProductos.isSelected() == false && rbtnMenorAMayorProductos.isSelected() == false) { lblComboBox.setText("SELECCIONE ALGUNA DE LAS 2 OPCIONES PORFAVOR"); } } else { //Dar aviso de que selccione alguna de las 2 opciones. Unidad o peso. lblProductosTipo.setText("<-- Seleccione alguna de las 2 opciones porfavor."); JOptionPane.showMessageDialog(null, "Debe seleccionar si quiere productos por unidad o peso. ", "Aviso", JOptionPane.WARNING_MESSAGE); } }//GEN-LAST:event_btnConsultarProductosActionPerformed private void btnExportarProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportarProductosActionPerformed // TODO add your handling code here: Thread t; t = new Thread() { @Override public void run() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet hoja = workbook.createSheet(); XSSFRow fila = hoja.createRow(0); fila.createCell(0).setCellValue("N"); fila.createCell(1).setCellValue("Codigo"); fila.createCell(2).setCellValue("Nombre"); fila.createCell(3).setCellValue("Marca"); fila.createCell(4).setCellValue("Precio Compra"); fila.createCell(5).setCellValue("Precio Venta"); fila.createCell(6).setCellValue("Utilidad Unitaria"); fila.createCell(7).setCellValue("Cantidad vendida"); fila.createCell(8).setCellValue("Utilidad Final"); fila.createCell(9).setCellValue("Periodo anterior"); pbProductos.setMaximum(tbGastosExtras.getRowCount()); XSSFRow filas; Rectangle rect; for (int i = 0; i < tbProductos.getRowCount(); i++) { rect = tbProductos.getCellRect(i, 0, true); tbProductos.scrollRectToVisible(rect); tbProductos.setRowSelectionInterval(i, i); pbProductos.setValue((i + 1)); filas = hoja.createRow((i + 1)); filas.createCell(0).setCellValue(tbProductos.getValueAt(i, 0).toString()); filas.createCell(1).setCellValue(tbProductos.getValueAt(i, 1).toString()); filas.createCell(2).setCellValue(tbProductos.getValueAt(i, 2).toString()); filas.createCell(3).setCellValue(tbProductos.getValueAt(i, 3).toString()); filas.createCell(4).setCellValue(tbProductos.getValueAt(i, 4).toString()); filas.createCell(5).setCellValue(tbProductos.getValueAt(i, 5).toString()); filas.createCell(6).setCellValue(tbProductos.getValueAt(i, 6).toString()); filas.createCell(7).setCellValue(tbProductos.getValueAt(i, 7).toString()); filas.createCell(8).setCellValue(tbProductos.getValueAt(i, 8).toString()); filas.createCell(9).setCellValue(tbProductos.getValueAt(i, 9).toString()); } pbProductos.setValue(0); try { workbook.write(new FileOutputStream(new File("Excel.xlsx"))); Desktop.getDesktop().open(new File("Excel.xlsx")); } catch (Exception e) { } } }; t.start(); }//GEN-LAST:event_btnExportarProductosActionPerformed private void txtFiltroNombreKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtFiltroNombreKeyReleased // TODO add your handling code here: String caracter = txtFiltroNombre.getText(); String formato = calDesdeProductos.getDateFormatString(); java.util.Date date = calDesdeProductos.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); String formato2 = calHastaProductos.getDateFormatString(); java.util.Date date2 = calHastaProductos.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); int anoDesdeAnterior = Integer.parseInt(anoDesde); anoDesdeAnterior = anoDesdeAnterior - 1; String anoDesdeAntReal = String.valueOf(anoDesdeAnterior); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; String fechaDesdeAntReal = anoDesdeAntReal + "-" + mesDesde + "-" + diaDesde; String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); int anoHastaAnterior = Integer.parseInt(anoHasta); anoHastaAnterior = anoHastaAnterior - 1; String anoHastaAntReal = String.valueOf(anoHastaAnterior); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; String fechaHastaAntReal = anoHastaAntReal + "-" + mesDesde + "-" + diaDesde; int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); int numFilas = tbProductos.getRowCount(); //Si hay registros de anterioridad, entonces seteamos el jtable para no juntar los registros de ambas consultas. if (numFilas >= 1) { DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaProductos.removeRow(0); } tbProductos.setModel(tablaProductos); btnExportarProductos.setEnabled(false); } ProductoDao p = new ProductoDaoImpl(); try { if (cbxProductosUnidad.isSelected()) { // Hacer 2 consultas si es que esta selecionado de mayor a menor o lo contrario y en base a eso consultar. if (rbtnMayorAMenorProductos.isSelected()) { if (caracter.equals("")) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMasVendidosUnidadFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { //Dado que el txt ya no esta vacio se aplica la funcion de filtrar. ResultSet resp = p.filtrarProductoNombreUnidadMayorAMenor(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal, caracter); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); return; } else { btnExportarProductos.setEnabled(true); Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } } } if (rbtnMenorAMayorProductos.isSelected()) { if (caracter.equals("")) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosUnidadFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { ResultSet resp = p.filtrarProductoNombreUnidadMenorAMayor(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal, caracter); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); } else { btnExportarProductos.setEnabled(true); Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } } } } else if (cbxProductosPeso.isSelected()) { // Hacer 2 consultas si es que esta selecionado de mayor a menor o lo contrario y en base a eso consultar. if (rbtnMayorAMenorProductos.isSelected()) { if (caracter.equals("")) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMasVendidosPesoFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { //Dado que el txt ya no esta vacio se aplica la funcion de filtrar. ResultSet resp = p.filtrarProductoNombrePesoMayorAMenor(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal, caracter); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); return; } else { btnExportarProductos.setEnabled(true); Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } } } if (rbtnMenorAMayorProductos.isSelected()) { if (caracter.equals("")) { try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosMenosVendidosPesoFechas(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); txtFiltroNombre.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos vendidos en estas fechas", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarProductos.setEnabled(true); txtFiltroNombre.setEnabled(true); } Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { ResultSet resp = p.filtrarProductoNombrePesoMenorAMayor(fechaDesdeReal, fechaHastaReal, fechaDesdeAntReal, fechaHastaAntReal, caracter); DefaultTableModel tablaProductos = (DefaultTableModel) tbProductos.getModel(); if (resp == null) { btnExportarProductos.setEnabled(false); } else { btnExportarProductos.setEnabled(true); Object[] objeto = new Object[11]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); int pcomp = resp.getInt("precio_compra"); String ff = formateador.format(pcomp); objeto[4] = ff; int pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; int utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; int cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; Double pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; int utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; int cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString("codigo"); objeto[2] = resp.getString("nombre"); objeto[3] = resp.getString("marca"); pcomp = resp.getInt("precio_compra"); ff = formateador.format(pcomp); objeto[4] = ff; pvent = resp.getInt("precio_venta"); ff = formateador.format(pvent); objeto[5] = ff; utiun = resp.getInt("utilidadUnitaria"); ff = formateador.format(utiun); objeto[6] = ff; cantven = resp.getInt("cantVendida"); ff = formateador.format(cantven); objeto[7] = ff; pesoven = resp.getDouble("pesoVendido"); objeto[8] = pesoven; utifin = resp.getInt("utilidadFinal"); ff = formateador.format(utifin); objeto[9] = ff; cantpant = resp.getInt("cantPAnt"); ff = formateador.format(cantpant); objeto[10] = ff; tablaProductos.addRow(objeto); } tbProductos.setModel(tablaProductos); } } } } else { } } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_txtFiltroNombreKeyReleased private void txtFiltroNombreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtFiltroNombreActionPerformed // TODO add your handling code here: }//GEN-LAST:event_txtFiltroNombreActionPerformed private void rbtnMayoresVentasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbtnMayoresVentasActionPerformed // TODO add your handling code here: rbtnMenoresVentas.setSelected(false); }//GEN-LAST:event_rbtnMayoresVentasActionPerformed private void rbtnMenoresVentasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbtnMenoresVentasActionPerformed // TODO add your handling code here: rbtnMayoresVentas.setSelected(false); }//GEN-LAST:event_rbtnMenoresVentasActionPerformed private void btnConsultarVendedoresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConsultarVendedoresActionPerformed // TODO add your handling code here: int numFilas = tbVendedores.getRowCount(); //Si hay registros de anterioridad, entonces seteamos el jtable para no juntar los registros de ambas consultas. if (numFilas >= 1) { DefaultTableModel tablaVendedores = (DefaultTableModel) tbVendedores.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaVendedores.removeRow(0); } tbVendedores.setModel(tablaVendedores); //lblTotalGastos.setText("0"); btnExportarVendedores.setEnabled(false); } //btnExportarGastos.setEnabled(true); if (Color.RED == calDesdeVendedores.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Desde:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } if (Color.RED == calHastaVendedores.getDateEditor().getUiComponent().getForeground()) { JOptionPane.showMessageDialog(null, "Fecha 'Hasta:' no valida", "Error fecha", JOptionPane.ERROR_MESSAGE); return; } if (calDesdeVendedores.getDate() == null || calHastaVendedores.getDate() == null) { JOptionPane.showMessageDialog(null, "Debe rellenar ambos campos porfavor", "Precaucin", JOptionPane.WARNING_MESSAGE); return; } if (rbtnMayoresVentas.isSelected()) { lblAvisoVendedores.setText(""); String formato = calDesdeVendedores.getDateFormatString(); java.util.Date date = calDesdeVendedores.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaVendedores.getDateFormatString(); java.util.Date date2 = calHastaVendedores.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Si el ao 'hasta' es menor que 'desde', no comparamos ni da ni mes. if (compAno <= -1) { try { UsuarioDao usuario = new UsuarioDaoImpl(); ResultSet resp = usuario.reportesVendedoresDesc(fechaDesdeReal, fechaHastaReal); ResultSet resp2 = usuario.reportesVendedoresHorasDesc(fechaDesdeReal, fechaHastaReal); DefaultTableModel tablaVendedores = (DefaultTableModel) tbVendedores.getModel(); if (resp == null && resp2 == null) { btnExportarVendedores.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay datos suficientes para este vendedor", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarVendedores.setEnabled(true); } Object[] objeto = new Object[6]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("vendedor"); int ventot = resp.getInt("ventasTotales"); String ff = formateador.format(ventot); objeto[2] = ff; int utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; int diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); while (resp.next() && resp2.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString("vendedor"); ventot = resp.getInt("ventasTotales"); ff = formateador.format(ventot); objeto[2] = ff; utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); } tbVendedores.setModel(tablaVendedores); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else if (compAno == 0) { if (compMes <= -1 || compMes == 0) //Si el mes Desde: es menor o igual que el mes Hasta: . { if (compDia <= -1 || compDia == 0) //Si el dia Desde: es menor o igual que el dia Hasta: . { try { UsuarioDao usuario = new UsuarioDaoImpl(); ResultSet resp = usuario.reportesVendedoresDesc(fechaDesdeReal, fechaHastaReal); ResultSet resp2 = usuario.reportesVendedoresHorasDesc(fechaDesdeReal, fechaHastaReal); DefaultTableModel tablaVendedores = (DefaultTableModel) tbVendedores.getModel(); if (resp == null && resp2 == null) { btnExportarVendedores.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay datos suficientes para este vendedor", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarVendedores.setEnabled(true); } Object[] objeto = new Object[6]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("vendedor"); int ventot = resp.getInt("ventasTotales"); String ff = formateador.format(ventot); objeto[2] = ff; int utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; int diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); while (resp.next() && resp2.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString("vendedor"); ventot = resp.getInt("ventasTotales"); ff = formateador.format(ventot); objeto[2] = ff; utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); } tbVendedores.setModel(tablaVendedores); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } if (rbtnMenoresVentas.isSelected()) { lblAvisoVendedores.setText(""); String formato = calDesdeVendedores.getDateFormatString(); java.util.Date date = calDesdeVendedores.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); String fechaDesde = String.valueOf(sdf.format(date)); //String fechaDesdeReal = fechaDesde.replace("-", "/"); String formato2 = calHastaVendedores.getDateFormatString(); java.util.Date date2 = calHastaVendedores.getDate(); SimpleDateFormat sdf2 = new SimpleDateFormat(formato2); String fechaHasta = String.valueOf(sdf2.format(date2)); //String fechaHastaReal = fechaHasta.replace("-", "/"); String diaDesde = fechaDesde.substring(0, 2); String mesDesde = fechaDesde.substring(3, 5); String anoDesde = fechaDesde.substring(6, 10); String fechaDesdeReal = anoDesde + "-" + mesDesde + "-" + diaDesde; System.out.println("fechaDesdeR: " + fechaDesdeReal); String diaHasta = fechaHasta.substring(0, 2); String mesHasta = fechaHasta.substring(3, 5); String anoHasta = fechaHasta.substring(6, 10); //Concateno la fecha, en formato "YYYY-MM-DD". String fechaHastaReal = anoHasta + "-" + mesHasta + "-" + diaHasta; System.out.println("fechaHastaR " + fechaHastaReal); System.out.println("diaD: " + diaDesde); System.out.println("mesD: " + mesDesde); System.out.println("anoD: " + anoDesde); System.out.println("diaH: " + diaHasta); System.out.println("mesH: " + mesHasta); System.out.println("anoH: " + anoHasta); int compDia = diaDesde.compareTo(diaHasta); int compMes = mesDesde.compareTo(mesHasta); int compAno = anoDesde.compareTo(anoHasta); //Si el ao 'hasta' es menor que 'desde', no comparamos ni da ni mes. if (compAno <= -1) { try { UsuarioDao usuario = new UsuarioDaoImpl(); ResultSet resp = usuario.reportesVendedoresAsc(fechaDesdeReal, fechaHastaReal); ResultSet resp2 = usuario.reportesVendedoresHorasAsc(fechaDesdeReal, fechaHastaReal); DefaultTableModel tablaVendedores = (DefaultTableModel) tbVendedores.getModel(); if (resp == null && resp2 == null) { btnExportarVendedores.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay datos suficientes para este vendedor", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarVendedores.setEnabled(true); } Object[] objeto = new Object[6]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("vendedor"); int ventot = resp.getInt("ventasTotales"); String ff = formateador.format(ventot); objeto[2] = ff; int utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; int diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); while (resp.next() && resp2.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString("vendedor"); ventot = resp.getInt("ventasTotales"); ff = formateador.format(ventot); objeto[2] = ff; utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); } tbVendedores.setModel(tablaVendedores); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else if (compAno == 0) { if (compMes <= -1 || compMes == 0) //Si el mes Desde: es menor o igual que el mes Hasta: . { if (compDia <= -1 || compDia == 0) //Si el dia Desde: es menor o igual que el dia Hasta: . { try { UsuarioDao usuario = new UsuarioDaoImpl(); ResultSet resp = usuario.reportesVendedoresAsc(fechaDesdeReal, fechaHastaReal); ResultSet resp2 = usuario.reportesVendedoresHorasAsc(fechaDesdeReal, fechaHastaReal); DefaultTableModel tablaVendedores = (DefaultTableModel) tbVendedores.getModel(); if (resp == null && resp2 == null) { btnExportarVendedores.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay datos suficientes para este vendedor", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarVendedores.setEnabled(true); } Object[] objeto = new Object[6]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString("vendedor"); int ventot = resp.getInt("ventasTotales"); String ff = formateador.format(ventot); objeto[2] = ff; int utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; int diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); while (resp.next() && resp2.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString("vendedor"); ventot = resp.getInt("ventasTotales"); ff = formateador.format(ventot); objeto[2] = ff; utitot = resp.getInt("utilidadesTotales"); ff = formateador.format(utitot); objeto[3] = ff; diastrab = resp2.getInt("diasTrabajados"); ff = formateador.format(diastrab); objeto[4] = ff; objeto[5] = resp2.getTime("horasTrabajadas"); tablaVendedores.addRow(objeto); } tbVendedores.setModel(tablaVendedores); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { JOptionPane.showMessageDialog(null, "El dia debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El mes debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } else { JOptionPane.showMessageDialog(null, "El ao debe ser menor o igual que el de la fecha Hasta: ", "Aviso", JOptionPane.WARNING_MESSAGE); return; } } if (!rbtnMayoresVentas.isSelected() && !rbtnMenoresVentas.isSelected()) { lblAvisoVendedores.setText("SELECCIONE ALGUNA DE LAS 2 OPCIONES PORFAVOR"); } }//GEN-LAST:event_btnConsultarVendedoresActionPerformed private void btnExportarVendedoresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportarVendedoresActionPerformed // TODO add your handling code here: Thread t; t = new Thread() { @Override public void run() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet hoja = workbook.createSheet(); XSSFRow fila = hoja.createRow(0); fila.createCell(0).setCellValue("N"); fila.createCell(1).setCellValue("Vendedor"); fila.createCell(2).setCellValue("Ventas totales"); fila.createCell(3).setCellValue("Utilidades"); fila.createCell(4).setCellValue("Das trabajados"); fila.createCell(5).setCellValue("Horas trabajadas"); pbVendedores.setMaximum(tbVendedores.getRowCount()); XSSFRow filas; Rectangle rect; for (int i = 0; i < tbVendedores.getRowCount(); i++) { rect = tbVendedores.getCellRect(i, 0, true); tbVendedores.scrollRectToVisible(rect); tbVendedores.setRowSelectionInterval(i, i); pbVendedores.setValue((i + 1)); filas = hoja.createRow((i + 1)); filas.createCell(0).setCellValue(tbVendedores.getValueAt(i, 0).toString()); filas.createCell(1).setCellValue(tbVendedores.getValueAt(i, 1).toString()); filas.createCell(2).setCellValue(tbVendedores.getValueAt(i, 2).toString()); filas.createCell(3).setCellValue(tbVendedores.getValueAt(i, 3).toString()); filas.createCell(4).setCellValue(tbVendedores.getValueAt(i, 4).toString()); filas.createCell(5).setCellValue(tbVendedores.getValueAt(i, 5).toString()); } pbVendedores.setValue(0); try { workbook.write(new FileOutputStream(new File("Excel.xlsx"))); Desktop.getDesktop().open(new File("Excel.xlsx")); } catch (Exception e) { } } }; t.start(); }//GEN-LAST:event_btnExportarVendedoresActionPerformed private void btnConsultarInvetariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConsultarInvetariosActionPerformed // TODO add your handling code here: //Primero limpiamos el JTable por si es que existian registros previos. int numFilas = tbInventario.getRowCount(); if (numFilas >= 1) { DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaInventario.removeRow(0); } tbInventario.setModel(tablaInventario); btnExportarInventario.setEnabled(false); } //Segundo verificamos que opcin fue seleccionada en el combo box. //Selecciona Todos txtFiltroInventario.setEnabled(false); //Si selecciona el checkbox mayor a menor se realiza esta consulta. if (cbxMayoraMenorInventario.isSelected()) { lblAvisoInventario.setText(""); try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosStockMayorAMenor(); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos en inventario", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarInventario.setEnabled(true); txtFiltroInventario.setEnabled(true); } Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int stock = resp.getInt(4); String ff = formateador.format(stock); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); stock = resp.getInt(4); ff = formateador.format(stock); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } //Si selecciona el checkbox menor a mayor se realiza esta consulta. if (cbxMenoramayorInventario.isSelected()) { lblAvisoInventario.setText(""); try { ProductoDao producto = new ProductoDaoImpl(); ResultSet resp = producto.productosStockMenorAMayor(); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); JOptionPane.showMessageDialog(null, "No hay productos en inventario", "Aviso", JOptionPane.WARNING_MESSAGE); return; } else { btnExportarInventario.setEnabled(true); txtFiltroInventario.setEnabled(true); } Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int stock = resp.getInt(4); String ff = formateador.format(stock); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int cont = ++contador; ff = formateador.format(cont); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); stock = resp.getInt(4); ff = formateador.format(stock); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } if (!cbxMayoraMenorInventario.isSelected() && !cbxMenoramayorInventario.isSelected()) { lblAvisoInventario.setText("SELECCIONE ALGUNA DE LAS 2 OPCIONES PORFAVOR"); } }//GEN-LAST:event_btnConsultarInvetariosActionPerformed private void cbxMayoraMenorInventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxMayoraMenorInventarioActionPerformed // TODO add your handling code here: if (cbxMayoraMenorInventario.isSelected()) { cbxMayoraMenorInventario.setEnabled(true); cbxMenoramayorInventario.setEnabled(false); } else { cbxMayoraMenorInventario.setEnabled(true); cbxMenoramayorInventario.setEnabled(true); } }//GEN-LAST:event_cbxMayoraMenorInventarioActionPerformed private void cbxMenoramayorInventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxMenoramayorInventarioActionPerformed // TODO add your handling code here: if (cbxMenoramayorInventario.isSelected()) { cbxMenoramayorInventario.setEnabled(true); cbxMayoraMenorInventario.setEnabled(false); } else { cbxMayoraMenorInventario.setEnabled(true); cbxMenoramayorInventario.setEnabled(true); } }//GEN-LAST:event_cbxMenoramayorInventarioActionPerformed private void btnExportarInventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportarInventarioActionPerformed // TODO add your handling code here: Thread t; t = new Thread() { @Override public void run() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet hoja = workbook.createSheet(); XSSFRow fila = hoja.createRow(0); fila.createCell(0).setCellValue("N"); fila.createCell(1).setCellValue("Codigo"); fila.createCell(2).setCellValue("Nombre"); fila.createCell(3).setCellValue("Marca"); fila.createCell(4).setCellValue("Stock"); pbInventario.setMaximum(tbInventario.getRowCount()); XSSFRow filas; Rectangle rect; for (int i = 0; i < tbInventario.getRowCount(); i++) { rect = tbInventario.getCellRect(i, 0, true); tbInventario.scrollRectToVisible(rect); tbInventario.setRowSelectionInterval(i, i); pbInventario.setValue((i + 1)); filas = hoja.createRow((i + 1)); filas.createCell(0).setCellValue(tbInventario.getValueAt(i, 0).toString()); filas.createCell(1).setCellValue(tbInventario.getValueAt(i, 1).toString()); filas.createCell(2).setCellValue(tbInventario.getValueAt(i, 2).toString()); filas.createCell(3).setCellValue(tbInventario.getValueAt(i, 3).toString()); filas.createCell(4).setCellValue(tbInventario.getValueAt(i, 4).toString()); } pbInventario.setValue(0); try { workbook.write(new FileOutputStream(new File("Excel.xlsx"))); Desktop.getDesktop().open(new File("Excel.xlsx")); } catch (Exception e) { } } }; t.start(); }//GEN-LAST:event_btnExportarInventarioActionPerformed private void txtFiltroInventarioKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtFiltroInventarioKeyReleased // TODO add your handling code here: String caracter = txtFiltroInventario.getText(); //Primero limpiamos el JTable por si es que existian registros previos. int numFilas = tbInventario.getRowCount(); if (numFilas >= 1) { DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); for (int j = 0; j < numFilas; j++) { //Removemos la primera fila de la tabla, desde la posicion 0 siempre. tablaInventario.removeRow(0); } tbInventario.setModel(tablaInventario); btnExportarInventario.setEnabled(false); } ProductoDao p = new ProductoDaoImpl(); try { // Hacer 2 consultas si es que esta selecionado de mayor a menor o lo contrario y en base a eso consultar. if (cbxMayoraMenorInventario.isSelected()) { if (caracter.equals("")) { try { ResultSet resp = p.productosStockMayorAMenor(); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); return; } else { btnExportarInventario.setEnabled(true); txtFiltroInventario.setEnabled(true); } Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int pvent = resp.getInt(4); String ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); pvent = resp.getInt(4); ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { ResultSet resp = p.FiltroNombreproductosStockMayorAMenor(caracter); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); return; } else { btnExportarInventario.setEnabled(true); Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int pvent = resp.getInt(4); String ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); pvent = resp.getInt(4); ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } } } if (cbxMenoramayorInventario.isSelected()) { if (caracter.equals("")) { try { ResultSet resp = p.productosStockMenorAMayor(); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); return; } else { btnExportarInventario.setEnabled(true); txtFiltroInventario.setEnabled(true); } Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int pvent = resp.getInt(4); String ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); pvent = resp.getInt(4); ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } } else { ResultSet resp = p.FiltroNombreproductosStockMenorAMayor(caracter); DefaultTableModel tablaInventario = (DefaultTableModel) tbInventario.getModel(); if (resp == null) { btnExportarInventario.setEnabled(false); return; } else { btnExportarInventario.setEnabled(true); txtFiltroInventario.setEnabled(true); } Object[] objeto = new Object[5]; DecimalFormat formateador = new DecimalFormat("###,###"); int contador = 1; objeto[0] = contador; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); int pvent = resp.getInt(4); String ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); while (resp.next()) { int val = ++contador; ff = formateador.format(val); objeto[0] = ff; objeto[1] = resp.getString(1); objeto[2] = resp.getString(2); objeto[3] = resp.getString(3); pvent = resp.getInt(4); ff = formateador.format(pvent); objeto[4] = ff; tablaInventario.addRow(objeto); } tbInventario.setModel(tablaInventario); } } } catch (SQLException ex) { Logger.getLogger(MantenedorReportes.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_txtFiltroInventarioKeyReleased private void txtFiltroInventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtFiltroInventarioActionPerformed // TODO add your handling code here: }//GEN-LAST:event_txtFiltroInventarioActionPerformed private void cbxProductosUnidadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxProductosUnidadActionPerformed // TODO add your handling code here: if (cbxProductosUnidad.isSelected()) { cbxProductosPeso.setSelected(false); } }//GEN-LAST:event_cbxProductosUnidadActionPerformed private void cbxProductosPesoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbxProductosPesoActionPerformed // TODO add your handling code here: if (cbxProductosPeso.isSelected()) { cbxProductosUnidad.setSelected(false); } }//GEN-LAST:event_cbxProductosPesoActionPerformed /** * @param args the command line arguments */ 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 { 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(MantenedorReportes.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(MantenedorReportes.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(MantenedorReportes.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(MantenedorReportes.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MantenedorReportes().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnConsultarGastos; private javax.swing.JButton btnConsultarInvetarios; private javax.swing.JButton btnConsultarProductos; private javax.swing.JButton btnConsultarVendedores; private javax.swing.JButton btnExportarGastos; private javax.swing.JButton btnExportarInventario; private javax.swing.JButton btnExportarProductos; private javax.swing.JButton btnExportarVendedores; private com.toedter.calendar.JDateChooser calDesdeGastos; private com.toedter.calendar.JDateChooser calDesdeProductos; private com.toedter.calendar.JDateChooser calDesdeVendedores; private com.toedter.calendar.JDateChooser calHastaGastos; private com.toedter.calendar.JDateChooser calHastaProductos; private com.toedter.calendar.JDateChooser calHastaVendedores; private javax.swing.JComboBox cbSeleccionUsuario; private javax.swing.JCheckBox cbxFecha; private javax.swing.JCheckBox cbxMayoraMenorInventario; private javax.swing.JCheckBox cbxMenoramayorInventario; private javax.swing.JCheckBox cbxProductosPeso; private javax.swing.JCheckBox cbxProductosUnidad; private javax.swing.JCheckBox cbxUsuario; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; 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.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JLabel lblAvisoInventario; private javax.swing.JLabel lblAvisoVendedores; private javax.swing.JLabel lblComboBox; private javax.swing.JLabel lblOrdenInventario; private javax.swing.JLabel lblProductosTipo; private javax.swing.JLabel lblSeleccioncbxInventario; private javax.swing.JLabel lblTotalGastos; private javax.swing.JProgressBar pbGastosExtras; private javax.swing.JProgressBar pbInventario; private javax.swing.JProgressBar pbProductos; private javax.swing.JProgressBar pbVendedores; private javax.swing.JRadioButton rbtnMayorAMenorProductos; private javax.swing.JRadioButton rbtnMayoresVentas; private javax.swing.JRadioButton rbtnMenorAMayorProductos; private javax.swing.JRadioButton rbtnMenoresVentas; private javax.swing.JScrollPane tbGastos; private javax.swing.JTable tbGastosExtras; private javax.swing.JTable tbInventario; private javax.swing.JTable tbProductos; private javax.swing.JTable tbVendedores; private javax.swing.JTextField txtFiltroInventario; private javax.swing.JTextField txtFiltroNombre; // End of variables declaration//GEN-END:variables }