com.pe.nisira.movil.view.action.RegistroPaleta.java Source code

Java tutorial

Introduction

Here is the source code for com.pe.nisira.movil.view.action.RegistroPaleta.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 com.pe.nisira.movil.view.action;

import com.nisira.core.entity.Dpaleta;
import com.nisira.core.entity.Multitabla;
import com.nisira.core.entity.Paleta;
import com.nisira.core.service.PaletaService;
import com.nisira.core.util.ConstantesBD;
import static com.pe.nisira.movil.view.util.NisiraWebLog.log;
import com.pe.nisira.movil.view.util.WebUtil;
import static com.pe.nisira.movil.view.util.WebUtil.getArchivoLista;
import com.sun.prism.Image;
import com.thoughtworks.xstream.XStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.swing.text.Document;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
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.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFDataFormat;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.primefaces.context.RequestContext;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile;

/**
 *
 * @author Alex Johel Burgos Dionicio
 */
@ManagedBean
@ViewScoped
public class RegistroPaleta extends AbstactListAction<Paleta> implements Serializable {

    private List<Paleta> listPaleta;
    private List<Paleta> listPaletaUp;
    private List<Dpaleta> listDPaletaUp;
    private String idEmpresa;
    private String idCampania;
    private PaletaService paletaService;
    private String mensaje;
    private UploadedFile file;
    private UploadedFile upFile;
    private List<Object[]> listerros;
    private List<Object[]> listderros;

    public UploadedFile getFile() {
        return file;
    }

