Example usage for org.apache.commons.fileupload DiskFileUpload DiskFileUpload

List of usage examples for org.apache.commons.fileupload DiskFileUpload DiskFileUpload

Introduction

In this page you can find the example usage for org.apache.commons.fileupload DiskFileUpload DiskFileUpload.

Prototype

public DiskFileUpload() 

Source Link

Document

Constructs an instance of this class which uses the default factory to create FileItem instances.

Usage

From source file:com.corejsf.UploadFilter.java

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {

    //System.out.println("**** doFilter #1");
    if (!(request instanceof HttpServletRequest)) {
        chain.doFilter(request, response);
        return;/*  www. j  av a 2  s.c o m*/
    }

    //System.out.println("**** doFilter #2");
    HttpServletRequest httpRequest = (HttpServletRequest) request;
    boolean isMultipartContent = FileUpload.isMultipartContent(httpRequest);
    if (!isMultipartContent) {
        chain.doFilter(request, response);
        return;
    }

    //System.out.println("**** doFilter #3");
    DiskFileUpload upload = new DiskFileUpload();
    if (repositoryPath != null)
        upload.setRepositoryPath(repositoryPath);

    try {
        List list = upload.parseRequest(httpRequest);
        final Map map = new HashMap();
        for (int i = 0; i < list.size(); i++) {
            FileItem item = (FileItem) list.get(i);
            //System.out.println("form filed="+item.getFieldName()+" : "+str);
            if (item.isFormField()) {
                String str = item.getString("UTF-8");
                map.put(item.getFieldName(), new String[] { str });
            } else {
                httpRequest.setAttribute(item.getFieldName(), item);
            }
        }

        chain.doFilter(new HttpServletRequestWrapper(httpRequest) {
            public Map getParameterMap() {
                return map;
            }

            // busywork follows ... should have been part of the wrapper
            public String[] getParameterValues(String name) {
                Map map = getParameterMap();
                return (String[]) map.get(name);
            }

            public String getParameter(String name) {
                String[] params = getParameterValues(name);
                if (params == null)
                    return null;
                return params[0];
            }

            public Enumeration getParameterNames() {
                Map map = getParameterMap();
                return Collections.enumeration(map.keySet());
            }
        }, response);
    } catch (FileUploadException ex) {
        log.error(ex.getMessage());
        ServletException servletEx = new ServletException();
        servletEx.initCause(ex);
        throw servletEx;
    }
}

From source file:com.mockey.ui.UploadConfigurationServlet.java

/**
 * //from  w ww.  j  a  v  a2 s.  c o  m
 * 
 * @param req
 *            basic request
 * @param resp
 *            basic resp
 * @throws ServletException
 *             basic
 * @throws IOException
 *             basic
 */
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    String url = null;
    String definitionsAsString = null;
    String taglistValue = "";

    // ***********************************
    // STEP #1 - READ DATA
    // ***********************************
    if (req.getParameter("viaUrl") != null) {
        url = req.getParameter("url");
        taglistValue = req.getParameter("taglist");
        try {
            InputStream fstream = new URL(url).openStream();
            if (fstream != null) {

                BufferedReader br = new BufferedReader(
                        new InputStreamReader(fstream, Charset.forName(HTTP.UTF_8)));
                StringBuffer inputString = new StringBuffer();
                // Read File Line By Line
                String strLine = null;
                // READ FIRST
                while ((strLine = br.readLine()) != null) {
                    // Print the content on the console
                    inputString.append(new String(strLine.getBytes(HTTP.UTF_8)));
                }
                definitionsAsString = inputString.toString();
            }
        } catch (Exception e) {
            logger.error("Unable to reach url: " + url, e);
            Util.saveErrorMessage("Unable to reach url: " + url, req);
        }
    } else {
        byte[] data = null;
        try {
            // STEP 1. GATHER UPLOADED ITEMS
            // Create a new file upload handler
            DiskFileUpload upload = new DiskFileUpload();

            // Parse the request
            List<FileItem> items = upload.parseRequest(req);
            Iterator<FileItem> iter = items.iterator();
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();

                if (!item.isFormField()) {

                    data = item.get();

                } else {

                    String name = item.getFieldName();
                    if ("taglist".equals(name)) {
                        taglistValue = item.getString();
                    }

                }
            }
            if (data != null && data.length > 0) {
                definitionsAsString = new String(data);
            }
        } catch (Exception e) {
            logger.error("Unable to read or parse file: ", e);
            Util.saveErrorMessage("Unable to upload or parse file.", req);
        }
    }

    // ***********************************
    // STEP #2 - PERSIST DATA
    // ***********************************
    try {

        if (definitionsAsString != null) {
            MockeyXmlFileManager configurationReader = new MockeyXmlFileManager();
            ServiceMergeResults results = configurationReader.loadConfigurationWithXmlDef(definitionsAsString,
                    taglistValue);

            Util.saveSuccessMessage("Service definitions uploaded.", req);
            req.setAttribute("conflicts", results.getConflictMsgs());
            req.setAttribute("additions", results.getAdditionMessages());
        } else {
            Util.saveErrorMessage("Unable to upload or parse empty file.", req);
        }
    } catch (Exception e) {
        Util.saveErrorMessage("Unable to upload or parse file.", req);
    }

    RequestDispatcher dispatch = req.getRequestDispatcher("/upload.jsp");
    dispatch.forward(req, resp);
}

From source file:com.krawler.esp.servlets.SuperAdminServlet.java

public static String createCompany(Connection conn, HttpServletRequest request, HttpServletResponse response)
        throws ServiceException {
    String status = "";
    DiskFileUpload fu = new DiskFileUpload();
    ResultSet frs = null, ars = null;
    PreparedStatement pstmt = null, fpstmt = null, apstmt = null;
    double val = 0.0;
    List fileItems = null;//  w  w w .j  a  va  2  s. c om
    try {
        fileItems = fu.parseRequest(request);
    } catch (FileUploadException e) {
        throw ServiceException.FAILURE("SuperAdminHandler.createCompany", e);
    }

    HashMap arrParam = new HashMap();
    for (Iterator k = fileItems.iterator(); k.hasNext();) {
        FileItem fi1 = (FileItem) k.next();
        arrParam.put(fi1.getFieldName(), fi1.getString());
    }
    String companyid = UUID.randomUUID().toString();
    /*DbUtil
    .executeUpdate(
          conn,
          "insert into company(companyid, companyname, createdon, address, city, state, country, phone, fax, zip, "
                + "timezone, website) values (?, ?, now(), ?, ?, ?, ?, ?, ?, ?, ?, ?);",
          new Object[] { companyid, arrParam.get("companyname"),
                arrParam.get("address"), arrParam.get("city"),
                arrParam.get("state"), arrParam.get("country"),
                arrParam.get("phone"), arrParam.get("fax"),
                arrParam.get("zip"), arrParam.get("timezone"),
                arrParam.get("website") });*/
    java.util.Date d = new java.util.Date();
    java.sql.Timestamp today = new Timestamp(d.getTime());
    DbUtil.executeUpdate(conn,
            "INSERT INTO company(companyid, companyname, address, createdon, website) values (?,?,?,?,?);",
            new Object[] { companyid, arrParam.get("companyname"), arrParam.get("address"), today,
                    arrParam.get("website") });
    String userid = UUID.randomUUID().toString();
    String newPass = AuthHandler.generateNewPassword();
    String newPassSHA1 = AuthHandler.getSHA1(newPass);
    DbUtil.executeUpdate(conn, "insert into userlogin(userid, username, password, authkey) values (?,?,?,?);",
            new Object[] { userid, arrParam.get("username"), newPassSHA1, newPass });
    DbUtil.executeUpdate(conn, "insert into users(userid, companyid, image) values (?,?,?);",
            new Object[] { userid, companyid, "" });
    try {
        fpstmt = conn.prepareStatement("SELECT featureid FROM featurelist");
        frs = fpstmt.executeQuery();
        while (frs.next()) {
            apstmt = conn.prepareStatement("SELECT activityid FROM activitieslist WHERE featureid=?");
            apstmt.setInt(1, frs.getInt("featureid"));
            ars = apstmt.executeQuery();
            while (ars.next()) {
                val += Math.pow(2, Double.parseDouble(ars.getString("activityid")));
            }
            pstmt = conn.prepareStatement(
                    "INSERT INTO userpermissions (userid, featureid, permissions) VALUES (?,?,?)");
            pstmt.setString(1, userid);
            pstmt.setInt(2, frs.getInt("featureid"));
            pstmt.setInt(3, (int) val);
            pstmt.executeUpdate();

            val = 0.0;
        }
    } catch (SQLException e) {
        throw ServiceException.FAILURE("signup.confirmSignup", e);
    } finally {
        DbPool.closeStatement(pstmt);
    }
    if (arrParam.get("image").toString().length() != 0) {
        genericFileUpload uploader = new genericFileUpload();
        try {
            uploader.doPost(fileItems, companyid, StorageHandler.GetProfileImgStorePath());
        } catch (ConfigurationException e) {
            throw ServiceException.FAILURE("SuperAdminHandler.createCompany", e);
        }
        if (uploader.isUploaded()) {
            DbUtil.executeUpdate(conn, "update company set image=? where companyid = ?", new Object[] {
                    ProfileImageServlet.ImgBasePath + companyid + uploader.getExt(), companyid, companyid });
        }
    }
    status = "success";
    return status;
}

