forseti.contabilidad.JContaPolizasDlg.java Source code

Java tutorial

Introduction

Here is the source code for forseti.contabilidad.JContaPolizasDlg.java

Source

/*
Forseti, El ERP Gratuito para PyMEs
Copyright (C) 2015 Gabriel Gutirrez Fuentes.
    
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
    
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.
    
You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package forseti.contabilidad;

import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;

import java.sql.Date;

import forseti.JFacturasXML;
import forseti.JForsetiApl;
import forseti.JForsetiCFD;
import forseti.JRastreo;
import forseti.JRetFuncBas;
import forseti.JUtil;
import forseti.sets.JContaPoliazasSetDetalleV2;
import forseti.sets.JContaPolizasSetV2;
import forseti.sets.JSatBancosSet;
import forseti.sets.JSatMetodosPagoSet;
import forseti.sets.JSatMonedasSet;

@SuppressWarnings("serial")
public class JContaPolizasDlg extends JForsetiApl {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    @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 {
                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;
        }

    }

    public boolean VerificarParametrosPartida(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("cuenta") != null && request.getParameter("idmoneda") != null
                && request.getParameter("concepto_part") != null && request.getParameter("tc") != null
                && !request.getParameter("cuenta").equals("") && !request.getParameter("idmoneda").equals("")
                && !request.getParameter("concepto_part").equals("") && !request.getParameter("tc").equals("")) {
            if ((request.getParameter("debe") != null && !request.getParameter("debe").equals(""))
                    || (request.getParameter("haber") != null && !request.getParameter("haber").equals(""))) {
                return true;
            } else // error
            {
                idmensaje = 1;
                mensaje = JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR", 2); //Se debe especificar si es un retiro o un abono <br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }
        } else {
            idmensaje = 1;
            mensaje = JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR", 3); //"PRECAUCION: Se deben enviar los parametros de cuenta, clave de moneda, concepto de partida, y tipo de cambio <br>";
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public boolean VerificarParametrosCECheque(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("ID") != null && request.getParameter("idpart") != null
                && request.getParameter("num") != null && request.getParameter("banco") != null
                && request.getParameter("banemisext") != null && request.getParameter("ctaori") != null
                && request.getParameter("fecha") != null && request.getParameter("monto") != null
                && request.getParameter("tipcamb") != null && request.getParameter("benef") != null
                && request.getParameter("rfc") != null && !request.getParameter("ID").equals("")
                && !request.getParameter("idpart").equals("") && !request.getParameter("num").equals("")
                && !request.getParameter("ctaori").equals("") && !request.getParameter("fecha").equals("")
                && !request.getParameter("monto").equals("") && !request.getParameter("tipcamb").equals("")
                && !request.getParameter("benef").equals("") && !request.getParameter("rfc").equals("")) {
            JSatBancosSet setBan = new JSatBancosSet(request);
            setBan.m_Where = "Clave = '" + p(request.getParameter("banco")) + "'";
            setBan.Open();

            if (setBan.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: El banco para el SAT no es vlido<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            } else {
                if (setBan.getAbsRow(0).getClave().equals("000") && request.getParameter("banemisext").equals("")) {
                    idmensaje = 2;
                    mensaje += "PRECAUCION: Se debe establecer el banco extranjero de origen<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
                if (!setBan.getAbsRow(0).getClave().equals("000")
                        && !request.getParameter("banemisext").equals("")) {
                    idmensaje = 2;
                    mensaje += "PRECAUCION: No se debe establecer el banco extranjero de origen porque ya se ha seleccionado un banco nacional<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            }

            JSatMonedasSet setMon = new JSatMonedasSet(request);
            setMon.m_Where = "Clave = '" + p(request.getParameter("moneda")) + "'";
            setMon.Open();

            if (setMon.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: La moneda especificada no existe";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            String rfcfmt = JUtil.fco(JUtil.frfc(request.getParameter("rfc")));
            if (rfcfmt.equals("") || rfcfmt.length() > 13 || rfcfmt.length() < 12) {
                idmensaje = 1;
                mensaje = "PRECAUCION: El RFC esta mal, puede que contenga caracteres no validos";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            return true;
        } else {
            idmensaje = 3;
            mensaje = JUtil.Msj("GLB", "GLB", "GLB", "PARAM-NULO");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public boolean VerificarParametrosCETransferencia(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("ID") != null && request.getParameter("idpart") != null
                && request.getParameter("ctaori") != null && request.getParameter("bancoori") != null
                && request.getParameter("bancooriext") != null && request.getParameter("monto") != null
                && request.getParameter("tipcamb") != null && request.getParameter("ctadest") != null
                && request.getParameter("bancodest") != null && request.getParameter("bancodestext") != null
                && request.getParameter("fecha") != null && request.getParameter("benef") != null
                && request.getParameter("rfc") != null && !request.getParameter("ID").equals("")
                && !request.getParameter("idpart").equals("") && !request.getParameter("ctaori").equals("")
                && !request.getParameter("monto").equals("") && !request.getParameter("tipcamb").equals("")
                && !request.getParameter("ctadest").equals("") && !request.getParameter("fecha").equals("")
                && !request.getParameter("benef").equals("") && !request.getParameter("rfc").equals("")) {
            JSatBancosSet setBan = new JSatBancosSet(request);
            setBan.m_Where = "Clave = '" + p(request.getParameter("bancoori")) + "'";
            setBan.Open();

            if (setBan.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: El banco origen para el SAT no es vlido<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            } else {
                if (setBan.getAbsRow(0).getClave().equals("000")
                        && request.getParameter("bancooriext").equals("")) {
                    idmensaje = 1;
                    mensaje += "PRECAUCION: Se debe establecer el banco extranjero de origen<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
                if (!setBan.getAbsRow(0).getClave().equals("000")
                        && !request.getParameter("bancooriext").equals("")) {
                    idmensaje = 1;
                    mensaje += "PRECAUCION: No se debe establecer el banco extranjero de origen porque ya se ha seleccionado un banco nacional<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            }

            setBan.m_Where = "Clave = '" + p(request.getParameter("bancodest")) + "'";
            setBan.Open();

            if (setBan.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: El banco destino para el SAT no es vlido<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            } else {
                if (setBan.getAbsRow(0).getClave().equals("000")
                        && request.getParameter("bancodestext").equals("")) {
                    idmensaje = 1;
                    mensaje += "PRECAUCION: Se debe establecer el banco extranjero de destino<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
                if (!setBan.getAbsRow(0).getClave().equals("000")
                        && !request.getParameter("bancodestext").equals("")) {
                    idmensaje = 1;
                    mensaje += "PRECAUCION: No se debe establecer el banco extranjero de destino porque ya se ha seleccionado un banco nacional<br>";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            }

            JSatMonedasSet setMon = new JSatMonedasSet(request);
            setMon.m_Where = "Clave = '" + p(request.getParameter("moneda")) + "'";
            setMon.Open();

            if (setMon.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: La moneda especificada no existe";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            String rfcfmt = JUtil.fco(JUtil.frfc(request.getParameter("rfc")));
            if (rfcfmt.equals("") || rfcfmt.length() > 13 || rfcfmt.length() < 12) {
                idmensaje = 1;
                mensaje = "PRECAUCION: El RFC esta mal, puede que contenga caracteres no validos";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            return true;
        } else {
            idmensaje = 3;
            mensaje = JUtil.Msj("GLB", "GLB", "GLB", "PARAM-NULO");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public boolean VerificarParametrosCEOtrMetodoPago(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("ID") != null && request.getParameter("idpart") != null
                && request.getParameter("monto") != null && request.getParameter("tipcamb") != null
                && request.getParameter("fecha") != null && request.getParameter("benef") != null
                && request.getParameter("rfc") != null && !request.getParameter("ID").equals("")
                && !request.getParameter("idpart").equals("") && !request.getParameter("monto").equals("")
                && !request.getParameter("tipcamb").equals("") && !request.getParameter("fecha").equals("")
                && !request.getParameter("benef").equals("") && !request.getParameter("rfc").equals("")) {
            JSatMetodosPagoSet setMet = new JSatMetodosPagoSet(request);
            setMet.m_Where = "Clave = '" + p(request.getParameter("metpagopol")) + "'";
            setMet.Open();

            if (setMet.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: El metodo de pago para el SAT no es vlido<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            JSatMonedasSet setMon = new JSatMonedasSet(request);
            setMon.m_Where = "Clave = '" + p(request.getParameter("moneda")) + "'";
            setMon.Open();

            if (setMon.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: La moneda especificada no existe";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            String rfcfmt = JUtil.fco(JUtil.frfc(request.getParameter("rfc")));
            if (rfcfmt.equals("") || rfcfmt.length() > 13 || rfcfmt.length() < 12) {
                idmensaje = 1;
                mensaje = "PRECAUCION: El RFC esta mal, puede que contenga caracteres no validos";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            return true;
        } else {
            idmensaje = 3;
            mensaje = JUtil.Msj("GLB", "GLB", "GLB", "PARAM-NULO");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public boolean VerificarParametrosCEComprobante(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("ID") != null && request.getParameter("idpart") != null
                && request.getParameter("uuidcfdi") != null && request.getParameter("monto") != null
                && request.getParameter("tipcamb") != null && request.getParameter("rfc") != null
                && request.getParameter("cfdcbbserie") != null && request.getParameter("cfdcbbnumfol") != null
                && request.getParameter("numfactext") != null && request.getParameter("taxid") != null
                && !request.getParameter("ID").equals("") && !request.getParameter("idpart").equals("")
                && !request.getParameter("monto").equals("") && !request.getParameter("tipcamb").equals("")) {
            String ID_Tipo = "";

            if (!request.getParameter("uuidcfdi").equals("")
                    && !request.getParameter("uuidcfdi").equals("                                    "))
                ID_Tipo = "CompNal";
            else if (!request.getParameter("cfdcbbserie").equals("")
                    && !request.getParameter("cfdcbbnumfol").equals(""))
                ID_Tipo = "CompNalOtr";
            else if (!request.getParameter("numfactext").equals(""))
                ID_Tipo = "CompExt";

            if (ID_Tipo.equals("")) {
                idmensaje = 3;
                mensaje += "ERROR: Se debe seleccionar el tipo de comprobante a ingresar, ya sea, ingresando el UUID CFDI para comprobantes nacionales CFDI, la serie y folio para otros comprobantes nacionales sin soporte a CFDI, o el nmero de factura extranjera para comprobantes de origen extrangero";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            JSatMonedasSet setMon = new JSatMonedasSet(request);
            setMon.m_Where = "Clave = '" + p(request.getParameter("moneda")) + "'";
            setMon.Open();

            if (setMon.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += "ERROR: La moneda especificada no existe";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            }

            if (ID_Tipo.equals("CompNal")) {
                if (!request.getParameter("uuidcfdi")
                        .matches("[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}")) {
                    idmensaje = 3;
                    mensaje += "ERROR: La clave del CFDI debe constar de exactamente 36 caracteres con el siguiente patrn: [a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }

                String rfcfmt = JUtil.fco(JUtil.frfc(request.getParameter("rfc")));
                if (rfcfmt.equals("") || rfcfmt.length() > 13 || rfcfmt.length() < 12) {
                    idmensaje = 1;
                    mensaje = "PRECAUCION: El RFC esta mal, puede que contenga caracteres no validos";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            } else if (ID_Tipo.equals("CompNalOtr")) {
                if (!request.getParameter("cfdcbbserie").matches("[A-Z]{1,10}")
                        || Integer.parseInt(request.getParameter("cfdcbbnumfol")) < 1) {
                    idmensaje = 3;
                    mensaje += "ERROR: La serie del comprobante sin soporte de CFDI debe constar de un mximo de 10 caracteres de la A a la Z maysculas, y el nmero de folio debe ser mayor que cero";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }

                String rfcfmt = JUtil.fco(JUtil.frfc(request.getParameter("rfc")));
                if (rfcfmt.equals("") || rfcfmt.length() > 13 || rfcfmt.length() < 12) {
                    idmensaje = 1;
                    mensaje = "PRECAUCION: El RFC esta mal, puede que contenga caracteres no validos";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            } else //CompExt
            {
                if (request.getParameter("numfactext").length() > 36
                        || request.getParameter("taxid").length() > 30) {
                    idmensaje = 3;
                    mensaje += "ERROR: El nmero de la factura extrangera y el TaxID deben constar de un mximo de 36 y 30 caracteres alfanumricos respectivamente";
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    return false;
                }
            }

            return true;
        } else {
            idmensaje = 3;
            mensaje = JUtil.Msj("GLB", "GLB", "GLB", "PARAM-NULO");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public void AgregarPartida(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        StringBuffer mensaje = new StringBuffer(254);

        HttpSession ses = request.getSession(true);
        JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");

        double debe = (request.getParameter("debe") != null && !request.getParameter("debe").equals(""))
                ? Float.parseFloat(request.getParameter("debe"))
                : 0F;
        double haber = (request.getParameter("haber") != null && !request.getParameter("haber").equals(""))
                ? Float.parseFloat(request.getParameter("haber"))
                : 0F;
        double tc = Float.parseFloat(request.getParameter("tc"));
        byte idmoneda = Byte.parseByte(request.getParameter("idmoneda"));

        idmensaje = pol.agregaPartida(request, JUtil.obtCuentas(request.getParameter("cuenta"), (byte) 19),
                pt(request.getParameter("concepto_part")), idmoneda, tc, debe, haber, mensaje);

        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

    }

    public void EditarPartida(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        StringBuffer mensaje = new StringBuffer(254);

        HttpSession ses = request.getSession(true);
        JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");

        double debe = (request.getParameter("debe") != null && !request.getParameter("debe").equals(""))
                ? Float.parseFloat(request.getParameter("debe"))
                : 0F;
        double haber = (request.getParameter("haber") != null && !request.getParameter("haber").equals(""))
                ? Float.parseFloat(request.getParameter("haber"))
                : 0F;
        double tc = Float.parseFloat(request.getParameter("tc"));
        byte idmoneda = Byte.parseByte(request.getParameter("idmoneda"));

        idmensaje = pol.editaPartida(Integer.parseInt(request.getParameter("idpartida")), request,
                JUtil.obtCuentas(request.getParameter("cuenta"), (byte) 19),
                pt(request.getParameter("concepto_part")), idmoneda, tc, debe, haber, mensaje);

        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

    }

    public void BorrarPartida(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        StringBuffer mensaje = new StringBuffer(254);

        HttpSession ses = request.getSession(true);
        JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");

        pol.borraPartida(Integer.parseInt(request.getParameter("idpartida")));

        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

    }

    public boolean VerificarParametros(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        short idmensaje = -1;
        String mensaje = "";
        // Verificacion
        if (request.getParameter("fecha") != null && request.getParameter("concepto") != null
                && !request.getParameter("fecha").equals("") && !request.getParameter("concepto").equals("")) {
            HttpSession ses = request.getSession(true);
            JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");

            if (pol.getPartidas().size() < 1 || (pol.getSumDebe() != pol.getSumHaber())) {
                idmensaje = 3;
                mensaje = JUtil.Msj("CEF", "CONT_POLIZAS", "DLG", "MSJ-PROCERR", 1); //"ERROR: La pliza no contiene partidas o las sumas del cargo y abono no coinciden <br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                return false;
            } else
                return true;
        } else {
            idmensaje = 3;
            mensaje = JUtil.Msj("GLB", "GLB", "GLB", "PARAM-NULO");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            return false;
        }
    }

    public void Cancelar(HttpServletRequest request, HttpServletResponse response, Date fecha)
            throws ServletException, IOException {
        JRetFuncBas rfb = new JRetFuncBas();

        String str = "SELECT * FROM sp_cont_polizas_cancelar('" + p(request.getParameter("ID")) + "','"
                + p(JUtil.obtFechaSQL(fecha)) + "' ) as ( err integer, res varchar, clave integer ) ";

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CANCELAR", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "||",
                rfb.getRes());
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
    }

    public void AgregarCambiar(HttpServletRequest request, HttpServletResponse response, short proc)
            throws ServletException, IOException {
        HttpSession ses = request.getSession(true);
        JContaPolizasSes pol = (JContaPolizasSes) ses.getAttribute("conta_polizas_dlg");

        String tbl;
        tbl = "CREATE LOCAL TEMPORARY TABLE _TMP_CONT_POLIZAS_DETALLE (\n";
        tbl += "Part smallint NOT NULL ,\n";
        tbl += "Cuenta char(19) NOT NULL ,\n";
        tbl += "Concepto varchar(80) NOT NULL ,\n";
        tbl += "Parcial numeric(19,4) NOT NULL ,\n";
        tbl += "Moneda smallint NOT NULL ,\n";
        tbl += "TC numeric(19,4) NOT NULL ,\n";
        tbl += "Debe numeric(19,4) NOT NULL ,\n";
        tbl += "Haber numeric(19,4) NOT NULL \n";
        tbl += "); \n";

        for (int i = 0; i < pol.getPartidas().size(); i++) {
            tbl += "INSERT INTO _TMP_CONT_POLIZAS_DETALLE\n";
            tbl += "VALUES( '" + i + "','" + p(JUtil.obtCuentas(pol.getPartida(i).getCuenta(), (byte) 19)) + "','"
                    + p(pol.getPartida(i).getConcepto()) + "','" + pol.getPartida(i).getParcial() + "','"
                    + pol.getPartida(i).getID_Moneda() + "','" + pol.getPartida(i).getTC() + "','"
                    + pol.getPartida(i).getDebe() + "','" + pol.getPartida(i).getHaber() + "');\n";
        }

        String str = "SELECT * FROM sp_cont_polizas_", proceso;
        if (proc == AGREGAR) {
            str += "agregar(";
            proceso = "CONT_POLIZAS_CREAR";
        } else {
            str += "cambiar('" + p(request.getParameter("ID")) + "',";
            proceso = "CONT_POLIZAS_CAMBIAR";
        }

        str += "'" + p(request.getParameter("idtipo")) + "','" + p(JUtil.obtFechaSQL(request.getParameter("fecha")))
                + "','" + p(request.getParameter("concepto")) + "','0','','" + pol.getSumDebe() + "','"
                + p(getSesion(request).getSesion("CONT_POLIZAS").getEspecial())
                + "' ) as ( err integer, res varchar, clave integer ) ";

        //doDebugSQL(request,response,tbl + "\n" + str);  
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, tbl, str, "DROP TABLE _TMP_CONT_POLIZAS_DETALLE;", rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), proceso, "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "||",
                rfb.getRes());
        irApag("/forsetiweb/contabilidad/conta_polizas_dlg.jsp", request, response);

    }

    public void GestionarOtrMetodoPago(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String idce = request.getParameter("proceso").equals("CAMBIAR_CE")
                ? "'" + p(request.getParameter("idce").substring(4)) + "'"
                : "null";
        String idpart = request.getParameter("proceso").equals("CAMBIAR_CE") ? "null"
                : "'" + p(request.getParameter("idpart")) + "'";

        double tc = 1.0000;

        if (!request.getParameter("moneda").equals("MXN"))
            tc = Double.parseDouble(request.getParameter("tipcamb"));

        String str = "select * from sp_cont_polizas_ce_otrmetodopago(" + idce + ",'" + p(request.getParameter("ID"))
                + "'," + idpart + ",'" + p(request.getParameter("metpagopol")) + "','"
                + p(JUtil.obtFechaSQL(request.getParameter("fecha"))) + "','" + p(request.getParameter("benef"))
                + "','" + p(JUtil.fco(JUtil.frfc(request.getParameter("rfc")))) + "','"
                + p(request.getParameter("monto")) + "','" + p(request.getParameter("moneda")) + "','" + tc
                + "') as ( err integer, res varchar, clave integer ) ";

        //doDebugSQL(request, response, str);
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CE", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "|OMP|",
                rfb.getRes());
        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_otrmetodopago.jsp", request, response);

    }

    public void GestionarCheque(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String idce = request.getParameter("proceso").equals("CAMBIAR_CE")
                ? "'" + p(request.getParameter("idce").substring(4)) + "'"
                : "null";
        String idpart = request.getParameter("proceso").equals("CAMBIAR_CE") ? "null"
                : "'" + p(request.getParameter("idpart")) + "'";

        double tc = 1.0000;

        if (!request.getParameter("moneda").equals("MXN"))
            tc = Double.parseDouble(request.getParameter("tipcamb"));

        String str = "select * from sp_cont_polizas_ce_cheque(" + idce + ",'" + p(request.getParameter("ID")) + "',"
                + idpart + ",'" + p(request.getParameter("num")) + "','" + p(request.getParameter("banco")) + "','"
                + p(request.getParameter("ctaori")) + "','" + p(JUtil.obtFechaSQL(request.getParameter("fecha")))
                + "','" + p(request.getParameter("monto")) + "','" + p(request.getParameter("benef")) + "','"
                + p(JUtil.fco(JUtil.frfc(request.getParameter("rfc")))) + "','"
                + p(request.getParameter("banemisext")) + "','" + p(request.getParameter("moneda")) + "','" + tc
                + "') as ( err integer, res varchar, clave integer ) ";

        //doDebugSQL(request, response, str);
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CE", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "|CHQ|",
                rfb.getRes());
        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_cheque.jsp", request, response);

    }

    public void GestionarTransferencia(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String idce = request.getParameter("proceso").equals("CAMBIAR_CE")
                ? "'" + p(request.getParameter("idce").substring(4)) + "'"
                : "null";
        String idpart = request.getParameter("proceso").equals("CAMBIAR_CE") ? "null"
                : "'" + p(request.getParameter("idpart")) + "'";

        double tc = 1.0000;

        if (!request.getParameter("moneda").equals("MXN"))
            tc = Double.parseDouble(request.getParameter("tipcamb"));

        String str = "select * from sp_cont_polizas_ce_transferencia(" + idce + ",'" + p(request.getParameter("ID"))
                + "'," + idpart + ",'" + p(request.getParameter("ctaori")) + "','"
                + p(request.getParameter("bancoori")) + "','" + p(request.getParameter("monto")) + "','"
                + p(request.getParameter("ctadest")) + "','" + p(request.getParameter("bancodest")) + "','"
                + p(JUtil.obtFechaSQL(request.getParameter("fecha"))) + "','" + p(request.getParameter("benef"))
                + "','" + p(JUtil.fco(JUtil.frfc(request.getParameter("rfc")))) + "','"
                + p(request.getParameter("bancooriext")) + "','" + p(request.getParameter("bancodestext")) + "','"
                + p(request.getParameter("moneda")) + "','" + tc
                + "' ) as ( err integer, res varchar, clave integer ) ";

        //doDebugSQL(request, response, str);
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CE", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "|TRN|",
                rfb.getRes());
        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_transferencia.jsp", request, response);

    }

    public void GestionarComprobante(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String idce = request.getParameter("proceso").equals("CAMBIAR_CE")
                ? "'" + p(request.getParameter("idce").substring(4)) + "'"
                : "null";
        String idpart = request.getParameter("proceso").equals("CAMBIAR_CE") ? "null"
                : "'" + p(request.getParameter("idpart")) + "'";
        String ID_Tipo = "", tipo3 = "";
        double tc = 1.0000;
        int cfdcbbnumfol = 0;

        if (!request.getParameter("moneda").equals("MXN"))
            tc = Double.parseDouble(request.getParameter("tipcamb"));

        if (!request.getParameter("uuidcfdi").equals("")
                && !request.getParameter("uuidcfdi").equals("                                    ")) {
            ID_Tipo = "CompNal";
            tipo3 = "XML";
        } else if (!request.getParameter("cfdcbbserie").equals("")
                && !request.getParameter("cfdcbbnumfol").equals("")) {
            ID_Tipo = "CompNalOtr";
            tipo3 = "CBB";
            cfdcbbnumfol = Integer.parseInt(request.getParameter("cfdcbbnumfol"));
        } else if (!request.getParameter("numfactext").equals("")) {
            ID_Tipo = "CompExt";
            tipo3 = "EXT";
        }

        String str = "select * from sp_cont_polizas_ce_comprobante(" + idce + ",'" + p(request.getParameter("ID"))
                + "'," + idpart + ",'" + p(request.getParameter("uuidcfdi")) + "','"
                + p(request.getParameter("monto")) + "','" + p(JUtil.fco(JUtil.frfc(request.getParameter("rfc"))))
                + "','" + ID_Tipo + "','" + p(request.getParameter("moneda")) + "','" + tc + "','"
                + p(request.getParameter("cfdcbbserie")) + "','" + cfdcbbnumfol + "','"
                + p(request.getParameter("numfactext")) + "','" + p(request.getParameter("taxid"))
                + "') as ( err integer, res varchar, clave integer ) ";

        //doDebugSQL(request, response, str);
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CE", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "|" + tipo3 + "|",
                rfb.getRes());
        irApag("/forsetiweb/contabilidad/conta_polizas_dlg_ce_comprobante.jsp", request, response);

    }

    public void EliminarCE(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String ce = p(request.getParameter("idce").substring(0, 3));
        String idce = p(request.getParameter("idce").substring(4));

        String str = "select * from sp_cont_polizas_ce_eliminar('" + p(request.getParameter("ID")) + "','" + ce
                + "','" + idce + "') as ( err integer, res varchar, clave varchar ) ";

        //doDebugSQL(request, response, str);
        JRetFuncBas rfb = new JRetFuncBas();

        doCallStoredProcedure(request, response, str, rfb);

        RDP("CEF", getSesion(request).getConBD(),
                (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")),
                getSesion(request).getID_Usuario(), "CONT_POLIZAS_CE", "POLZ|" + rfb.getClaveret() + "|"
                        + getSesion(request).getSesion("CONT_POLIZAS").getEspecial() + "|ELM|",
                rfb.getRes());
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
    }

    @SuppressWarnings("rawtypes")
    public void SubirArchivosCFD(HttpServletRequest request, HttpServletResponse response, JFacturasXML factxml,
            Vector archivos) throws ServletException, IOException {
        short idmensaje = -1;
        StringBuffer mensaje = new StringBuffer();

        HttpSession ses = request.getSession(true);
        JForsetiCFD cfd = (JForsetiCFD) ses.getAttribute("cont_cfd");
        if (cfd == null) {
            cfd = new JForsetiCFD();
            ses.setAttribute("cont_cfd", cfd);
        } else
            cfd.resetearCertComp();

        idmensaje = cfd.SubirArchivosCFDI(request, archivos, mensaje, "C");
        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

        if (idmensaje == JForsetiCFD.OKYDOKY) {
            idmensaje = cfd.VerificarFacturasSubidas(request, factxml, mensaje, "C");
            getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

            if (idmensaje == JForsetiCFD.OKYDOKY) {
                idmensaje = cfd.GuardarDocumentoCFDI(request,
                        Integer.parseInt(factxml.getParametros().getProperty("identidad").substring(5)),
                        factxml.getArchivoXML(), factxml.getArchivoPDF(), mensaje,
                        "C|" + factxml.getParametros().getProperty("identidad").substring(0, 4));
                getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());

            }

        }

        JFacturasXML rec = (JFacturasXML) ses.getAttribute("fact_xml");
        if (rec != null)
            rec = null;
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
        return;
    }
}