jm.fac.pdf.pdfArqueoCaja.java Source code

Java tutorial

Introduction

Here is the source code for jm.fac.pdf.pdfArqueoCaja.java

Source

/**
* @version 1.0
* @package FACTURAPYMES.
* @author Jorge Washington Mueses Cevallos.
* @copyright Copyright (C) 2010 por Jorge Mueses. Todos los derechos reservados.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL.
* FACTURAPYMES! es un software de libre distribucin, que puede ser
* copiado y distribuido bajo los trminos de la Licencia Pblica
* General GNU, de acuerdo con la publicada por la Free Software
* Foundation, versin 2 de la licencia o cualquier versin posterior.
*/

package jm.fac.pdf;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;

import com.lowagie.text.pdf.*;
import com.lowagie.text.*;

import jm.adm.clas.Configuracion;
import java.sql.ResultSet;
import jm.web.Addons;
import jm.web.Fecha;
import jm.fac.clas.ArqueoCaja;
import jm.nom.clas.Empleado;

/**
 *
 * @author Jorge
 */
public class pdfArqueoCaja extends HttpServlet {
    private String _ip = null;
    private int _puerto = 5432;
    private String _db = null;
    //private String _dir = null;

    public void init(ServletConfig config) throws ServletException {
        this._ip = config.getServletContext().getInitParameter("_IP");
        this._puerto = Integer.parseInt(config.getServletContext().getInitParameter("_PUERTO"));
        this._db = config.getServletContext().getInitParameter("_DB");
        //this._dir = config.getServletContext().getInitParameter("_DIR");
    }

    /**
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession sesion = request.getSession(true);
        String usuario = (String) sesion.getAttribute("usuario");
        String clave = (String) sesion.getAttribute("clave");

        response.setContentType("application/pdf");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "Mon, 01 Jan 2001 00:00:01 GMT");
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Cache-Control", "must-revalidate");
        response.setHeader("Cache-Control", "no-cache");

        //PrintWriter out = response.getWriter();

        Configuracion conf = new Configuracion(this._ip, this._puerto, this._db, usuario, clave);
        String titulo = conf.getValor("razon_social");
        conf.cerrar();

        String path = String.valueOf(request.getRequestURL());
        path = path.substring(0, path.lastIndexOf("/"));
        /*Archivo archivo = new Archivo(this._ip, this._puerto, this._db, usuario, clave);
        String logo = path + "/img/" + archivo.getArchivo(this._dir, 1);
        archivo.cerrar();*/

        ArqueoCaja objArqueoCaja = new ArqueoCaja(this._ip, this._puerto, this._db, usuario, clave);

        Empleado objEmpleado = new Empleado(this._ip, this._puerto, this._db, usuario, clave);

        String id = request.getParameter("id");
        //int i=0;

        String num_documento = "0";
        String fecha = Fecha.getFecha("SQL");
        String hora = Fecha.getHora();
        String cajero = "";
        String saldo_caja = "0";
        String num_cheques = "0";
        String valor_cheques = "0";
        String num_comp_pagos = "0";
        String valor_comp_pagos = "0";
        String num_retenciones = "0";
        String valor_retenciones = "0";
        String valor_efectivo = "0";
        String total_caja = "0";
        String diferencia = "0";
        String tipo_diferencia = "0";
        //boolean anulado = false;

        if (id.compareTo("-1") != 0) {
            try {
                ResultSet rsArqueoCaja = objArqueoCaja.getArqueoCaja(id);
                if (rsArqueoCaja.next()) {
                    num_documento = (rsArqueoCaja.getString("num_documento") != null)
                            ? rsArqueoCaja.getString("num_documento")
                            : "0";
                    fecha = (rsArqueoCaja.getString("fecha") != null) ? rsArqueoCaja.getString("fecha") : "";
                    hora = (rsArqueoCaja.getString("Hora") != null) ? rsArqueoCaja.getString("Hora") : "";
                    cajero = (rsArqueoCaja.getString("cajero") != null) ? rsArqueoCaja.getString("cajero") : "";
                    saldo_caja = (rsArqueoCaja.getString("saldo_caja") != null)
                            ? rsArqueoCaja.getString("saldo_caja")
                            : "";
                    num_cheques = (rsArqueoCaja.getString("num_cheques") != null)
                            ? rsArqueoCaja.getString("num_cheques")
                            : "0.00";
                    valor_cheques = (rsArqueoCaja.getString("valor_cheques") != null)
                            ? rsArqueoCaja.getString("valor_cheques")
                            : "0.00";
                    num_comp_pagos = (rsArqueoCaja.getString("num_comp_pagos") != null)
                            ? rsArqueoCaja.getString("num_comp_pagos")
                            : "0.00";
                    valor_comp_pagos = (rsArqueoCaja.getString("valor_comp_pagos") != null)
                            ? rsArqueoCaja.getString("valor_comp_pagos")
                            : "0.00";
                    num_retenciones = (rsArqueoCaja.getString("num_retenciones") != null)
                            ? rsArqueoCaja.getString("num_retenciones")
                            : "0";
                    valor_retenciones = (rsArqueoCaja.getString("valor_retenciones") != null)
                            ? rsArqueoCaja.getString("valor_retenciones")
                            : "0.00";

                    valor_efectivo = (rsArqueoCaja.getString("valor_efectivo") != null)
                            ? rsArqueoCaja.getString("valor_efectivo")
                            : "0.00";
                    total_caja = (rsArqueoCaja.getString("total") != null) ? rsArqueoCaja.getString("total")
                            : "0.00";
                    diferencia = (rsArqueoCaja.getString("diferencia") != null)
                            ? rsArqueoCaja.getString("diferencia")
                            : "0.00";
                    tipo_diferencia = (rsArqueoCaja.getString("tipo_diferencia") != null)
                            ? rsArqueoCaja.getString("tipo_diferencia")
                            : "";
                    //anulado = (rsArqueoCaja.getString("anulado")!=null) ? rsArqueoCaja.getBoolean("anulado") : false;
                    rsArqueoCaja.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        String sucursal = "";
        String empleado = "";
        try {
            ResultSet rs = objEmpleado.getCajero(cajero);
            if (rs.next()) {
                sucursal = rs.getString("sucursal") != null ? rs.getString("sucursal") : "";
                empleado = rs.getString("empleado") != null ? rs.getString("empleado") : "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        /* inicio PDF */
        Document doc = new Document(PageSize.A4);// paso 1

        /* tambien establesco el alto del tope para la primera impresion de la factura */

        float ancho = PageSize.A4.getWidth();
        float alto = PageSize.A4.getHeight();

        try {
            PdfWriter writer = PdfWriter.getInstance(doc, response.getOutputStream()); // paso 2

            doc.open(); // paso 3

            // Para enviar a la impresora automticamente.

            writer.addJavaScript("this.print(false);", false);

            /* todo el cuerpo del doc es el paso 4 */

            PdfPTable tbl_titulo = new PdfPTable(1);
            tbl_titulo
                    .addCell(Addons.setCeldaPDF(titulo, Font.HELVETICA, 14, Font.NORMAL, Element.ALIGN_CENTER, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF("ARQUEO DE CAJA\n\n", Font.HELVETICA, 14, Font.BOLD,
                    Element.ALIGN_CENTER, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF("No.   " + num_documento + "\n", Font.HELVETICA, 12, Font.NORMAL,
                    Element.ALIGN_RIGHT, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF("Sucursal: " + sucursal, Font.HELVETICA, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF("Usuario de caja: " + cajero, Font.HELVETICA, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF("Responsable de caja: " + empleado, Font.HELVETICA, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0));
            doc.add(tbl_titulo);

            PdfPTable tbl_det = new PdfPTable(2);

            tbl_det.addCell(
                    Addons.setCeldaPDF("Fecha: " + fecha, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 0));
            tbl_det.addCell(
                    Addons.setCeldaPDF("Hora: " + hora, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 0));

            tbl_det.addCell(Addons.setFilaBlanco(3, 10));

            doc.add(tbl_det);

            /* efectivo */
            try {
                String denominacion = "";
                String cantidad = "";
                String total = "";
                ResultSet rsArqueoEfectivo = objArqueoCaja.getArqueoCajaEfectivo(id);
                if (objArqueoCaja.getFilas(rsArqueoEfectivo) > 0) {
                    doc.add(Addons.setCabeceraTabla(new String[] { "DENOMINACION", "CANTIDAD", "TOTAL ($)" },
                            new float[] { 60f, 20f, 20f }));
                    PdfPTable tbl_efectivo = new PdfPTable(new float[] { 60f, 20f, 20f });
                    while (rsArqueoEfectivo.next()) {
                        denominacion = (rsArqueoEfectivo.getString("denominacion") != null)
                                ? rsArqueoEfectivo.getString("denominacion")
                                : "";
                        cantidad = (rsArqueoEfectivo.getString("cantidad") != null)
                                ? rsArqueoEfectivo.getString("cantidad")
                                : "";
                        total = (rsArqueoEfectivo.getString("total") != null) ? rsArqueoEfectivo.getString("total")
                                : "";
                        tbl_efectivo.addCell(Addons.setCeldaPDF(denominacion, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_LEFT, 1));
                        tbl_efectivo.addCell(Addons.setCeldaPDF(cantidad, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_CENTER, 1));
                        tbl_efectivo.addCell(
                                Addons.setCeldaPDF(total, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));
                    }
                    tbl_efectivo.addCell(Addons.setFilaBlanco(3, 10));
                    doc.add(tbl_efectivo);
                }
                rsArqueoEfectivo.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            /* cheque */
            try {
                String efectivizado = "";
                String banco = "";
                String num_cheque = "";
                String valor = "";
                ResultSet rsArqueoCheque = objArqueoCaja.getArqueoCajaCheque(id);
                if (objArqueoCaja.getFilas(rsArqueoCheque) > 0) {
                    doc.add(Addons.setCabeceraTabla(
                            new String[] { "BANCO", "Nro. CHEQUE", "VALOR ($)", "EFECTIVIZADO" },
                            new float[] { 60f, 30f, 20f, 15f }));
                    PdfPTable tbl_cheque = new PdfPTable(new float[] { 60f, 30f, 20f, 15f });
                    while (rsArqueoCheque.next()) {
                        efectivizado = (rsArqueoCheque.getString("efectivizado") != null)
                                ? rsArqueoCheque.getString("efectivizado")
                                : "";
                        banco = (rsArqueoCheque.getString("banco") != null) ? rsArqueoCheque.getString("banco")
                                : "";
                        num_cheque = (rsArqueoCheque.getString("num_cheque") != null)
                                ? rsArqueoCheque.getString("num_cheque")
                                : "";
                        valor = (rsArqueoCheque.getString("valor") != null) ? rsArqueoCheque.getString("valor")
                                : "";
                        tbl_cheque.addCell(
                                Addons.setCeldaPDF(banco, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 1));
                        tbl_cheque.addCell(Addons.setCeldaPDF(num_cheque, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_LEFT, 1));
                        tbl_cheque.addCell(
                                Addons.setCeldaPDF(valor, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));
                        tbl_cheque.addCell(Addons.setCeldaPDF(efectivizado, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_RIGHT, 1));
                    }
                    tbl_cheque.addCell(Addons.setFilaBlanco(4, 10));
                    doc.add(tbl_cheque);
                }
                rsArqueoCheque.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            /* otros documentos */
            try {
                String num_comp_pago = "";
                String valor = "";
                ResultSet rsArqueoDocs = objArqueoCaja.getArqueoCajaOtros(id);
                if (objArqueoCaja.getFilas(rsArqueoDocs) > 0) {
                    doc.add(Addons.setCabeceraTabla(new String[] { "Nro. COMP. PAGO", "VALOR ($)" },
                            new float[] { 70f, 30f }));
                    PdfPTable tbl_otros = new PdfPTable(new float[] { 70f, 30f });
                    while (rsArqueoDocs.next()) {
                        num_comp_pago = (rsArqueoDocs.getString("num_comp_pago") != null)
                                ? rsArqueoDocs.getString("num_comp_pago")
                                : "";
                        valor = (rsArqueoDocs.getString("valor") != null) ? rsArqueoDocs.getString("valor") : "0";
                        tbl_otros.addCell(Addons.setCeldaPDF(num_comp_pago, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_LEFT, 1));
                        tbl_otros.addCell(
                                Addons.setCeldaPDF(valor, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));
                    }
                    tbl_otros.addCell(Addons.setFilaBlanco(3, 10));
                    doc.add(tbl_otros);
                }
                rsArqueoDocs.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            /* retenciones */
            try {
                String num_retencion = "";
                String valor_retencion = "";
                ResultSet rsArqueoRets = objArqueoCaja.getArqueoCajaRetenciones(id);
                if (objArqueoCaja.getFilas(rsArqueoRets) > 0) {
                    doc.add(Addons.setCabeceraTabla(new String[] { "Nro. RETENCION", "VALOR ($)" },
                            new float[] { 70f, 30f }));
                    PdfPTable tbl_otros = new PdfPTable(new float[] { 70f, 30f });
                    while (rsArqueoRets.next()) {
                        num_retencion = (rsArqueoRets.getString("num_retencion") != null)
                                ? rsArqueoRets.getString("num_retencion")
                                : "";
                        valor_retencion = (rsArqueoRets.getString("valor_retencion") != null)
                                ? rsArqueoRets.getString("valor_retencion")
                                : "0";
                        tbl_otros.addCell(Addons.setCeldaPDF(num_retencion, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_LEFT, 1));
                        tbl_otros.addCell(Addons.setCeldaPDF(valor_retencion, Font.HELVETICA, 8, Font.NORMAL,
                                Element.ALIGN_RIGHT, 1));
                    }
                    tbl_otros.addCell(Addons.setFilaBlanco(3, 10));
                    doc.add(tbl_otros);
                }
                rsArqueoRets.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            PdfPTable tbl_totales = new PdfPTable(new float[] { 60f, 40f });
            tbl_totales.addCell(Addons.setFilaBlanco(3, 5));

            tbl_totales.addCell(Addons.setCeldaPDF("Saldo en caja actual:", Font.HELVETICA, 8, Font.NORMAL,
                    Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(saldo_caja, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(Addons.setCeldaPDF("Total monedas y billetes:", Font.HELVETICA, 8, Font.NORMAL,
                    Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(valor_efectivo, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(Addons.setCeldaPDF("Total cheques (" + num_cheques + "):", Font.HELVETICA, 8,
                    Font.NORMAL, Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(valor_cheques, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(Addons.setCeldaPDF("Total comprobantes de pago (" + num_comp_pagos + "):",
                    Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(valor_comp_pagos, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(Addons.setCeldaPDF("Total retenciones (" + num_retenciones + "):", Font.HELVETICA,
                    8, Font.NORMAL, Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(valor_retenciones, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(
                    Addons.setCeldaPDF("Total en caja:", Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(total_caja, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            tbl_totales.addCell(Addons.setCeldaPDF(
                    "Diferencia:        " + (tipo_diferencia.compareTo("f") == 0 ? "faltante"
                            : (tipo_diferencia.compareTo("s") == 0 ? "sobrante" : "")),
                    Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_LEFT, 1));
            tbl_totales.addCell(
                    Addons.setCeldaPDF(diferencia, Font.HELVETICA, 8, Font.NORMAL, Element.ALIGN_RIGHT, 1));

            doc.add(tbl_totales);

            doc.add(new Paragraph(" "));
            doc.add(new Paragraph(" "));
            doc.add(new Paragraph(" "));

            PdfPTable tbl_firmas = new PdfPTable(3);
            tbl_firmas.addCell(
                    Addons.setCeldaPDF("RESPONSABLE", Font.HELVETICA, 10, Font.NORMAL, Element.ALIGN_CENTER, 0));
            tbl_firmas.addCell(
                    Addons.setCeldaPDF("VERIFICADO", Font.HELVETICA, 10, Font.NORMAL, Element.ALIGN_CENTER, 0));
            tbl_firmas.addCell(
                    Addons.setCeldaPDF("AUTORIZADO", Font.HELVETICA, 10, Font.NORMAL, Element.ALIGN_CENTER, 0));
            doc.add(tbl_firmas);

        } catch (IllegalStateException ie) {
            ie.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } finally {
            objEmpleado.cerrar();
            objArqueoCaja.cerrar();
        }

        doc.close(); // paso 5
        /* fin PDF */
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}