Vista.JFPrincipalAdministradorReportesVentas.java Source code

Java tutorial

Introduction

Here is the source code for Vista.JFPrincipalAdministradorReportesVentas.java

Source

/*
 * 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 Vista;

import Controlador.ConexionBasesdeDatos;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.awt.Desktop;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Michael
 */
public class JFPrincipalAdministradorReportesVentas extends javax.swing.JInternalFrame {
    ConexionBasesdeDatos conexion;
    DefaultTableModel modelo;

    /**
     * Creates new form JFPrincipalAdministradorReportesVentas
     */
    public JFPrincipalAdministradorReportesVentas(ConexionBasesdeDatos conexion) {
        initComponents();
        this.closable = true;
        this.iconable = true;
        this.conexion = conexion;
        modelo = (DefaultTableModel) jtfacturas.getModel();
    }

    /**
     * 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() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jtfacturas = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        txtidfactura = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        lbltotal = new javax.swing.JLabel();

        setBackground(java.awt.SystemColor.activeCaption);
        setTitle("Reporte de Ventas");
        setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagenes/Accounting-icon.png"))); // NOI18N

        jPanel1.setBackground(java.awt.SystemColor.activeCaption);

        jtfacturas.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jtfacturas.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {

        }, new String[] { "Factura", "Fecha", "Cliente", "Valor total" }) {
            Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.String.class,
                    java.lang.String.class };
            boolean[] canEdit = new boolean[] { false, false, false, false };

            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
        });
        jtfacturas.setToolTipText("");
        jScrollPane1.setViewportView(jtfacturas);

        jLabel1.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jLabel1.setText("FACTURAS");

        txtidfactura.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N

        jButton1.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jButton1.setText("Consultar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jButton2.setText("Consultar todo");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jButton3.setText("Generar PDF");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jLabel2.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        jLabel2.setText("TOTAL VENTAS");

        lbltotal.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N
        lbltotal.setText("0");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap(11, Short.MAX_VALUE).addGroup(
                        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                                javax.swing.GroupLayout.Alignment.TRAILING,
                                jPanel1Layout.createSequentialGroup().addComponent(jButton1)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jButton2).addGap(24, 24, 24))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout
                                                        .createSequentialGroup().addComponent(jLabel2)
                                                        .addPreferredGap(
                                                                javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(lbltotal,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 128,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addGap(45, 45, 45))
                                                .addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addContainerGap())
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        jPanel1Layout.createSequentialGroup()
                                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        590, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addContainerGap())))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(27, 27, 27).addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtidfactura, javax.swing.GroupLayout.PREFERRED_SIZE, 267,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap(259, Short.MAX_VALUE))));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jButton2).addComponent(jButton1))
                        .addGap(18, 18, 18)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel2).addComponent(lbltotal))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 35,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(21, 21, 21))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
                                .addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(jLabel1).addComponent(txtidfactura,
                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addContainerGap(338, Short.MAX_VALUE))));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        javax.swing.GroupLayout.PREFERRED_SIZE));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        try {
            modelo.setNumRows(0);
            if (!txtidfactura.getText().equals("")) {
                if (conexion.consultarexistencia("FACTURA", "fact_valor", "fact_id", txtidfactura.getText())) {

                    ResultSet info0 = conexion.consultarconcondicion("FACTURA",
                            "fact_fecha,fact_cliente,fact_valor", "fact_id = " + txtidfactura.getText());
                    info0.next();
                    double valor = Double.parseDouble(info0.getString(3));
                    System.out.println(valor);

                    Object a[] = { txtidfactura.getText(), info0.getString(1), info0.getString(2),
                            info0.getDouble(3) };
                    System.out.println("ENTRE1");

                    modelo.addRow(a);
                    System.out.println("ENTRE2");
                    double operacion = 0.0;
                    for (int i = 0; i < jtfacturas.getRowCount(); i++) {
                        System.out.println("ENTRE4");
                        System.out.println(Double.parseDouble(jtfacturas.getValueAt(i, 3).toString()));
                        operacion = operacion + Double.parseDouble(jtfacturas.getValueAt(i, 3).toString());
                        System.out.println("OPERACION-->" + operacion);

                        lbltotal.setText(operacion + "");

                    }

                } else {
                    JOptionPane.showMessageDialog(this, "La factura  no existe");
                }
            } else {
                JOptionPane.showMessageDialog(this, "El campo producto esta vacio");
            }

        } catch (Exception e) {
            System.out.println("ERROR CON LA BASE DE DATOS");
        }

        // TODO add your handling code here:
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        ResultSet info0 = null;

        modelo.setNumRows(0);

        try {
            info0 = conexion.consultarsincondicion("FACTURA", "fact_id");

            while (info0.next()) {
                String id = info0.getString(1);
                System.out.println("FACTURA-->" + id);

                ResultSet info1 = conexion.consultarconcondicion("FACTURA", "fact_fecha,fact_cliente,fact_valor",
                        "fact_id = " + id);
                info1.next();

                Object a[] = { id, info1.getString(1), info1.getString(2), info1.getString(3) };
                modelo.addRow(a);
                double operacion = 0.0;
                for (int i = 0; i < jtfacturas.getRowCount(); i++) {
                    operacion = operacion + Double.parseDouble(jtfacturas.getValueAt(i, 3).toString());
                    lbltotal.setText(operacion + "");

                }

            }

        } catch (Exception e) {
            System.out.println("ERROR CON LA BASE DE DATOS");
        }

        // TODO add your handling code here:
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        Calendar calendario = new GregorianCalendar();
        String fecha = calendario.get(Calendar.DAY_OF_MONTH) + "/" + (calendario.get(Calendar.MONTH) + 1) + "/"
                + calendario.get(Calendar.YEAR);
        String digite = JOptionPane.showInputDialog(rootPane, "Digite nombre del archivo");
        try {
            FileOutputStream archivo = new FileOutputStream("C:\\Documentos Empresa\\REPORTES PDF VENTAS\\"
                    + fecha.replace("/", "-") + " -- " + digite + ".pdf");
            Document documento = new Document();
            PdfWriter.getInstance(documento, archivo);
            documento.open();
            documento.add(new Paragraph("\n\nREPORTE DE VENTAS GENERADO " + calendario.get(Calendar.DAY_OF_MONTH)
                    + " - " + (calendario.get(Calendar.MONTH) + 1) + " - " + calendario.get(Calendar.YEAR)
                    + "\n\n\n FACTURAS(S):\n\n\n"));

            PdfPTable table = new PdfPTable(4);

            table.addCell("FACTURA");
            table.addCell("FECHA");
            table.addCell("CLIENTE");
            table.addCell("VALOR TOTAL");

            for (int i = 0; i < jtfacturas.getRowCount(); i++) {
                for (int j = 0; j < jtfacturas.getColumnCount(); j++) {

                    table.addCell(jtfacturas.getValueAt(i, j).toString());

                }

            }

            PdfPCell celdafinal = new PdfPCell(new Paragraph("TOTAL DE VENTAS"));
            celdafinal.setColspan(3);
            table.addCell(celdafinal);
            table.addCell(lbltotal.getText());

            documento.add(table);
            documento.add(new Paragraph("\n\nREPORTE GENERADO EXITOSAMENTE"));
            JOptionPane.showMessageDialog(this, "PDF generedao exitosamente");

            if (JOptionPane.showConfirmDialog(this, "Desea abrir el reporte de ventas que acabo de crear") == 0) {
                File archivoabrir = new File("C:\\Documentos Empresa\\REPORTES PDF VENTAS\\"
                        + fecha.replace("/", "-") + " -- " + digite + ".pdf");
                Desktop.getDesktop().open(archivoabrir);
            }

            documento.close();

        } catch (Exception e) {

        }

    }//GEN-LAST:event_jButton3ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jtfacturas;
    private javax.swing.JLabel lbltotal;
    private javax.swing.JTextField txtidfactura;
    // End of variables declaration//GEN-END:variables
}