Java tutorial
/* 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.nomina; import java.io.IOException; import java.util.Date; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; import java.util.Properties; 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 forseti.JBajarArchivo; import forseti.JFacturasXML; import forseti.JForsetiApl; import forseti.JForsetiCFD; import forseti.JFsiSMTPClient; import forseti.JRetFuncBas; import forseti.JUtil; import forseti.sets.JAdmCompaniasSet; import forseti.sets.JBDSSet; import forseti.sets.JCFDCompSet; import forseti.sets.JCalculoNominaDetSet; import forseti.sets.JCalculoNominaEspSet; import forseti.sets.JMasempSet; import forseti.sets.JMasempSetCons; import forseti.sets.JMovimientosNomSet; import forseti.sets.JNominaEntidadesSetIds; import forseti.sets.JNominasModuloSet; import forseti.sets.JProcessSet; @SuppressWarnings("serial") public class JNomMovDirDlg 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 { 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 { 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ó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ó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ó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ó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á 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ómina porque se trata de una nó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á 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á 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á 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; } } public boolean VerificarParametros(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; String mensaje = ""; // Verificacion if (request.getParameter("numero_nomina") != null && request.getParameter("ano") != null && request.getParameter("desde") != null && request.getParameter("hasta") != null && !request.getParameter("numero_nomina").equals("") && !request.getParameter("ano").equals("") && !request.getParameter("desde").equals("") && !request.getParameter("hasta").equals("")) { if (request.getParameter("tipo_de_nomina").equals("-1")) { idmensaje = 3; mensaje += "ERROR: Debes proporcionar el tipo de nómina <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } Date desde = JUtil.estFecha(request.getParameter("desde")); Date hasta = JUtil.estFecha(request.getParameter("hasta")); int desdet = (int) (desde.getTime() / (3600 * 24 * 1000)); int hastat = (int) (hasta.getTime() / (3600 * 24 * 1000)); if (desde.getTime() > hasta.getTime()) { idmensaje = 3; mensaje += "ERROR: La fecha de inicio de nmina no puede ser mayor a la del final. Diferencia " + ((hasta.getTime() / (3600 * 24 * 1000)) - (desde.getTime() / (3600 * 24 * 1000))) + " dia(s) <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } else if ((hastat - desdet) > 366) { idmensaje = 3; mensaje += "ERROR: Existen demasiados dias en esta nomina. Cambia las fechas del periodo de la nomina <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } if (request.getParameter("tipo_de_nomina").equals("56") && (hastat - desdet) < 364) { idmensaje = 3; mensaje += "ERROR: La nmina de aguinaldo debe constar de 365 dias (desde la fecha 01/enero hasta 31/diciembre). Cambia las fechas del periodo de la nomina <br>"; 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 VerificarParametrosEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; String mensaje = ""; // Verificacion if(request.getParameter("id_empleado") != null && request.getParameter("faltas") != null && request.getParameter("he") != null && request.getParameter("hd") != null && request.getParameter("ht") != null && request.getParameter("dhe") != null && request.getParameter("ixa") != null && request.getParameter("ixe") != null && request.getParameter("ixm") != null && !request.getParameter("id_empleado").equals("") && !request.getParameter("faltas").equals("") && !request.getParameter("he").equals("") && !request.getParameter("hd").equals("") && !request.getParameter("ht").equals("") && !request.getParameter("dhe").equals("") && !request.getParameter("ixa").equals("") && !request.getParameter("ixe").equals("") && !request.getParameter("ixm").equals("") ) { JMasempSet setemp = new JMasempSet(request); setemp.m_Where = setemp.m_Where = "ID_Compania = '0' and ID_Sucursal = '" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "' and ID_Empleado = '" + p(request.getParameter("id_empleado")) + "'"; setemp.Open(); if(setemp.getNumRows() < 1) { idmensaje = 3; mensaje += "ERROR: El empleado no existe, o no pertenece a esta nómina<br>"; 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 VerificarParametrosPartida(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; String mensaje = ""; // Verificacion if (request.getParameter("idmovimiento") != null && !request.getParameter("idmovimiento").equals("")) { if ((request.getParameter("gravado") != null && !request.getParameter("gravado").equals("")) || (request.getParameter("exento") != null && !request.getParameter("exento").equals("")) || (request.getParameter("deduccion") != null && !request.getParameter("deduccion").equals(""))) { JMovimientosNomSet set = new JMovimientosNomSet(request); set.m_Where = "ID_Movimiento = '" + p(request.getParameter("idmovimiento")) + "'"; set.Open(); if (set.getNumRows() < 1) { idmensaje = 3; mensaje = "ERROR: El movimiento de nmina no existe en el catlogo<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } if (set.getAbsRow(0).getDeduccion() && (Float.parseFloat(request.getParameter("gravado")) != 0 || Float.parseFloat(request.getParameter("exento")) != 0)) { idmensaje = 1; mensaje = "PRECAUCION: Una deduccin no debe tener importes gravados o exentos"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } if (!set.getAbsRow(0).getDeduccion() && Float.parseFloat(request.getParameter("deduccion")) != 0) { idmensaje = 1; mensaje = "PRECAUCION: Una percepcin no debe tener importes de deduccin"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } return true; } else // error { idmensaje = 1; mensaje = "PRECAUCION: Se debe especificar la cantidad gravada, exenta, o deduccin <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); return false; } } 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); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); float gravado = (request.getParameter("gravado") != null && !request.getParameter("gravado").equals("")) ? Float.parseFloat(request.getParameter("gravado")) : 0F; float exento = (request.getParameter("exento") != null && !request.getParameter("exento").equals("")) ? Float.parseFloat(request.getParameter("exento")) : 0F; float deduccion = (request.getParameter("deduccion") != null && !request.getParameter("deduccion").equals("")) ? Float.parseFloat(request.getParameter("deduccion")) : 0F; idmensaje = rec.agregaPartida(request, Integer.parseInt(request.getParameter("idmovimiento")), gravado, exento, deduccion, 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); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); float gravado = (request.getParameter("gravado") != null && !request.getParameter("gravado").equals("")) ? Float.parseFloat(request.getParameter("gravado")) : 0F; float exento = (request.getParameter("exento") != null && !request.getParameter("exento").equals("")) ? Float.parseFloat(request.getParameter("exento")) : 0F; float deduccion = (request.getParameter("deduccion") != null && !request.getParameter("deduccion").equals("")) ? Float.parseFloat(request.getParameter("deduccion")) : 0F; idmensaje = rec.editaPartida(Integer.parseInt(request.getParameter("idpartida")), request, Integer.parseInt(request.getParameter("idmovimiento")), gravado, exento, deduccion, 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); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); rec.borraPartida(Integer.parseInt(request.getParameter("idpartida"))); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); } public void EliminarEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String str = "select * from sp_nom_prod_nomina_eliminar_esp( '" + p(request.getParameter("id")) + "','" + p(request.getParameter("idempleado")) + "') as (err integer, res varchar, clave integer)"; 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(), "NOM_NOMINA_CAMBIAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); } public void AgregarCambiarEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession ses = request.getSession(true); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); String tbl; tbl = "CREATE LOCAL TEMPORARY TABLE _TMP_NOM_CALCULO_NOMINA_DET (\n"; tbl += "ID_Movimiento smallint NOT NULL ,\n"; tbl += "Gravado numeric(10,2) NOT NULL ,\n"; tbl += "Exento numeric(10,2) NOT NULL ,\n"; tbl += "Deduccion numeric(10,2) NOT NULL \n"; tbl += ");\n"; for (int i = 0; i < rec.getPartidas().size(); i++) { tbl += "INSERT INTO _TMP_NOM_CALCULO_NOMINA_DET\n"; tbl += "VALUES( '" + rec.getPartida(i).getID_Movimiento() + "','" + rec.getPartida(i).getGravado() + "','" + rec.getPartida(i).getExento() + "','" + rec.getPartida(i).getDeduccion() + "' );\n"; } String str = "select * from sp_nom_prod_nomina_actualizar_esp( '" + p(request.getParameter("id")) + "','" + p(rec.getID_Empleado()) + "','" + rec.getFaltas() + "','" + rec.getRecibo() + "','" + rec.getHE() + "','" + rec.getHD() + "','" + rec.getHT() + "','" + rec.getDiasHorasExtras() + "','" + rec.getIXA() + "','" + rec.getIXE() + "','" + rec.getIXM() + "','" + p(rec.getUUID()) + "') as (err integer, res varchar, clave integer)"; JRetFuncBas rfb = new JRetFuncBas(); doCallStoredProcedure(request, response, tbl, str, "DROP TABLE _TMP_NOM_CALCULO_NOMINA_DET", rfb); RDP("CEF", getSesion(request).getConBD(), (rfb.getIdmensaje() == 0 ? "OK" : (rfb.getIdmensaje() == 4 ? "AL" : "ER")), getSesion(request).getID_Usuario(), "NOM_NOMINA_CAMBIAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response); } public void Enlazar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String str = "select * from sp_cfd_enlazarnomina('" + p(request.getParameter("id")) + "','" + p(request.getParameter("idempleado")) + "','" + q(request.getParameter("uuid")) + "') as ( err integer, res varchar, clave integer );"; //doDebugSQL(request, response, str); JRetFuncBas rfb = new JRetFuncBas(); doCallStoredProcedure(request, response, str, rfb); short idmensaje = (short) rfb.getIdmensaje(); String mensaje = rfb.getRes(); RDP("CEF", getSesion(request).getConBD(), (idmensaje == 0 ? "OK" : (idmensaje == 4 ? "AL" : "ER")), getSesion(request).getID_Usuario(), "NOM_NOMINA_CAMBIAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); } public short AgregarRecursos(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; StringBuffer mensaje = new StringBuffer(254); HttpSession ses = request.getSession(true); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); idmensaje = rec.agregaRecursos(request, mensaje); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); return idmensaje; } public short AgregarCabeceroRecibo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; StringBuffer mensaje = new StringBuffer(254); HttpSession ses = request.getSession(true); JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg"); idmensaje = rec.agregaCabecero(request, mensaje); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); return idmensaje; } public void AgregarCambiarCabecero(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { JAdmCompaniasSet setcom = new JAdmCompaniasSet(request); setcom.m_Where = "ID_Compania = '0' and ID_Sucursal = '" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "'"; setcom.Open(); int tn = Integer.parseInt(request.getParameter("tipo_de_nomina")); byte tipo; if (setcom.getAbsRow(0).getTipo() == 1) // es estricta { switch (tn) { case 12: tipo = 1; break; case 34: tipo = 3; break; case 56: tipo = 5; break; case 78: tipo = 7; break; default: tipo = 1; break; } } else { switch (tn) { case 12: tipo = 2; break; case 34: tipo = 4; break; case 56: tipo = 6; break; case 78: tipo = 8; break; default: tipo = 2; break; } } int num_dias; Date desde = JUtil.estFecha(request.getParameter("desde")); Date hasta = JUtil.estFecha(request.getParameter("hasta")); num_dias = (int) JUtil.getFechaDiff(hasta, desde, "dias") + 1; String str; if (request.getParameter("proceso").equals("AGREGAR_NOMINA")) str = "select * from sp_nom_prod_nomina_agregar( "; else str = "select * from sp_nom_prod_nomina_cambiar( "; str += "'0','" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "','" + p(request.getParameter("ano")) + "','" + p(request.getParameter("numero_nomina")) + "','" + tipo + "','" + p(JUtil.obtFechaSQL(request.getParameter("desde"))) + "','" + p(JUtil.obtFechaSQL(request.getParameter("hasta"))) + "','" + num_dias + "','0','" + JUtil.obtMes(request.getParameter("hasta")) + "') as (err integer, res varchar, clave integer)"; 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(), "NOM_NOMINA_" + (request.getParameter("proceso").equals("AGREGAR_NOMINA") ? "AGREGAR" : "CAMBIAR"), "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response); } public void Eliminar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String str = "select * from sp_nom_prod_nomina_eliminar('" + p(request.getParameter("id")) + "') as (err integer, res varchar, clave integer)"; 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(), "NOM_NOMINA_ELIMINAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); } public void Proteger(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String str = "select * from sp_nom_calculo_nomina_proteger('" + p(request.getParameter("id")) + "') as (err integer, res varchar, clave integer)"; 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(), "NOM_NOMINA_CAMBIAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); } public void Generar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String str = "select * from sp_nom_calculo_nomina_generar('" + p(request.getParameter("id")) + "') 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(), "NOM_NOMINA_AGREGAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); } public void Calcular(HttpServletRequest request, HttpServletResponse response, int tipo) throws ServletException, IOException { String str, irapag; if (tipo == 12) // Normal { str = "select * from sp_nom_calculo_nomina('" + p(request.getParameter("id")) + "','" + (request.getParameter("inconsistencias") == null ? "0" : "1") + "','" + p(request.getParameter("mesincon")) + "','" + p(request.getParameter("anoincon")) + "','" + (request.getParameter("hepf") == null ? "0" : "1") + "','" + (request.getParameter("vales") == null ? "0" : "1") + "') as (err integer, res varchar, clave integer)"; irapag = "/forsetiweb/nomina/nom_nomina_dlg_calcular.jsp"; } else // 56 Agunaldos { str = "select * from sp_nom_calculo_nomina('" + p(request.getParameter("id")) + "','0','1','2000','0','0') as (err integer, res varchar, clave integer)"; irapag = "/forsetiweb/caja_mensajes.jsp"; } 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(), "NOM_NOMINA_AGREGAR", "NNOM|" + rfb.getClaveret() + "|" + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "||", rfb.getRes()); irApag(irapag, request, response); } @SuppressWarnings("rawtypes") public void SubirArchivosCFD(HttpServletRequest request, HttpServletResponse response, JFacturasXML nomrecxml, Vector archivos) throws ServletException, IOException { short idmensaje = -1; StringBuffer mensaje = new StringBuffer(); HttpSession ses = request.getSession(true); JForsetiCFD cfd = (JForsetiCFD) ses.getAttribute("nom_cfd"); if (cfd == null) { cfd = new JForsetiCFD(); ses.setAttribute("nom_cfd", cfd); } else cfd.resetearCertComp(); idmensaje = cfd.SubirArchivosCFDI(request, archivos, mensaje, "N"); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); if (idmensaje == JForsetiCFD.OKYDOKY) { idmensaje = cfd.VerificarFacturasSubidas(request, nomrecxml, mensaje, "N"); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); if (idmensaje == JForsetiCFD.OKYDOKY) { idmensaje = cfd.GuardarDocumentoCFDI(request, Integer.parseInt(getSesion(request).getSesion("NOM_NOMINA").getEspecial()), nomrecxml.getArchivoXML(), nomrecxml.getArchivoPDF(), mensaje, "N"); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); } } JFacturasXML rec = (JFacturasXML) ses.getAttribute("nom_rec_xml"); if (rec != null) rec = null; irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } }