candelaria.presentacion.beans.DetalleFacturaControlador.java Source code

Java tutorial

Introduction

Here is the source code for candelaria.presentacion.beans.DetalleFacturaControlador.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 candelaria.presentacion.beans;

import candelaria.logica.clases.Cliente;
import candelaria.logica.clases.Detalle_Factura;
import candelaria.logica.clases.Factura;
import candelaria.logica.clases.Producto;
import candelaria.logica.funciones.FCliente;
import candelaria.logica.funciones.FDetalleFactura;
import candelaria.logica.funciones.FFactura;
import candelaria.logica.funciones.FProducto;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import org.primefaces.context.DefaultRequestContext;
import org.primefaces.event.DragDropEvent;
import org.primefaces.model.DualListModel;
import recursos.Util;

/**
 *
 * @author Usuario
 */
@ManagedBean
@ViewScoped
public class DetalleFacturaControlador {

    Date fecha = new java.util.Date();
    private Factura objFactura;
    private Factura facturaSel;
    private Detalle_Factura objDetalleFactura;
    private Detalle_Factura detalleFacturaSel;
    private Producto productoSel;
    private ArrayList<Detalle_Factura> lstDetalleFactura;
    private DualListModel<Producto> Productos;
    private ArrayList<Producto> lstProductos;
    private ArrayList<Producto> lstProductosMozarela;
    private ArrayList<Producto> lstProductosYogurth;
    private ArrayList<Producto> droppedCars;
    private ArrayList<Factura> facturaUltima;
    private ArrayList<Cliente> lstClientes;
    private boolean mostrarActualizar;
    private int valorProductoSeleccionado;
    private int cantidad;
    private double resultado;
    private double precio;
    private double sumaTotalCantidad;
    private String fecha_cambiada;
    private String fechaLetras;
    private int valorFSeleccionado;
    private int valorSSeleccionado;
    private double totalHoja;
    private double totalFactura;
    private double impuestoFactura;
    private int valorDSeleccionado;
    private int codigoFactura;

    public double getSumaTotalCantidad() {
        return sumaTotalCantidad;
    }

    public void setSumaTotalCantidad(double sumaTotalCantidad) {
        this.sumaTotalCantidad = sumaTotalCantidad;
    }

    public ArrayList<Producto> getLstProductosMozarela() {
        return lstProductosMozarela;
    }

    public void setLstProductosMozarela(ArrayList<Producto> lstProductosMozarela) {
        this.lstProductosMozarela = lstProductosMozarela;
    }

    public ArrayList<Producto> getLstProductosYogurth() {
        return lstProductosYogurth;
    }

    public void setLstProductosYogurth(ArrayList<Producto> lstProductosYogurth) {
        this.lstProductosYogurth = lstProductosYogurth;
    }

    public int getCodigoFactura() {
        return codigoFactura;
    }

    public void setCodigoFactura(int codigoFactura) {
        this.codigoFactura = codigoFactura;
    }

    public int getValorDSeleccionado() {
        return valorDSeleccionado;
    }

    public void setValorDSeleccionado(int valorDSeleccionado) {
        this.valorDSeleccionado = valorDSeleccionado;
    }

    public ArrayList<Producto> getDroppedCars() {
        return droppedCars;
    }

    public void setDroppedCars(ArrayList<Producto> droppedCars) {
        this.droppedCars = droppedCars;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public String getFechaLetras() {
        return fechaLetras;
    }

    public void setFechaLetras(String fechaLetras) {
        this.fechaLetras = fechaLetras;
    }

    public DualListModel<Producto> getProductos() {
        return Productos;
    }

    public void setProductos(DualListModel<Producto> Productos) {
        this.Productos = Productos;
    }

    public ArrayList<Cliente> getLstClientes() {
        return lstClientes;
    }

    public void setLstClientes(ArrayList<Cliente> lstClientes) {
        this.lstClientes = lstClientes;
    }

    public double getTotalFactura() {
        return totalFactura;
    }

    public void setTotalFactura(double totalFactura) {
        this.totalFactura = totalFactura;
    }

    public double getImpuestoFactura() {
        return impuestoFactura;
    }

    public void setImpuestoFactura(double impuestoFactura) {
        this.impuestoFactura = impuestoFactura;
    }

    public Factura getObjFactura() {
        return objFactura;
    }

    public void setObjFactura(Factura objFactura) {
        this.objFactura = objFactura;
    }

    public Producto getProductoSel() {
        return productoSel;
    }

    public void setProductoSel(Producto productoSel) {
        this.productoSel = productoSel;
    }

    public int getCantidad() {
        return cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

    public double getResultado() {
        return resultado;
    }

    public void setResultado(double resultado) {
        this.resultado = resultado;
    }

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

    public String getFecha_cambiada() {
        return fecha_cambiada;
    }

    public void setFecha_cambiada(String fecha_cambiada) {
        this.fecha_cambiada = fecha_cambiada;
    }

    public int getValorFSeleccionado() {
        return valorFSeleccionado;
    }

    public void setValorFSeleccionado(int valorFSeleccionado) {
        this.valorFSeleccionado = valorFSeleccionado;
    }

    public int getValorSSeleccionado() {
        return valorSSeleccionado;
    }

    public void setValorSSeleccionado(int valorSSeleccionado) {
        this.valorSSeleccionado = valorSSeleccionado;
    }

    public double getTotalHoja() {
        return totalHoja;
    }

    public void setTotalHoja(double totalHoja) {
        this.totalHoja = totalHoja;
    }

    public Factura getFacturaSel() {
        return facturaSel;
    }

    public void setFacturaSel(Factura facturaSel) {
        this.facturaSel = facturaSel;
    }

    public ArrayList<Factura> getFacturaUltima() {
        return facturaUltima;
    }

    public void setFacturaUltima(ArrayList<Factura> facturaUltima) {
        this.facturaUltima = facturaUltima;
    }

    public int getValorProductoSeleccionado() {
        return valorProductoSeleccionado;
    }

    public void setValorProductoSeleccionado(int valorProductoSeleccionado) {
        this.valorProductoSeleccionado = valorProductoSeleccionado;
    }

    public ArrayList<Producto> getLstProductos() {
        return lstProductos;
    }

    public void setLstProductos(ArrayList<Producto> lstProductos) {
        this.lstProductos = lstProductos;
    }

    public Detalle_Factura getObjDetalleFactura() {
        return objDetalleFactura;
    }

    public void setObjDetalleFactura(Detalle_Factura objDetalleFactura) {
        this.objDetalleFactura = objDetalleFactura;
    }

    public Detalle_Factura getDetalleFacturaSel() {
        return detalleFacturaSel;
    }

    public void setDetalleFacturaSel(Detalle_Factura detalleFacturaSel) {
        this.detalleFacturaSel = detalleFacturaSel;
    }

    public ArrayList<Detalle_Factura> getLstDetalleFactura() {
        return lstDetalleFactura;
    }

    public void setLstDetalleFactura(ArrayList<Detalle_Factura> lstDetalleFactura) {
        this.lstDetalleFactura = lstDetalleFactura;
    }

    public boolean isMostrarActualizar() {
        return mostrarActualizar;
    }

    public void setMostrarActualizar(boolean mostrarActualizar) {
        this.mostrarActualizar = mostrarActualizar;
    }

    public DetalleFacturaControlador() {
        reinit();

    }

    @PostConstruct
    private void reinit() {
        this.objDetalleFactura = new Detalle_Factura();
        this.detalleFacturaSel = new Detalle_Factura();
        this.facturaSel = new Factura();
        this.productoSel = new Producto();
        this.facturaUltima = new ArrayList<Factura>();

        this.lstClientes = new ArrayList<Cliente>();
        this.lstProductos = new ArrayList<Producto>();
        this.lstProductosMozarela = new ArrayList<Producto>();
        this.lstProductosYogurth = new ArrayList<Producto>();
        this.droppedCars = new ArrayList<Producto>();
        this.lstDetalleFactura = new ArrayList<Detalle_Factura>();
        cargarFacturaUltima();
        cargarProductos();
        cargarProductosMozarela();
        cargarProductosYogurth();
        cargarClientes();
        cargarDetalleFactura();
        sumaColumaPrecio();
        Iva();
        Total();

    }

    public void cargarProductos() {
        try {
            this.lstProductos = FProducto.ObtenerProductosListaQueso();
            // this.productoSel = lstProductos.get(0);
            System.out.println(lstProductos.get(0).getId_producto());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarCategoria dice: " + e.getMessage());
            System.out.println("private void cargarCategoria dice: " + e.getMessage());
        }
    }

    public void cargarProductosMozarela() {
        try {
            this.lstProductosMozarela = FProducto.ObtenerProductosListaMozarela();
            //this.productoSel = lstProductos.get(0);
            System.out.println(lstProductos.get(0).getId_producto());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarMozarela dice: " + e.getMessage());
            System.out.println("private void cargarMozarela dice: " + e.getMessage());
        }
    }

    public void cargarProductosYogurth() {
        try {
            this.lstProductosYogurth = FProducto.ObtenerProductosListaYogurth();
            //this.productoSel = lstProductos.get(0);
            System.out.println(lstProductos.get(0).getId_producto());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarYogurth dice: " + e.getMessage());
            System.out.println("private void cargarYogurth dice: " + e.getMessage());
        }
    }

    public void cargarFacturaUltima() {
        java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("dd/MM/yyyy");
        fecha_cambiada = sdf1.format(fecha);
        DateFormat sdf2 = DateFormat.getDateInstance(DateFormat.FULL);
        fechaLetras = sdf2.format(fecha);
        try {
            this.facturaUltima = FFactura.ObtenerFacturaUltima();
            this.facturaSel = facturaUltima.get(0);
            //this.codigoFactura=facturaSel.getId_factura();
            System.out.println(facturaUltima.get(0).getId_factura());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarFactura dice: " + e.getMessage());
            System.out.println("private void cargarFactura dice: " + e.getMessage());
        }
    }

    public void cargarClientes() {
        try {
            this.lstClientes = FCliente.ObtenerClientes();
            //this.facturaSel = facturaUltima.get(0);
            System.out.println(lstClientes.get(0).getId_cliente());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarCliente dice: " + e.getMessage());
            System.out.println("private void cargarCliente dice: " + e.getMessage());
        }
    }

    public void cargarDetalleFactura() {
        try {
            this.lstDetalleFactura = FDetalleFactura.ObtenerDetalleDadoCodigoFactura(facturaSel.getId_factura());
            this.detalleFacturaSel = lstDetalleFactura.get(0);
            System.out.println(lstDetalleFactura.get(0).getId_producto());
        } catch (Exception e) {
            Util.addErrorMessage("private void cargarDetalleFactura dice: " + e.getMessage());
            System.out.println("private void cargarDetalleFactura dice: " + e.getMessage());
        }
    }

    public void insertarDetalleFacturaQueso() {

        try {
            sumaTotalCantidad = cantidad * FProducto.ObtenerProductoDadoCodigo(valorDSeleccionado).getId_categoria()
                    .getPrecio_producto();
            Producto producto = new Producto();
            producto.setId_producto(valorDSeleccionado);
            objDetalleFactura.setId_producto(producto);

            Factura fact = new Factura();
            fact.setId_factura(facturaSel.getId_factura());
            objDetalleFactura.setId_factura(fact);
            objDetalleFactura.setCantidad(cantidad);
            objDetalleFactura.setValor_total(sumaTotalCantidad);
            if (FDetalleFactura.Insertar(objDetalleFactura)) {
                this.reinit();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoQueso.hide()");
                Util.addSuccessMessage("Informacin guardada con xito");
                System.out.println("public void insertarDetalleFactura dice: Error al guardar la informacin");
            } else {
                Util.addSuccessMessage("Error al guardar la informacin");
                System.out.println("public void insertarDetalleFactura dice: Error al guardar la informacin");
            }
        } catch (Exception e) {
            Util.addErrorMessage("private void insertarDetalleFacturaQueso dice: " + e.getMessage());
            System.out.println("private void insertarDetalleFacturaQueso dice: " + e.getMessage());
        }
    }

    public void insertarDetalleFacturaMozarela() {

        try {
            sumaTotalCantidad = cantidad * FProducto.ObtenerProductoDadoCodigo(valorDSeleccionado).getId_categoria()
                    .getPrecio_producto();
            Producto producto = new Producto();
            producto.setId_producto(valorDSeleccionado);
            objDetalleFactura.setId_producto(producto);

            Factura fact = new Factura();
            fact.setId_factura(facturaSel.getId_factura());
            objDetalleFactura.setId_factura(fact);
            objDetalleFactura.setCantidad(cantidad);
            objDetalleFactura.setValor_total(sumaTotalCantidad);
            if (FDetalleFactura.Insertar(objDetalleFactura)) {
                this.reinit();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoMozarela.hide()");
                Util.addSuccessMessage("Informacin guardada con xito");
                System.out.println(
                        "public void insertarDetalleFacturaMozarela dice: Error al guardar la informacin");
            } else {
                Util.addSuccessMessage("Error al guardar la informacin");
                System.out.println(
                        "public void insertarDetalleFacturaMozarela dice: Error al guardar la informacin");
            }
        } catch (Exception e) {
            Util.addErrorMessage("private void insertarDetalleFacturaMozarela dice: " + e.getMessage());
            System.out.println("private void insertarDetalleFacturaMozarela dice: " + e.getMessage());
        }
    }

    public void insertarDetalleFacturaYogurth() {

        try {
            sumaTotalCantidad = cantidad * FProducto.ObtenerProductoDadoCodigo(valorDSeleccionado).getId_categoria()
                    .getPrecio_producto();
            Producto producto = new Producto();
            producto.setId_producto(valorDSeleccionado);
            objDetalleFactura.setId_producto(producto);

            Factura fact = new Factura();
            fact.setId_factura(facturaSel.getId_factura());
            objDetalleFactura.setId_factura(fact);
            objDetalleFactura.setCantidad(cantidad);
            objDetalleFactura.setValor_total(sumaTotalCantidad);
            if (FDetalleFactura.Insertar(objDetalleFactura)) {
                this.reinit();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoYogurth.hide()");
                Util.addSuccessMessage("Informacin guardada con xito");
                System.out.println(
                        "public void insertarDetalleFacturaYogurth dice: Error al guardar la informacin");
            } else {
                Util.addSuccessMessage("Error al guardar la informacin");
                System.out.println(
                        "public void insertarDetalleFacturaYogurth dice: Error al guardar la informacin");
            }
        } catch (Exception e) {
            Util.addErrorMessage("private void insertarDetalleFacturaYogurth dice: " + e.getMessage());
            System.out.println("private void insertarDetalleFacturaYogurth dice: " + e.getMessage());
        }
    }

    public void cambiarEstadoMostrarActualizar() {
        mostrarActualizar = true;
    }

    public void actualizarDetalleFactura() {
        try {
            detalleFacturaSel.setId_producto(
                    FProducto.ObtenerProductoDadoCodigo(detalleFacturaSel.getId_producto().getId_producto()));

            if (FDetalleFactura.actualizar(detalleFacturaSel)) {
                detalleFacturaSel = new Detalle_Factura();
                mostrarActualizar = false;
                this.reinit();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarDetalle.hide()");
                Util.addSuccessMessage("Informacin guardada con xito");
                System.out.println("public void actualizarDetalleFactura dice: Informacin guardada con xito!!");
            } else {
                Util.addErrorMessage("Error al guardar la informacin");
                System.out.println("public void actualizarDetalleFactura dice: Error al guardar la informacin");
            }
        } catch (Exception e) {
            Util.addErrorMessage("private void actualizarDetalleFactura dice: " + e.getMessage());
            System.out.println("private void actualizarDetalleFactura dice: " + e.getMessage());
        }
    }

    public void eliminarDetalleFactura() {
        try {
            if (FDetalleFactura.eliminar((int) detalleFacturaSel.getId_detalle_factura())) {
                this.reinit();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEliminarDetalle.hide()");
                Util.addSuccessMessage("Informacin eliminada.");
                System.out.println("public void eliminarDetalleFactura dice: Informacin eliminada.");
            } else {
                Util.addErrorMessage("Error al eliminar la informacin.");
                System.out.println("public void eliminarDetalleFactura dice: Error al eliminar la informacin");
            }
        } catch (Exception e) {
            Util.addErrorMessage("private void eliminarDetalleFactura dice: " + e.getMessage());
            System.out.println("private void eliminarDetalleFactura dice: " + e.getMessage());
        }

    }

    public double sumaColumaPrecio() {

        totalHoja = 0.0;
        try {
            this.lstDetalleFactura = FDetalleFactura.ObtenerDetalleDadoCodigoFactura(facturaSel.getId_factura());
            //int size = lstDetalles.size();
            for (Detalle_Factura lstDetalleFactura : lstDetalleFactura) {
                totalHoja = totalHoja + lstDetalleFactura.getValor_total();
                //System.out.println(totalHoja);
            }

        } catch (Exception e) {
            Util.addErrorMessage("private void actualizarDetalle dice: " + e.getMessage());
            System.out.println("private void actualizarDetalle dice: " + e.getMessage());
        }

        return totalHoja;
    }

    public double Iva() {
        //impuestoFactura=0.0;
        impuestoFactura = totalHoja * 0.12;

        return impuestoFactura;
    }

    public double Total() {
        totalFactura = 0.0;
        totalFactura = totalHoja + impuestoFactura;

        return totalFactura;
    }

    public void imprimirFac() {
        //DateFormat dfDateFull = DateFormat.getDateInstance(DateFormat.FULL);
        try {

            //Generamos el archivo PDF
            String directorioArchivos;
            ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                    .getContext();
            directorioArchivos = ctx.getRealPath("/") + "reports";
            String name = directorioArchivos + "/document-factura.pdf";
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(name));
            //PdfWriter writer = PdfWriter.getInstance(document,
            //new FileOutputStream("C:"));

            Paragraph paragraph = new Paragraph();
            Paragraph paragraph1 = new Paragraph();
            PdfPTable table = new PdfPTable(4);
            PdfPTable table1 = new PdfPTable(2);
            PdfPTable table2 = new PdfPTable(1);
            PdfPTable table3 = new PdfPTable(2);
            PdfPTable table5 = new PdfPTable(4);
            PdfPTable tablaF = new PdfPTable(1);
            PdfPTable tablaF1 = new PdfPTable(3);
            PdfPTable tablaF2 = new PdfPTable(3);

            paragraph.add("\n\n\n");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);

            paragraph.add("YUQUI OLGA");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("\n");
            paragraph.add("Dir. La Candelaria Barrio Nuevo");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("\n");
            paragraph.add("Telf: 3014019");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("\n");
            paragraph.add("Penipe - Ecuador");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("\n");
            paragraph.add("\n");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("AUTORIZACION SRI __________ - RUC.: 0600750897001");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);
            paragraph.add("\n");
            paragraph.add("FACTURA: " + facturaSel.getId_factura());
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);