    @Override
    public void buscarTodo() {
        try {
            setListaDatos(paletaService.filtrar());
        } catch (Exception ex) {
            Logger.getLogger(RegistroPaleta.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public String getIniciar() {
        this.idEmpresa = ConstantesBD.IDEMPRESA;
        this.idCampania = "";
        this.paletaService = new PaletaService();
        setAnuevo(1);
        return "";
    }

    @Override
    public void nuevo() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void grabar() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void eliminar() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public void upload() {
        if (file != null) {
            try {
                WebUtil.subirArchivo(file, "archivo");
                FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance()
                        .getExternalContext().getContext();
                String path = (String) servletContext.getRealPath("archivo");
                //              getExcelTablePaletaList(getArchivoLista(path + "/" + file.getFileName()));
                paletaService.grabarByTotalPaletaXml(getExcelTablePaletaXML(
                        getArchivoLista((String) servletContext.getRealPath("archivo/" + file.getFileName()))));
            } catch (IOException ex) {
                mensaje = ex.getMessage();
                Logger.getLogger(RegistroPaleta.class.getName()).log(Level.SEVERE, null, ex);
            } catch (Exception ex) {
                mensaje = ex.getMessage();
                Logger.getLogger(RegistroPaleta.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public String getExcelTablePaletaXML(List sheetData) {
        String XMLPaleta = null;
        int j;
        try {
            if (sheetData.size() > 0) {
                List<Paleta> listaXml = new ArrayList<Paleta>();
                Paleta paleta;
                for (int i = 1; i < sheetData.size(); i++) {
                    List list = (List) sheetData.get(i);
                    paleta = new Paleta();
                    j = 0;
                    paleta.setIdempresa(list.get(j++).toString());
                    paleta.setIdregistropaleta(list.get(j++).toString());
                    paleta.setIdemisor(list.get(j++).toString());
                    paleta.setIdoperacion(list.get(j++).toString());
                    paleta.setNumoperacion(list.get(j++).toString());
                    paleta.setIdmotivopaleta(list.get(j++).toString());
                    paleta.setIddocumento(list.get(j++).toString());
                    paleta.setSerie(list.get(j++).toString());
                    paleta.setNumero(list.get(j++).toString());
                    paleta.setFecha(list.get(j++).toString());
                    paleta.setPeriodo(list.get(j++).toString());
                    paleta.setIdestado(list.get(j++).toString());
                    paleta.setIdclieprov(list.get(j++).toString());
                    paleta.setNropaleta(list.get(j++).toString());
                    paleta.setIdenvase(list.get(j++).toString());
                    paleta.setIdsucursal(list.get(j++).toString());
                    paleta.setIdalmacen(list.get(j++).toString());
                    paleta.setIdparihuela(list.get(j++).toString());
                    paleta.setIdembalaje(list.get(j++).toString());
                    paleta.setIdcultivo(list.get(j++).toString());
                    paleta.setIdvariedad(list.get(j++).toString());
                    paleta.setDes_variedad(list.get(j++).toString());
                    paleta.setIdclieprov_origen(list.get(j++).toString());
                    paleta.setNropaleta_origen(list.get(j++).toString());
                    paleta.setIdsalida(list.get(j++).toString());
                    paleta.setIdmotivo_ing(list.get(j++).toString());
                    paleta.setIdingreso(list.get(j++).toString());
                    paleta.setIdmotivo_sal(list.get(j++).toString());
                    paleta.setObservaciones(list.get(j++).toString());
                    paleta.setVentana(list.get(j++).toString());
                    paleta.setCantidad(list.get(j++).toString());
                    paleta.setCerrado(list.get(j++).toString());
                    paleta.setSincroniza(list.get(j++).toString());
                    paleta.setFechacreacion(list.get(j++).toString());
                    paleta.setNromanual(list.get(j++).toString());
                    paleta.setDesc_adicional(list.get(j++).toString());
                    paleta.setIdclieprov_destino(list.get(j++).toString());
                    paleta.setTipo(list.get(j++).toString());
                    paleta.setIdturno(list.get(j++).toString());
                    paleta.setIdreqinterno(list.get(j++).toString());
                    listaXml.add(paleta);
                }
                System.out.println("Terminado ...");
                this.listPaleta = listaXml;
                RequestContext.getCurrentInstance().update("datos:tbl");
                //DEFINIENDO XML DE PALETA
                String xml = "<?xml version='1.0' encoding='ISO-8859-1' ?>";
                XStream xStream_paleta = new XStream();
                xStream_paleta.processAnnotations(Paleta.class);
                XMLPaleta = xml + xStream_paleta.toXML(listaXml);
            }
        } catch (Exception ex) {
            XMLPaleta = null;
            this.mensaje = "Error:" + ex.getMessage();
        }
        return XMLPaleta;
    }

    public void getExcelTablePaletaList(List sheetData) {
        try {
            if (sheetData.size() > 0) {
                List<Paleta> lista = new ArrayList<Paleta>();
                Paleta paleta = new Paleta();
                for (int i = 1; i < sheetData.size(); i++) {
                    List list = (List) sheetData.get(i);
                    paleta = new Paleta();
                    for (int j = 0; j < list.size(); j++) {
                        Cell cell = (Cell) list.get(j);
                        if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                            System.out.print(cell.getNumericCellValue());
                        } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                            System.out.print(cell.getRichStringCellValue());
                        } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
                            System.out.print(cell.getBooleanCellValue());
                        }
                        switch (j) {
                        case 0:
                            paleta.setIdempresa(cell.getRichStringCellValue().getString());
                            break;
                        case 1:
                            paleta.setIdregistropaleta(cell.getRichStringCellValue().getString());
                            break;
                        case 2:
                            paleta.setIdproducto(cell.getRichStringCellValue().getString());
                            break;
                        case 3:
                            paleta.setNropaleta(cell.getRichStringCellValue().getString());
                            break;
                        case 4:
                            paleta.setDescproducto(cell.getRichStringCellValue().getString());
                            break;
                        case 5:
                            paleta.setIdmedida(cell.getRichStringCellValue().getString());
                            break;
                        case 6:
                            paleta.setCantidad(cell.getRichStringCellValue().getString());
                            break;
                        case 7:
                            paleta.setPeso(Double.parseDouble(cell.getRichStringCellValue().getString()));
                            break;
                        case 8:
                            paleta.setIdlotep(cell.getRichStringCellValue().getString());
                            break;
                        case 9:
                            paleta.setIdcliente(cell.getRichStringCellValue().getString());
                            break;
                        case 10:
                            paleta.setIdclieprov(cell.getRichStringCellValue().getString());
                            break;
                        case 11:
                            paleta.setIdenvase(cell.getRichStringCellValue().getString());
                            break;
                        case 12:
                            paleta.setDescenvase(cell.getRichStringCellValue().getString());
                            break;
                        case 13:
                            paleta.setCerrado(cell.getRichStringCellValue().getString());
                            break;
                        case 14:
                            paleta.setNromanual(cell.getRichStringCellValue().getString());
                            break;
                        }
                        if (j < list.size() - 1) {
                            System.out.print(", ");
                        }
                    }
                    lista.add(paleta);
                    System.out.println("");
                }
                System.out.println("Terminado ...");
                this.listPaleta = lista;
                RequestContext.getCurrentInstance().update("datos:tbl");
            }
        } catch (Exception ex) {

        }
    }

    public RegistroPaleta() {
        this.idEmpresa = "001";
        this.idCampania = "";
        this.paletaService = new PaletaService();
        setAnuevo(1);
    }

    public void recordPaleta() {
        try {
            setListPaleta(getPaletaService().findByTotalPaleta(getIdEmpresa(), getIdCampania()));
        } catch (Exception ex) {
            WebUtil.MensajeAlerta("Registro Vacio");
            this.mensaje = "Registro Vacio";
            log.error(ex, ex);
        }
    }

    public void postProcessXLS(Object document) {
        HSSFWorkbook wb = (HSSFWorkbook) document;
        HSSFSheet sheet = wb.getSheetAt(0);
        HSSFRow header = sheet.getRow(0);
        HSSFCellStyle cellStyle = wb.createCellStyle();
        cellStyle.setFillForegroundColor(HSSFColor.GREEN.index);
        cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        for (int i = 0; i < header.getPhysicalNumberOfCells(); i++) {
            header.getCell(i).setCellStyle(cellStyle);
        }
    }

    public StreamedContent downFormatExcel() throws Exception {
        InputStream stream = null;
        StreamedContent arch = null;
        try {
            String folder = "C:\\SOLUTION\\WEB\\FORMATOS_IMPORTACION";
            File ruta = new File(folder);
            if (!ruta.isDirectory()) {
                ruta.mkdirs();
            }
            String rutaArchivo = folder + "\\FI_REGISTROPALE.xlsx";
            File fileXls = new File(rutaArchivo);
            if (fileXls.exists()) {
                fileXls.delete();
            }
            fileXls.createNewFile();
            XSSFWorkbook libro = new XSSFWorkbook();
            FileOutputStream file2 = new FileOutputStream(fileXls);
            XSSFSheet hoja = libro.createSheet("IMPORTAR_PALETA");
            CreationHelper factory = libro.getCreationHelper();
            hoja = libro.getSheetAt(0);
            XSSFCellStyle style = libro.createCellStyle();
            Font font = libro.createFont();
            Font font1 = libro.createFont();
            Drawing drawing = hoja.createDrawingPatriarch();
            ClientAnchor anchor1 = factory.createClientAnchor();
            font.setBoldweight(Font.BOLDWEIGHT_BOLD);
            font.setFontHeightInPoints((short) 8);
            font1.setFontHeightInPoints((short) 8);
            font1.setFontName("Arial");
            font.setFontName("Arial");
            style.setFillForegroundColor(new XSSFColor(new java.awt.Color(247, 150, 70)));
            style.setFillPattern(CellStyle.SOLID_FOREGROUND);
            style.setAlignment(CellStyle.VERTICAL_CENTER);
            style.setAlignment(CellStyle.ALIGN_CENTER);
            style.setFont(font);

            XSSFSheet hoja2 = libro.createSheet("IMPORTAR_DET_PALETA");
            CreationHelper factory2 = libro.getCreationHelper();
            hoja2 = libro.getSheetAt(1);
            XSSFCellStyle style2 = libro.createCellStyle();
            Font font2 = libro.createFont();
            Font font12 = libro.createFont();
            Drawing drawing2 = hoja2.createDrawingPatriarch();
            ClientAnchor anchor12 = factory2.createClientAnchor();
            font2.setBoldweight(Font.BOLDWEIGHT_BOLD);
            font2.setFontHeightInPoints((short) 8);
            font12.setFontHeightInPoints((short) 8);
            font12.setFontName("Arial");
            font2.setFontName("Arial");
            style2.setFillForegroundColor(new XSSFColor(new java.awt.Color(247, 150, 70)));
            style2.setFillPattern(CellStyle.SOLID_FOREGROUND);
            style2.setAlignment(CellStyle.VERTICAL_CENTER);
            style2.setAlignment(CellStyle.ALIGN_CENTER);
            style2.setFont(font);
            for (int f = 0; f < 1; f++) {
                XSSFRow fila = hoja.createRow(f);
                for (int c = 0; c < 29; c++) {
                    XSSFCell celda = fila.createCell(c);
                    celda.setCellStyle(style);
                    anchor1.setCol1(celda.getColumnIndex());
                    anchor1.setCol2(celda.getColumnIndex() + 5);
                    anchor1.setRow1(fila.getRowNum());
                    anchor1.setRow2(fila.getRowNum() + 3);
                    Comment comment = drawing.createCellComment(anchor1);
                    if (f == 0 && c == 0) {
                        RichTextString str = factory.createRichTextString("ADM:\nCampo Obligatorio \n - IDEMPRESA");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDEMPRESA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 1) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - IDREGISTROPALETA. \n Debe de tener (15) caracteres");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDREGISTROPALETA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 2) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del emisor. \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDEMISOR");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 3) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - id de la operacion.\n -Debe tener 4 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDOPERACION");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 4) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Numero de Operacion.\n -Debe tener 10 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("NUMOPERACION");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 5) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del motivo de Paleta.\n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDMOTIVOPALETA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 6) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id documento. \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDDOCUMENTO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 7) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Serie del Documento. \n -Debe tener 4 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("SERIE");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 8) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Numero de Documento.\n -Debe tener 7 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("NUMERO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 9) {
                        RichTextString str = factory
                                .createRichTextString("ADM:\nCampo Obligatorio \n - Formato YYYY/MM/DD.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("FECHA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 10) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Perido del ao \n - fromato YYYYMM.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("PERIODO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 11) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del estado \n -Debe tener 2 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDESTADO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 12) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del cliente o proveedor \n -Debe tener 11 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDCLIEPROV");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 13) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Numero de Paleta \n -Debe tener 20 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("NROPALETA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 14) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id de envase \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDENVASE");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 15) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id la sucursal \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDSUCURSAL");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 16) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del almacen. \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDALMACEN");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 17) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id del embalaje. \n -Debe tener 10 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDEMBALAJE");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 18) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Id de cultivo. \n -Debe tener 4 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDCULTIVO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 19) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - id de Variadd. \n -Debe tener 3 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDVARIEDAD");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 20) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Observaciones sobre la paleta \n -como maximo 240 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("OBSERVACIONES");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 21) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n -Nombre de la venta \n como maximo 50 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("VENTANA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 22) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Cantidad. \n - 15 numeros y 2 decimales como maximo.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("CANTIDAD");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 23) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Estado de la paleta \n- 1 = cerrado, 0 = Abierto.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("CERRADO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 24) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Sincroniza \n - N = no , S = si.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("SINCRONIZA");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 25) {
                        RichTextString str = factory
                                .createRichTextString("ADM:\nCampo Obligatorio \n - Formato YYYY/MM/DD.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("FECHACREACION");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 26) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Numero de Manural\n Debe tener 10 caracteres.");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("NROMANUAL");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 27) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - idcliepro-destino\n debe tener 11 caracteres");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("IDCLIEPROV_DESTINO");
                        celda.setCellComment(comment);
                    } else if (f == 0 && c == 28) {
                        RichTextString str = factory.createRichTextString(
                                "ADM:\nCampo Obligatorio \n - Tipo de paleta\n debe tener 1 caraccter..");
                        str.applyFont(font1);
                        str.applyFont(0, 19, font);
                        comment.setString(str);
                        comment.setAuthor("ADM");
                        celda.setCellValue("TIPO");
                        celda.setCellComment(comment);
                    }
                }
            }
            hoja.autoSizeColumn((short) 0);
            hoja.autoSizeColumn((short) 1);
            hoja.autoSizeColumn((short) 2);
            hoja.autoSizeColumn((short) 3);
            hoja.autoSizeColumn((short) 4);
            hoja.autoSizeColumn((short) 5);
            hoja.autoSizeColumn((short) 6);
            hoja.autoSizeColumn((short) 7);
            hoja.autoSizeColumn((short) 8);
            hoja.autoSizeColumn((short) 9);
            hoja.autoSizeColumn((short) 10);
            hoja.autoSizeColumn((short) 11);
            hoja.autoSizeColumn((short) 12);
            hoja.autoSizeColumn((short) 13);
            hoja.autoSizeColumn((short) 14);
            hoja.autoSizeColumn((short) 15);
            hoja.autoSizeColumn((short) 16);
            hoja.autoSizeColumn((short) 17);
            hoja.autoSizeColumn((short) 18);
            hoja.autoSizeColumn((short) 19);
            hoja.autoSizeColumn((short) 20);
            hoja.autoSizeColumn((short) 21);
            hoja.autoSizeColumn((short) 22);
            hoja.autoSizeColumn((short) 23);
            hoja.autoSizeColumn((short) 24);
            hoja.autoSizeColumn((short) 25);
            hoja.autoSizeColumn((short) 26);
            hoja.autoSizeColumn((short) 27);
            hoja.autoSizeColumn((short) 28);
            for (int f = 0; f < 2; f++) {
                XSSFRow fila2 = hoja2.createRow(f);
                if (f == 0) {
                    for (int c = 0; c < 15; c++) {
                        XSSFCell celda2 = fila2.createCell(c);
                        anchor12.setCol1(celda2.getColumnIndex());
                        anchor12.setCol2(celda2.getColumnIndex() + 8);
                        anchor12.setRow1(fila2.getRowNum());
                        anchor12.setRow2(fila2.getRowNum() + 8);
                        Comment comment2 = drawing2.createCellComment(anchor12);
                        RichTextString str;
                        switch (c) {
                        case 0:
                            celda2.setCellStyle(style2);
                            str = factory2.createRichTextString(
                                    "ADM:\nCampo Obligatorio \n - El Cdigo debe de ser nico.");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDEMPRESA");
                            celda2.setCellComment(comment2);
                            break;
                        case 1:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio ");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDREGISTROPALETA");
                            celda2.setCellComment(comment2);
                            break;
                        case 2:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio ");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("ITEM");
                            celda2.setCellComment(comment2);
                            break;
                        case 3:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio ");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDCLIEPROV");
                            celda2.setCellComment(comment2);
                            break;
                        case 4:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDLOTE");
                            celda2.setCellComment(comment2);
                            break;
                        case 5:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDCONDICION");
                            celda2.setCellComment(comment2);
                            break;
                        case 6:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDTALLA");
                            celda2.setCellComment(comment2);
                            break;
                        case 7:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDCOLOR");
                            celda2.setCellComment(comment2);
                            break;
                        case 8:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("CANTIDAD");
                            celda2.setCellComment(comment2);
                            break;
                        case 9:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDEMBALAJE");
                            celda2.setCellComment(comment2);
                            break;
                        case 10:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDPRODUCTO");
                            celda2.setCellComment(comment2);
                            break;
                        case 11:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDLOTEP");
                            celda2.setCellComment(comment2);
                            break;
                        case 12:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDCONSUMIDOR");
                            celda2.setCellComment(comment2);
                            break;
                        case 13:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDLOTECAMPO");
                            celda2.setCellComment(comment2);
                            break;
                        case 14:
                            celda2.setCellStyle(style2);
                            str = factory.createRichTextString("ADM:\nCampo Obligatorio");
                            str.applyFont(font12);
                            str.applyFont(0, 19, font2);
                            comment2.setString(str);
                            comment2.setAuthor("ADM");
                            celda2.setCellValue("IDPRESENTACION");
                            celda2.setCellComment(comment2);
                            break;
                        }
                    }
                }
            }
            hoja2.autoSizeColumn((short) 0);
            hoja2.autoSizeColumn((short) 1);
            hoja2.autoSizeColumn((short) 2);
            hoja2.autoSizeColumn((short) 3);
            hoja2.autoSizeColumn((short) 4);
            hoja2.autoSizeColumn((short) 5);
            hoja2.autoSizeColumn((short) 6);
            hoja2.autoSizeColumn((short) 7);
            hoja2.autoSizeColumn((short) 8);
            hoja2.autoSizeColumn((short) 9);
            hoja2.autoSizeColumn((short) 10);
            hoja2.autoSizeColumn((short) 11);
            hoja2.autoSizeColumn((short) 12);
            hoja2.autoSizeColumn((short) 13);
            hoja2.autoSizeColumn((short) 14);
            hoja2.autoSizeColumn((short) 15);
            libro.write(file2);
            file2.close();
            stream = new FileInputStream(new File(rutaArchivo));
            arch = new DefaultStreamedContent(stream, "application/xlsx", "FI_REGISTROPALE.xlsx");
        } catch (FileNotFoundException ex) {
            System.out.println("Error al Descargar : " + ex.getMessage());
        }
        return arch;
    }

    //    public StreamedContent downExcel() throws ParseException, IOException {
    //        InputStream stream = null;
    //        StreamedContent arch = null;
    ////        try {
    ////            String folder = "C:\\SOLUTION\\WEB\\DATOS_EXPORTACION";
    ////            File ruta = new File(folder);
    ////            if (!ruta.isDirectory()) {
    ////                ruta.mkdirs();
    ////            }
    ////            String rutaArchivo = folder + "\\DE_MULTITABLA.xlsx";
    ////            File fileXls = new File(rutaArchivo);
    ////            if (fileXls.exists()) {
    ////                fileXls.delete();
    ////            }
    ////            fileXls.createNewFile();
    ////
    ////            Workbook libro = new XSSFWorkbook();
    ////
    ////            FileOutputStream file = new FileOutputStream(fileXls);
    ////
    ////            Sheet hoja = libro.createSheet("MULTITABLA");
    ////            hoja = libro.getSheetAt(0);
    ////
    ////            CellStyle style = libro.createCellStyle();
    ////            Font font = libro.createFont();
    ////            font.setBoldweight(Font.BOLDWEIGHT_BOLD);
    ////            font.setFontHeightInPoints((short) 8);
    ////            font.setFontName("Arial");
    ////            style.setAlignment(CellStyle.VERTICAL_CENTER);
    ////            style.setAlignment(CellStyle.ALIGN_CENTER);
    ////            style.setFont(font);
    ////
    ////            CellStyle style2 = libro.createCellStyle();
    ////            Font font2 = libro.createFont();
    ////            font2.setFontHeightInPoints((short) 8);
    ////            font2.setFontName("Arial");
    ////            style2.setFont(font2);
    ////
    ////            for (int f = 0; f <= listMultitablaTabla.size(); f++) {
    ////                Row fila = hoja.createRow(f);
    ////                for (int c = 0; c < 3; c++) {
    ////                    Cell celda = fila.createCell(c);
    ////                    if (f == 0) {
    ////                        celda.setCellStyle(style);
    ////                        if (c == 0) {
    ////                            celda.setCellValue("CDIGO");
    ////                        } else if (c == 1) {
    ////                            celda.setCellValue("DESCRIPCIN");
    ////                        } else if (c == 2) {
    ////                            celda.setCellValue("ESTADO");
    ////                        }
    ////                    } else {
    ////                        celda.setCellStyle(style2);
    ////                        if (c == 0) {
    ////                            celda.setCellValue(getListaDatos().get(f - 1).getIdcultivo());
    ////                        } else if (c == 1) {
    ////                            celda.setCellValue(getListaDatos().get(f - 1).getDescripcion());
    ////                        } else if (c == 2) {
    ////                            String terminado = "";
    ////                            if (getListaDatos().get(f - 1).getEstado() == 1) {
    ////                                terminado = "ACTIVO";
    ////                            } else {
    ////                                terminado = "ANULADO";
    ////                            }
    ////                            celda.setCellValue(terminado);
    ////                        }
    ////                    }
    ////                }
    ////            }
    ////            hoja.autoSizeColumn((short) 0);
    ////            hoja.autoSizeColumn((short) 1);
    ////            hoja.autoSizeColumn((short) 2);
    ////            libro.write(file);
    ////            file.close();
    ////            stream = new FileInputStream(new File(rutaArchivo));
    ////            arch = new DefaultStreamedContent(stream, "application/xlsx", "NSR_MRP_DE_CULTIVO.xlsx");
    ////        } catch (FileNotFoundException ex) {
    ////            System.out.println("Error al Obtener Datos : " + ex.getMessage());
    ////        }
    ////        return arch;
    //    }
    public void upExcel(FileUploadEvent event) throws ParseException, Exception {
        try {
            listPaletaUp = new ArrayList<Paleta>();
            listDPaletaUp = new ArrayList<Dpaleta>();
            listerros = new ArrayList<Object[]>();
            listderros = new ArrayList<Object[]>();
            upFile = event.getFile();
            XSSFWorkbook workBook = new XSSFWorkbook(event.getFile().getInputstream());
            XSSFSheet hssfSheet = workBook.getSheetAt(0);
            XSSFSheet hssfSheetD = workBook.getSheetAt(1);
            Iterator<Row> rowIterator = hssfSheet.rowIterator();
            boolean exist = false;
            int filaDuplicada = 0;
            int filaDuplicadaD = 0;
            boolean estado = false;
            boolean firstLinea = true;
            int k = 2;
            while (rowIterator.hasNext()) {
                Row hssfRow = rowIterator.next();

                if (firstLinea) {
                    firstLinea = false;
                } else {
                    Paleta xls = new Paleta();
                    xls.setIdempresa(hssfRow.getCell(0).getStringCellValue());
                    xls.setIdregistropaleta(hssfRow.getCell(1).getStringCellValue());
                    xls.setIdemisor(hssfRow.getCell(2).getStringCellValue());
                    xls.setIdoperacion(hssfRow.getCell(3).getStringCellValue());
                    String tempN = null;
                    if (hssfRow.getCell(4) != null) {
                        tempN = hssfRow.getCell(4).getStringCellValue();
                    }
                    xls.setNumoperacion(tempN);
                    xls.setIdmotivopaleta(hssfRow.getCell(5).getStringCellValue());
                    xls.setIddocumento(hssfRow.getCell(6).getStringCellValue());
                    xls.setSerie(hssfRow.getCell(7).getStringCellValue());
                    xls.setNumero(hssfRow.getCell(8).getStringCellValue());
                    //de string a timestamp y a string denuevo
                    DateFormat formatter;
                    //                    formatter = new SimpleDateFormat("dd/MM/yyyy");
                    //                    Date date = (Date) formatter.parse();
                    Timestamp timeStampDate = new Timestamp(hssfRow.getCell(9).getDateCellValue().getTime());

                    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
                    String Fecha = dateFormat.format(timeStampDate);
                    xls.setFecha(Fecha);
                    xls.setPeriodo(String.valueOf(hssfRow.getCell(10).getNumericCellValue()));
                    xls.setIdestado(hssfRow.getCell(11).getStringCellValue());
                    xls.setIdclieprov(String.valueOf(hssfRow.getCell(12).getNumericCellValue()));
                    xls.setNropaleta(hssfRow.getCell(13).getStringCellValue());
                    xls.setIdenvase(hssfRow.getCell(14).getStringCellValue());
                    hssfRow.getCell(15).setCellType(XSSFCell.CELL_TYPE_STRING);
                    xls.setIdsucursal((String) hssfRow.getCell(15).getStringCellValue());
                    String tempA = null;
                    if (hssfRow.getCell(16) != null) {
                        tempA = hssfRow.getCell(16).getStringCellValue();
                    }
                    xls.setIdalmacen(tempA);
                    String tempEm = null;
                    if (hssfRow.getCell(17) != null) {
                        tempEm = hssfRow.getCell(17).getStringCellValue();
                    }
                    xls.setIdembalaje(tempEm);
                    xls.setIdcultivo(hssfRow.getCell(18).getStringCellValue());
                    xls.setIdvariedad(hssfRow.getCell(19).getStringCellValue());
                    String tempO = null;
                    if (hssfRow.getCell(20) != null) {
                        tempO = hssfRow.getCell(20).getStringCellValue();
                    }
                    xls.setObservaciones(tempO);
                    xls.setVentana(hssfRow.getCell(21).getStringCellValue());
                    xls.setCantidad(String.valueOf(hssfRow.getCell(22).getNumericCellValue()));
                    xls.setCerrado(String.valueOf(hssfRow.getCell(23).getNumericCellValue()));
                    xls.setSincroniza(hssfRow.getCell(24).getStringCellValue());
                    //de string a timestamp y a string denuevo
                    Timestamp timeStampDate2 = new Timestamp(hssfRow.getCell(25).getDateCellValue().getTime());
                    String FechaC = dateFormat.format(timeStampDate2);
                    xls.setFechacreacion(FechaC);
                    String temp = null;
                    if (hssfRow.getCell(26) != null) {
                        temp = hssfRow.getCell(26).getStringCellValue();
                    }
                    xls.setNromanual(temp);
                    hssfRow.getCell(27).setCellType(XSSFCell.CELL_TYPE_STRING);
                    System.out.print(
                            xls.getIdregistropaleta() + " " + (String) hssfRow.getCell(27).getStringCellValue());
                    xls.setIdclieprov_destino((String) hssfRow.getCell(27).getStringCellValue());
                    xls.setTipo(hssfRow.getCell(28).getStringCellValue());
                    exist = false;
                    boolean vali = validarPaleExcel(xls, k);
                    if (vali) {
                        listPaletaUp.add(xls);
                    }
                    for (int i = 0; i < listPaletaUp.size() - 1; i++) {
                        if ((listPaletaUp.get(i).getIdempresa()
                                .equalsIgnoreCase(hssfRow.getCell(0).getStringCellValue())
                                && listPaletaUp.get(i).getIdregistropaleta()
                                        .equalsIgnoreCase(hssfRow.getCell(1).getStringCellValue()))
                                && hssfRow.getRowNum() > 1) {
                            exist = true;
                            break;
                        }
                    }
                    if (exist) {
                        filaDuplicada = hssfRow.getRowNum() + 1;
                        break;
                    }
                }
                k++;
            }
            if (exist) {
                WebUtil.MensajeAlerta("Registro Duplicado. Fila : " + filaDuplicada
                        + ". \n Verifique el Excel e Intntelo otra vez.");
                listPaletaUp.clear();
            }
            Iterator<Row> rowIteratorD = hssfSheetD.rowIterator();
            firstLinea = true;
            exist = false;
            int l = 0;
            while (rowIteratorD.hasNext()) {
                Row hssfRow = rowIteratorD.next();
                if (firstLinea) {
                    firstLinea = false;
                } else {
                    Dpaleta xls = new Dpaleta();
                    xls.setIdempresa((int) hssfRow.getCell(0).getNumericCellValue());
                    xls.setIdregistropaleta(hssfRow.getCell(1).getStringCellValue());
                    xls.setItem(hssfRow.getCell(2).getStringCellValue());
                    xls.setIdclieprov(String.valueOf(hssfRow.getCell(3).getNumericCellValue()));
                    xls.setIdlote(hssfRow.getCell(4).getStringCellValue());
                    xls.setIdcondicion(hssfRow.getCell(5).getStringCellValue());
                    xls.setIdtalla(hssfRow.getCell(6).getStringCellValue());
                    xls.setIdcolor(hssfRow.getCell(7).getStringCellValue());
                    xls.setCantidad(hssfRow.getCell(8).getNumericCellValue());
                    xls.setIdembalaje(hssfRow.getCell(9).getStringCellValue());
                    hssfRow.getCell(10).setCellType(XSSFCell.CELL_TYPE_STRING);
                    xls.setIdproducto(hssfRow.getCell(10).getStringCellValue());
                    hssfRow.getCell(11).setCellType(XSSFCell.CELL_TYPE_STRING);
                    xls.setIdlotep(hssfRow.getCell(11).getStringCellValue());
                    xls.setIdconsumidor(hssfRow.getCell(12).getStringCellValue());
                    xls.setIdlotecampo(hssfRow.getCell(13).getStringCellValue());
                    xls.setIdpresentacion(hssfRow.getCell(14).getStringCellValue());
                    exist = false;
                    boolean vali = ValidarDPaleExcel(xls, l);
                    if (vali) {
                        listDPaletaUp.add(xls);
                    }
                    for (int i = 0; i < listDPaletaUp.size() - 1; i++) {
                        if ((listDPaletaUp.get(i).getIdempresa() == (int) hssfRow.getCell(0).getNumericCellValue()
                                && listDPaletaUp.get(i).getIdregistropaleta()
                                        .equalsIgnoreCase(hssfRow.getCell(1).getStringCellValue())
                                && listDPaletaUp.get(i).getItem()
                                        .equalsIgnoreCase(hssfRow.getCell(2).getStringCellValue()))
                                && hssfRow.getRowNum() > 1) {
                            exist = true;
                            break;
                        }
                    }
                    if (exist) {
                        filaDuplicada = hssfRow.getRowNum() + 1;
                        break;
                    }
                }
                l++;
            }
            if (exist) {
                WebUtil.MensajeAlerta("Registro Duplicado. Fila : " + filaDuplicadaD
                        + ". \n Verifique el Excel De Detalle e Intntelo otra vez.");
                listPaletaUp.clear();
            }
            RequestContext.getCurrentInstance().update(":datos:tbas:tblRepet_data");
            RequestContext.getCurrentInstance().update(":datos:tbas:tblDRepet");
            RequestContext.getCurrentInstance().execute("PF('dlgIngrPro').show()");
        } catch (IOException e) {
            System.out.println("Error en el Procesamiento : " + e.getMessage());
        }
    }

    public void saveExcel() throws IOException, Exception {
        String p = null;
        if (listPaletaUp.size() > 0) {
            for (Paleta mul : listPaletaUp) {
                try {
                    List<Dpaleta> temp = new ArrayList<Dpaleta>();
                    if (listDPaletaUp.size() > 0) {
                        for (Dpaleta dp : listDPaletaUp) {
                            if (Integer.valueOf(mul.getIdempresa()) == dp.getIdempresa()
                                    && mul.getIdregistropaleta().equalsIgnoreCase(dp.getIdregistropaleta())) {
                                temp.add(dp);
                            }
                        }
                    }
                    p = paletaService.grabarxmlPaleta(mul, temp);
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
            WebUtil.MensajeAlerta("Registros Importados con xito");
            listPaletaUp.clear();
        } else {
            WebUtil.MensajeAlerta("No hay elementos para importar. Intentelo otra vez.");
        }
    }

    public void preProcessPDF(Object document) throws IOException {
        Document pdf = (Document) document;
        ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                .getContext();
        String logo = servletContext.getRealPath("") + File.separator + "images" + File.separator
                + "20314727500.png";
        //        pdf.add(Image.getInstance(logo)));
    }

    public boolean validarPaleExcel(Paleta test, int k) throws Exception {
        Object[] obj = new Object[3];
        if (paletaService.valiPale(test)) {
            obj[0] = k;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listerros.add(obj);
            return false;
        }
        if (test.getCantidad().isEmpty() || test.getCantidad() == null
                || test.getCantidad().equalsIgnoreCase("0")) {
            obj[0] = k;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listerros.add(obj);
            return false;
        }
        if (test.getCerrado().isEmpty() || test.getCerrado() == null) {
            obj[0] = k;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listerros.add(obj);
            return false;
        }
        if (test.getSincroniza().isEmpty() || test.getSincroniza() == null) {
            obj[0] = k;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listerros.add(obj);
            return false;
        }
        if (test.getFechacreacion().isEmpty() || test.getFechacreacion() == null) {
            obj[0] = k;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listerros.add(obj);
            return false;
        }
        return true;
    }

    public boolean ValidarDPaleExcel(Dpaleta test, int fil) throws Exception {
        Object[] obj = new Object[3];
        if (paletaService.valiDPale(test)) {
            obj[0] = fil;
            obj[1] = test.getIdregistropaleta();
            obj[2] = "Ya se encuentra en base de Datos";
            listderros.add(obj);
            return false;
        }
        return true;
    }

    /**
     * @return the listPaleta
     */
    public List<Paleta> getListPaleta() {
        return listPaleta;
    }

    /**
     * @param listPaleta the listPaleta to set
     */
    public void setListPaleta(List<Paleta> listPaleta) {
        this.listPaleta = listPaleta;
    }

    /**
     * @return the idEmpresa
     */
    public String getIdEmpresa() {
        return idEmpresa;
    }

    /**
     * @param idEmpresa the idEmpresa to set
     */
    public void setIdEmpresa(String idEmpresa) {
        this.idEmpresa = idEmpresa;
    }

    /**
     * @return the idCampania
     */
    public String getIdCampania() {
        return idCampania;
    }

    /**
     * @param idCampania the idCampania to set
     */
    public void setIdCampania(String idCampania) {
        this.idCampania = idCampania;
    }

    /**
     * @return the paletaService
     */
    public PaletaService getPaletaService() {
        return paletaService;
    }

    /**
     * @param paletaService the paletaService to set
     */
    public void setPaletaService(PaletaService paletaService) {
        this.paletaService = paletaService;
    }

    public UploadedFile getUpFile() {
        return upFile;
    }

    public void setUpFile(UploadedFile upFile) {
        this.upFile = upFile;
    }

    public List<Paleta> getListPaletaUp() {
        return listPaletaUp;
    }

    public void setListPaletaUp(List<Paleta> listPaletaUp) {
        this.listPaletaUp = listPaletaUp;
    }

    public List<Dpaleta> getListDPaletaUp() {
        return listDPaletaUp;
    }

    public void setListDPaletaUp(List<Dpaleta> listDPaletaUp) {
        this.listDPaletaUp = listDPaletaUp;
    }

    public List<Object[]> getListerros() {
        return listerros;
    }

    public void setListerros(List<Object[]> listerros) {
        this.listerros = listerros;
    }

    public List<Object[]> getListderros() {
        return listderros;
    }

    public void setListderros(List<Object[]> listderros) {
        this.listderros = listderros;
    }

}