From source file:forseti.contabilidad.JContaPolizasDlg.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //request.setAttribute("fsi_modulo",request.getRequestURI());
    super.doPost(request, response);

    String conta_polizas_dlg = "";
    request.setAttribute("conta_polizas_dlg", conta_polizas_dlg);

    String mensaje = "";
    short idmensaje = -1;

    if (request.getContentType() != null
            && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) {
        if (!getSesion(request).getRegistrado()) {
            irApag("/forsetiweb/errorAtributos.jsp", request, response);
            return;
        } else {/*  w w w  .j a v a  2s  . c o m*/
            try {
                HttpSession ses = request.getSession(true);
                JFacturasXML factxml = (JFacturasXML) ses.getAttribute("fact_xml");
                Vector archivos = new Vector();
                DiskFileUpload fu = new DiskFileUpload();
                List items = fu.parseRequest(request);
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (item.isFormField())
                        factxml.getParametros().put(item.getFieldName(), item.getString());
                    else
                        archivos.addElement(item);
                }

                if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                    idmensaje = 3;
                    mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                            "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }

                String identidad = factxml.getParametros().getProperty("identidad");

                if (identidad.substring(0, 4).equals("NADA")) {
                    idmensaje = 1;
                    mensaje += "PRECAUCION: Se debe especificar la entidad de compra o venta de los archivos a cargar";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }

                SubirArchivosCFD(request, response, factxml, archivos);
                return;
            } catch (FileUploadException e) {
                e.printStackTrace();
                return;
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
        }
    }

    if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) {
        if (request.getParameter("proceso").equals("AGREGAR_POLIZA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CREAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CREAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CREAR", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametros(request, response)) {
                    AgregarCambiar(request, response, JForsetiApl.AGREGAR);
                    return;
                }
                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("AGR_PART")) {
                if (VerificarParametrosPartida(request, response))
                    AgregarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("EDIT_PART")) {
                if (VerificarParametrosPartida(request, response))
                    EditarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("BORR_PART")) {
                BorrarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez
            {
                HttpSession ses = request.getSession(true);
                JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");
                if (pol == null) {
                    pol = new JContaPolizasSes();
                    ses.setAttribute("conta_polizas_dlg", pol);
                } else
                    pol.resetear();

                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CONSULTAR_POLIZA")) {

            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("ID") != null) {
                String[] valoresParam = request.getParameterValues("ID");
                if (valoresParam.length == 1) {

                    HttpSession ses = request.getSession(true);
                    JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");
                    if (pol == null) {
                        pol = new JContaPolizasSes();
                        ses.setAttribute("conta_polizas_dlg", pol);
                    } else
                        pol.resetear();

                    // Llena la poliza
                    JContaPoliazasSetDetalleV2 set = new JContaPoliazasSetDetalleV2(request);
                    set.m_Where = "ID = '" + p(request.getParameter("ID")) + "'";
                    set.m_OrderBy = "Part ASC";
                    set.Open();
                    for (int i = 0; i < set.getNumRows(); i++) {
                        pol.agregaPartida(set.getAbsRow(i).getNumero(), set.getAbsRow(i).getNombre(),
                                set.getAbsRow(i).getConcepto(), set.getAbsRow(i).getParcial(),
                                set.getAbsRow(i).getMoneda(), set.getAbsRow(i).getTC(),
                                set.getAbsRow(i).getDebe(), set.getAbsRow(i).getHaber());
                    }
                    String numero = Integer.toString(set.getNumRows());
                    request.setAttribute("numero", numero);

                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    RDP("CEF", getSesion(request).getConBD(), "OK", getSesion(request).getID_Usuario(),
                            "CONT_POLIZAS", "POLZ|" + request.getParameter("ID") + "|"
                                    + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "||",
                            "");
                    irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("CARGAR_XML")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            Integer subir_archivos = new Integer(2);
            request.setAttribute("subir_archivos", subir_archivos);

            HttpSession ses = request.getSession(true);
            JFacturasXML rec = (JFacturasXML) ses.getAttribute("fact_xml");

            if (rec == null) {
                rec = new JFacturasXML();
                ses.setAttribute("fact_xml", rec);
            } else {
                rec = null;
                rec = new JFacturasXML();
                ses.setAttribute("fact_xml", rec);
            }

            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFContaPolizasDlg&archivo_1=xml&archivo_2=pdf&proceso=CARGAR_XML&subproceso=ENVIAR&CE="
                    + p(getSesion(request).getSesion("CONT_POLIZAS").getEspecial()), request, response);
            return;

        } else if (request.getParameter("proceso").equals("CONTABILIDAD_ELECTRONICA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("ID") != null) {
                String[] valoresParam = request.getParameterValues("ID");
                if (valoresParam.length == 1) {
                    //Se ha cancelado el proceso de tercer nivel
                    //if(request.getParameter("cancelado") != null || request.getParameter("actualizar") != null)
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);

                    // Hace revisiones iniciales
                    JContaPolizasSetV2 setp = new JContaPolizasSetV2(request);
                    setp.m_Where = "ID = '" + p(request.getParameter("ID")) + "'";
                    setp.Open();

                    if (setp.getAbsRow(0).getEstatus().equals("C")) {
                        idmensaje = 1;
                        mensaje += JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR2", 2);// No se puede gestionar contabilidad electrnica en una pliza cancelada.
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        }
        ////////////////////////////////////////////////////////////////////
        else if (request.getParameter("proceso").equals("CHEQUE_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idpart") != null) {
                String[] valoresParam = request.getParameterValues("idpart");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {

                        if (VerificarParametrosCECheque(request, response)) {
                            GestionarCheque(request, response);
                            return;
                        }
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_cheque.jsp", request, response);
                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_cheque.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("TRANSFERENCIA_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idpart") != null) {
                String[] valoresParam = request.getParameterValues("idpart");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {

                        if (VerificarParametrosCETransferencia(request, response)) {
                            GestionarTransferencia(request, response);
                            return;
                        }
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_transferencia.jsp", request,
                                response);
                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_transferencia.jsp", request,
                                response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("OTRMETPAGO_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idpart") != null) {
                String[] valoresParam = request.getParameterValues("idpart");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {

                        if (VerificarParametrosCEOtrMetodoPago(request, response)) {
                            GestionarOtrMetodoPago(request, response);
                            return;
                        }
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_otrmetodopago.jsp", request,
                                response);
                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_otrmetodopago.jsp", request,
                                response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("COMPROBANTE_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idpart") != null) {
                String[] valoresParam = request.getParameterValues("idpart");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {

                        if (VerificarParametrosCEComprobante(request, response)) {
                            GestionarComprobante(request, response);
                            return;
                        }
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_comprobante.jsp", request,
                                response);
                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_comprobante.jsp", request,
                                response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CAMBIAR_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idce") != null) {
                String[] valoresParam = request.getParameterValues("idce");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        if (request.getParameter("idce").substring(0, 3).equals("CHQ")) {
                            if (VerificarParametrosCECheque(request, response)) {
                                GestionarCheque(request, response);
                                return;
                            }
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_cheque.jsp", request,
                                    response);
                        } else if (request.getParameter("idce").substring(0, 3).equals("TRN")) {
                            if (VerificarParametrosCETransferencia(request, response)) {
                                GestionarTransferencia(request, response);
                                return;
                            }
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_transferencia.jsp", request,
                                    response);
                        } else if (request.getParameter("idce").substring(0, 3).equals("OMP")) {
                            if (VerificarParametrosCEOtrMetodoPago(request, response)) {
                                GestionarOtrMetodoPago(request, response);
                                return;
                            }
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_otrmetodopago.jsp", request,
                                    response);
                        } else //(request.getParameter("idce").substring(0,3).equals("XML"))
                        {
                            if (VerificarParametrosCEComprobante(request, response)) {
                                GestionarComprobante(request, response);
                                return;
                            }
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_comprobante.jsp", request,
                                    response);
                        }

                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        if (request.getParameter("idce").substring(0, 3).equals("CHQ"))
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_cheque.jsp", request,
                                    response);
                        else if (request.getParameter("idce").substring(0, 3).equals("TRN"))
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_transferencia.jsp", request,
                                    response);
                        else if (request.getParameter("idce").substring(0, 3).equals("OMP"))
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_otrmetodopago.jsp", request,
                                    response);
                        else
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_comprobante.jsp", request,
                                    response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("ELIMINAR_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CE")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CE");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CE", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("idce") != null) {
                String[] valoresParam = request.getParameterValues("idce");
                if (valoresParam.length == 1) {
                    EliminarCE(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        }
        ////////////////////////////////////////////////////////////////////
        else if (request.getParameter("proceso").equals("CAMBIAR_POLIZA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CAMBIAR", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                HttpSession ses = request.getSession(true);
                JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");
                // Verificacion de los especiales de cambio
                if (pol.getPeriodo() != JUtil.obtMes(request.getParameter("fecha"))) {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR", 4);//"PRECAUCION: No se puede cambiar la pliza porque debe de ser del mismo periodo contable <br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                    return;
                } else {
                    if (VerificarParametros(request, response)) {
                        AgregarCambiar(request, response, JForsetiApl.CAMBIAR);
                        return;
                    }
                    irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                    return;
                }
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("AGR_PART")) {
                if (VerificarParametrosPartida(request, response))
                    AgregarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("EDIT_PART")) {
                if (VerificarParametrosPartida(request, response))
                    EditarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("BORR_PART")) {
                BorrarPartida(request, response);

                irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de CAMBIADO `por primera vez
            {
                if (request.getParameter("ID") != null) {
                    String[] valoresParam = request.getParameterValues("ID");
                    if (valoresParam.length == 1) {
                        // Hace revisiones iniciales
                        JContaPolizasSetV2 setp = new JContaPolizasSetV2(request);
                        setp.m_Where = "ID = '" + p(request.getParameter("ID")) + "'";
                        setp.Open();

                        if (setp.getAbsRow(0).getEstatus().equals("C")
                                || !setp.getAbsRow(0).getRef().equals("")) {
                            idmensaje = 1;
                            mensaje += JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR", 5);// "PRECAUCION: No se puede cambiar una pliza cancelada o externa <br>";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        } else {
                            HttpSession ses = request.getSession(true);
                            JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");
                            if (pol == null) {
                                pol = new JContaPolizasSes();
                                ses.setAttribute("conta_polizas_dlg", pol);
                            } else
                                pol.resetear();

                            // Llena la poliza
                            Calendar fecha = new GregorianCalendar();
                            fecha.setTime(setp.getAbsRow(0).getFecha());
                            pol.setParametros(setp.getAbsRow(0).getEstatus(), setp.getAbsRow(0).getRef(),
                                    (byte) JUtil.obtMes(fecha));

                            JContaPoliazasSetDetalleV2 set = new JContaPoliazasSetDetalleV2(request);
                            set.m_Where = "ID = '" + p(request.getParameter("ID")) + "'";
                            set.m_OrderBy = "Part ASC";
                            set.Open();
                            for (int i = 0; i < set.getNumRows(); i++) {
                                pol.agregaPartida(set.getAbsRow(i).getNumero(), set.getAbsRow(i).getNombre(),
                                        set.getAbsRow(i).getConcepto(), set.getAbsRow(i).getParcial(),
                                        set.getAbsRow(i).getMoneda(), set.getAbsRow(i).getTC(),
                                        set.getAbsRow(i).getDebe(), set.getAbsRow(i).getHaber());
                            }

                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);
                            return;
                        }
                    } else {
                        idmensaje = 1;
                        mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 3;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            }
        } else if (request.getParameter("proceso").equals("CANCELAR_POLIZA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CANCELAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CANCELAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CANCELAR", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("ID") != null) {
                String[] valoresParam = request.getParameterValues("ID");
                if (valoresParam.length == 1) {
                    //Hace revisiones iniciales
                    JContaPolizasSetV2 setp = new JContaPolizasSetV2(request);
                    setp.m_Where = "ID = '" + p(request.getParameter("ID")) + "'";
                    setp.Open();

                    if (setp.getAbsRow(0).getEstatus().equals("C") || !setp.getAbsRow(0).getRef().equals("")) {
                        idmensaje = 1;
                        mensaje += JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR2", 1); //"PRECAUCION: No se puede cancelar una pliza ya cancelada o externa <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Cancelar(request, response, setp.getAbsRow(0).getFecha());
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"PRECAUCION: Solo se permite cancelar una pliza a la vez <br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); //" ERROR: Se debe enviar el identificador de la pliza que se quiere cancelar<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("RASTREAR_POLIZA")) {
            if (!getSesion(request).getPermiso("CONT_POLIZAS_CONSULTAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS_CONSULTAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS_CONSULTAR", "POLZ||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("ID") != null) {
                String[] valoresParam = request.getParameterValues("ID");
                if (valoresParam.length == 1) {

                    JRastreo rastreo = new JRastreo(request,
                            getSesion(request).getSesion("CONT_POLIZAS").generarTitulo(
                                    JUtil.Msj("CEF", "CONT_POLIZAS", "VISTA", "CONSULTAR_POLIZA", 3)),
                            "POLZ", request.getParameter("ID"));
                    String rastreo_imp = "true";
                    request.setAttribute("rastreo_imp", rastreo_imp);
                    // Ahora pone los atributos para el jsp
                    request.setAttribute("rastreo", rastreo);
                    RDP("CEF", getSesion(request).getConBD(), "OK", getSesion(request).getID_Usuario(),
                            "CONT_POLIZAS_CONSULTAR", "POLZ|" + request.getParameter("ID") + "|"
                                    + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "||",
                            "");
                    irApag("/forsetiweb/rastreo_imp.jsp", request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); //" ERROR: Se debe enviar el identificador de la pliza que se quiere consultar<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("IMPRIMIR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("CONT_POLIZAS")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "CONT_POLIZAS");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "CONT_POLIZAS", "POLZ" + "||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("ID") != null) {
                String[] valoresParam = request.getParameterValues("ID");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("IMPRESION")) {
                        StringBuffer bsmensaje = new StringBuffer(254);
                        String SQLCab = "select * from view_cont_polizas_impcab where ID = "
                                + request.getParameter("ID");
                        String SQLDet = "select * from view_cont_polizas_impdet where ID = "
                                + request.getParameter("ID") + " order by Part asc";
                        idmensaje = Imprimir(SQLCab, SQLDet, request.getParameter("idformato"), bsmensaje,
                                request, response);

                        if (idmensaje != -1) {
                            getSesion(request).setID_Mensaje(idmensaje, bsmensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    } else // significa que debe llamar a la ventana de formatos de impresion
                    {
                        request.setAttribute("impresion", "CEFContaPolizasDlg");
                        request.setAttribute("tipo_imp", "CONT_POLIZAS");
                        request.setAttribute("formato_default", null);

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/impresion_dlg.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else {
            idmensaje = 3;
            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }

    } else // si no se mandan parametros, manda a error
    {
        idmensaje = 3;
        mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
        return;
    }

}

From source file:fsi_admin.JSmtpConn.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String ERROR = null, codErr = null;

    try {/*from   ww  w .ja v a2 s . com*/
        Properties parametros = new Properties();
        Vector archivos = new Vector();
        DiskFileUpload fu = new DiskFileUpload();
        List items = fu.parseRequest(request);
        Iterator iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            if (item.isFormField())
                parametros.put(item.getFieldName(), item.getString());
            else
                archivos.addElement(item);
        }

        if (parametros.getProperty("SERVER") == null || parametros.getProperty("DATABASE") == null
                || parametros.getProperty("USER") == null || parametros.getProperty("PASSWORD") == null
                || parametros.getProperty("BODY") == null || parametros.getProperty("MIMETYPE") == null
                || parametros.getProperty("SUBJECT") == null || parametros.getProperty("EMAIL") == null
                || parametros.getProperty("SOURCEMAIL") == null) {
            System.out.println("No recibi parametros de conexin antes del correo a enviar");
            ERROR = "ERROR: El servidor no recibi todos los parametros de conexion (SERVER,DATABASE,USER,PASSWORD) antes del correo a enviar";
            codErr = "3";
            ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                    parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                    parametros.getProperty("PASSWORD"), request, ERROR, 3);
        }

        //Hasta aqui se han enviado todos los parametros ninguno nulo
        if (ERROR == null) {
            StringBuffer msj = new StringBuffer(), SMTPHOST = new StringBuffer(), SMTPPORT = new StringBuffer(),
                    SMTPUSR = new StringBuffer(), SMTPPASS = new StringBuffer();
            MutableBoolean COBRAR = new MutableBoolean(false);
            MutableDouble COSTO = new MutableDouble(0.0), SALDO = new MutableDouble(0.0);
            // Primero obtiene info del SMTP
            if (!obtenInfoSMTP(request.getRemoteAddr(), request.getRemoteHost(),
                    parametros.getProperty("SERVER"), parametros.getProperty("DATABASE"),
                    parametros.getProperty("USER"), parametros.getProperty("PASSWORD"), SMTPHOST, SMTPPORT,
                    SMTPUSR, SMTPPASS, msj, COSTO, SALDO, COBRAR)) {
                System.out.println("El usuario y contrasea de servicio estan mal");
                ERROR = msj.toString();
                codErr = "2";
                ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                        parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                        parametros.getProperty("PASSWORD"), request, ERROR, 2);

            } else {
                if (COBRAR.booleanValue() && SALDO.doubleValue() < COSTO.doubleValue()) {
                    System.out.println("El servicio tiene un costo que no alcanza en el saldo");
                    ERROR = "El servicio SMTP tiene un costo que no alcanza en el saldo";
                    codErr = "2";
                    ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                            parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                            parametros.getProperty("PASSWORD"), request, ERROR, 2);

                } else {
                    Properties props;

                    props = System.getProperties();
                    props.put("mail.transport.protocol", "smtp");
                    props.put("mail.smtp.port", Integer.parseInt(SMTPPORT.toString()));

                    // Set properties indicating that we want to use STARTTLS to encrypt the connection.
                    // The SMTP session will begin on an unencrypted connection, and then the client
                    // will issue a STARTTLS command to upgrade to an encrypted connection.
                    props.put("mail.smtp.auth", "true");
                    props.put("mail.smtp.starttls.enable", "true");
                    props.put("mail.smtp.starttls.required", "true");

                    // Create a Session object to represent a mail session with the specified properties. 
                    Session session = Session.getDefaultInstance(props);
                    MimeMessage mmsg = new MimeMessage(session);
                    BodyPart messagebodypart = new MimeBodyPart();
                    MimeMultipart multipart = new MimeMultipart();

                    if (!prepareMsg(parametros.getProperty("SOURCEMAIL"), parametros.getProperty("EMAIL"),
                            parametros.getProperty("SUBJECT"), parametros.getProperty("MIMETYPE"),
                            parametros.getProperty("BODY"), msj, props, session, mmsg, messagebodypart,
                            multipart)) {
                        System.out.println("No se permiti preparar el mensaje");
                        ERROR = msj.toString();
                        codErr = "3";
                        ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                                parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                                parametros.getProperty("PASSWORD"), request, ERROR, 3);

                    } else {
                        if (!adjuntarArchivo(msj, messagebodypart, multipart, archivos)) {
                            System.out.println("No se permiti adjuntar archivos al mensaje");
                            ERROR = msj.toString();
                            codErr = "3";
                            ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                                    parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                                    parametros.getProperty("PASSWORD"), request, ERROR, 3);

                        } else {
                            if (!sendMsg(SMTPHOST.toString(), SMTPUSR.toString(), SMTPPASS.toString(), msj,
                                    session, mmsg, multipart)) {
                                System.out.println("No se permiti enviar el mensaje");
                                ERROR = msj.toString();
                                codErr = "3";
                                ingresarRegistroFallido(request.getRemoteAddr(), request.getRemoteHost(),
                                        parametros.getProperty("SERVER"), parametros.getProperty("USER"),
                                        parametros.getProperty("PASSWORD"), request, ERROR, 3);
                            } else {
                                ingresarRegistroExitoso(parametros.getProperty("SERVER"),
                                        parametros.getProperty("DATABASE"), parametros.getProperty("SUBJECT"),
                                        COSTO, SALDO, COBRAR);

                                //Devuelve la respuesta al cliente
                                Element Correo = new Element("Correo");
                                Correo.setAttribute("Subject", parametros.getProperty("SUBJECT"));
                                Correo.setAttribute("MsjError", "");
                                Document Reporte = new Document(Correo);

                                Format format = Format.getPrettyFormat();
                                format.setEncoding("utf-8");
                                format.setTextMode(TextMode.NORMALIZE);
                                XMLOutputter xmlOutputter = new XMLOutputter(format);
                                ByteArrayOutputStream out = new ByteArrayOutputStream();
                                xmlOutputter.output(Reporte, out);

                                byte[] data = out.toByteArray();
                                ByteArrayInputStream istream = new ByteArrayInputStream(data);

                                String destino = "Correo.xml";
                                JBajarArchivo fd = new JBajarArchivo();
                                fd.doDownload(response, getServletConfig().getServletContext(), istream,
                                        "text/xml", data.length, destino);

                            }
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        ERROR = "ERROR DE EXCEPCION EN SERVIDOR PAC: " + e.getMessage();
    }

    //Genera el archivo XML de error para ser devuelto al Servidor
    if (ERROR != null) {
        Element SIGN_ERROR = new Element("SIGN_ERROR");
        SIGN_ERROR.setAttribute("CodError", codErr);
        SIGN_ERROR.setAttribute("MsjError", ERROR);
        Document Reporte = new Document(SIGN_ERROR);

        Format format = Format.getPrettyFormat();
        format.setEncoding("utf-8");
        format.setTextMode(TextMode.NORMALIZE);
        XMLOutputter xmlOutputter = new XMLOutputter(format);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        xmlOutputter.output(Reporte, out);

        byte[] data = out.toByteArray();
        ByteArrayInputStream istream = new ByteArrayInputStream(data);

        String destino = "SIGN_ERROR.xml";
        JBajarArchivo fd = new JBajarArchivo();
        fd.doDownload(response, getServletConfig().getServletContext(), istream, "text/xml", data.length,
                destino);

    }
}

From source file:com.sun.faban.harness.webclient.Deployer.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {//from www .  j a  v  a  2s .  c om
        List<String> deployNames = new ArrayList<String>();
        List<String> cantDeployNames = new ArrayList<String>();
        List<String> errDeployNames = new ArrayList<String>();
        List<String> invalidNames = new ArrayList<String>();
        List<String> errHeaders = new ArrayList<String>();
        List<String> errDetails = new ArrayList<String>();

        String user = null;
        String password = null;
        boolean clearConfig = false;
        boolean hasPermission = true;

        // Check whether we have to return text or html
        boolean acceptHtml = false;
        String acceptHeader = request.getHeader("Accept");
        if (acceptHeader != null && acceptHeader.indexOf("text/html") >= 0)
            acceptHtml = true;

        DiskFileUpload fu = new DiskFileUpload();
        // No maximum size
        fu.setSizeMax(-1);
        // maximum size that will be stored in memory
        fu.setSizeThreshold(4096);
        // the location for saving data that is larger than getSizeThreshold()
        fu.setRepositoryPath(Config.TMP_DIR);

        StringWriter messageBuffer = new StringWriter();
        PrintWriter messageWriter = new PrintWriter(messageBuffer);

        List fileItems = null;
        try {
            fileItems = fu.parseRequest(request);
        } catch (FileUploadException e) {
            throw new ServletException(e);
        }
        // assume we know there are two files. The first file is a small
        // text file, the second is unknown and is written to a file on
        // the server
        for (Iterator i = fileItems.iterator(); i.hasNext();) {
            FileItem item = (FileItem) i.next();
            String fieldName = item.getFieldName();
            if (item.isFormField()) {
                if ("user".equals(fieldName)) {
                    user = item.getString();
                } else if ("password".equals(fieldName)) {
                    password = item.getString();
                } else if ("clearconfig".equals(fieldName)) {
                    String value = item.getString();
                    clearConfig = Boolean.parseBoolean(value);
                }
                continue;
            }

            if (!"jarfile".equals(fieldName))
                continue;

            String fileName = item.getName();

            if (fileName == null) // We don't process files without names
                continue;

            if (Config.SECURITY_ENABLED) {
                if (Config.DEPLOY_USER == null || Config.DEPLOY_USER.length() == 0
                        || !Config.DEPLOY_USER.equals(user)) {
                    hasPermission = false;
                    break;
                }
                if (Config.DEPLOY_PASSWORD == null || Config.DEPLOY_PASSWORD.length() == 0
                        || !Config.DEPLOY_PASSWORD.equals(password)) {
                    hasPermission = false;
                    break;
                }
            }
            // Now, this name may have a path attached, dependent on the
            // source browser. We need to cover all possible clients...

            char[] pathSeparators = { '/', '\\' };
            // Well, if there is another separator we did not account for,
            // just add it above.

            for (int j = 0; j < pathSeparators.length; j++) {
                int idx = fileName.lastIndexOf(pathSeparators[j]);
                if (idx != -1) {
                    fileName = fileName.substring(idx + 1);
                    break;
                }
            }

            // Ignore all non-jarfiles.
            if (!fileName.toLowerCase().endsWith(".jar")) {
                invalidNames.add(fileName);
                continue;
            }

            String deployName = fileName.substring(0, fileName.length() - 4);

            if (deployName.indexOf('.') > -1) {
                invalidNames.add(deployName);
                continue;
            }

            // Check if we can deploy benchmark or service.
            // If running or queued, we won't deploy benchmark.
            // If service being used by current run,we won't deploy service.
            if (!DeployUtil.canDeployBenchmark(deployName) || !DeployUtil.canDeployService(deployName)) {
                cantDeployNames.add(deployName);
                continue;
            }

            File uploadFile = new File(Config.BENCHMARK_DIR, fileName);
            if (uploadFile.exists())
                FileHelper.recursiveDelete(uploadFile);

            try {
                item.write(uploadFile);
            } catch (Exception e) {
                throw new ServletException(e);
            }

            try {
                DeployUtil.processUploadedJar(uploadFile, deployName);
            } catch (Exception e) {
                messageWriter.println("\nError deploying " + deployName + ".\n");
                e.printStackTrace(messageWriter);
                errDeployNames.add(deployName);
                continue;
            }
            deployNames.add(deployName);
        }

        if (clearConfig)
            for (String benchName : deployNames)
                DeployUtil.clearConfig(benchName);

        if (!hasPermission)
            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
        else if (cantDeployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_CONFLICT);
        else if (errDeployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
        else if (invalidNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
        else if (deployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_CREATED);
        else
            response.setStatus(HttpServletResponse.SC_NOT_FOUND);

        StringBuilder b = new StringBuilder();

        if (deployNames.size() > 0) {
            if (deployNames.size() > 1)
                b.append("Benchmarks/services ");
            else
                b.append("Benchmark/service ");

            for (int i = 0; i < deployNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) deployNames.get(i));
            }

            b.append(" deployed.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (invalidNames.size() > 0) {
            if (invalidNames.size() > 1)
                b.append("Invalid deploy files ");
            else
                b.append("Invalid deploy file ");
            for (int i = 0; i < invalidNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) invalidNames.get(i));
            }
            b.append(". Deploy files must have .jar extension.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (cantDeployNames.size() > 0) {
            if (cantDeployNames.size() > 1)
                b.append("Cannot deploy benchmarks/services ");
            else
                b.append("Cannot deploy benchmark/services ");
            for (int i = 0; i < cantDeployNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) cantDeployNames.get(i));
            }
            b.append(". Benchmark/services being used or " + "queued up for run.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (errDeployNames.size() > 0) {
            if (errDeployNames.size() > 1) {
                b.append("Error deploying benchmarks/services ");
                for (int i = 0; i < errDeployNames.size(); i++) {
                    if (i > 0)
                        b.append(", ");
                    b.append((String) errDeployNames.get(i));
                }
            }

            errDetails.add(messageBuffer.toString());
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (!hasPermission)
            errHeaders.add("Permission denied!");

        Writer writer = response.getWriter();
        if (acceptHtml)
            writeHtml(request, writer, errHeaders, errDetails);
        else
            writeText(writer, errHeaders, errDetails);
        writer.flush();
        writer.close();
    } catch (ServletException e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw e;
    } catch (IOException e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw e;
    } catch (Exception e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw new ServletException(e);
    }
}

From source file:com.krawler.spring.hrms.common.hrmsDocumentController.java

public ModelAndView addDocuments(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobj = new JSONObject();
    JSONObject myjobj = new JSONObject();
    List fileItems = null;//from  www.  j a v a  2  s .  c  om
    KwlReturnObject kmsg = null;
    String auditAction = "";
    boolean applicant = false;
    String id = java.util.UUID.randomUUID().toString();
    PrintWriter out = null;
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {
        response.setContentType("text/html;charset=UTF-8");
        out = response.getWriter();
        String userid = sessionHandlerImplObj.getUserid(request);
        String map = request.getParameter("mapid");
        HashMap<String, String> arrParam = new HashMap<String, String>();
        boolean fileUpload = false;
        String docdesc;
        ArrayList<FileItem> fi = new ArrayList<FileItem>();
        if (request.getParameter("fileAdd") != null) {
            DiskFileUpload fu = new DiskFileUpload();
            fileItems = fu.parseRequest(request);
            documentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload);
            arrParam.put("IsIE", request.getParameter("IsIE"));
            if (arrParam.get("applicantid").equalsIgnoreCase("applicant")) {
                applicant = true;
                userid = arrParam.get("refid");
            }
            if (StringUtil.isNullOrEmpty((String) arrParam.get("docdesc")) == false) {
                docdesc = (String) arrParam.get("docdesc");
            }
        }
        for (int cnt = 0; cnt < fi.size(); cnt++) {
            String docID;
            if (applicant) {
                kmsg = hrmsExtApplDocsDAOObj.uploadFile(fi.get(cnt), userid, arrParam,
                        profileHandlerDAOObj.getUserFullName(sessionHandlerImplObj.getUserid(request)));
                HrmsDocs doc = (HrmsDocs) kmsg.getEntityList().get(0);
                docID = doc.getDocid();
            } else {
                kmsg = documentDAOObj.uploadFile(fi.get(cnt), userid, arrParam);
                Docs doc = (Docs) kmsg.getEntityList().get(0);
                docID = doc.getDocid();
            }

            String companyID = sessionHandlerImplObj.getCompanyid(request);
            String userID = sessionHandlerImplObj.getUserid(request);
            String refid = arrParam.get("refid");
            jobj.put("userid", userID);
            jobj.put("docid", docID);
            jobj.put("companyid", companyID);
            jobj.put("id", id);
            jobj.put("map", map);
            jobj.put("refid", refid);
            if (arrParam.get("applicantid").equalsIgnoreCase("applicant")) {
                hrmsExtApplDocsDAOObj.saveDocumentMapping(jobj);
            } else {
                documentDAOObj.saveDocumentMapping(jobj);
            }
        }
        myjobj.put("ID", id);
        txnManager.commit(status);
    } catch (Exception e) {
        System.out.println(e.getMessage());
        txnManager.rollback(status);
    } finally {
        out.close();
    }
    return new ModelAndView("jsonView", "model", myjobj.toString());
}

From source file:com.krawler.esp.handlers.basecampHandler.java

public static File getfile(HttpServletRequest request, String docid) throws ConfigurationException {
    String destinationDirectory = StorageHandler.GetDocStorePath() + StorageHandler.GetFileSeparator()
            + "baseCamxml";
    java.io.File destDir = new java.io.File(destinationDirectory);

    if (!destDir.exists()) {
        destDir.mkdirs();/*from   w  ww. j  a  va 2s  .co  m*/
    }
    DiskFileUpload fu = new DiskFileUpload();
    String Ext = null;
    File uploadFile = null;
    List fileItems = null;
    try {
        fileItems = fu.parseRequest(request);
    } catch (FileUploadException e) {
        KrawlerLog.op.warn("Problem While Uploading file :" + e.toString());
    }
    for (Iterator i = fileItems.iterator(); i.hasNext();) {
        FileItem fi = (FileItem) i.next();
        if (!fi.isFormField()) {
            String fileName = null;
            try {
                fileName = new String(fi.getName().getBytes(), "UTF8");
                if (fileName.contains(".")) {
                    Ext = fileName.substring(fileName.lastIndexOf("."));
                }
                if (fi.getSize() != 0) {
                    uploadFile = new File(
                            destinationDirectory + StorageHandler.GetFileSeparator() + docid + ".xml");
                    fi.write(uploadFile);
                }
            } catch (Exception e) {
                KrawlerLog.op.warn("Problem While Reading file :" + e.toString());
            }
        }
    }

    return uploadFile;
}

From source file:forseti.nomina.JNomMovDirDlg.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.doPost(request, response);

    String nom_nomina_dlg = "";
    request.setAttribute("nom_nomina_dlg", nom_nomina_dlg);

    String mensaje = "";
    short idmensaje = -1;
    String usuario = getSesion(request).getID_Usuario();

    if (request.getContentType() != null
            && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) {
        if (!getSesion(request).getRegistrado()) {
            irApag("/forsetiweb/errorAtributos.jsp", request, response);
            return;
        } else {//from w ww. j  av  a2 s .c o  m
            try {
                HttpSession ses = request.getSession(true);
                JFacturasXML nomrecxml = (JFacturasXML) ses.getAttribute("nom_rec_xml");
                Vector archivos = new Vector();
                DiskFileUpload fu = new DiskFileUpload();
                List items = fu.parseRequest(request);
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (item.isFormField())
                        nomrecxml.getParametros().put(item.getFieldName(), item.getString());
                    else
                        archivos.addElement(item);
                }

                // revisa por las entidades
                JNominaEntidadesSetIds setids = new JNominaEntidadesSetIds(request, usuario,
                        getSesion(request).getSesion("NOM_NOMINA").getEspecial());
                setids.Open();

                if (setids.getNumRows() < 1) {
                    idmensaje = 3;
                    mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                            "NOM_NOMINA", "NNOM||||", mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }

                SubirArchivosCFD(request, response, nomrecxml, archivos);
                return;
            } catch (FileUploadException e) {
                e.printStackTrace();
                return;
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
        }
    }

    if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) {
        // revisa por las entidades
        JNominaEntidadesSetIds setids = new JNominaEntidadesSetIds(request, usuario,
                getSesion(request).getSesion("NOM_NOMINA").getEspecial());
        setids.Open();

        if (setids.getNumRows() < 1) {
            idmensaje = 3;
            mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "NOM_NOMINA",
                    "NNOM||||", mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }

        request.setAttribute("idmod", "NOM_NOMINA");
        request.setAttribute("fact_xml", "NOMINA");

        // Revisa por intento de intrusion (Salto de permiso de entidad)
        if (!request.getParameter("proceso").equals("AGREGAR_NOMINA") && request.getParameter("id") != null) {
            JNominasModuloSet set = new JNominasModuloSet(request);
            set.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            set.Open();
            if (set.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "AL", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM|" + request.getParameter("id") + "|"
                                + setids.getAbsRow(0).getID_Sucursal() + "||",
                        mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        }

        if (request.getParameter("proceso").equals("ENLAZAR_RECIBO")) {
            //System.out.println("Enlazar Recibos");
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setids.getAbsRow(0).getCFD()
                    || (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2
                            && setnom.getAbsRow(0).getTipo() != 5 && setnom.getAbsRow(0).getTipo() != 6
                            && setnom.getAbsRow(0).getTipo() != 7 && setnom.getAbsRow(0).getTipo() != 8)) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede enlazar ningun CFDI porque esta entidad de nmina genera sus propios CFDIs, o  porque esta nmina es del tipo especial, la cual no es compatible para sellar.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("subproceso") == null) // Como el subproceso no es ENVIAR ni ENLAZAR,
            {
                //System.out.println("Subproceso Nulo");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/fact_dlg_xmls.jsp", request, response);
                return;
            } else {
                //System.out.println("Subproceso NO Nulo");
                if (request.getParameter("subproceso").equals("ENLAZAR")) {
                    // Se supone que el recibo aun no estar ligado a un recibo existente...
                    JCFDCompSet comprobante = new JCFDCompSet(request, "NOMINA");
                    comprobante.m_Where = "UUID = '" + p(request.getParameter("uuid")) + "'";
                    comprobante.Open();

                    if (comprobante.getNumRows() < 1 || !comprobante.getAbsRow(0).getFSI_Tipo().equals("ENT")
                            || comprobante.getAbsRow(0).getFSI_ID() != Integer
                                    .parseInt(getSesion(request).getSesion("NOM_NOMINA").getEspecial())) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se ha cargado el CFDI del recibo, ste ya esta ligado a otro recibo,  el CFDI se carg en otra entidad<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    HttpSession ses = request.getSession(true);
                    JFacturasXML nomrecxml = (JFacturasXML) ses.getAttribute("nom_rec_xml");

                    if (nomrecxml == null) {
                        nomrecxml = new JFacturasXML();
                        ses.setAttribute("nom_rec_xml", nomrecxml);
                    } else {
                        nomrecxml = null;
                        nomrecxml = new JFacturasXML();
                        ses.setAttribute("nom_rec_xml", nomrecxml);
                    }

                    StringBuffer sb_mensaje = new StringBuffer();
                    if (!JForsetiCFD.CargarDocumentoCFDI(request, nomrecxml, sb_mensaje,
                            request.getParameter("uuid"), "N")) {
                        idmensaje = 3;
                        mensaje += sb_mensaje.toString();
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (nomrecxml.getComprobante().getProperty("tipoDeComprobante").equals("ingreso")
                            || nomrecxml.getComprobante().getProperty("tipoDeComprobante").equals("traslado")) {
                        idmensaje = 3;
                        mensaje += "ERROR: El tipo de comprobante fiscal digital CFDI, No corresponde con el tipo de documento a enlazar.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    //Verifica que el RFC del Emisor sea igual al RFC registrado, o que sea rfc generico
                    JBDSSet set = new JBDSSet(request);
                    set.ConCat(true);
                    set.m_Where = "Nombre = 'FSIBD_" + p(getSesion(request).getBDCompania()) + "'";
                    set.Open();
                    if (!nomrecxml.getRFC_Emisor().equalsIgnoreCase(set.getAbsRow(0).getRFC())) {
                        idmensaje = 3;
                        mensaje = "ERROR: El RFC del emisor en el XML no pertenece a la compaia";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (request.getParameter("idempleado") == null) // Significa que debe agregar un nuevo recibo 
                    {
                        if (setnom.getAbsRow(0).getCerrado()) {
                            idmensaje = 3;
                            mensaje += "ERROR: No se puede enlazar el CFDI a un recibo nuevo porque la nmina ya esta protegida <br>";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                        //float descuento = Float.parseFloat(nomrecxml.getComprobante().getProperty("descuento"));
                        //float totalImpuestosRetenidos = Float.parseFloat(nomrecxml.getImpuestos().getProperty("totalImpuestosRetenidos"));
                        JMasempSet setemp = new JMasempSet(request);
                        setemp.m_Where = "ID_Compania = '0' and ID_Sucursal = '"
                                + getSesion(request).getSesion("NOM_NOMINA").getEspecial()
                                + "' and ( RFC_Letras || RFC_Fecha || RFC_Homoclave ) ~~* '"
                                + p(nomrecxml.getRFC_Receptor()) + "'";
                        setemp.Open();
                        //System.out.println(setemp.getSQL());
                        if (setemp.getNumRows() == 0) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No existe el empleado dado de alta en el sistema, est dado de alta en otra entidad o el RFC del empleado no coincide con el del recibo";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                        if (rec == null) {
                            rec = new JNomMovDirSes();
                            ses.setAttribute("nom_nomina_dlg", rec);
                        } else
                            rec.resetear();

                        JProcessSet setRec = new JProcessSet(request);
                        setRec.setSQL("select Recibo from VIEW_NOM_CALCULO_NOMINA_ESP where ID_Nomina = '"
                                + p(request.getParameter("id")) + "' order by Recibo desc limit 1");
                        setRec.Open();

                        if (setRec.getNumRows() > 0)
                            rec.setRecibo(Integer.valueOf(setRec.getAbsRow(0).getSTS("Col1")) + 1);
                        else
                            rec.setRecibo(1);

                        //Llena el recibo
                        rec.setUUID(nomrecxml.getTFD().getProperty("UUID"));
                        rec.setID_Empleado(setemp.getAbsRow(0).getID_Empleado());
                        rec.setNombre(setemp.getAbsRow(0).getNombre() + " "
                                + setemp.getAbsRow(0).getApellido_Paterno() + " "
                                + setemp.getAbsRow(0).getApellido_Materno());

                        JCalculoNominaDetSet dset = new JCalculoNominaDetSet(request);
                        dset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        dset.Open();

                        for (int i = 0; i < nomrecxml.getPercepciones().size(); i++) {
                            Properties percepcion = (Properties) nomrecxml.getPercepciones().elementAt(i);
                            int clave;
                            String descripcion;
                            boolean esDeduccion;
                            int idmovimiento;
                            try {
                                idmovimiento = Integer.parseInt(percepcion.getProperty("Clave"));
                            } catch (NumberFormatException e) {
                                idmovimiento = 0;
                            }
                            JMovimientosNomSet cat = new JMovimientosNomSet(request);
                            cat.m_Where = "ID_Movimiento = '" + idmovimiento + "'";
                            //System.out.println(cat.getSQL());
                            cat.Open();
                            if (cat.getNumRows() > 0) {
                                clave = cat.getAbsRow(0).getID_Movimiento();
                                descripcion = cat.getAbsRow(0).getDescripcion();
                                esDeduccion = cat.getAbsRow(0).getDeduccion();
                            } else // Si no existe la clave en el catalogo, enlaza desde catlogo intermediario 
                            {
                                clave = 0;
                                descripcion = percepcion.getProperty("Concepto");
                                esDeduccion = false;
                            }
                            float gravado = Float.parseFloat(percepcion.getProperty("ImporteGravado"));
                            float exento = Float.parseFloat(percepcion.getProperty("ImporteExento"));

                            rec.agregaPartida(clave, descripcion, gravado, exento, 0.00F, esDeduccion);
                        }

                        for (int i = 0; i < nomrecxml.getDeducciones().size(); i++) {
                            Properties deduccion = (Properties) nomrecxml.getDeducciones().elementAt(i);
                            int clave;
                            String descripcion;
                            boolean esDeduccion;

                            JMovimientosNomSet cat = new JMovimientosNomSet(request);
                            cat.m_Where = "ID_Movimiento = '" + p(deduccion.getProperty("Clave")) + "'";
                            //System.out.println(cat.getSQL());
                            cat.Open();
                            if (cat.getNumRows() > 0) {
                                clave = cat.getAbsRow(0).getID_Movimiento();
                                descripcion = cat.getAbsRow(0).getDescripcion();
                                esDeduccion = cat.getAbsRow(0).getDeduccion();
                            } else // Si no existe la clave en el catalogo, enlaza desde catlogo intermediario 
                            {
                                clave = 0;
                                descripcion = deduccion.getProperty("Concepto");
                                esDeduccion = true;
                            }
                            float gravado = Float.parseFloat(deduccion.getProperty("ImporteGravado"));
                            float exento = Float.parseFloat(deduccion.getProperty("ImporteExento"));

                            rec.agregaPartida(clave, descripcion, 0.00F, 0.00F, -(gravado + exento),
                                    esDeduccion);
                        }

                        for (int i = 0; i < nomrecxml.getIncapacidades().size(); i++) {
                            Properties incapacidad = (Properties) nomrecxml.getIncapacidades().elementAt(i);

                            float dias = Float.parseFloat(incapacidad.getProperty("DiasIncapacidad"));
                            int tipo = Integer.parseInt(incapacidad.getProperty("TipoIncapacidad"));
                            if (tipo == 1)
                                rec.setIXA(dias);
                            else if (tipo == 2)
                                rec.setIXE(dias);
                            else
                                rec.setIXM(dias);

                        }

                        for (int i = 0; i < nomrecxml.getHorasExtras().size(); i++) {
                            Properties horasextra = (Properties) nomrecxml.getHorasExtras().elementAt(i);

                            byte dias = Byte.parseByte(horasextra.getProperty("Dias"));
                            String tipo = horasextra.getProperty("TipoHoras");
                            float horas = Float.parseFloat(horasextra.getProperty("HorasExtra"));

                            rec.setDiasHorasExtras(dias);
                            if (tipo.equals("Dobles") || tipo.equals("dobles"))
                                rec.setHE(horas);
                            else // Triples o triples
                                rec.setHT(horas);

                        }

                        rec.establecerResultados();

                        if ((JUtil.redondear(rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(),
                                2)
                                - JUtil.redondear(
                                        Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                        2)) > 0.1
                                || (JUtil.redondear(
                                        rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(), 2)
                                        - JUtil.redondear(
                                                Float.parseFloat(
                                                        nomrecxml.getComprobante().getProperty("total")),
                                                2)) < -0.1) {
                            idmensaje = 3;
                            mensaje = "ERROR: El total en el CFDI no corresponde al Total calculado en el registro a partir de este CFDI. No se puede agregar. DOC: "
                                    + JUtil.redondear(
                                            rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(), 2)
                                    + " XML: "
                                    + JUtil.redondear(
                                            Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                            2);
                            getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;

                    } else // Significa que debe Enlazar a un recibo existente
                    {
                        if (setnom.getAbsRow(0).getFormaPago().equals("N")) //Si no est ya pagada la nomina lo rechaza porque no hay poliza para enlazar el cfdi a la contabilidad electronica
                        {
                            idmensaje = 3;
                            mensaje += "ERROR: No se puede enlazar el CFDI a un recibo existente porque la nmina no esta pagada an, lo que significa que no existe una pliza asociada para el enlace a la contabilidad elecrnica <br>";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        String[] valoresParam = request.getParameterValues("idempleado");
                        if (valoresParam.length == 1) {
                            JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                            cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id"))
                                    + "' and ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                            cset.Open();
                            //System.out.println(setemp.getSQL());

                            if (cset.getAbsRow(0).getID_CFD() != 0) {
                                idmensaje = 1;
                                mensaje += "PRECAUCION: Este recibo ya tiene un CFDI asociado. No puedes asociar otro CFDI al mismo recibo<br>";
                                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                                return;
                            }

                            JMasempSetCons setemp = new JMasempSetCons(request);
                            setemp.m_Where = "ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                            setemp.Open();

                            if (JUtil.redondear(
                                    cset.getAbsRow(0).getGravado() + cset.getAbsRow(0).getExento()
                                            + cset.getAbsRow(0).getDeduccion(),
                                    2) != JUtil.redondear(
                                            Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                            2)
                                    || !(setemp.getAbsRow(0).getRFC_Letras()
                                            + setemp.getAbsRow(0).getRFC_Fecha()
                                            + setemp.getAbsRow(0).getRFC_Homoclave())
                                                    .equals(nomrecxml.getRFC_Receptor())) {
                                idmensaje = 1;
                                mensaje += "PRECAUCION: Los totales o los RFCs del recibo y el CFDI no coinciden. No se puede asociar este CFDI al registro<br>";
                                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                                return;
                            }

                            // Aqui asocia.
                            Enlazar(request, response);
                            return;
                        } else {
                            idmensaje = 1;
                            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    }

                } else if (request.getParameter("subproceso").equals("ENVIAR")) {
                    if (AgregarRecursos(request, response) == -1) {
                        AgregarCambiarEmp(request, response);
                        return;
                    }

                    irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                    return;
                }
            }
        } else if (request.getParameter("proceso").equals("AGREGAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JAdmCompaniasSet setcom = new JAdmCompaniasSet(request);
            setcom.m_Where = "ID_Compania = '0' and ID_Sucursal = '"
                    + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "'";
            setcom.Open();

            Byte numero_nomina = new Byte(setcom.getAbsRow(0).getNumero());
            Date desde = new Date(setcom.getAbsRow(0).getFecha().getTime());
            Calendar hast = new GregorianCalendar();
            hast.setTime(setcom.getAbsRow(0).getFecha());
            Integer ano = new Integer(JUtil.obtAno(hast));
            Integer tipo_de_nomina = new Integer(-1);

            if (setcom.getAbsRow(0).getPeriodo().equals("sem"))
                hast.add(Calendar.DATE, 6);
            else if (setcom.getAbsRow(0).getPeriodo().equals("qui"))
                hast.add(Calendar.DATE, 14);
            else {
                hast.add(Calendar.MONTH, 1);
                hast.add(Calendar.DATE, -1);
            }
            Date hasta = hast.getTime();

            request.setAttribute("numero_nomina", numero_nomina);
            request.setAttribute("ano", ano);
            request.setAttribute("desde", desde);
            request.setAttribute("hasta", hasta);
            request.setAttribute("tipo_de_nomina", tipo_de_nomina);

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametros(request, response)) {
                    AgregarCambiarCabecero(request, response);
                    return;
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
            {
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CAMBIAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar la n&oacute;mina porque ya esta protegida<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar la nmina porque no es una nmina normal<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                    Byte numero_nomina = new Byte((byte) setnom.getAbsRow(0).getNumero_Nomina());
                    Integer ano = new Integer(setnom.getAbsRow(0).getAno());
                    Date desde = new Date(setnom.getAbsRow(0).getFecha_Desde().getTime());
                    Date hasta = new Date(setnom.getAbsRow(0).getFecha_Hasta().getTime());
                    Integer tipo_de_nomina = new Integer(setnom.getAbsRow(0).getTipo());

                    request.setAttribute("numero_nomina", numero_nomina);
                    request.setAttribute("ano", ano);
                    request.setAttribute("desde", desde);
                    request.setAttribute("hasta", hasta);
                    request.setAttribute("tipo_de_nomina", tipo_de_nomina);

                    // Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (VerificarParametros(request, response)) {
                            AgregarCambiarCabecero(request, response);
                            return;
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                    {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("ELIMINAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_ELIMINAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_ELIMINAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_ELIMINAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar la n&oacute;mina porque ya esta protegida <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and TFD >= 2";
                    cset.Open();
                    if (cset.getNumRows() > 0) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar la nmina porque por lo menos un recibo ya tiene su CFDI enlazado. Primero debes desenlazar el CFDI desde el mdulo de CFDI y CE del centro de control<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Eliminar(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CALCULAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede calcular la n&oacute;mina porque ya est protegida <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() == 1 || setnom.getAbsRow(0).getTipo() == 2) {
                        if (request.getParameter("subproceso") != null
                                && request.getParameter("subproceso").equals("ENVIAR")) {
                            //Normales
                            Calcular(request, response, 12);
                            return;
                        } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                        {
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/nomina/nom_nomina_dlg_calcular.jsp", request, response);
                            return;
                        }
                    } else if (setnom.getAbsRow(0).getTipo() == 5 || setnom.getAbsRow(0).getTipo() == 6) {
                        //Aguinaldo
                        Calcular(request, response, 56);
                        return;
                    } else {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede calcular la nmina porque el tipo de nmina no es calculable <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 1;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("GENERAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (!setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("P")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede generar pago de n&oacute;mina porque no esta protegida, ya esta pagada o esta cancelada <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Generar(request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CARGAR_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_CARGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_CARGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_CARGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setids.getAbsRow(0).getCFD()
                    || (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2
                            && setnom.getAbsRow(0).getTipo() != 5 && setnom.getAbsRow(0).getTipo() != 6)) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede cargar ningun CFDI porque esta entidad de nmina genera sus propios CFDIs, o  porque el tipo, no es compatible para sellar.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            Integer subir_archivos = new Integer(2);
            request.setAttribute("subir_archivos", subir_archivos);

            HttpSession ses = request.getSession(true);
            JFacturasXML rec = (JFacturasXML) ses.getAttribute("nom_rec_xml");

            if (rec == null) {
                rec = new JFacturasXML();
                ses.setAttribute("nom_rec_xml", rec);
            } else {
                rec = null;
                rec = new JFacturasXML();
                ses.setAttribute("nom_rec_xml", rec);
            }

            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFNomMovDirDlg&archivo_1=xml&archivo_2=pdf&proceso=CARGAR_RECIBO&subproceso=ENVIAR",
                    request, response);
            return;

        } else if (request.getParameter("proceso").equals("SELLAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    if (setids.getAbsRow(0).getCFD() == false) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Esta entidad de nmina no est&aacute; establecida como CFDI. No se pueden sellar los registros<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (!setnom.getAbsRow(0).getCerrado() || !setnom.getAbsRow(0).getStatus().equals("P")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede sellar esta nmina porque no esta protegida, no esta pagada o est cancelada <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() == 1 || setnom.getAbsRow(0).getTipo() == 2
                            || setnom.getAbsRow(0).getTipo() == 5 || setnom.getAbsRow(0).getTipo() == 6
                            || setnom.getAbsRow(0).getTipo() == 7 || setnom.getAbsRow(0).getTipo() == 8) {
                        JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                        SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                        SetMod.m_OrderBy = "Recibo ASC";
                        SetMod.Open();

                        for (int i = 0; i < SetMod.getNumRows(); i++) {
                            if (SetMod.getAbsRow(i).getTFD() == 3)
                                continue;

                            StringBuffer sb_mensaje = new StringBuffer(254);
                            idmensaje = generarCFDI(request, response, "NOMINA",
                                    Integer.parseInt(request.getParameter("id")),
                                    SetMod.getAbsRow(i).getID_Empleado(), setids, SetMod.getAbsRow(i).getTFD(),
                                    sb_mensaje);
                            mensaje += SetMod.getAbsRow(i).getID_Empleado() + " " + sb_mensaje.toString()
                                    + "<br>";
                            if (idmensaje == 3)
                                break;
                        }

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    } else {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede sellar la n&oacute;mina porque se trata de una n&oacute;mina especial. <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("PROTEGER_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();
                    if (!setnom.getAbsRow(0).getFormaPago().equals("N")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede desproteger la nmina porque ya esta pagada o esta cancelada.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Proteger(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CONSULTAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/nomina/nom_nomina_dlg_cons.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("MOVER_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/nomina/nom_nomina_dlg_cons.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("AGR_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede agregar el empleado porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    AgregarCambiarEmp(request, response);
                    return;
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("AGR_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    if (VerificarParametrosPartida(request, response))
                        AgregarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("EDIT_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    if (VerificarParametrosPartida(request, response))
                        EditarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("BORR_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    BorrarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez
            {
                HttpSession ses = request.getSession(true);
                JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                if (rec == null) {
                    rec = new JNomMovDirSes();
                    ses.setAttribute("nom_nomina_dlg", rec);
                } else
                    rec.resetear();

                JProcessSet setRec = new JProcessSet(request);
                setRec.setSQL("select Recibo from VIEW_NOM_CALCULO_NOMINA_ESP where ID_Nomina = '"
                        + p(request.getParameter("id")) + "' order by Recibo desc limit 1");
                setRec.Open();

                if (setRec.getNumRows() > 0)
                    rec.setRecibo(Integer.valueOf(setRec.getAbsRow(0).getSTS("Col1")) + 1);
                else
                    rec.setRecibo(1);

                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CAM_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede cambiar el recibo porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    cset.Open();
                    if (cset.getAbsRow(0).getTFD() >= 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar el recibo porque ya tiene un CFDI enlazado.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                    //Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            AgregarCambiarEmp(request, response);
                            return;
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("AGR_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            if (VerificarParametrosPartida(request, response))
                                AgregarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("EDIT_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            if (VerificarParametrosPartida(request, response))
                                EditarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("BORR_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            BorrarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                    {
                        HttpSession ses = request.getSession(true);
                        JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                        if (rec == null) {
                            rec = new JNomMovDirSes();
                            ses.setAttribute("nom_nomina_dlg", rec);
                        } else
                            rec.resetear();

                        //Llena el empleado
                        JCalculoNominaEspSet set = new JCalculoNominaEspSet(request);
                        set.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        set.Open();

                        rec.setID_Empleado(set.getAbsRow(0).getID_Empleado());
                        rec.setNombre(set.getAbsRow(0).getNombre());
                        rec.setFaltas(set.getAbsRow(0).getFaltas());
                        rec.setHE(set.getAbsRow(0).getHE());
                        rec.setHD(set.getAbsRow(0).getHD());
                        rec.setHT(set.getAbsRow(0).getHT());
                        rec.setIXA(set.getAbsRow(0).getIXA());
                        rec.setIXE(set.getAbsRow(0).getIXE());
                        rec.setIXM(set.getAbsRow(0).getIXM());
                        rec.setRecibo(set.getAbsRow(0).getRecibo());
                        rec.setDiasHorasExtras(set.getAbsRow(0).getDiasHorasExtras());

                        JCalculoNominaDetSet dset = new JCalculoNominaDetSet(request);
                        dset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        dset.Open();

                        for (int i = 0; i < dset.getNumRows(); i++) {
                            rec.agregaPartida(dset.getAbsRow(i).getID_Movimiento(),
                                    dset.getAbsRow(i).getDescripcion(), dset.getAbsRow(i).getGravado(),
                                    dset.getAbsRow(i).getExento(), dset.getAbsRow(i).getDeduccion(),
                                    dset.getAbsRow(i).getEsDeduccion());
                        }
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("BORR_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede borrar el recibo porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    cset.Open();
                    if (cset.getAbsRow(0).getTFD() >= 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar el recibo porque ya tiene un CFDI enlazado.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    EliminarEmp(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("IMPRIMIR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("IMPRESION")) {
                        // Impresion
                        StringBuffer bsmensaje = new StringBuffer(254);
                        String SQLCab = "select * from view_nomina_recibos_impcab where ID_Nomina = "
                                + request.getParameter("id") + " and ID_Empleado = '"
                                + request.getParameter("idempleado") + "'";
                        String SQLDet = "select * from view_nomina_recibos_impdet where ID_Nomina = "
                                + request.getParameter("id") + " and ID_Empleado = '"
                                + request.getParameter("idempleado")
                                + "' order by esdeduccion asc, id_movimiento asc";

                        idmensaje = Imprimir(SQLCab, SQLDet, request.getParameter("idformato"), bsmensaje,
                                request, response);

                        if (idmensaje != -1) {
                            getSesion(request).setID_Mensaje(idmensaje, bsmensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                    } else {
                        request.setAttribute("impresion", "CEFNomMovDirDlg");
                        request.setAttribute("tipo_imp", "NOM_NOMINA");
                        request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Recibo());

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/impresion_dlg.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("ENVIAR_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no se puede enviar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JMasempSet set = new JMasempSet(request);
                    set.m_Where = "ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                    set.Open();
                    if (set.getAbsRow(0).getSMTP() == 0) // Maneja smtp manual o automtico
                    {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este empleado no esta confgurado para recibir sus recibos por correo <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;

                    }

                    JFsiSMTPClient smtp = new JFsiSMTPClient();
                    smtp.enviarCFDIMPE(request, "NOM", request.getParameter("id"),
                            request.getParameter("idempleado"), set.getAbsRow(0).getNombre(),
                            set.getAbsRow(0).getEMail());
                    if (smtp.getStatusSMTP() == JFsiSMTPClient.ERROR) {
                        idmensaje = 3;
                        mensaje += "ERROR: " + smtp.getError();
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    getSesion(request).setID_Mensaje((short) 0, "El correo se ha mandado satisfactoriamente");
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("XML_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no hay nada que bajar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCFDCompSet cfd = new JCFDCompSet(request, "NOMINA");
                    cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'";
                    cfd.Open();

                    String nombre, destino;

                    if (cfd.getNumRows() > 0)
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/nom/TFDs/"
                                + cfd.getAbsRow(0).getUUID() + ".xml";
                    else // Es CFDI generado internamente
                    {
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania()
                                + "/TFDs/SIGN_NOM-" + request.getParameter("id") + "-"
                                + request.getParameter("idempleado") + ".xml";
                    }

                    destino = "NOM-" + SetMod.getAbsRow(0).getID_Nomina() + "-"
                            + SetMod.getAbsRow(0).getRecibo() + ".xml";

                    JBajarArchivo fd = new JBajarArchivo();

                    fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino);

                    idmensaje = 0;
                    mensaje = "El recibo se bajo satisfactoriamente";
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("PDF_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no hay nada que bajar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCFDCompSet cfd = new JCFDCompSet(request, "NOMINA");
                    cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'";
                    cfd.Open();

                    String nombre, destino;

                    if (cfd.getNumRows() > 0)
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/nom/PDFs/"
                                + cfd.getAbsRow(0).getUUID() + ".pdf";
                    else
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/PDFs/NOM-"
                                + request.getParameter("id") + "-" + request.getParameter("idempleado")
                                + ".pdf";

                    destino = "NOM-" + SetMod.getAbsRow(0).getID_Nomina() + "-"
                            + SetMod.getAbsRow(0).getRecibo() + ".pdf";

                    JBajarArchivo fd = new JBajarArchivo();

                    fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino);

                    idmensaje = 0;
                    mensaje = "El recibo se bajo satisfactoriamente";
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else {
            idmensaje = 3;
            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }

    } else // si no se mandan parametros, manda a error
    {
        idmensaje = 3;
        mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
        return;
    }

}

From source file:forseti.admon.JAdmCFDDlg.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.doPost(request, response);

    String adm_cfdi_dlg = "";
    request.setAttribute("adm_cfdi_dlg", adm_cfdi_dlg);

    String mensaje = "";
    short idmensaje = -1;

    if (request.getContentType() != null
            && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) {
        if (!getSesion(request).getRegistrado()) {
            irApag("/forsetiweb/errorAtributos.jsp", request, response);
            return;
        } else {// w  ww .  j  a  v  a2s .  co m
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            try {
                Vector archivos = new Vector();
                DiskFileUpload fu = new DiskFileUpload();
                List items = fu.parseRequest(request);
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (!item.isFormField())
                        archivos.addElement(item);
                }

                SubirArchivosCFD(request, response, archivos);
                return;
            } catch (FileUploadException e) {
                e.printStackTrace();
                return;
            }
        }

    }

    if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) {
        if (request.getParameter("proceso").equals("VERIFICAR_CFD")) {
            // Verificacion
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (VerificarCertificados(request, response))
                AgregarCertificado(request, response);

            return;
        } else if (request.getParameter("proceso").equals("CAMBIAR_EMISOR")) {
            System.out.println(request.getParameter("cfd_regimenfiscal"));
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametros(request, response)) {
                    Cambiar(request, response);
                    return;
                }

                irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ACTUALIZAR")) {
                irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio
            {
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("AGREGAR_CERTIFICADO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            Integer subir_archivos = new Integer(2);
            request.setAttribute("subir_archivos", subir_archivos);

            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFAdmCFDDlg&archivo_1=cer&archivo_2=key&proceso=AGREGAR_CERTIFICADO&subproceso=ENVIAR",
                    request, response);
            return;

        } else if (request.getParameter("proceso").equals("AGREGAR_EXPEDITOR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametrosExpRec(request, response)) {
                    AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "EXP");
                    return;
                }
                irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ACTUALIZAR")) {
                irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio
            {
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("CAMBIAR_EXPEDITOR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (VerificarParametrosExpRec(request, response)) {
                            AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "EXP");
                            return;
                        }
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ACTUALIZAR")) {
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio
                    {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("AGREGAR_RECEPTOR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametrosExpRec(request, response)) {
                    AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "REC");
                    return;
                }
                irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio
            {
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("CAMBIAR_RECEPTOR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_AGREGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (VerificarParametrosExpRec(request, response)) {
                            AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "REC");
                            return;
                        }
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio
                    {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("GENERAR_CE")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_GCEXML", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1));
                        int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2));

                        JAdmPeriodosSet set = new JAdmPeriodosSet(request);
                        set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'";
                        set.Open();

                        if (!set.getAbsRow(0).getCerrado()) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No se pueden generar los archivos XML de la Contabilidada Electrnica, porque el mes seleccionado no esta cerrado aun.";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        GenerarXMLCE(request, response, ano, mes);
                        return;
                    } else {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/administracion/adm_cfd_dlg_cegen.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CONSULTAR_ST")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_GCEXML", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1));
                    int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2));

                    JContCEModuloSet set = new JContCEModuloSet(request,
                            getSesion(request).getSesion("ADM_CFDI").getEspecial());
                    set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'";
                    set.Open();

                    if (set.getAbsRow(0).getGenerado().equals("N")) {
                        idmensaje = 1;
                        mensaje = "PRECAUCION: No se puede consultar el registro de estatus porque no existe el archivo generado en este mes.";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    irApag("/forsetiweb/administracion/adm_cfd_dlg_cons.jsp", request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CONSULTAR_ARCHIVOS")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_GCEXML", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1));
                    int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2));

                    JContCEModuloSet set = new JContCEModuloSet(request,
                            getSesion(request).getSesion("ADM_CFDI").getEspecial());
                    set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'";
                    set.Open();

                    if (set.getAbsRow(0).getGenerado().equals("N")) {
                        idmensaje = 1;
                        mensaje = "PRECAUCION: No se puede consultar el archivo porque este mes no esta generado aun.";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    String nomArchFech;
                    if (mes < 10)
                        nomArchFech = "-" + ano + "-0" + mes;
                    else
                        nomArchFech = "-" + ano + "-" + mes;
                    String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/"
                            + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech
                            + ".xml";

                    String salida = "";
                    File f = new File(nomArch);
                    FileReader fr = null;
                    BufferedReader br = null;
                    try {
                        fr = new FileReader(f);
                        br = new BufferedReader(fr);
                        String s;
                        while ((s = br.readLine()) != null) {
                            salida += s + "\n";
                        }
                        br.close();
                    } catch (IOException e1) {
                        salida += e1;
                    }
                    response.setContentType("application/xml");
                    PrintWriter out = response.getWriter();
                    out.print(salida);
                    /*
                    String nombres[] = {   nomArch + "catalogo" + nomArchFech + ".xml",
                             nomArch + "balanza" + nomArchFech + ".xml",
                             nomArch + "polizas" + nomArchFech + ".xml",
                             nomArch + "CE" + nomArchFech + ".log"};
                    String destinos[] = {   "catalogo" + nomArchFech + ".xml",
                          "balanza" + nomArchFech + ".xml",
                          "polizas" + nomArchFech + ".xml",
                          "CE" + nomArchFech + ".log" };
                            
                    JBajarArchivo fd = new JBajarArchivo();
                    fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("CE" + nomArchFech + ".zip"), nombres, destinos);
                    */

                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("VALIDAR_ARCHIVOS")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_GCEXML", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1));
                    int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2));

                    JContCEModuloSet set = new JContCEModuloSet(request,
                            getSesion(request).getSesion("ADM_CFDI").getEspecial());
                    set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'";
                    set.Open();

                    if (set.getAbsRow(0).getGenerado().equals("N")) {
                        idmensaje = 1;
                        mensaje = "PRECAUCION: No se puede validar el archivo porque este mes no esta generado aun.";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    String nomArchFech;
                    if (mes < 10)
                        nomArchFech = "-" + ano + "-0" + mes;
                    else
                        nomArchFech = "-" + ano + "-" + mes;
                    String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/"
                            + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech
                            + ".xml";

                    //Validacin
                    String ERROR = "", archivoXML = "";
                    boolean NAME_SPACE_AWARE = true;
                    boolean VALIDATING = true;
                    String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
                    String SCHEMA_LANGUAGE_VAL = "http://www.w3.org/2001/XMLSchema";
                    String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
                    String sFichXsd = "/usr/local/forseti/rec/";
                    if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT"))
                        sFichXsd += "CatalogoCuentas_1_1.xsd";
                    else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CEBAL"))
                        sFichXsd += "BalanzaComprobacion_1_1.xsd";
                    else
                        sFichXsd += "PolizasPeriodo_1_1.xsd";
                    try {
                        FileReader file = new FileReader(nomArch);
                        BufferedReader buff = new BufferedReader(file);
                        boolean eof = false;

                        while (!eof) {
                            String line = buff.readLine();
                            if (line == null)
                                eof = true;
                            else
                                archivoXML += line + "\n";
                        }
                        InputStream is = new ByteArrayInputStream(archivoXML.getBytes());
                        Reader xsdReader = new FileReader(sFichXsd);
                        //System.out.println("xmlReader:" + pathxml + "\n" + "xsdReader:" + sFichXsd + "\n"  + "xsdReader2:" + sFichXsd2);
                        SAXParserFactory factory = SAXParserFactory.newInstance();
                        factory.setNamespaceAware(NAME_SPACE_AWARE);
                        factory.setValidating(VALIDATING);

                        SAXParser parser = factory.newSAXParser();
                        parser.setProperty(SCHEMA_LANGUAGE, SCHEMA_LANGUAGE_VAL);
                        parser.setProperty(SCHEMA_SOURCE, new InputSource(xsdReader));

                        DefaultHandler handler = new XmlDefaultHandler();
                        //parser.parse(new InputSource(xmlReader), handler); 
                        parser.parse(is, handler);
                    } catch (FactoryConfigurationError e) {
                        e.printStackTrace();
                        ERROR += "FactoryConfiguration: " + e.getMessage() + "<br>";
                    } catch (ParserConfigurationException e) {
                        e.printStackTrace();
                        ERROR += "ParserConfiguration: " + e.getMessage() + "<br>";
                    } catch (SAXException e) {
                        e.printStackTrace();
                        ERROR += "SAX: " + e.getMessage() + "<br>";
                    } catch (IOException e) {
                        e.printStackTrace();
                        ERROR += "IO: " + e.getMessage() + "<br>";
                    }

                    if (!ERROR.equals("")) {
                        idmensaje = 3;
                        mensaje = "ERROR: Al verificar sintaxis del XML:" + "<br>" + ERROR;
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    } else {
                        idmensaje = 0;
                        mensaje = "El XML se verific y paso las pruebas de sintaxis";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    }
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("DESCARGAR_ARCHIVOS")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_GCEXML", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1));
                    int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2));

                    JContCEModuloSet set = new JContCEModuloSet(request,
                            getSesion(request).getSesion("ADM_CFDI").getEspecial());
                    set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'";
                    set.Open();

                    if (set.getAbsRow(0).getGenerado().equals("N")) {
                        idmensaje = 1;
                        mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun.";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    String nomArchFech;
                    if (mes < 10)
                        nomArchFech = "-" + ano + "-0" + mes;
                    else
                        nomArchFech = "-" + ano + "-" + mes;

                    SAXBuilder builder = new SAXBuilder();
                    File xmlFile = new File("/usr/local/forseti/emp/" + getSesion(request).getBDCompania()
                            + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial()
                            + nomArchFech + ".xml");

                    try {
                        Document document = (Document) builder.build(xmlFile);
                        Element CEGeneral = document.getRootElement();
                        String nomArchZIP = CEGeneral.getAttributeValue("RFC")
                                + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes");
                        String destino = CEGeneral.getAttributeValue("RFC")
                                + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes");
                        if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT")) // es de egresos (Compras. Gastos)
                        {
                            nomArchZIP += "CT.zip";
                            destino += "CT.xml";
                        } else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial()
                                .equals("CEBAL")) {
                            nomArchZIP += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".zip";
                            destino += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".xml";
                        } else {
                            nomArchZIP += "PL.zip";
                            destino += "PL.xml";
                        }
                        String nombres[] = { "/usr/local/forseti/emp/" + getSesion(request).getBDCompania()
                                + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial()
                                + nomArchFech + ".xml" };
                        String destinos[] = { destino };
                        JBajarArchivo fd = new JBajarArchivo();
                        fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(),
                                nomArchZIP, nombres, destinos);
                        return;
                    } catch (JDOMException e) {
                        idmensaje = 1;
                        mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun.";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("DESENLAZAR_DOCUMENTO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_DESENLAZAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_DESENLAZAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_DESENLAZAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus();
                    if (!status.equals("OTROS")) {
                        JCFDCompViewSet set = new JCFDCompViewSet(request, status);
                        set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'";
                        set.Open();

                        if (set.getNumRows() < 1) {
                            idmensaje = 3;
                            mensaje = "ERROR: No se puede desenlazar el registro porque no existe";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro.";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    } else {
                        JCFDCompOtrSet set = new JCFDCompOtrSet(request);
                        set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'";
                        set.Open();

                        if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro.";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    }

                    DesenlazarDocumento(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("ELIMINAR_DOCUMENTO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_CARGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_CARGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_CARGAR", "ACFD||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus();
                    if (!status.equals("OTROS")) {
                        JCFDCompViewSet set = new JCFDCompViewSet(request, status);
                        set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'";
                        set.Open();

                        if (set.getNumRows() < 1) {
                            idmensaje = 3;
                            mensaje = "ERROR: No se puede eliminar el registro porque no existe";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro.";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    } else {
                        JCFDCompOtrSet set = new JCFDCompOtrSet(request);
                        set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'";
                        set.Open();

                        if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro.";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    }

                    EliminarDocumento(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else // si no se mandan parametros, manda a error
        {
            idmensaje = 3;
            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }
    } else {
        idmensaje = 3;
        mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
        return;
    }

}