Excel.InformeDiarioStock.java Source code

Java tutorial

Introduction

Here is the source code for Excel.InformeDiarioStock.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 Excel;

import Configuracion.Propiedades;
import interfaceGraficas.Inicio;
import interfaces.Transaccionable;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.MessagingException;
import javax.swing.JOptionPane;
import objetos.ConeccionLocal;
import objetos.Conecciones;
import objetos.Mail;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.IndexedColors;

/**
 *
 * @author Usuario
 */
public class InformeDiarioStock {
    /*
    AQUI SE GENERA EL INFORME DIARIO DE STOCK POR SUCURSAL
    */
    public void GenerrarInformeStock() throws SQLException {
        HSSFWorkbook libro = new HSSFWorkbook();
        HSSFSheet hoja = libro.createSheet("Articulos");
        /*
         * GENERAR LAS SIGUIENTES HOJAS
         * 1- DETALLE DE MOVIMIENTOS DE CAJA - LEE EN MOVIMIENTOS CAJA INDENTIFICANDO EL TIPO DE MOVIMIENTO, USUARIOS Y 
         * NUMERO DE CAJA
         * 2- DETALLE DE ARTICULOS VENDIDOS: LISTADO DE MOVIEMIENTOS DE ARTICULOS, CON USUARIOS Y CAJA
         * 3- DETALLE DE GASTOS : MOVIMIENTOS DE CAJA DETALLANDO LOS GASTOS
         * 
         */
        HSSFSheet hoja1 = libro.createSheet("Movimientos");
        HSSFSheet hoja2 = libro.createSheet("Movimientos Caja");

        String ttx = "celda numero :";
        HSSFRow fila = null;
        HSSFCell celda;
        HSSFCell celda1;
        HSSFCell celda2;
        HSSFCell celda3;
        HSSFCell celda4;
        HSSFCell celda5;
        HSSFCell celda6;
        HSSFCell celda7;
        HSSFCell celda8;
        HSSFCell celda9;
        HSSFCell celda10;
        HSSFFont fuente = libro.createFont();
        //fuente.setFontHeight((short)21);
        fuente.setFontName(fuente.FONT_ARIAL);
        fuente.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        String form = null;
        //String sql="select id,nombre,(select sum(movimientosarticulos.cantidad) from movimientosarticulos where movimientosarticulos.idarticulo=articulos.id and movimientosarticulos.numerodeposito="+Inicio.deposito.getNumero()+")as stock,(select sum(movimientosarticulos.cantidad) from movimientosarticulos where movimientosarticulos.idcaja="+Inicio.caja.getNumero()+" and movimientosarticulos.idarticulo=articulos.id)as cantidadVendida from articulos";
        String sql = "select *,(select articulos.NOMBRE from articulos where articulos.ID=movimientosarticulos.idArticulo)as descripcion from movimientosarticulos where idcaja="
                + Inicio.caja.getNumero();
        System.out.println(sql);
        Transaccionable tra = new ConeccionLocal();
        ResultSet rs = tra.leerConjuntoDeRegistros(sql);
        HSSFCellStyle titulo = libro.createCellStyle();
        titulo.setFont(fuente);
        //titulo.setFillBackgroundColor((short)22);
        titulo.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
        titulo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //for(int a=0;a < 100;a++){
        int col = 0;
        int a = 0;
        if (a == 0) {
            fila = hoja.createRow(a);
            celda = fila.createCell(0);
            celda.setCellStyle(titulo);
            celda.setCellValue("id");
            celda1 = fila.createCell(1);
            celda1.setCellStyle(titulo);
            celda1.setCellValue("nombre");
            celda2 = fila.createCell(2);
            celda2.setCellStyle(titulo);
            celda2.setCellValue("Unidades Vendidas");
            celda3 = fila.createCell(3);
            celda3.setCellStyle(titulo);
            celda3.setCellValue("Fecha");
        }
        while (rs.next()) {
            a++;
            //col=rs.getInt("tipoMovimiento");
            switch (col) {
            case 1:

                break;
            default:

                break;
            }
            fila = hoja.createRow(a);
            celda = fila.createCell(0);
            ttx = ttx;
            Double anterior = 0.00;
            Double actual = 0.00;
            Double vendido = 0.00;
            celda.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda.setCellValue(rs.getInt("idArticulo"));
            celda1 = fila.createCell(1);
            ttx = ttx;
            celda1.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda1.setCellValue(rs.getString("descripcion"));
            celda2 = fila.createCell(2);
            vendido = (rs.getDouble("cantidad")) * -1;
            //actual=rs.getDouble("stock");
            celda2.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda2.setCellValue(vendido);
            celda3 = fila.createCell(3);
            //vendido=(rs.getDouble("cantidadVendida")) * -1;
            celda3.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda3.setCellValue(rs.getString("fecha"));

        }
        //rs.close();

        // hoja 2

        form = null;
        sql = "SELECT id,cantidad,preciodecosto,preciodeventa,precioservicio,fecha,numerocomprobante,(select listcli.RAZON_SOCI from listcli where listcli.codMmd=movimientosarticulos.numeroCliente limit 0,1)as nombreC,(select articulos.NOMBRE from articulos where articulos.ID=movimientosarticulos.idArticulo limit 0,1)as descA,(select usuarios.nombre from usuarios where usuarios.numero=movimientosarticulos.numeroUsuario limit 0,1) as nombreU FROM movimientosarticulos where tipoMovimiento =1 and idcaja="
                + Inicio.caja.getNumero();
        //System.out.println(sql);
        //tra=new Conecciones();
        rs = tra.leerConjuntoDeRegistros(sql);
        //HSSFCellStyle titulo=libro.createCellStyle();
        titulo.setFont(fuente);
        //titulo.setFillBackgroundColor((short)22);
        titulo.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
        titulo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //for(int a=0;a < 100;a++){
        col = 0;
        a = 0;
        if (a == 0) {
            fila = hoja1.createRow(a);
            celda = fila.createCell(0);
            celda.setCellStyle(titulo);
            celda.setCellValue("Cajero");
            celda1 = fila.createCell(1);
            celda1.setCellStyle(titulo);
            celda1.setCellValue("Descripcion Articulo");
            celda2 = fila.createCell(2);
            celda2.setCellStyle(titulo);
            celda2.setCellValue("Cantidad");
            celda3 = fila.createCell(3);
            celda3.setCellStyle(titulo);
            celda3.setCellValue("Precio de Costo");
            celda4 = fila.createCell(4);
            celda4.setCellStyle(titulo);
            celda4.setCellValue("Precio de Venta");
            celda5 = fila.createCell(5);
            celda5.setCellStyle(titulo);
            celda5.setCellValue("Fecha");
            celda6 = fila.createCell(6);
            celda6.setCellStyle(titulo);
            celda6.setCellValue("Precio de Servicio");
            celda7 = fila.createCell(7);
            celda7.setCellStyle(titulo);
            celda7.setCellValue("comprobante");

            celda8 = fila.createCell(8);
            celda8.setCellStyle(titulo);
            celda8.setCellValue("Cliente");
            celda9 = fila.createCell(9);
            celda9.setCellStyle(titulo);
            celda9.setCellValue("Total");
            celda10 = fila.createCell(10);
            celda10.setCellStyle(titulo);
            celda10.setCellValue("idMovimiento");

        }
        while (rs.next()) {
            a++;
            //col=rs.getInt("tipoMovimiento");
            switch (col) {
            case 1:

                break;
            default:

                break;
            }
            fila = hoja1.createRow(a);
            celda = fila.createCell(0);
            ttx = ttx;
            celda.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda.setCellValue(rs.getString("nombreU"));
            celda1 = fila.createCell(1);
            ttx = ttx;
            celda1.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda1.setCellValue(rs.getString("descA"));
            celda2 = fila.createCell(2);
            celda2.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda2.setCellValue(rs.getDouble("cantidad"));
            celda3 = fila.createCell(3);
            celda3.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda3.setCellValue(rs.getDouble("precioDeCosto"));
            celda4 = fila.createCell(4);
            celda4.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda4.setCellValue(rs.getDouble("precioDeVenta"));

            celda5 = fila.createCell(5);
            //celda5.setCellFormula(rs.getString("observaciones"));
            celda5.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda5.setCellValue(" " + rs.getDate("fecha"));
            //celda5.setCellValue(rs.getDate("fecha"));
            celda6 = fila.createCell(6);
            celda6.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda6.setCellValue(rs.getDouble("precioServicio"));
            celda7 = fila.createCell(7);
            celda7.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda7.setCellValue(rs.getInt("numeroComprobante"));

            celda8 = fila.createCell(8);
            celda8.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda8.setCellValue(rs.getString("nombreC"));

            celda9 = fila.createCell(9);
            celda9.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            Double tto = 0.00;
            tto = rs.getDouble("precioServicio") + rs.getDouble("precioDeVenta");
            celda9.setCellValue(tto);
            celda10 = fila.createCell(10);
            celda10.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda10.setCellValue(rs.getInt("id"));
        }

        form = null;
        sql = "SELECT *,(select usuarios.nombre from usuarios where usuarios.numero=movimientoscaja.numeroUsuario)as nombreUsuario,(select listcli.RAZON_SOCI from listcli where listcli.id=movimientoscaja.idCliente)as nombreCliente,(select tipocomprobantes.descripcion from tipocomprobantes where tipocomprobantes.numero=movimientoscaja.tipoComprobante)as nombreComprobante,(select tipomovimientos.DESCRIPCION from tipomovimientos where tipomovimientos.ID=movimientoscaja.tipoMovimiento)as nombreMov FROM movimientoscaja where idcaja="
                + Inicio.caja.getNumero() + " order by id";
        //System.out.println(sql);
        //tra=new Conecciones();
        rs = tra.leerConjuntoDeRegistros(sql);
        //HSSFCellStyle titulo=libro.createCellStyle();
        titulo.setFont(fuente);
        //titulo.setFillBackgroundColor((short)22);
        titulo.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
        titulo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //for(int a=0;a < 100;a++){
        col = 0;
        a = 0;
        if (a == 0) {
            fila = hoja2.createRow(a);
            celda = fila.createCell(0);
            celda.setCellStyle(titulo);
            celda.setCellValue("Cajero");
            celda1 = fila.createCell(1);
            celda1.setCellStyle(titulo);
            celda1.setCellValue("Cliente");
            celda2 = fila.createCell(2);
            celda2.setCellStyle(titulo);
            celda2.setCellValue("Comprobante Numero");
            celda3 = fila.createCell(3);
            celda3.setCellStyle(titulo);
            celda3.setCellValue("Tipo Comprobante");
            celda4 = fila.createCell(4);
            celda4.setCellStyle(titulo);
            celda4.setCellValue("Monto");
            celda5 = fila.createCell(5);
            celda5.setCellStyle(titulo);
            celda5.setCellValue("Fecha");
            celda6 = fila.createCell(6);
            celda6.setCellStyle(titulo);
            celda6.setCellValue("Tipo de Movimiento");
            celda7 = fila.createCell(7);
            celda7.setCellStyle(titulo);
            celda7.setCellValue("Condicion");

            celda8 = fila.createCell(8);
            celda8.setCellStyle(titulo);
            celda8.setCellValue("idMovimiento");

        }
        while (rs.next()) {
            a++;
            //col=rs.getInt("tipoMovimiento");
            switch (col) {
            case 1:

                break;
            default:

                break;
            }
            fila = hoja2.createRow(a);
            celda = fila.createCell(0);
            ttx = ttx;
            celda.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda.setCellValue(rs.getString("nombreUsuario"));
            celda1 = fila.createCell(1);
            ttx = ttx;
            celda1.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda1.setCellValue(rs.getString("nombreCliente"));
            celda2 = fila.createCell(2);
            celda2.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda2.setCellValue(rs.getInt("numeroComprobante"));
            celda3 = fila.createCell(3);
            celda3.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda3.setCellValue(rs.getString("nombreComprobante"));
            celda4 = fila.createCell(4);
            celda4.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda4.setCellValue(rs.getDouble("monto"));

            celda5 = fila.createCell(5);
            //celda5.setCellFormula(rs.getString("observaciones"));
            celda5.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda5.setCellValue(" " + rs.getDate("fecha"));
            //celda5.setCellValue(rs.getDate("fecha"));
            celda6 = fila.createCell(6);
            celda6.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda6.setCellValue(rs.getString("nombreMov"));
            celda7 = fila.createCell(7);
            String pagado = "PAGADO";
            if (rs.getInt("pagado") == 0 && rs.getInt("tipoMovimiento") == 1)
                pagado = "CTA CTE";
            celda7.setCellType(HSSFCell.CELL_TYPE_STRING);
            celda7.setCellValue(pagado);

            celda8 = fila.createCell(8);
            celda8.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
            celda8.setCellValue(rs.getInt("id"));
        }

        rs.close();

        //texto+="\r\n";
        String ruta = "C://Informes//" + Inicio.fechaDia + "_" + Inicio.usuario.getNombre()
                + " - informeDeStock.xls";
        String nombree = Inicio.fechaDia + "_" + Inicio.usuario.getNombre() + " - informeDeStock.xls";
        try {
            FileOutputStream elFichero = new FileOutputStream(ruta);
            try {
                libro.write(elFichero);
                elFichero.close();
                Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + ruta);
                Mail mail = new Mail();
                String mailRecepcion = Propiedades.getCORREOCIERREDECAJA();
                mail.setDetalleListado(nombree);
                mail.setDireccionFile(ruta);
                mail.setAsunto("Informe de cierre de caja " + Inicio.fechaDia + " Sucursal: "
                        + Propiedades.getNOMBRECOMERCIO());
                mail.enviarMailRepartoCargaCompleta(mailRecepcion);
            } catch (IOException ex) {
                Logger.getLogger(InformeMensual.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessagingException ex) {
                Logger.getLogger(InformeDiarioStock.class.getName()).log(Level.SEVERE, null, ex);
                JOptionPane.showMessageDialog(null, "NO SE HA PODIDO ENVIAR EL MENSAJE MOTIVO :" + ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(InformeMensual.class.getName()).log(Level.SEVERE, null, ex);
        }
        sql = "select id,nombre,precio,servicio,(select sum(movimientosarticulos.cantidad) from movimientosarticulos where movimientosarticulos.idcaja="
                + Inicio.caja.getNumero()
                + " and movimientosarticulos.idarticulo=articulos.id)as cantidadVendida from articulos order by cantidadVendida desc";
        rs = tra.leerConjuntoDeRegistros(sql);
        System.out.println(sql);
        Transaccionable tt = new Conecciones();
        String sql1;
        Double cantVend;
        while (rs.next()) {
            cantVend = rs.getDouble("cantidadVendida");
            if (cantVend < 0) {
                //sql1="insert into movimientosarticulosF (tipoMovimiento,idArticulo,cantidad,numeroDeposito,tipoComprobante,numeroCliente,numerousuario,precioDeVenta,precioServicio,idcaja) values (1,"+rs.getInt("id")+",floor("+rs.getDouble("cantidadVendida")+" * 0.1),"+Inicio.deposito.getNumero()+",1,1,"+Inicio.usuario.getNumeroId()+","+rs.getDouble("precio")+","+rs.getDouble("servicio")+","+Inicio.caja.getNumero()+")";
                //System.out.println(sql1);
                //tt.guardarRegistro(sql1);
            }

        }
    }
}