List of usage examples for java.util Vector addElement
public synchronized void addElement(E obj)
From source file:com.duroty.application.admin.manager.AdminManager.java
/** * DOCUMENT ME!//from ww w. j av a 2 s. com * * @param hsession DOCUMENT ME! * @param repositoryName DOCUMENT ME! * @param token DOCUMENT ME! * * @return DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public SearchUsersObj suggestUsers(Session hsession, String token, int page, int byPage) throws Exception { SearchUsersObj searchUsersObj = new SearchUsersObj(); Vector users = new Vector(); try { Criteria crit = hsession.createCriteria(Users.class); crit.add(Restrictions.or(Restrictions.ilike("useName", token, MatchMode.ANYWHERE), Restrictions.ilike("useEmail", token, MatchMode.ANYWHERE))); searchUsersObj.setHits(crit.list().size()); crit = hsession.createCriteria(Users.class); crit.add(Restrictions.or(Restrictions.ilike("useName", token, MatchMode.ANYWHERE), Restrictions.ilike("useEmail", token, MatchMode.ANYWHERE))); crit.setFirstResult(page * byPage); crit.setMaxResults(byPage); crit.addOrder(Order.asc("useName")); ScrollableResults scroll = crit.scroll(); while (scroll.next()) { Users user = (Users) scroll.get(0); UserObj obj = new UserObj(); obj.setActive(user.isUseActive()); obj.setEmail(user.getUseEmail()); Iterator it = user.getMailPreferenceses().iterator(); MailPreferences mailPreferences = (MailPreferences) it.next(); obj.setHtmlMessages(mailPreferences.isMaprHtmlMessage()); obj.setIdint(user.getUseIdint()); obj.setLanguage(user.getUseLanguage()); obj.setMessagesByPage(mailPreferences.getMaprMessagesByPage()); obj.setName(user.getUseName()); obj.setPassword(user.getUsePassword()); obj.setQuotaSize(mailPreferences.getMaprQuotaSize()); obj.setRegisterDate(user.getUseRegisterDate()); Integer[] roles = new Integer[user.getUserRoles().size()]; if (roles.length > 0) { it = user.getUserRoles().iterator(); int i = 0; while (it.hasNext()) { UserRole userRole = (UserRole) it.next(); roles[i] = new Integer(userRole.getId().getRoles().getRolIdint()); i++; } } obj.setRoles(roles); obj.setSignature(mailPreferences.getMaprSignature()); if (mailPreferences.getMaprSpamTolerance() == 100) { obj.setSpamTolerance(true); } else { obj.setSpamTolerance(false); } obj.setUsername(user.getUseUsername()); obj.setVacationBody(mailPreferences.getMaprVacationBody()); obj.setVacationSubject(mailPreferences.getMaprVacationSubject()); obj.setVactionActive(mailPreferences.isMaprVacationActive()); int usedQuotaSize = getUsedQuotaSize(hsession, user); usedQuotaSize /= 1024; if (usedQuotaSize > 1024) { usedQuotaSize /= 1024; obj.setUsedQuota(usedQuotaSize + " MB"); } else { obj.setUsedQuota(((usedQuotaSize > 0) ? (usedQuotaSize + "") : "<1") + " kB"); } users.addElement(obj); } searchUsersObj.setUsers(users); return searchUsersObj; } finally { GeneralOperations.closeHibernateSession(hsession); } }
From source file:hu.sztaki.lpds.pgportal.portlets.workflow.RealWorkflowPortlet.java
/** * Rescue a given workflow instance// www .j a v a 2s . co m */ public void doRescue(ActionRequest request, ActionResponse response) throws PortletException { if (WorkflowInfo(request, response)) { doDetails(request, response); // Vector errorJobPidList = new Vector(); String portalID = PropertyLoader.getInstance().getProperty("service.url"); String userID = request.getRemoteUser(); String workflowID = request.getParameter("workflow"); String runtimeID = request.getParameter("rtid"); // String wfStatus = "" + PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID) .getRuntime(runtimeID).getStatus(); if (("7".equals(wfStatus)) || ("28".equals(wfStatus)) || ("23".equals(wfStatus))) { // // 23 = running/error if ("23".equals(wfStatus)) { // entering of running workflow status PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID).getRuntime(runtimeID) .setStatus("5", 0); } else { // entering of resuming workflow status PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID).getRuntime(runtimeID) .setStatus("29", 0); } // ConcurrentHashMap tmp = PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID) .getRuntime(runtimeID).getJobsStatus(); Enumeration enm0 = tmp.keys(); String ts; while (enm0.hasMoreElements()) { Object key0 = enm0.nextElement(); Enumeration enm1 = ((ConcurrentHashMap) tmp.get(key0)).keys(); while (enm1.hasMoreElements()) { Object key1 = enm1.nextElement(); ts = "" + ((JobStatusData) ((ConcurrentHashMap) tmp.get(key0)).get(key1)).getStatus(); if (ts.equals("25") || ts.equals("22") || ts.equals("21") || ts.equals("7") || ts.equals("15") || ts.equals("13") || ts.equals("12")) { // entering init status // PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID).getRuntime(runtimeID).addJobbStatus((String)key0,(String)key1,"1","",-1); // clearing job from registry PortalCacheService.getInstance().getUser(userID).getWorkflow(workflowID) .getRuntime(runtimeID).removeJobStatus((String) key0, (String) key1); // collecting jobID/jobPID for storage cleanup ComDataBean comDataBean = new ComDataBean(); comDataBean.setJobID((String) key0); comDataBean.setJobPID((String) key1); errorJobPidList.addElement(comDataBean); } } } if (UserQuotaUtils.getInstance().userQuotaIsFull(request.getRemoteUser())) { request.setAttribute("msg", "portal.RealWorkflowPortlet.quotaisoverfull"); } else { new WorkflowRescueThread(portalID, userID, workflowID, runtimeID, wfStatus, errorJobPidList); } } // request.setAttribute("jsp",mainjsp; request.setAttribute("jsp", "/jsp/workflow/wrkinst.jsp"); } }
From source file:com.duroty.application.mail.manager.PreferencesManager.java
/** * DOCUMENT ME!// w w w .j a v a 2 s .c o m * * @param hsession DOCUMENT ME! * @param token DOCUMENT ME! * * @return DOCUMENT ME! * * @throws ManagerException DOCUMENT ME! */ public SearchGroupsObj searchGroups(Session hsession, String repositoryName, String token, int page, int byPage, int order, String extra) throws Exception { SearchGroupsObj sobj = new SearchGroupsObj(); Vector groups = new Vector(); try { Criteria crit = hsession.createCriteria(ContactList.class); crit.add(Restrictions.or(Restrictions.ilike("coliName", token, MatchMode.ANYWHERE), Restrictions.ilike("coliName", token, MatchMode.ANYWHERE))); crit.add(Restrictions.eq("users", getUser(hsession, repositoryName))); int hits = crit.list().size(); sobj.setHits(hits); crit = hsession.createCriteria(ContactList.class); crit.add(Restrictions.or(Restrictions.ilike("coliName", token, MatchMode.ANYWHERE), Restrictions.ilike("coliName", token, MatchMode.ANYWHERE))); crit.add(Restrictions.eq("users", getUser(hsession, repositoryName))); crit.addOrder(Order.asc("coliName")); if (byPage > 0) { crit.setFirstResult(page * byPage); crit.setMaxResults(byPage); } ScrollableResults scroll = crit.scroll(); while (scroll.next()) { ContactList contactList = (ContactList) scroll.get(0); ContactListObj obj = new ContactListObj(); obj.setIdint(contactList.getColiIdint()); obj.setName(contactList.getColiName()); Set set = contactList.getConColis(); StringBuffer emails = new StringBuffer(); if (set != null) { Iterator it = set.iterator(); while (it.hasNext()) { ConColi conColi = (ConColi) it.next(); Contact contact = conColi.getId().getContact(); if (emails.length() > 0) { emails.append(", "); } String name = ""; if (!StringUtils.isBlank(contact.getConName())) { name = contact.getConName() + " "; } emails.append(name + "<" + contact.getConEmail() + ">"); } if (emails.length() > 0) { obj.setEmails(emails.toString() + ", "); } } groups.addElement(obj); } sobj.setGroups(groups); return sobj; } finally { GeneralOperations.closeHibernateSession(hsession); } }
From source file:com.duroty.application.mail.manager.PreferencesManager.java
/** * DOCUMENT ME!//www . j a v a 2 s . c o m * * @param hsession DOCUMENT ME! * @param token DOCUMENT ME! * * @return DOCUMENT ME! * * @throws ManagerException DOCUMENT ME! */ public SearchContactsObj searchContacts(Session hsession, String repositoryName, String token, int page, int byPage, int order, String extra) throws Exception { SearchContactsObj sobj = new SearchContactsObj(); Vector contacts = new Vector(); try { Criteria crit = hsession.createCriteria(Contact.class); crit.add(Restrictions.or(Restrictions.ilike("conName", token, MatchMode.ANYWHERE), Restrictions.ilike("conEmail", token, MatchMode.ANYWHERE))); crit.add(Restrictions.eq("users", getUser(hsession, repositoryName))); crit.add(Restrictions.isNotNull("conSentDate")); crit.add(Restrictions.isNotNull("conReceivedDate")); int hits = crit.list().size(); sobj.setHits(hits); crit = hsession.createCriteria(Contact.class); crit.add(Restrictions.or(Restrictions.ilike("conName", token, MatchMode.ANYWHERE), Restrictions.ilike("conEmail", token, MatchMode.ANYWHERE))); crit.add(Restrictions.eq("users", getUser(hsession, repositoryName))); crit.add(Restrictions.isNotNull("conSentDate")); crit.add(Restrictions.isNotNull("conReceivedDate")); switch (order) { case ORDER_BY_EMAIL: crit.addOrder(Order.asc("conEmail")); break; case ORDER_BY_FREQUENCY_SENT: crit.addOrder(Order.asc("conSentDate")); break; case ORDER_BY_FREQUENCY_RECEIVED: crit.addOrder(Order.asc("conReceivedDate")); break; default: crit.addOrder(Order.asc("conSentDate")); break; } if (byPage > 0) { crit.setFirstResult(page * byPage); crit.setMaxResults(byPage); } ScrollableResults scroll = crit.scroll(); while (scroll.next()) { Contact contact = (Contact) scroll.get(0); ContactObj obj = new ContactObj(); obj.setIdint(contact.getConIdint()); obj.setName(contact.getConName()); obj.setEmail(contact.getConEmail()); if (!StringUtils.isBlank(contact.getConDescription())) { obj.setDescription(contact.getConDescription().replaceAll("\n", "\\\\n") .replaceAll("\r", "\\\\r").replaceAll("'", "''")); } contacts.addElement(obj); } sobj.setContacts(contacts); return sobj; } finally { GeneralOperations.closeHibernateSession(hsession); } }
From source file:com.netscape.cms.logging.LogFile.java
/** * Read all entries whose logLevel>=lowLevel && log source = source * to at most maxLine entries(from end)//from w w w. j av a 2 s. com * If the parameter is -1, it's ignored and return all entries * * @param maxLine The maximum lines to be returned * @param lowLevel The lowest log level to be returned * @param source The particular log source to be returned * @param fName The log file name to be read. If it's null, read the current * log file */ public Vector<LogEntry> readEntry(int maxLine, int lowLevel, LogSource source, String fName) { Vector<LogEntry> mEntries = new Vector<LogEntry>(); String fileName = mFileName; BufferedReader fBuffer; int lineNo = 0; // lineNo of the current entry in the log file int line = 0; // line of readed valid entries String firstLine = null; // line buffer String nextLine = null; String entry = null; LogEntry logEntry = null; /* this variable is added to accormodate misplaced multiline entries write out buffered log entry when next entry is parsed successfully this implementation is assuming parsing is more time consuming than condition check */ LogEntry preLogEntry = null; if (fName != null) { fileName = fName; } try { //XXX think about this fBuffer = new BufferedReader(new FileReader(fileName)); do { try { nextLine = fBuffer.readLine(); if (nextLine != null) { if ((nextLine.length() == 0) || (nextLine.charAt(0) == ' ')) { // It's a continuous line entry = null; if (nextLine.length() > 1) firstLine = firstLine + "\n" + nextLine.substring(1); else firstLine = firstLine + "\n"; } else { // It's a new entry entry = firstLine; firstLine = nextLine; } // parse the previous entry, the current one is buffered if (entry != null) { try { logEntry = new LogEntry(entry); // if parse succeed, write out previous entry if (preLogEntry != null) { if ((Integer.parseInt(preLogEntry.getLevel()) >= lowLevel) && ((Integer.parseInt(preLogEntry.getSource()) == source.value()) || (source == ILogger.S_ALL))) { mEntries.addElement(preLogEntry); if (maxLine == -1) { line++; } else if (line < maxLine) { line++; } else { mEntries.removeElementAt(0); } } } preLogEntry = logEntry; } catch (ParseException e) { if (preLogEntry != null) { preLogEntry.appendDetail(entry); } else { firstLine = firstLine + "\n" + nextLine; } entry = null; logEntry = null; } } } lineNo++; } catch (IOException e) { CMS.getLogger().log(ILogger.EV_SYSTEM, ILogger.S_OTHER, ILogger.LL_FAILURE, CMS.getLogMessage("LOGGING_READ_ERROR", fileName, Integer.toString(lineNo))); } } while (nextLine != null); // need to process the last 2 entries of the file if (firstLine != null) { if (logEntry != null) { preLogEntry = logEntry; } entry = firstLine; try { logEntry = new LogEntry(entry); /* System.out.println( Integer.toString(Integer.parseInt(logEntry.getLevel())) +","+Integer.toString(lowLevel)+","+ Integer.toString(Integer.parseInt(logEntry.getSource())) +","+Integer.toString(source) ); */ if (preLogEntry != null) { if ((Integer.parseInt(preLogEntry.getLevel()) >= lowLevel) && ((Integer.parseInt(preLogEntry.getSource()) == source.value()) || (source == ILogger.S_ALL))) { mEntries.addElement(preLogEntry); if (maxLine == -1) { line++; } else if (line < maxLine) { line++; } else { mEntries.removeElementAt(0); } } } preLogEntry = logEntry; } catch (ParseException e) { preLogEntry.appendDetail(entry); } if (preLogEntry != null) { if ((Integer.parseInt(preLogEntry.getLevel()) >= lowLevel) && ((Integer.parseInt(preLogEntry.getSource()) == source.value()) || (source == ILogger.S_ALL))) { // parse the entry, pass to UI mEntries.addElement(preLogEntry); if (maxLine == -1) { line++; } else if (line < maxLine) { line++; } else { mEntries.removeElementAt(0); } } } } // end: last entry try { fBuffer.close(); } catch (IOException e) { CMS.getLogger().log(ILogger.EV_SYSTEM, ILogger.S_OTHER, ILogger.LL_FAILURE, "logging:" + fileName + " failed to close for reading"); } } catch (FileNotFoundException e) { CMS.getLogger().log(ILogger.EV_SYSTEM, ILogger.S_OTHER, ILogger.LL_FAILURE, CMS.getLogMessage("LOGGING_FILE_NOT_FOUND", fileName)); } return mEntries; }
From source file:forseti.nomina.JNomMovDirDlg.java
@SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doPost(request, response); String nom_nomina_dlg = ""; request.setAttribute("nom_nomina_dlg", nom_nomina_dlg); String mensaje = ""; short idmensaje = -1; String usuario = getSesion(request).getID_Usuario(); if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) { if (!getSesion(request).getRegistrado()) { irApag("/forsetiweb/errorAtributos.jsp", request, response); return; } else {//from ww w . java 2 s .c om 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; } }
From source file:com.netscape.ca.CertificateAuthority.java
/** * Process OCSPRequest./*from w w w .j ava 2 s. co m*/ */ public OCSPResponse validate(OCSPRequest request) throws EBaseException { if (!mEnableOCSP) { logger.debug("CertificateAuthority: OCSP service disabled"); throw new EBaseException("OCSP service disabled"); } TBSRequest tbsReq = request.getTBSRequest(); if (tbsReq.getRequestCount() == 0) { logger.error("CertificateAuthority: No request found"); log(ILogger.LL_FAILURE, CMS.getLogMessage("OCSP_REQUEST_FAILURE", "No Request Found")); throw new EBaseException("OCSP request is empty"); } /* An OCSP request can contain CertIDs for certificates * issued by different CAs, but each SingleResponse is valid * only if the combined response was signed by its issuer or * an authorised OCSP signing delegate. * * Even though it is silly to send an OCSP request * asking about certs issued by different CAs, we must * employ some heuristic to deal with this case. Our * heuristic is: * * 0. If caMap contains no CAs, then lightweight CAs are not * enabled. There is only one CA, and 'this' is it. Go * straight to validation. * * 1. Find the issuer of the cert identified by the first * CertID in the request. * * 2. If this CA is *not* the issuer, look up the issuer * by its DN in the caMap. If not found, fail. If * found, dispatch to its 'validate' method. Otherwise * continue. * * 3. If this CA is NOT the issuing CA, we locate the * issuing CA and dispatch to its 'validate' method. * Otherwise, we move forward to generate and sign the * aggregate OCSP response. */ ICertificateAuthority ocspCA = this; if (caMap.size() > 0 && tbsReq.getRequestCount() > 0) { Request req = tbsReq.getRequestAt(0); BigInteger serialNo = req.getCertID().getSerialNumber(); X509CertImpl cert = mCertRepot.getX509Certificate(serialNo); X500Name certIssuerDN = (X500Name) cert.getIssuerDN(); ocspCA = getCA(certIssuerDN); } if (ocspCA == null) { logger.error("CertificateAuthority: Could not locate issuing CA"); throw new CANotFoundException("Could not locate issuing CA"); } if (ocspCA != this) return ((IOCSPService) ocspCA).validate(request); logger.debug("CertificateAuthority: validating OCSP request"); mNumOCSPRequest++; IStatsSubsystem statsSub = (IStatsSubsystem) CMS.getSubsystem("stats"); long startTime = CMS.getCurrentDate().getTime(); try { //log(ILogger.LL_INFO, "start OCSP request"); // (3) look into database to check the // certificate's status Vector<SingleResponse> singleResponses = new Vector<SingleResponse>(); if (statsSub != null) { statsSub.startTiming("lookup"); } long lookupStartTime = CMS.getCurrentDate().getTime(); for (int i = 0; i < tbsReq.getRequestCount(); i++) { Request req = tbsReq.getRequestAt(i); SingleResponse sr = processRequest(req); singleResponses.addElement(sr); } long lookupEndTime = CMS.getCurrentDate().getTime(); mLookupTime += lookupEndTime - lookupStartTime; if (statsSub != null) { statsSub.endTiming("lookup"); } if (statsSub != null) { statsSub.startTiming("build_response"); } SingleResponse res[] = new SingleResponse[singleResponses.size()]; singleResponses.copyInto(res); ResponderID rid = null; if (mByName) { if (mResponderIDByName == null) { mResponderIDByName = getResponderIDByName(); } rid = mResponderIDByName; } else { if (mResponderIDByHash == null) { mResponderIDByHash = getResponderIDByHash(); } rid = mResponderIDByHash; } Extension nonce[] = null; for (int j = 0; j < tbsReq.getExtensionsCount(); j++) { Extension thisExt = tbsReq.getRequestExtensionAt(j); if (thisExt.getExtnId().equals(OCSP_NONCE)) { nonce = new Extension[1]; nonce[0] = thisExt; } } ResponseData rd = new ResponseData(rid, new GeneralizedTime(CMS.getCurrentDate()), res, nonce); if (statsSub != null) { statsSub.endTiming("build_response"); } if (statsSub != null) { statsSub.startTiming("signing"); } long signStartTime = CMS.getCurrentDate().getTime(); BasicOCSPResponse basicRes = sign(rd); long signEndTime = CMS.getCurrentDate().getTime(); mSignTime += signEndTime - signStartTime; if (statsSub != null) { statsSub.endTiming("signing"); } OCSPResponse response = new OCSPResponse(OCSPResponseStatus.SUCCESSFUL, new ResponseBytes(ResponseBytes.OCSP_BASIC, new OCTET_STRING(ASN1Util.encode(basicRes)))); //log(ILogger.LL_INFO, "done OCSP request"); long endTime = CMS.getCurrentDate().getTime(); mTotalTime += endTime - startTime; return response; } catch (EBaseException e) { log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_CA_CA_OCSP_REQUEST", e.toString())); throw e; } }
From source file:com.concursive.connect.web.webdav.servlets.WebdavServlet.java
/** * LOCK Method.//from w w w. jav a 2 s. co m * * @param req Description of the Parameter * @param resp Description of the Parameter * @throws javax.servlet.ServletException Description of the Exception * @throws java.io.IOException Description of the Exception */ protected void doLock(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if (readOnly) { resp.sendError(WebdavStatus.SC_FORBIDDEN); return; } if (isLocked(req)) { resp.sendError(WebdavStatus.SC_LOCKED); return; } WebdavServlet.LockInfo lock = new WebdavServlet.LockInfo(); // Parsing lock request // Parsing depth header String depthStr = req.getHeader("Depth"); if (depthStr == null) { lock.depth = INFINITY; } else { if (depthStr.equals("0")) { lock.depth = 0; } else { lock.depth = INFINITY; } } // Parsing timeout header int lockDuration = DEFAULT_TIMEOUT; String lockDurationStr = req.getHeader("Timeout"); if (lockDurationStr == null) { lockDuration = DEFAULT_TIMEOUT; } else { int commaPos = lockDurationStr.indexOf(","); // If multiple timeouts, just use the first if (commaPos != -1) { lockDurationStr = lockDurationStr.substring(0, commaPos); } if (lockDurationStr.startsWith("Second-")) { lockDuration = (new Integer(lockDurationStr.substring(7))).intValue(); } else { if (lockDurationStr.equalsIgnoreCase("infinity")) { lockDuration = MAX_TIMEOUT; } else { try { lockDuration = (new Integer(lockDurationStr)).intValue(); } catch (NumberFormatException e) { lockDuration = MAX_TIMEOUT; } } } if (lockDuration == 0) { lockDuration = DEFAULT_TIMEOUT; } if (lockDuration > MAX_TIMEOUT) { lockDuration = MAX_TIMEOUT; } } lock.expiresAt = System.currentTimeMillis() + (lockDuration * 1000); int lockRequestType = LOCK_CREATION; Node lockInfoNode = null; DocumentBuilder documentBuilder = getDocumentBuilder(); try { Document document = documentBuilder.parse(new InputSource(req.getInputStream())); // Get the root element of the document Element rootElement = document.getDocumentElement(); lockInfoNode = rootElement; } catch (Exception e) { lockRequestType = LOCK_REFRESH; } if (lockInfoNode != null) { // Reading lock information NodeList childList = lockInfoNode.getChildNodes(); StringWriter strWriter = null; DOMWriter domWriter = null; Node lockScopeNode = null; Node lockTypeNode = null; Node lockOwnerNode = null; for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String nodeName = currentNode.getNodeName(); if (nodeName.endsWith("lockscope")) { lockScopeNode = currentNode; } if (nodeName.endsWith("locktype")) { lockTypeNode = currentNode; } if (nodeName.endsWith("owner")) { lockOwnerNode = currentNode; } break; } } if (lockScopeNode != null) { childList = lockScopeNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String tempScope = currentNode.getNodeName(); if (tempScope.indexOf(':') != -1) { lock.scope = tempScope.substring(tempScope.indexOf(':') + 1); } else { lock.scope = tempScope; } break; } } if (lock.scope == null) { // Bad request resp.setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { // Bad request resp.setStatus(WebdavStatus.SC_BAD_REQUEST); } if (lockTypeNode != null) { childList = lockTypeNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String tempType = currentNode.getNodeName(); if (tempType.indexOf(':') != -1) { lock.type = tempType.substring(tempType.indexOf(':') + 1); } else { lock.type = tempType; } break; } } if (lock.type == null) { // Bad request resp.setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { // Bad request resp.setStatus(WebdavStatus.SC_BAD_REQUEST); } if (lockOwnerNode != null) { childList = lockOwnerNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: lock.owner += currentNode.getNodeValue(); break; case Node.ELEMENT_NODE: strWriter = new StringWriter(); domWriter = new DOMWriter(strWriter, true); domWriter.setQualifiedNames(false); domWriter.print(currentNode); lock.owner += strWriter.toString(); break; } } if (lock.owner == null) { // Bad request resp.setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { lock.owner = new String(); } } String path = getRelativePath(req); lock.path = path; // Retrieve the resources DirContext resources = getResources(); if (resources == null) { resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } boolean exists = true; Object object = null; try { object = resources.lookup(path); } catch (NamingException e) { exists = false; } Enumeration locksList = null; if (lockRequestType == LOCK_CREATION) { // Generating lock id String lockTokenStr = req.getServletPath() + "-" + lock.type + "-" + lock.scope + "-" + req.getUserPrincipal() + "-" + lock.depth + "-" + lock.owner + "-" + lock.tokens + "-" + lock.expiresAt + "-" + System.currentTimeMillis() + "-" + secret; String lockToken = md5Encoder.encode(md5Helper.digest(lockTokenStr.getBytes())); if ((exists) && (object instanceof DirContext) && (lock.depth == INFINITY)) { // Locking a collection (and all its member resources) // Checking if a child resource of this collection is // already locked Vector lockPaths = new Vector(); locksList = collectionLocks.elements(); while (locksList.hasMoreElements()) { WebdavServlet.LockInfo currentLock = (WebdavServlet.LockInfo) locksList.nextElement(); if (currentLock.hasExpired()) { resourceLocks.remove(currentLock.path); continue; } if ((currentLock.path.startsWith(lock.path)) && ((currentLock.isExclusive()) || (lock.isExclusive()))) { // A child collection of this collection is locked lockPaths.addElement(currentLock.path); } } locksList = resourceLocks.elements(); while (locksList.hasMoreElements()) { WebdavServlet.LockInfo currentLock = (WebdavServlet.LockInfo) locksList.nextElement(); if (currentLock.hasExpired()) { resourceLocks.remove(currentLock.path); continue; } if ((currentLock.path.startsWith(lock.path)) && ((currentLock.isExclusive()) || (lock.isExclusive()))) { // A child resource of this collection is locked lockPaths.addElement(currentLock.path); } } if (!lockPaths.isEmpty()) { // One of the child paths was locked // We generate a multistatus error report Enumeration lockPathsList = lockPaths.elements(); resp.setStatus(WebdavStatus.SC_CONFLICT); XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); generatedXML.writeElement(null, "multistatus" + generateNamespaceDeclarations(), XMLWriter.OPENING); while (lockPathsList.hasMoreElements()) { generatedXML.writeElement(null, "response", XMLWriter.OPENING); generatedXML.writeElement(null, "href", XMLWriter.OPENING); generatedXML.writeText((String) lockPathsList.nextElement()); generatedXML.writeElement(null, "href", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText("HTTP/1.1 " + WebdavStatus.SC_LOCKED + " " + WebdavStatus.getStatusText(WebdavStatus.SC_LOCKED)); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "response", XMLWriter.CLOSING); } generatedXML.writeElement(null, "multistatus", XMLWriter.CLOSING); Writer writer = resp.getWriter(); writer.write(generatedXML.toString()); writer.close(); return; } boolean addLock = true; // Checking if there is already a shared lock on this path locksList = collectionLocks.elements(); while (locksList.hasMoreElements()) { WebdavServlet.LockInfo currentLock = (WebdavServlet.LockInfo) locksList.nextElement(); if (currentLock.path.equals(lock.path)) { if (currentLock.isExclusive()) { resp.sendError(WebdavStatus.SC_LOCKED); return; } else { if (lock.isExclusive()) { resp.sendError(WebdavStatus.SC_LOCKED); return; } } currentLock.tokens.addElement(lockToken); lock = currentLock; addLock = false; } } if (addLock) { lock.tokens.addElement(lockToken); collectionLocks.addElement(lock); } } else { // Locking a single resource // Retrieving an already existing lock on that resource WebdavServlet.LockInfo presentLock = (WebdavServlet.LockInfo) resourceLocks.get(lock.path); if (presentLock != null) { if ((presentLock.isExclusive()) || (lock.isExclusive())) { // If either lock is exclusive, the lock can't be // granted resp.sendError(WebdavStatus.SC_PRECONDITION_FAILED); return; } else { presentLock.tokens.addElement(lockToken); lock = presentLock; } } else { lock.tokens.addElement(lockToken); resourceLocks.put(lock.path, lock); // Checking if a resource exists at this path exists = true; try { object = resources.lookup(path); } catch (NamingException e) { exists = false; } if (!exists) { // "Creating" a lock-null resource int slash = lock.path.lastIndexOf('/'); String parentPath = lock.path.substring(0, slash); Vector lockNulls = (Vector) lockNullResources.get(parentPath); if (lockNulls == null) { lockNulls = new Vector(); lockNullResources.put(parentPath, lockNulls); } lockNulls.addElement(lock.path); } // Add the Lock-Token header as by RFC 2518 8.10.1 // - only do this for newly created locks resp.addHeader("Lock-Token", "<opaquelocktoken:" + lockToken + ">"); } } } if (lockRequestType == LOCK_REFRESH) { String ifHeader = req.getHeader("If"); if (ifHeader == null) { ifHeader = ""; } // Checking resource locks WebdavServlet.LockInfo toRenew = (WebdavServlet.LockInfo) resourceLocks.get(path); Enumeration tokenList = null; if (lock != null) { // At least one of the tokens of the locks must have been given tokenList = toRenew.tokens.elements(); while (tokenList.hasMoreElements()) { String token = (String) tokenList.nextElement(); if (ifHeader.indexOf(token) != -1) { toRenew.expiresAt = lock.expiresAt; lock = toRenew; } } } // Checking inheritable collection locks Enumeration collectionLocksList = collectionLocks.elements(); while (collectionLocksList.hasMoreElements()) { toRenew = (WebdavServlet.LockInfo) collectionLocksList.nextElement(); if (path.equals(toRenew.path)) { tokenList = toRenew.tokens.elements(); while (tokenList.hasMoreElements()) { String token = (String) tokenList.nextElement(); if (ifHeader.indexOf(token) != -1) { toRenew.expiresAt = lock.expiresAt; lock = toRenew; } } } } } // Set the status, then generate the XML response containing // the lock information XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); generatedXML.writeElement(null, "prop" + generateNamespaceDeclarations(), XMLWriter.OPENING); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.OPENING); lock.toXML(generatedXML); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.CLOSING); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); resp.setStatus(WebdavStatus.SC_OK); resp.setContentType("text/xml; charset=UTF-8"); Writer writer = resp.getWriter(); writer.write(generatedXML.toString()); writer.close(); }
From source file:com.concursive.connect.web.webdav.servlets.WebdavServlet.java
/** * Propfind helper method./*www . jav a 2s . c o m*/ * * @param resources Resources object associated with this context * @param generatedXML XML response to the Propfind request * @param path Path of the current resource * @param type Propfind type * @param propertiesVector If the propfind type is find properties by name, * then this Vector contains those properties * @param context Description of the Parameter * @throws java.io.IOException Description of the Exception */ private void parseProperties(ActionContext context, ModuleContext resources, XMLWriter generatedXML, String path, int type, Vector propertiesVector) throws IOException { // Exclude any resource in the /WEB-INF and /META-INF subdirectories // (the "toUpperCase()" avoids problems on Windows systems) if (path.toUpperCase().startsWith("/WEB-INF") || path.toUpperCase().startsWith("/META-INF")) { return; } Connection db = null; ResourceInfo resourceInfo = null; boolean actionStatus = true; try { db = this.getConnection(context); resourceInfo = new ResourceInfo(db, path, resources); } catch (SQLException e) { e.printStackTrace(System.out); context.getResponse().sendError(SQLERROR, e.getMessage()); actionStatus = false; } catch (FileNotFoundException e) { e.printStackTrace(System.out); actionStatus = false; } finally { this.freeConnection(db, context); } if (!actionStatus) { return; } generatedXML.writeElement(null, "response", XMLWriter.OPENING); String status = new String( "HTTP/1.1 " + WebdavStatus.SC_OK + " " + WebdavStatus.getStatusText(WebdavStatus.SC_OK)); // Generating href element generatedXML.writeElement(null, "href", XMLWriter.OPENING); String href = context.getRequest().getContextPath(); if ((href.endsWith("/")) && (path.startsWith("/"))) { href += path.substring(1); } else { href += path; } if ((resourceInfo.collection) && (!href.endsWith("/"))) { href += "/"; } generatedXML.writeText(rewriteUrl(href)); generatedXML.writeElement(null, "href", XMLWriter.CLOSING); String resourceName = path; int lastSlash = path.lastIndexOf('/'); if (lastSlash != -1) { resourceName = resourceName.substring(lastSlash + 1); } switch (type) { case FIND_ALL_PROP: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeProperty(null, "creationdate", getISOCreationDate(resourceInfo.creationDate)); generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); if (!resourceInfo.collection) { generatedXML.writeProperty(null, "getlastmodified", resourceInfo.httpDate); generatedXML.writeProperty(null, "getcontentlength", String.valueOf(resourceInfo.length)); String contentType = getServletContext().getMimeType(resourceInfo.path); if (contentType != null) { generatedXML.writeProperty(null, "getcontenttype", contentType); } generatedXML.writeProperty(null, "getetag", getETag(resourceInfo)); generatedXML.writeElement(null, "resourcetype", XMLWriter.NO_CONTENT); } else { generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "collection", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); } generatedXML.writeProperty(null, "source", ""); String supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_PROPERTY_NAMES: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeElement(null, "creationdate", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "displayname", XMLWriter.NO_CONTENT); if (!resourceInfo.collection) { generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontentlength", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontenttype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getetag", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getlastmodified", XMLWriter.NO_CONTENT); } generatedXML.writeElement(null, "resourcetype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_BY_PROPERTY: Vector propertiesNotFound = new Vector(); // Parse the list of properties generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); Enumeration properties = propertiesVector.elements(); while (properties.hasMoreElements()) { String property = (String) properties.nextElement(); if (property.equals("creationdate")) { generatedXML.writeProperty(null, "creationdate", getISOCreationDate(resourceInfo.creationDate)); } else if (property.equals("displayname")) { generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); } else if (property.equals("getcontentlanguage")) { if (resourceInfo.collection) { propertiesNotFound.addElement(property); } else { generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); } } else if (property.equals("getcontentlength")) { if (resourceInfo.collection) { propertiesNotFound.addElement(property); } else { generatedXML.writeProperty(null, "getcontentlength", (String.valueOf(resourceInfo.length))); } } else if (property.equals("getcontenttype")) { if (resourceInfo.collection) { propertiesNotFound.addElement(property); } else { generatedXML.writeProperty(null, "getcontenttype", getServletContext().getMimeType(resourceInfo.path)); } } else if (property.equals("getetag")) { if (resourceInfo.collection) { propertiesNotFound.addElement(property); } else { generatedXML.writeProperty(null, "getetag", getETag(resourceInfo)); } } else if (property.equals("getlastmodified")) { if (resourceInfo.collection) { //propertiesNotFound.addElement(property); // change generatedXML.writeProperty(null, "getlastmodified", resourceInfo.httpDate); } else { generatedXML.writeProperty(null, "getlastmodified", resourceInfo.httpDate); } } else if (property.equals("resourcetype")) { if (resourceInfo.collection) { generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "collection", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); } else { generatedXML.writeElement(null, "resourcetype", XMLWriter.NO_CONTENT); } } else if (property.equals("source")) { generatedXML.writeProperty(null, "source", ""); } else if (property.equals("supportedlock")) { supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); } else if (property.equals("lockdiscovery")) { if (!generateLockDiscovery(path, generatedXML)) { propertiesNotFound.addElement(property); } } else { propertiesNotFound.addElement(property); } } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); Enumeration propertiesNotFoundList = propertiesNotFound.elements(); if (propertiesNotFoundList.hasMoreElements()) { status = new String("HTTP/1.1 " + WebdavStatus.SC_NOT_FOUND + " " + WebdavStatus.getStatusText(WebdavStatus.SC_NOT_FOUND)); generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); while (propertiesNotFoundList.hasMoreElements()) { generatedXML.writeElement(null, (String) propertiesNotFoundList.nextElement(), XMLWriter.NO_CONTENT); } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); } break; } generatedXML.writeElement(null, "response", XMLWriter.CLOSING); }
From source file:com.zeroio.webdav.WebdavServlet.java
/** * LOCK Method.// ww w .j ava 2 s .c o m * * @param context Description of the Parameter * @throws ServletException Description of the Exception * @throws IOException Description of the Exception */ protected void doLock(ActionContext context) throws ServletException, IOException { if (readOnly) { context.getResponse().sendError(WebdavStatus.SC_FORBIDDEN); return; } if (isLocked(context.getRequest())) { context.getResponse().sendError(WebdavStatus.SC_LOCKED); return; } LockInfo lock = new LockInfo(); // Parsing lock request // Parsing depth header String depthStr = context.getRequest().getHeader("Depth"); if (depthStr == null) { lock.depth = INFINITY; } else { if (depthStr.equals("0")) { lock.depth = 0; } else { lock.depth = INFINITY; } } // Parsing timeout header int lockDuration = DEFAULT_TIMEOUT; String lockDurationStr = context.getRequest().getHeader("Timeout"); if (lockDurationStr == null) { lockDuration = DEFAULT_TIMEOUT; } else { int commaPos = lockDurationStr.indexOf(","); // If multiple timeouts, just use the first if (commaPos != -1) { lockDurationStr = lockDurationStr.substring(0, commaPos); } if (lockDurationStr.startsWith("Second-")) { lockDuration = (new Integer(lockDurationStr.substring(7))).intValue(); } else { if (lockDurationStr.equalsIgnoreCase("infinity")) { lockDuration = MAX_TIMEOUT; } else { try { lockDuration = (new Integer(lockDurationStr)).intValue(); } catch (NumberFormatException e) { lockDuration = MAX_TIMEOUT; } } } if (lockDuration == 0) { lockDuration = DEFAULT_TIMEOUT; } if (lockDuration > MAX_TIMEOUT) { lockDuration = MAX_TIMEOUT; } } lock.expiresAt = System.currentTimeMillis() + (lockDuration * 1000); int lockRequestType = LOCK_CREATION; Node lockInfoNode = null; DocumentBuilder documentBuilder = getDocumentBuilder(); try { Document document = documentBuilder.parse(new InputSource(context.getRequest().getInputStream())); // Get the root element of the document Element rootElement = document.getDocumentElement(); lockInfoNode = rootElement; } catch (Exception e) { lockRequestType = LOCK_REFRESH; } if (lockInfoNode != null) { // Reading lock information NodeList childList = lockInfoNode.getChildNodes(); StringWriter strWriter = null; DOMWriter domWriter = null; Node lockScopeNode = null; Node lockTypeNode = null; Node lockOwnerNode = null; for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String nodeName = currentNode.getNodeName(); if (nodeName.endsWith("lockscope")) { lockScopeNode = currentNode; } if (nodeName.endsWith("locktype")) { lockTypeNode = currentNode; } if (nodeName.endsWith("owner")) { lockOwnerNode = currentNode; } break; } } if (lockScopeNode != null) { childList = lockScopeNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String tempScope = currentNode.getNodeName(); if (tempScope.indexOf(':') != -1) { lock.scope = tempScope.substring(tempScope.indexOf(':') + 1); } else { lock.scope = tempScope; } break; } } if (lock.scope == null) { // Bad request context.getResponse().setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { // Bad request context.getResponse().setStatus(WebdavStatus.SC_BAD_REQUEST); } if (lockTypeNode != null) { childList = lockTypeNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: break; case Node.ELEMENT_NODE: String tempType = currentNode.getNodeName(); if (tempType.indexOf(':') != -1) { lock.type = tempType.substring(tempType.indexOf(':') + 1); } else { lock.type = tempType; } break; } } if (lock.type == null) { // Bad request context.getResponse().setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { // Bad request context.getResponse().setStatus(WebdavStatus.SC_BAD_REQUEST); } if (lockOwnerNode != null) { childList = lockOwnerNode.getChildNodes(); for (int i = 0; i < childList.getLength(); i++) { Node currentNode = childList.item(i); switch (currentNode.getNodeType()) { case Node.TEXT_NODE: lock.owner += currentNode.getNodeValue(); break; case Node.ELEMENT_NODE: strWriter = new StringWriter(); domWriter = new DOMWriter(strWriter, true); domWriter.setQualifiedNames(false); domWriter.print(currentNode); lock.owner += strWriter.toString(); break; } } if (lock.owner == null) { // Bad request context.getResponse().setStatus(WebdavStatus.SC_BAD_REQUEST); } } else { lock.owner = new String(); } } String path = getRelativePath(context.getRequest()); //Fix for MACOSX finder. Do not allow requests for files starting with a period if (path.indexOf("/.") > -1 || path.indexOf(".DS_Store") > -1) { return; } lock.path = path; // Retrieve the resources DirContext resources = getResources(); if (resources == null) { context.getResponse().sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } boolean exists = true; Object object = null; try { object = resources.lookup(path); } catch (NamingException e) { exists = false; } Enumeration locksList = null; if (lockRequestType == LOCK_CREATION) { // Generating lock id String lockTokenStr = context.getRequest().getServletPath() + "-" + lock.type + "-" + lock.scope + "-" + context.getRequest().getUserPrincipal() + "-" + lock.depth + "-" + lock.owner + "-" + lock.tokens + "-" + lock.expiresAt + "-" + System.currentTimeMillis() + "-" + secret; String lockToken = md5Encoder.encode(md5Helper.digest(lockTokenStr.getBytes())); if ((exists) && (object instanceof DirContext) && (lock.depth == INFINITY)) { // Locking a collection (and all its member resources) // Checking if a child resource of this collection is // already locked Vector lockPaths = new Vector(); locksList = collectionLocks.elements(); while (locksList.hasMoreElements()) { LockInfo currentLock = (LockInfo) locksList.nextElement(); if (currentLock.hasExpired()) { resourceLocks.remove(currentLock.path); continue; } if ((currentLock.path.startsWith(lock.path)) && ((currentLock.isExclusive()) || (lock.isExclusive()))) { // A child collection of this collection is locked lockPaths.addElement(currentLock.path); } } locksList = resourceLocks.elements(); while (locksList.hasMoreElements()) { LockInfo currentLock = (LockInfo) locksList.nextElement(); if (currentLock.hasExpired()) { resourceLocks.remove(currentLock.path); continue; } if ((currentLock.path.startsWith(lock.path)) && ((currentLock.isExclusive()) || (lock.isExclusive()))) { // A child resource of this collection is locked lockPaths.addElement(currentLock.path); } } if (!lockPaths.isEmpty()) { // One of the child paths was locked // We generate a multistatus error report Enumeration lockPathsList = lockPaths.elements(); context.getResponse().setStatus(WebdavStatus.SC_CONFLICT); XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); generatedXML.writeElement(null, "multistatus" + generateNamespaceDeclarations(), XMLWriter.OPENING); while (lockPathsList.hasMoreElements()) { generatedXML.writeElement(null, "response", XMLWriter.OPENING); generatedXML.writeElement(null, "href", XMLWriter.OPENING); generatedXML.writeText((String) lockPathsList.nextElement()); generatedXML.writeElement(null, "href", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText("HTTP/1.1 " + WebdavStatus.SC_LOCKED + " " + WebdavStatus.getStatusText(WebdavStatus.SC_LOCKED)); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "response", XMLWriter.CLOSING); } generatedXML.writeElement(null, "multistatus", XMLWriter.CLOSING); Writer writer = context.getResponse().getWriter(); writer.write(generatedXML.toString()); writer.close(); return; } boolean addLock = true; // Checking if there is already a shared lock on this path locksList = collectionLocks.elements(); while (locksList.hasMoreElements()) { LockInfo currentLock = (LockInfo) locksList.nextElement(); if (currentLock.path.equals(lock.path)) { if (currentLock.isExclusive()) { context.getResponse().sendError(WebdavStatus.SC_LOCKED); return; } else { if (lock.isExclusive()) { context.getResponse().sendError(WebdavStatus.SC_LOCKED); return; } } currentLock.tokens.addElement(lockToken); lock = currentLock; addLock = false; } } if (addLock) { lock.tokens.addElement(lockToken); collectionLocks.addElement(lock); } } else { // Locking a single resource // Retrieving an already existing lock on that resource LockInfo presentLock = (LockInfo) resourceLocks.get(lock.path); if (presentLock != null) { if ((presentLock.isExclusive()) || (lock.isExclusive())) { // If either lock is exclusive, the lock can't be // granted context.getResponse().sendError(WebdavStatus.SC_PRECONDITION_FAILED); return; } else { presentLock.tokens.addElement(lockToken); lock = presentLock; } } else { lock.tokens.addElement(lockToken); resourceLocks.put(lock.path, lock); // Checking if a resource exists at this path exists = true; try { object = resources.lookup(path); } catch (NamingException e) { exists = false; } if (!exists) { // "Creating" a lock-null resource int slash = lock.path.lastIndexOf('/'); String parentPath = lock.path.substring(0, slash); Vector lockNulls = (Vector) lockNullResources.get(parentPath); if (lockNulls == null) { lockNulls = new Vector(); lockNullResources.put(parentPath, lockNulls); } //System.out.println("ADDED LOCK AT PATH: " + lock.path); lockNulls.addElement(lock.path); } // Add the Lock-Token header as by RFC 2518 8.10.1 // - only do this for newly created locks context.getResponse().addHeader("Lock-Token", "<opaquelocktoken:" + lockToken + ">"); } } } if (lockRequestType == LOCK_REFRESH) { String ifHeader = context.getRequest().getHeader("If"); if (ifHeader == null) { ifHeader = ""; } // Checking resource locks LockInfo toRenew = (LockInfo) resourceLocks.get(path); Enumeration tokenList = null; if (lock != null) { // At least one of the tokens of the locks must have been given tokenList = toRenew.tokens.elements(); while (tokenList.hasMoreElements()) { String token = (String) tokenList.nextElement(); if (ifHeader.indexOf(token) != -1) { toRenew.expiresAt = lock.expiresAt; lock = toRenew; } } } // Checking inheritable collection locks Enumeration collectionLocksList = collectionLocks.elements(); while (collectionLocksList.hasMoreElements()) { toRenew = (LockInfo) collectionLocksList.nextElement(); if (path.equals(toRenew.path)) { tokenList = toRenew.tokens.elements(); while (tokenList.hasMoreElements()) { String token = (String) tokenList.nextElement(); if (ifHeader.indexOf(token) != -1) { toRenew.expiresAt = lock.expiresAt; lock = toRenew; } } } } } // Set the status, then generate the XML response containing // the lock information XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); generatedXML.writeElement(null, "prop" + generateNamespaceDeclarations(), XMLWriter.OPENING); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.OPENING); lock.toXML(generatedXML); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.CLOSING); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); context.getResponse().setStatus(WebdavStatus.SC_OK); context.getResponse().setContentType("text/xml; charset=UTF-8"); Writer writer = context.getResponse().getWriter(); writer.write(generatedXML.toString()); writer.close(); }