            paragraph.add("\n\n\n");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);

            paragraph1.add("\n\n");
            paragraph.setAlignment(Paragraph.ALIGN_CENTER);

            document.open();

            //primera linea   
            PdfPCell cell5 = new PdfPCell(new Paragraph("Fecha: " + fecha_cambiada));
            //PdfPCell cell6 = new PdfPCell(new Paragraph("Factura #: " + facturaSel.getId_factura()));
            PdfPCell cell7 = new PdfPCell(new Paragraph("Cedula: " + facturaSel.getId_cliente().getRuc_cliente()));
            //segunda linea
            PdfPCell cell8 = new PdfPCell(
                    new Paragraph("Nombre Cliente: " + facturaSel.getId_cliente().getNombres_cliente()
                            + facturaSel.getId_cliente().getApellidos_cliente()));
            //tercera fila
            PdfPCell cell9 = new PdfPCell(
                    new Paragraph("Direccin: " + facturaSel.getId_cliente().getDireccion_cliente()));
            PdfPCell cell10 = new PdfPCell(
                    new Paragraph("Tlefono: " + facturaSel.getId_cliente().getTelefono_cliente()));

            PdfPCell cellf1 = new PdfPCell(new Paragraph("SubTotal     " + totalHoja));
            PdfPCell cellf2 = new PdfPCell(new Paragraph("Impuesto Iva " + impuestoFactura));
            PdfPCell cellf21 = new PdfPCell(new Paragraph("___________________"));
            PdfPCell cellf22 = new PdfPCell(new Paragraph("___________________"));
            PdfPCell cellf3 = new PdfPCell(new Paragraph("TOTAL        " + totalFactura));
            PdfPCell cellf31 = new PdfPCell(new Paragraph("FIRMA AUTORIZADA"));
            PdfPCell cellf32 = new PdfPCell(new Paragraph("FIRMA CLIENTE"));
            PdfPCell cell11 = new PdfPCell(new Paragraph("Cantidad"));
            PdfPCell cell12 = new PdfPCell(new Paragraph("Descripcin"));
            PdfPCell cell13 = new PdfPCell(new Paragraph("V. Unitario"));
            PdfPCell cell14 = new PdfPCell(new Paragraph("V. Total"));

            cell5.setHorizontalAlignment(Element.ALIGN_LEFT);
            //cell6.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell7.setHorizontalAlignment(Element.ALIGN_RIGHT);

            cellf1.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cellf2.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cellf3.setHorizontalAlignment(Element.ALIGN_RIGHT);

            cellf21.setHorizontalAlignment(Element.ALIGN_CENTER);
            cellf31.setHorizontalAlignment(Element.ALIGN_CENTER);
            cellf22.setHorizontalAlignment(Element.ALIGN_CENTER);
            cellf32.setHorizontalAlignment(Element.ALIGN_CENTER);

            cell8.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell9.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell10.setHorizontalAlignment(Element.ALIGN_RIGHT);

            cellf21.setBorder(Rectangle.NO_BORDER);
            cellf31.setBorder(Rectangle.NO_BORDER);
            cellf22.setBorder(Rectangle.NO_BORDER);
            cellf32.setBorder(Rectangle.NO_BORDER);

            cell5.setBorder(Rectangle.NO_BORDER);
            //cell6.setBorder(Rectangle.NO_BORDER);
            cell7.setBorder(Rectangle.NO_BORDER);
            cell8.setBorder(Rectangle.NO_BORDER);

            cell9.setBorder(Rectangle.NO_BORDER);
            cell10.setBorder(Rectangle.NO_BORDER);
            //cell7.setBorder(Rectangle.NO_BORDER);
            //cell8.setBorder(Rectangle.NO_BORDER);

            cell11.setBorder(Rectangle.NO_BORDER);
            cell12.setBorder(Rectangle.NO_BORDER);
            cell13.setBorder(Rectangle.NO_BORDER);
            cell14.setBorder(Rectangle.NO_BORDER);

            cellf1.setBorder(Rectangle.NO_BORDER);
            cellf2.setBorder(Rectangle.NO_BORDER);
            cellf3.setBorder(Rectangle.NO_BORDER);

            cell11.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell12.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell13.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell14.setHorizontalAlignment(Element.ALIGN_RIGHT);

            table1.addCell(cell5);
            //table1.addCell(cell6);
            table1.addCell(cell7);
            //aadir segunda fila
            table2.addCell(cell8);
            //aadir tercera fila
            table3.addCell(cell9);
            table3.addCell(cell10);
            //aadir cuarta fila
            table5.addCell(cell11);
            table5.addCell(cell12);
            table5.addCell(cell13);
            table5.addCell(cell14);
            tablaF.addCell(cellf1);

            tablaF1.addCell(cellf21);
            tablaF1.addCell(cellf22);
            tablaF1.addCell(cellf2);
            tablaF2.addCell(cellf31);
            tablaF2.addCell(cellf32);
            tablaF2.addCell(cellf3);

            for (int x = 0; x < lstDetalleFactura.size(); x++) {

                PdfPCell cell1 = new PdfPCell(new Paragraph("" + lstDetalleFactura.get(x).getCantidad()));
                PdfPCell cell2 = new PdfPCell(new Paragraph(
                        "" + lstDetalleFactura.get(x).getId_producto().getId_categoria().getNombre_producto()));
                PdfPCell cell3 = new PdfPCell(new Paragraph(
                        "" + lstDetalleFactura.get(x).getId_producto().getId_categoria().getPrecio_producto()));
                PdfPCell cell4 = new PdfPCell(new Paragraph("" + lstDetalleFactura.get(x).getValor_total()));
                /* Chunk chunk = new Chunk(
                 "\n" + lstDetalles.get(x).getCantidadDet() + "       " + lstDetalles.get(x).getIdSer().getNombreSer() + "             " + lstDetalles.get(x).getIdSer().getPrecioSer()
                 + "                          " + lstDetalles.get(x).getPrecio());*/

                cell1.setBorder(Rectangle.NO_BORDER);
                cell2.setBorder(Rectangle.NO_BORDER);
                cell3.setBorder(Rectangle.NO_BORDER);
                cell4.setBorder(Rectangle.NO_BORDER);

                cell1.setHorizontalAlignment(Element.ALIGN_LEFT);
                cell2.setHorizontalAlignment(Element.ALIGN_LEFT);
                cell3.setHorizontalAlignment(Element.ALIGN_RIGHT);
                cell4.setHorizontalAlignment(Element.ALIGN_RIGHT);

                cell1.setMinimumHeight(10f);
                cell2.setMinimumHeight(5f);

                table.setTotalWidth(100f);
                table.addCell(cell1);
                table.addCell(cell2);
                table.addCell(cell3);
                table.addCell(cell4);

                //aadir primera fila
                table.setSpacingBefore(30f);
                table.setSpacingAfter(50f);

                //paragraph4.add(chunk);
                //paragraph4.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);
            }

            document.add(paragraph);
            document.add(table1);
            document.add(table2);
            document.add(table3);
            document.add(paragraph1);
            document.add(table5);
            document.add(table);
            document.add(tablaF);
            document.add(tablaF1);
            document.add(tablaF2);
            //document.setFooter(event);

            document.close();
            //----------------------------
            //Abrimos el archivo PDF
            FacesContext context = FacesContext.getCurrentInstance();
            HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
            response.setContentType("application/pdf");
            response.setHeader("Content-disposition", "inline=filename=" + name);
            try {
                response.getOutputStream().write(Util.getBytesFromFile(new File(name)));
                response.getOutputStream().flush();
                response.getOutputStream().close();
                context.responseComplete();

            } catch (IOException e) {
                e.printStackTrace();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}