List of usage examples for org.apache.commons.fileupload DiskFileUpload DiskFileUpload
public DiskFileUpload()
FileItem
instances. From source file:com.baobao121.baby.common.SimpleUploaderServlet.java
/** * Manage the Upload requests.<br> * //from ww w . j av a 2 s .co m * The servlet accepts commands sent in the following format:<br> * simpleUploader?Type=ResourceType<br> * <br> * It store the file (renaming it in case a file with the same name exists) * and then return an HTML file with a javascript command in it. * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (debug) System.out.println("--- BEGIN DOPOST ---"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String currentPath = ""; String currentDirPath = ""; String typeStr = request.getParameter("Type"); UserCommonInfo info = null; info = (UserCommonInfo) request.getSession().getAttribute(SystemConstant.USER_COMMON_INFO); if (info == null) { info = (UserCommonInfo) request.getSession().getAttribute(SystemConstant.ADMIN_INFO); } currentPath = baseDir + "images/"; currentDirPath = getServletContext().getRealPath(currentPath); if (!(new File(currentDirPath).isDirectory())) { new File(currentDirPath).mkdir(); } if (info.getObjectTableName() == null || info.getObjectTableName().equals("")) { currentPath += "admin/"; } else { if (info.getObjectTableName().equals(SystemConstant.BABY_INFO_TABLE_NAME)) { currentPath += "babyInfo/"; } if (info.getObjectTableName().equals(SystemConstant.KG_TEACHER_INFO_TABLE_NAME)) { currentPath += "teacherInfo/"; } } currentDirPath = getServletContext().getRealPath(currentPath); if (!(new File(currentDirPath).isDirectory())) { new File(currentDirPath).mkdir(); } currentPath += info.getId(); currentDirPath = getServletContext().getRealPath(currentPath); if (!(new File(currentDirPath).isDirectory())) { new File(currentDirPath).mkdir(); } if (debug) System.out.println(currentDirPath); String retVal = "0"; String newName = ""; String fileUrl = ""; String errorMessage = ""; if (enabled) { DiskFileUpload upload = new DiskFileUpload(); try { upload.setHeaderEncoding("utf-8"); List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); InputStream is = uplFile.getInputStream(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; Calendar calendar = Calendar.getInstance(); String nameWithoutExt = String.valueOf(calendar.getTimeInMillis()); ; String ext = getExtension(fileName); fileName = nameWithoutExt + "." + ext; fileUrl = currentPath + "/" + fileName; if (extIsAllowed(typeStr, ext)) { FileOutputStream desc = new FileOutputStream(currentDirPath + "/" + fileName); changeDimension(is, desc, 450, 1000); if (info.getObjectTableName() != null && !info.getObjectTableName().equals("")) { Photo photo = new Photo(); photo.setPhotoName(fileName); PhotoAlbum album = babyAlbumDao.getMAlbumByUser(info.getId(), info.getObjectTableName()); if (album.getId() != null) { Long albumId = album.getId(); photo.setPhotoAlbumId(albumId); photo.setPhotoLink(fileUrl); photo.setDescription(""); photo.setReadCount(0L); photo.setCommentCount(0L); photo.setReadPopedom("1"); photo.setCreateTime(DateUtil.getCurrentDateTimestamp()); photo.setModifyTime(DateUtil.getCurrentDateTimestamp()); babyPhotoDao.save(photo); babyAlbumDao.updateAlbumCount(albumId); } } } else { retVal = "202"; errorMessage = ""; if (debug) System.out.println("?: " + ext); } } catch (Exception ex) { if (debug) ex.printStackTrace(); retVal = "203"; } } else { retVal = "1"; errorMessage = "??"; } out.println("<script type=\"text/javascript\">"); out.println("window.parent.OnUploadCompleted(" + retVal + ",'" + request.getContextPath() + fileUrl + "','" + newName + "','" + errorMessage + "');"); out.println("</script>"); out.flush(); out.close(); if (debug) System.out.println("--- END DOPOST ---"); }
From source file:easyJ.http.upload.CommonsMultipartRequestHandler.java
/** * Parses the input stream and partitions the parsed items into a set of * form fields and a set of file items. In the process, the parsed items are * translated from Commons FileUpload <code>FileItem</code> instances to * Struts <code>FormFile</code> instances. * //www. j a v a 2s. co m * @param request * The multipart request to be processed. * @throws ServletException * if an unrecoverable error occurs. */ public void handleRequest(HttpServletRequest request) throws ServletException { // Get the app config for the current request. ModuleConfig ac = (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); // Create and configure a DIskFileUpload instance. DiskFileUpload upload = new DiskFileUpload(); // Set the maximum size before a FileUploadException will be thrown. upload.setSizeMax((int) getSizeMax(ac)); // Set the maximum size that will be stored in memory. upload.setSizeThreshold((int) getSizeThreshold(ac)); // Set the the location for saving data on disk. upload.setRepositoryPath(getRepositoryPath(ac)); // Create the hash tables to be populated. elementsText = new Hashtable(); elementsFile = new Hashtable(); elementsAll = new Hashtable(); // Parse the request into file items. List items = null; try { items = upload.parseRequest(request); } catch (DiskFileUpload.SizeLimitExceededException e) { // Special handling for uploads that are too big. request.setAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED, Boolean.TRUE); return; } catch (FileUploadException e) { EasyJLog.error("Failed to parse multipart request", e); throw new ServletException(e); } // Partition the items into form fields and files. Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { addTextParameter(request, item); } else { addFileParameter(item); } } }
From source file:cn.itcast.fredck.FCKeditor.connector.ConnectorServlet.java
/** * Manage the Post requests (FileUpload).<br> * * The servlet accepts commands sent in the following format:<br> * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br><br> * It store the file (renaming it in case a file with the same name exists) and then return an HTML file * with a javascript command in it.//from ww w . ja v a 2s . c o m * */ @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (debug) System.out.println("--- BEGIN DOPOST ---"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); String currentPath = baseDir + typeStr + currentFolderStr; String currentDirPath = getServletContext().getRealPath(currentPath); if (debug) System.out.println(currentDirPath); String retVal = "0"; String newName = ""; if (!commandStr.equals("FileUpload")) retVal = "203"; else { DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; String nameWithoutExt = getNameWithoutExtension(fileName); String ext = getExtension(fileName); File pathToSave = new File(currentDirPath, fileName); int counter = 1; while (pathToSave.exists()) { newName = nameWithoutExt + "(" + counter + ")" + "." + ext; retVal = "201"; pathToSave = new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } catch (Exception ex) { retVal = "203"; } } out.println("<script type=\"text/javascript\">"); out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');"); out.println("</script>"); out.flush(); out.close(); if (debug) System.out.println("--- END DOPOST ---"); }
From source file:com.krawler.spring.mailIntegration.mailIntegrationController.java
public ModelAndView mailIntegrate(HttpServletRequest request, HttpServletResponse response) throws ServletException { KwlReturnObject kmsg = null;/*from w w w . j a v a 2s .com*/ JSONObject obj = new JSONObject(); String url = storageHandlerImpl.GetSOAPServerUrl(); String res = ""; boolean isFormSubmit = false; boolean isDefaultModelView = true; ModelAndView mav = null; try { if (!StringUtil.isNullOrEmpty(request.getParameter("action")) && request.getParameter("action").equals("getoutboundconfid")) { String str = ""; url += "getOutboundConfiId.php"; URL u = new URL(url); URLConnection uc = u.openConnection(); uc.setDoOutput(true); uc.setUseCaches(false); uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); PrintWriter pw = new PrintWriter(uc.getOutputStream()); pw.println(str); pw.close(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String line = ""; while ((line = in.readLine()) != null) { res += line; } in.close(); } else if (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request.getParameter("emailUIAction").equals("uploadAttachment")) { isDefaultModelView = false; url += "krawlermails.php"; String pass = ""; String currUser = sessionHandlerImplObj.getUserName(request) + "_"; String userid = sessionHandlerImplObj.getUserid(request); String jsonStr = profileHandlerDAOObj.getUser_hash(userid); JSONObject currUserAuthInfo = new JSONObject(jsonStr); if (currUserAuthInfo.has("userhash")) { currUser += currUserAuthInfo.getString("subdomain"); pass = currUserAuthInfo.getString("userhash"); } Enumeration en = request.getParameterNames(); String str = "username=" + currUser + "&user_hash=" + pass; while (en.hasMoreElements()) { String paramName = (String) en.nextElement(); String paramValue = request.getParameter(paramName); str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue); } List fileItems = null; HashMap<String, String> arrParam = new HashMap<String, String>(); ArrayList<FileItem> fi = new ArrayList<FileItem>(); // if (request.getParameter("email_attachment") != null) { DiskFileUpload fu = new DiskFileUpload(); fileItems = fu.parseRequest(request); // crmDocumentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload); FileItem fi1 = null; for (Iterator k = fileItems.iterator(); k.hasNext();) { fi1 = (FileItem) k.next(); if (fi1.isFormField()) { arrParam.put(fi1.getFieldName(), fi1.getString("UTF-8")); } else { if (fi1.getSize() != 0) { fi.add(fi1); } } } // } long sizeinmb = 10; // 10 MB long maxsize = sizeinmb * 1024 * 1024; if (fi.size() > 0) { for (int cnt = 0; cnt < fi.size(); cnt++) { if (fi.get(cnt).getSize() <= maxsize) { try { byte[] filecontent = fi.get(cnt).get(); URL u = new URL(url + "?" + str); URLConnection uc = u.openConnection(); uc.setDoOutput(true); uc.setUseCaches(false); uc.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------4664151417711"); uc.setRequestProperty("Content-length", "" + filecontent.length); uc.setRequestProperty("Cookie", ""); OutputStream outstream = uc.getOutputStream(); String newline = "\r\n"; String b1 = ""; b1 += "-----------------------------4664151417711" + newline; b1 += "Content-Disposition: form-data; name=\"email_attachment\"; filename=\"" + fi.get(cnt).getName() + "\"" + newline; b1 += "Content-Type: text" + newline; b1 += newline; String b2 = ""; b2 += newline + "-----------------------------4664151417711--" + newline; String b3 = ""; b3 += "-----------------------------4664151417711" + newline; b3 += "Content-Disposition: form-data; name=\"addval\";" + newline; b3 += newline; String b4 = ""; b4 += newline + "-----------------------------4664151417711--" + newline; outstream.write(b1.getBytes()); outstream.write(b1.getBytes()); outstream.write(b1.getBytes()); outstream.write(fi.get(cnt).get()); outstream.write(b4.getBytes()); PrintWriter pw = new PrintWriter(outstream); pw.println(str); pw.close(); outstream.flush(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String line = ""; while ((line = in.readLine()) != null) { res += line; } in.close(); } catch (Exception e) { throw ServiceException.FAILURE(e.getMessage(), e); } } else { JSONObject jerrtemp = new JSONObject(); jerrtemp.put("Success", "Fail"); jerrtemp.put("errmsg", "Attachment size should be upto " + sizeinmb + "mb"); res = jerrtemp.toString(); } } } else { JSONObject jerrtemp = new JSONObject(); jerrtemp.put("Success", "Fail"); jerrtemp.put("errmsg", "Attachment file size should be greater than zero"); res = jerrtemp.toString(); } } else { url += "krawlermails.php"; String pass = ""; String currUser = sessionHandlerImplObj.getUserName(request) + "_"; String userid = sessionHandlerImplObj.getUserid(request); String jsonStr = profileHandlerDAOObj.getUser_hash(userid); JSONObject currUserAuthInfo = new JSONObject(jsonStr); if (currUserAuthInfo.has("userhash")) { currUser += currUserAuthInfo.getString("subdomain"); pass = currUserAuthInfo.getString("userhash"); } Enumeration en = request.getParameterNames(); String str = "username=" + currUser + "&user_hash=" + pass; while (en.hasMoreElements()) { String paramName = (String) en.nextElement(); String paramValue = request.getParameter(paramName); str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue); } URL u = new URL(url); URLConnection uc = u.openConnection(); uc.setDoOutput(true); uc.setUseCaches(false); uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); PrintWriter pw = new PrintWriter(uc.getOutputStream()); pw.println(str); pw.close(); if ((!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request.getParameter("emailUIAction").equals("getMessageListXML")) || (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request .getParameter("emailUIAction").equals("getMessageListKrawlerFoldersXML"))) { //response.setContentType("text/xml;charset=UTF-8"); isFormSubmit = true; int totalCnt = 0; int unreadCnt = 0; JSONObject jobj = new JSONObject(); JSONArray jarr = new JSONArray(); DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(uc.getInputStream()); NodeList cntentity = doc.getElementsByTagName("TotalCount"); Node cntNode = cntentity.item(0); if (cntNode.getNodeType() == Node.ELEMENT_NODE) { Element firstPersonElement = (Element) cntNode; totalCnt = Integer.parseInt(firstPersonElement.getChildNodes().item(0).getNodeValue()); } cntentity = doc.getElementsByTagName("UnreadCount"); cntNode = cntentity.item(0); if (cntNode.getNodeType() == Node.ELEMENT_NODE) { Element firstPersonElement = (Element) cntNode; unreadCnt = Integer.parseInt(firstPersonElement.getChildNodes().item(0).getNodeValue()); } String dateFormatId = sessionHandlerImpl.getDateFormatID(request); String timeFormatId = sessionHandlerImpl.getUserTimeFormat(request); String timeZoneDiff = sessionHandlerImpl.getTimeZoneDifference(request); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // check for Mail server protocol boolean isYahoo = false; if (request.getParameter("mbox").equals("INBOX")) { u = new URL(url); uc = u.openConnection(); uc.setDoOutput(true); uc.setUseCaches(false); uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); str = "username=" + currUser + "&user_hash=" + pass + "&action=EmailUIAjax&emailUIAction=getIeAccount&ieId=" + request.getParameter("ieId") + "&module=Emails&to_pdf=true"; pw = new PrintWriter(uc.getOutputStream()); pw.println(str); pw.close(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String line = ""; while ((line = in.readLine()) != null) { res += line; } in.close(); JSONObject ieIDInfo = new JSONObject(res); if (ieIDInfo.getString("server_url").equals("pop.mail.yahoo.com")) isYahoo = true; } sdf.setTimeZone(TimeZone.getTimeZone("GMT+00:00")); DateFormat userdft = null; if (!isYahoo) userdft = KwlCommonTablesDAOObj.getUserDateFormatter(dateFormatId, timeFormatId, timeZoneDiff); else userdft = KwlCommonTablesDAOObj.getOnlyDateFormatter(dateFormatId, timeFormatId); NodeList entity = doc.getElementsByTagName("Emails"); NodeList email = ((Element) entity.item(0)).getElementsByTagName("Email"); for (int i = 0; i < email.getLength(); i++) { JSONObject tmpObj = new JSONObject(); Node rowElement = email.item(i); if (rowElement.getNodeType() == Node.ELEMENT_NODE) { NodeList childNodes = rowElement.getChildNodes(); for (int j = 0; j < childNodes.getLength(); j++) { Node node = childNodes.item(j); if (node.getNodeType() == Node.ELEMENT_NODE) { Element firstPersonElement = (Element) node; if (firstPersonElement != null) { NodeList textFNList = firstPersonElement.getChildNodes(); if (textFNList.item(0) != null) { if (request.getSession().getAttribute("iPhoneCRM") != null) { String body = ((Node) textFNList.item(0)).getNodeValue().trim(); if (body.contains("<")) body = body.replace("<", "<"); if (body.contains(">")) body = body.replace(">", ">"); tmpObj.put(node.getNodeName(), body); } else { String value = ((Node) textFNList.item(0)).getNodeValue().trim(); if (node.getNodeName().equals("date")) { value = userdft.format(sdf.parse(value)); } tmpObj.put(node.getNodeName(), value); } } } } } } jarr.put(tmpObj); } jobj.put("data", jarr); jobj.put("totalCount", totalCnt); jobj.put("unreadCount", unreadCnt); res = jobj.toString(); } else { BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String line = ""; while ((line = in.readLine()) != null) { res += line; } in.close(); if ((!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request.getParameter("emailUIAction").equals("fillComposeCache"))) { isFormSubmit = true; } else if (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request.getParameter("emailUIAction").equals("refreshKrawlerFolders")) { if (res.equals("Not a valid entry method")) { ArrayList filter_names = new ArrayList(); ArrayList filter_params = new ArrayList(); filter_names.add("u.userID"); filter_params.add(userid); HashMap<String, Object> requestParams = new HashMap<String, Object>(); KwlReturnObject kwlobject = profileHandlerDAOObj.getUserDetails(requestParams, filter_names, filter_params); List li = kwlobject.getEntityList(); if (li.size() >= 0) { if (li.iterator().hasNext()) { User user = (User) li.iterator().next(); String returnStr = addUserEntryForEmails( user.getCompany().getCreator().getUserID(), user, user.getUserLogin(), user.getUserLogin().getPassword(), false); JSONObject emailresult = new JSONObject(returnStr); if (Boolean.parseBoolean(emailresult.getString("success"))) { pw = new PrintWriter(uc.getOutputStream()); pw.println(str); pw.close(); in = new BufferedReader(new InputStreamReader(uc.getInputStream())); line = ""; while ((line = in.readLine()) != null) { res += line; } in.close(); } } } } } else if (res.equals("bool(false)")) { res = "false"; } } } if (!isFormSubmit) { JSONObject resjobj = new JSONObject(); resjobj.put("valid", true); resjobj.put("data", res); res = resjobj.toString(); } if (isDefaultModelView) mav = new ModelAndView("jsonView-ex", "model", res); else mav = new ModelAndView("jsonView", "model", res); } catch (SessionExpiredException e) { mav = new ModelAndView("jsonView-ex", "model", "{'valid':false}"); System.out.println(e.getMessage()); } catch (Exception e) { mav = new ModelAndView("jsonView-ex", "model", "{'valid':true,data:{success:false,errmsg:'" + e.getMessage() + "'}}"); System.out.println(e.getMessage()); } return mav; }
From source file:com.fredck.FCKeditor.connector.ConnectorServlet.java
/** * Manage the Post requests (FileUpload).<br> * /*from w ww.j av a 2 s .c o m*/ * The servlet accepts commands sent in the following format:<br> * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br> * <br> * It store the file (renaming it in case a file with the same name exists) * and then return an HTML file with a javascript command in it. * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("ConnectorServlet.doPost"); if (debug) System.out.println("--- BEGIN DOPOST ---"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); String currentPath = baseDir + typeStr + currentFolderStr; String currentDirPath = getServletContext().getRealPath(currentPath); if (debug) System.out.println(currentDirPath); String retVal = "0"; String newName = ""; if (!commandStr.equals("FileUpload")) retVal = "203"; else { DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; String nameWithoutExt = getNameWithoutExtension(fileName); String ext = getExtension(fileName); File pathToSave = new File(currentDirPath, fileName); int counter = 1; while (pathToSave.exists()) { newName = nameWithoutExt + "(" + counter + ")" + "." + ext; retVal = "201"; pathToSave = new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } catch (Exception ex) { retVal = "203"; } } System.out.println("1111111111111111111111"); out.println("<script type=\"text/javascript\">"); out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');"); out.println("</script>"); out.flush(); out.close(); if (debug) System.out.println("--- END DOPOST ---"); }
From source file:com.baobao121.baby.common.ConnectorServlet.java
/** * Manage the Post requests (FileUpload).<br> * //from ww w. jav a 2s . co m * The servlet accepts commands sent in the following format:<br> * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br> * <br> * It store the file (renaming it in case a file with the same name exists) * and then return an HTML file with a javascript command in it. * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (debug) System.out.println("--- BEGIN DOPOST ---"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); String currentPath = baseDir + typeStr + currentFolderStr; String currentDirPath = getServletContext().getRealPath(currentPath); if (debug) System.out.println(currentDirPath); String retVal = "0"; String newName = ""; if (!commandStr.equals("FileUpload")) retVal = "203"; else { DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; String nameWithoutExt = getNameWithoutExtension(fileName); String ext = getExtension(fileName); File pathToSave = new File(currentDirPath, fileName); int counter = 1; while (pathToSave.exists()) { newName = nameWithoutExt + "(" + counter + ")" + "." + ext; retVal = "201"; pathToSave = new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } catch (Exception ex) { retVal = "203"; } } out.println("<script type=\"text/javascript\">"); out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');"); out.println("</script>"); out.flush(); out.close(); if (debug) System.out.println("--- END DOPOST ---"); }
From source file:com.rapidsist.portal.cliente.editor.ConnectorServlet.java
/** * Manage the Post requests (FileUpload).<br> * * The servlet accepts commands sent in the following format:<br> * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br><br> * It store the file (renaming it in case a file with the same name exists) and then return an HTML file * with a javascript command in it./*from w w w.j a v a2 s .co m*/ * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("PASO POR EL METODO doPost DEL SERVLET ConnectorServlet"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); String currentPath = baseDir + typeStr + currentFolderStr; String currentDirPath = getServletContext().getRealPath(currentPath); String retVal = "0"; String newName = ""; if (!commandStr.equals("FileUpload")) retVal = "203"; else { DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; String nameWithoutExt = getNameWithoutExtension(fileName); String ext = getExtension(fileName); File pathToSave = new File(currentDirPath, fileName); int counter = 1; while (pathToSave.exists()) { newName = nameWithoutExt + "(" + counter + ")" + "." + ext; retVal = "201"; pathToSave = new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } catch (Exception ex) { retVal = "203"; } } out.println("<script type=\"text/javascript\">"); out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');"); out.println("</script>"); out.flush(); out.close(); }
From source file:com.sun.faban.harness.webclient.Uploader.java
/** * Responsible for uploading the runs.// w w w. j a v a 2 s.co m * @param request * @param response * @return String * @throws java.io.IOException * @throws javax.servlet.ServletException * @throws java.lang.ClassNotFoundException */ public String uploadRuns(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, ClassNotFoundException { // 3. Upload the run HashSet<String> duplicateSet = new HashSet<String>(); HashSet<String> replaceSet = new HashSet<String>(); String host = null; String key = null; boolean origin = false; // Whether the upload is to the original // run requestor. If so, key is needed. DiskFileUpload fu = new DiskFileUpload(); // No maximum size fu.setSizeMax(-1); // maximum size that will be stored in memory fu.setSizeThreshold(4096); // the location for saving data that is larger than // getSizeThreshold() fu.setRepositoryPath(Config.TMP_DIR); List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e); } // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server for (Iterator i = fileItems.iterator(); i.hasNext();) { FileItem item = (FileItem) i.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if ("host".equals(fieldName)) { host = item.getString(); } else if ("replace".equals(fieldName)) { replaceSet.add(item.getString()); } else if ("key".equals(fieldName)) { key = item.getString(); } else if ("origin".equals(fieldName)) { String value = item.getString(); origin = Boolean.parseBoolean(value); } continue; } if (host == null) { logger.warning("Host not received on upload request!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } // The host, origin, key info must be here before we receive // any file. if (origin) { if (Config.daemonMode != Config.DaemonModes.POLLEE) { logger.warning("Origin upload requested. Not pollee!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (key == null) { logger.warning("Origin upload requested. No key!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (!RunRetriever.authenticate(host, key)) { logger.warning("Origin upload requested. " + "Host/key mismatch: " + host + '/' + key + "!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } } if (!"jarfile".equals(fieldName)) // ignore continue; String fileName = item.getName(); if (fileName == null) // We don't process files without names continue; // Now, this name may have a path attached, dependent on the // source browser. We need to cover all possible clients... char[] pathSeparators = { '/', '\\' }; // Well, if there is another separator we did not account for, // just add it above. for (int j = 0; j < pathSeparators.length; j++) { int idx = fileName.lastIndexOf(pathSeparators[j]); if (idx != -1) { fileName = fileName.substring(idx + 1); break; } } // Ignore all non-jarfiles. if (!fileName.toLowerCase().endsWith(".jar")) continue; File uploadFile = new File(Config.TMP_DIR, host + '.' + fileName); try { item.write(uploadFile); } catch (Exception e) { throw new ServletException(e); } int runIdx = fileName.lastIndexOf("."); String runName = host + '.' + fileName.substring(0, runIdx); File runTmp = unjarTmp(uploadFile); //Check if archived recently if (checkIfArchived(runName) && !(replaceSet.contains(fileName.substring(0, runIdx)))) { //Now check if timestamps are same //Get the timestamp of run being uploaded at this point //ts is timestamp of run being uploaded String ts = getRunIdTimestamp(runName, Config.TMP_DIR); l1: while (true) { //reposTs is timestamp of run being compared in the //repository String reposTs = getRunIdTimestamp(runName, Config.OUT_DIR); if (reposTs.equals(ts)) { duplicateSet.add(fileName.substring(0, runIdx)); } else { runName = getNextRunId(runName); if (checkIfArchived(runName)) continue l1; File newRunNameFile = new File(Config.OUT_DIR, runName); if (newRunNameFile.exists()) { recursiveDelete(newRunNameFile); } if (recursiveCopy(runTmp, newRunNameFile)) { newRunNameFile.setLastModified(runTmp.lastModified()); uploadTags(runName); uploadFile.delete(); recursiveDelete(runTmp); } else { logger.warning("Origin upload requested. " + "Copy error!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); break; } response.setStatus(HttpServletResponse.SC_CREATED); } break; } } else { //File runTmp = unjarTmp(uploadFile); String runId = null; if (origin) { // Change origin file to know where this run came from. File metaInf = new File(runTmp, "META-INF"); File originFile = new File(metaInf, "origin"); if (!originFile.exists()) { logger.warning("Origin upload requested. " + "Origin file does not exist!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file does not exist!"); break; } RunId origRun; try { origRun = new RunId(readStringFromFile(originFile).trim()); } catch (IndexOutOfBoundsException e) { response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file error. " + e.getMessage()); break; } runId = origRun.getBenchName() + '.' + origRun.getRunSeq(); String localHost = origRun.getHostName(); if (!localHost.equals(Config.FABAN_HOST)) { logger.warning("Origin upload requested. Origin " + "host" + localHost + " does not match this host " + Config.FABAN_HOST + '!'); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } writeStringToFile(runTmp.getName(), originFile); } else { runId = runTmp.getName(); } File newRunFile = new File(Config.OUT_DIR, runId); if (newRunFile.exists()) { recursiveDelete(newRunFile); } if (recursiveCopy(runTmp, newRunFile)) { newRunFile.setLastModified(runTmp.lastModified()); uploadFile.delete(); uploadTags(runId); recursiveDelete(runTmp); } else { logger.warning("Origin upload requested. Copy error!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); break; } } response.setStatus(HttpServletResponse.SC_CREATED); //break; } request.setAttribute("duplicates", duplicateSet); return "/duplicates.jsp"; }
From source file:crds.pub.FCKeditor.connector.ConnectorServlet.java
/** * Manage the Post requests (FileUpload).<br> * * The servlet accepts commands sent in the following format:<br> * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br><br> * It store the file (renaming it in case a file with the same name exists) and then return an HTML file * with a javascript command in it.// w ww .j a v a 2s.co m * */ @SuppressWarnings({ "unchecked" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FormUserOperation formUser = Constant.getFormUserOperation(request); String fck_task_id = (String) request.getSession().getAttribute("fck_task_id"); if (fck_task_id == null) { fck_task_id = "temp_task_id"; } response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); String currentPath = baseDir + formUser.getCompany_code() + currentFolderStr + fck_task_id + currentFolderStr + typeStr + currentFolderStr; String currentDirPath = getServletContext().getRealPath(currentPath); String retVal = "0"; String newName = ""; if (!commandStr.equals("FileUpload")) retVal = "203"; else { DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } FileItem uplFile = (FileItem) fields.get("NewFile"); String fileNameLong = uplFile.getName(); fileNameLong = fileNameLong.replace('\\', '/'); String[] pathParts = fileNameLong.split("/"); String fileName = pathParts[pathParts.length - 1]; String nameWithoutExt = getNameWithoutExtension(fileName); String ext = getExtension(fileName); File pathToSave = new File(currentDirPath, fileName); int counter = 1; while (pathToSave.exists()) { newName = nameWithoutExt + "(" + counter + ")" + "." + ext; retVal = "201"; pathToSave = new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } catch (Exception ex) { retVal = "203"; } } out.println("<script type=\"text/javascript\">"); out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');"); out.println("</script>"); out.flush(); out.close(); }
From source file:forseti.compras.JCompFactDlg.java
@SuppressWarnings({ "unchecked", "rawtypes" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //request.setAttribute("fsi_modulo",request.getRequestURI()); super.doPost(request, response); String comp_fact_dlg = ""; request.setAttribute("comp_fact_dlg", comp_fact_dlg); String mensaje = ""; short idmensaje = -1; String usuario = getSesion(request).getID_Usuario(); if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) { if (!getSesion(request).getRegistrado()) { irApag("/forsetiweb/errorAtributos.jsp", request, response); return; } else {//from w ww.ja va 2 s . c om try { HttpSession ses = request.getSession(true); JFacturasXML compfactxml = (JFacturasXML) ses.getAttribute("comp_fact_xml"); Vector archivos = new Vector(); DiskFileUpload fu = new DiskFileUpload(); List items = fu.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) compfactxml.getParametros().put(item.getFieldName(), item.getString()); else archivos.addElement(item); } // revisa por las entidades JComprasEntidadesSetIdsV2 setids; String idmod = compfactxml.getParametros().getProperty("idmod"), idmod4 = compfactxml.getParametros().getProperty("idmod4"), moddes = compfactxml.getParametros().getProperty("moddes"); request.setAttribute("idmod", idmod); request.setAttribute("moddes", moddes); setids = new JComprasEntidadesSetIdsV2(request, usuario, getSesion(request).getSesion(idmod).getEspecial(), (idmod.equals("COMP_GAS") ? 2 : 0)); setids.Open(); if (setids.getNumRows() < 1) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (!idmod.equals("COMP_DEV")) // Si no es devolucion { if (!getSesion(request).getPermiso(idmod + "_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_AGREGAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { if (!getSesion(request).getPermiso("COMP_DEV_DEVOLVER") && !getSesion(request).getPermiso("COMP_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_DEV_DEVOLVER") + " / " + MsjPermisoDenegado(request, "CEF", "COMP_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_DEV_DEVOLVER", "CDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } System.out.println("PROPIEDAD: " + compfactxml.getParametros().getProperty("proceso")); if (compfactxml.getParametros().getProperty("proceso").equals("CARGAR_OTROS")) SubirArchivosOTROS(request, response, compfactxml, archivos); else SubirArchivosCFD(request, response, compfactxml, 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 JComprasEntidadesSetIdsV2 setids; String idmod, idmod4, moddes; if (request.getParameter("tipomov").equals("FACTURAS")) { idmod = "COMP_FAC"; idmod4 = "CFAC"; moddes = "FACTURAS"; } else if (request.getParameter("tipomov").equals("ORDENES")) { idmod = "COMP_ORD"; idmod4 = "CORD"; moddes = "ORDENES"; } else if (request.getParameter("tipomov").equals("RECEPCIONES")) { idmod = "COMP_REC"; idmod4 = "CREC"; moddes = "RECEPCIONES"; } else if (request.getParameter("tipomov").equals("GASTOS")) { idmod = "COMP_GAS"; idmod4 = "CGAS"; moddes = "GASTOS"; } else { idmod = "COMP_DEV"; idmod4 = "CDEV"; moddes = "DEVOLUCIONES"; } request.setAttribute("idmod", idmod); request.setAttribute("moddes", moddes); request.setAttribute("fact_xml", "COMPRAS"); setids = new JComprasEntidadesSetIdsV2(request, usuario, getSesion(request).getSesion(idmod).getEspecial(), (idmod.equals("COMP_GAS") ? 2 : 0)); setids.Open(); if (setids.getNumRows() < 1) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } // Revisa por intento de intrusion (Salto de permiso de entidad) if (!request.getParameter("proceso").equals("AGREGAR_COMPRA") && request.getParameter("ID") != null) { boolean intrusion = false; if (moddes.equals("FACTURAS")) { JComprasFactSet set = new JComprasFactSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Factura = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 set = new JComprasRecepSetV2(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else if (moddes.equals("ORDENES")) { JComprasOrdenesSet set = new JComprasOrdenesSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Orden = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else if (moddes.equals("GASTOS")) { JComprasGastosSet set = new JComprasGastosSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Gasto = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else { JComprasDevolucionesSet set = new JComprasDevolucionesSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } if (intrusion) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "AL", getSesion(request).getID_Usuario(), idmod, idmod4 + "|" + request.getParameter("ID") + "|" + setids.getAbsRow(0).getID_Entidad() + "||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } if (request.getParameter("proceso").equals("ENLAZAR_COMPRA")) { if (moddes.equals("FACTURAS") || moddes.equals("RECEPCIONES") || moddes.equals("DEVOLUCIONES") || moddes.equals("GASTOS")) { // Revisa si tiene permisos if (!idmod.equals("COMP_DEV")) // Si no es devolucion { if (!getSesion(request).getPermiso(idmod + "_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_AGREGAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { if (!getSesion(request).getPermiso("COMP_DEV_DEVOLVER") && !getSesion(request).getPermiso("COMP_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_DEV_DEVOLVER") + " / " + MsjPermisoDenegado(request, "CEF", "COMP_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_DEV_DEVOLVER", "CDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } if (setids.getAbsRow(0).getFija()) { idmensaje = 3; mensaje += "ERROR: No se puede subir ningun CFDI, CBB o Factura Extranjera porque esta entidad de compra o gasto est establecida como Fija<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, { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/fact_dlg_xmls.jsp", request, response); return; } else { if (request.getParameter("subproceso").equals("ENLAZAR")) { // Se supone que la compra aun no estar ligada a una compra existente... /////////////////////////////////////////////////////////////////////////// String[] valoresParamUUID = request.getParameterValues("uuid"); String[] valoresParamCBBEXT = request.getParameterValues("cbbext"); String tipoEnlace = ""; boolean EnlazarCompraExistente = (request.getParameter("ID") == null ? false : true); if (valoresParamUUID == null && valoresParamCBBEXT == null) { idmensaje = 3; mensaje += "ERROR: Se deben seleccionar, ya sea los CFDIs o los CBBs o Facturas Extranjeras que se desean enlazar.<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } //Si existen ambos, UUIDs y CBB o EXT, marcar error if (valoresParamUUID != null && valoresParamCBBEXT != null && valoresParamUUID.length > 0 && valoresParamCBBEXT.length > 0) { idmensaje = 3; mensaje += "ERROR: No se pueden enlazar ambos tipos de documento, CFDIs mas CBB o Facturas Extranjeras, a una misma compra.<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (valoresParamCBBEXT != null && valoresParamCBBEXT.length > 0 && !EnlazarCompraExistente) { idmensaje = 3; mensaje += "ERROR: Los documentos CBB o Facturas extranjeras, deben enlazarse forzosamente a una compra existente.<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } float TotalUUIDs = 0F; String UUIDs = ""; float TC = 1.0F, TCAnt = 1.0F; String RFC_Emisor = ""; HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("comp_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); rec.setReferencia("s/r"); if (valoresParamUUID != null) { tipoEnlace = "UUID"; for (int u = 0; u < valoresParamUUID.length; u++) { ///////////////////////////// VP INI ///////////////////////////////////////////// JCFDCompSet comprobante = new JCFDCompSet(request, "COMPRAS"); comprobante.m_Where = "UUID = '" + p(valoresParamUUID[u]) + "'"; comprobante.Open(); //System.out.println("NUM: " + valoresParamUUID.length + " UUID: " + valoresParamUUID[u]); if (comprobante.getNumRows() < 1 || !comprobante.getAbsRow(0).getFSI_Tipo().equals("ENT") || comprobante.getAbsRow(0).getFSI_ID() != Integer .parseInt(getSesion(request).getSesion(idmod).getEspecial())) { idmensaje = 3; mensaje += "ERROR: No se ha cargado el CFDI de la compra, este ya esta ligado a otra compra, o el CFDI se cargo en otra entidad<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JFacturasXML compfactxml = new JFacturasXML(); StringBuffer sb_mensaje = new StringBuffer(); if (!JForsetiCFD.CargarDocumentoCFDI(request, compfactxml, sb_mensaje, valoresParamUUID[u]/*request.getParameter("uuid")*/, "E")) { idmensaje = 3; mensaje += sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if ((compfactxml.getComprobante().getProperty("tipoDeComprobante") .equals("ingreso") && moddes.equals("DEVOLUCIONES")) || (compfactxml.getComprobante().getProperty("tipoDeComprobante") .equals("egreso") && !moddes.equals("DEVOLUCIONES")) || compfactxml.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 Receptor 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 (!compfactxml.getRFC_Receptor() .equalsIgnoreCase(set.getAbsRow(0).getRFC())) { idmensaje = 3; mensaje = "ERROR: El RFC del receptor en el XML no pertenece a la compaia"; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } RFC_Emisor = compfactxml.getRFC_Emisor(); //Verifica los tipos de cambio, Si son mas de un CFDI, no deben tener distintos tipos de cambio if (u == 0) { try { TC = Float.parseFloat( compfactxml.getComprobante().getProperty("TipoCambio")); } catch (NumberFormatException e) { TC = 1.0F; } try { TCAnt = Float.parseFloat( compfactxml.getComprobante().getProperty("TipoCambio")); } catch (NumberFormatException e) { TCAnt = 1.0F; } } else { try { TC = Float.parseFloat( compfactxml.getComprobante().getProperty("TipoCambio")); } catch (NumberFormatException e) { TC = 1.0F; } } if (TC != TCAnt) { idmensaje = 3; mensaje = "ERROR: En mltiples enlaces, los tipos de cambio deben coincidir. Los gastos tienen distintos tipos de cambio"; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") == null) // Significa que debe agregar una nueva compra { if (moddes.equals("DEVOLUCIONES") || moddes.equals("ORDENES")) { idmensaje = 1; mensaje = "PRECAUCION: Solo se pueden enlazar devoluciones previamente generadas desde compras. Selecciona la devolucin e intenta enlazar de nuevo."; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (valoresParamUUID.length > 1 && !moddes.equals("GASTOS")) { idmensaje = 1; mensaje = "PRECAUCION: Solo se pueden enlazar multiples CFDI a un gasto, y no, a una compra"; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } float descuento = Float .parseFloat(compfactxml.getComprobante().getProperty("descuento")); if (descuento != 0.0) { idmensaje = 1; mensaje = "PRECAUCION: Por el momento, la carga de compras no soportan descuentos implicitos porque en el CFDI no se especifica a que producto(s) o servicio(s) aplica cada descuento, lo que hace imposible determinar un costo verdadero."; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } rec.agregaCFDI(compfactxml); if (valoresParamUUID.length == 1) // es un solo CFDI (Siempre en el caso de Compras y Recepciones... y algunas veces en gastos) { float tc, iva; int idmon; Date fecha = JUtil.estFechaCFDI( compfactxml.getComprobante().getProperty("fecha")); rec.setFecha(fecha); try { tc = Float.parseFloat( compfactxml.getComprobante().getProperty("TipoCambio")); } catch (NumberFormatException e) { tc = 1.0F; } rec.setTC(tc); idmon = ((tc == 1) ? 1 : 2); //cambiar por 2 cuando se inserte moneda de dolares automaticamente al instalar empresa... Para ya distribuir rec.setID_Moneda((byte) idmon); rec.setTotal(Float .parseFloat(compfactxml.getComprobante().getProperty("total"))); try { iva = Float.parseFloat(compfactxml.getImpuestos() .getProperty("totalImpuestosTrasladados")); } catch (NumberFormatException e) { iva = 0.0F; } rec.setIVA(iva); rec.setSubTotal(Float.parseFloat( compfactxml.getComprobante().getProperty("subTotal"))); rec.setDescuento(descuento); rec.setImporte(rec.getSubTotal() - descuento); rec.setReferencia("s/r"); rec.setFechaEntrega(fecha); JPublicContMonedasSetV2 setMon = new JPublicContMonedasSetV2(request); setMon.m_Where = "Clave = '" + idmon + "'"; setMon.Open(); rec.setMoneda(setMon.getAbsRow(0).getMoneda()); rec.setObs("Carga desde Factura Electrnica: " + compfactxml.getTFD().getProperty("UUID")); JProveeProveeMasSetV2 setpro = new JProveeProveeMasSetV2(request); setpro.m_Where = "ID_Tipo = 'PR' and ID_EntidadCompra = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and RFC ~~* '" + p(compfactxml.getRFC_Emisor()) + "'"; setpro.Open(); if (setpro.getNumRows() > 0) { JProveeProveeSetV2 setpro2 = new JProveeProveeSetV2(request); setpro2.m_Where = "ID_Tipo = 'PR' and Clave = '" + setpro.getAbsRow(0).getID_Clave() + "'"; setpro2.Open(); rec.setClave(setpro.getAbsRow(0).getID_Clave()); rec.setNombre(setpro2.getAbsRow(0).getNombre()); rec.setRFC(compfactxml.getRFC_Emisor()); rec.setNumero(setpro2.getAbsRow(0).getNumero()); rec.setColonia(setpro.getAbsRow(0).getColonia()); rec.setCP(setpro.getAbsRow(0).getCP()); rec.setDireccion(setpro.getAbsRow(0).getDireccion()); rec.setPoblacion(setpro.getAbsRow(0).getPoblacion()); rec.setTels(setpro2.getAbsRow(0).getTel()); } } for (int i = 0; i < compfactxml.getConceptos().size(); i++) { Properties concepto = (Properties) compfactxml.getConceptos() .elementAt(i); float cantidad = Float.parseFloat(concepto.getProperty("cantidad")); float precio = Float.parseFloat(concepto.getProperty("valorUnitario")); String unidad = concepto.getProperty("unidad"); String idprod = ""; String descripcion = concepto.getProperty("descripcion"); String obs = concepto.getProperty("descripcion"); String tipo = (!moddes.equals("GASTOS") ? "P" : "G"); float importe = Float.parseFloat(concepto.getProperty("importe")); float ivapor = 0.00F, iepspor = 0.00F, ivaretpor = 0.00F, isrretpor = 0.00F, ivaimp = 0.00F, iepsimp = 0.00F, ivaretimp = 0.00F, isrretimp = 0.00F; float totalPart = importe; // Ahora verifica la existencia del producto en InvServProveeCodigos para la asociacin JInvsServProveeCodigosSet pcod = new JInvsServProveeCodigosSet(request); pcod.m_Where = "ID_RFC = '" + p(rec.getRFC()) + "' and ID_Descripcion = '" + p(concepto.getProperty("descripcion")) + "' and ID_Moneda = '" + rec.getID_Moneda() + "'"; //System.out.println(pcod.m_Where); pcod.Open(); if (pcod.getNumRows() > 0) { JPublicInvServInvCatalogSetV2 cat = new JPublicInvServInvCatalogSetV2( request); if (!moddes.equals("GASTOS")) cat.m_Where = "Clave = '" + p(pcod.getAbsRow(0).getID_Prod()) + "' and ID_Tipo = 'P' and SeProduce = '0' and Status = 'V'"; else cat.m_Where = "Clave = '" + p(pcod.getAbsRow(0).getID_Prod()) + "' and ID_Tipo = 'G' and Status = 'V'"; //System.out.println(cat.getSQL()); cat.Open(); if (cat.getNumRows() > 0) { idprod = cat.getAbsRow(0).getClave(); descripcion = cat.getAbsRow(0).getDescripcion(); tipo = cat.getAbsRow(0).getID_Tipo(); //Aqui inicia los impuestos segun lo establecido en la entidad de compra y el catlogo ivapor = cat.getAbsRow(0).getIVA() ? rec.getIVAPorcentual() : 0.0F; iepspor = cat.getAbsRow(0).getImpIEPS(); ivaretpor = cat.getAbsRow(0).getImpIVARet(); isrretpor = cat.getAbsRow(0).getImpISRRet(); ivaimp = (ivapor != 0.0) ? (((importe - descuento) * ivapor) / 100.0F) : 0.0F; iepsimp = (iepspor != 0.0) ? (((importe - descuento) * iepspor) / 100.0F) : 0.0F; ivaretimp = (ivaretpor != 0.0) ? (((importe - descuento) * ivaretpor) / 100.0F) : 0.0F; isrretimp = (isrretpor != 0.0) ? (((importe - descuento) * isrretpor) / 100.0F) : 0.0F; } } //System.out.println(descripcion + " " + ivapor + " " + ivaimp + " " + totalPart); rec.agregaPartida(cantidad, unidad, idprod, idprod, descripcion, precio, importe, 0.00F, ivapor, iepspor, ivaretpor, isrretpor, 0.00F, ivaimp, iepsimp, ivaretimp, isrretimp, totalPart, obs, tipo); } UUIDs += compfactxml.getTFD().getProperty("UUID"); TotalUUIDs += JUtil.redondear( Float.parseFloat(compfactxml.getComprobante().getProperty("total")), 2); } /////////////////////////////////////////////////////////////////////////////////// else // Significa que debe Enlazar a una compra existente { ////////////////////////////////////////////////////////////////////////////////// UUIDs += compfactxml.getTFD().getProperty("UUID"); TotalUUIDs += JUtil.redondear( Float.parseFloat(compfactxml.getComprobante().getProperty("total")), 2); } /////////////////////////////////////// VP END /////////////////////////////////////////// } } else if (valoresParamCBBEXT != null) { tipoEnlace = "CBBEXT"; for (int u = 0; u < valoresParamCBBEXT.length; u++) { ///////////////////////////// VP INI ///////////////////////////////////////////// JCFDCompOtrSet compotr = new JCFDCompOtrSet(request); compotr.m_Where = "ID_CFD = '" + p(valoresParamCBBEXT[u].substring(7)) + "'"; compotr.Open(); //System.out.println("NUM: " + valoresParamUUID.length + " UUID: " + valoresParamUUID[u]); if (compotr.getNumRows() < 1 || !compotr.getAbsRow(0).getFSI_Tipo().equals("ENT") || compotr.getAbsRow(0).getFSI_ID() != Integer .parseInt(getSesion(request).getSesion(idmod).getEspecial())) { idmensaje = 3; mensaje += "ERROR: No se ha cargado el CBB o Factura extranjera de la compra, esta ya esta ligada a otra compra, o el CBB o Factura extranjera se cargo en otra entidad<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } //Verifica los tipos de cambio, Si son mas de un CBB o EXT, no deben tener distintos tipos de cambio if (u == 0) { try { TC = compotr.getAbsRow(0).getTC(); } catch (NumberFormatException e) { TC = 1.0F; } try { TCAnt = compotr.getAbsRow(0).getTC(); } catch (NumberFormatException e) { TCAnt = 1.0F; } } else { try { TC = compotr.getAbsRow(0).getTC(); } catch (NumberFormatException e) { TC = 1.0F; } } if (TC != TCAnt) { idmensaje = 3; mensaje = "ERROR: En mltiples enlaces, los tipos de cambio deben coincidir. Los gastos tienen distintos tipos de cambio"; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } UUIDs += compotr.getAbsRow(0).getUUID(); TotalUUIDs += JUtil.redondear(compotr.getAbsRow(0).getTotal(), 2); } } if (!EnlazarCompraExistente) { StringBuffer sb_mensaje = new StringBuffer(); rec.setUUID(UUIDs); rec.setTotalUUIDs(TotalUUIDs); idmensaje = rec.establecerConcordancia(request, sb_mensaje); rec.establecerResultados(); if ((rec.getTotal() - rec.getTotalUUIDs()) > 0.1 || (rec.getTotal() - rec.getTotalUUIDs()) < -0.1) { idmensaje = 3; sb_mensaje.append( "ERROR: El total en el, o los CFDIs no corresponden al Total calculado en el registro a partir de estos registros. No se puede agregar. DOC: " + rec.getTotal() + " XML, CBB o EXT: " + rec.getTotalUUIDs()); } getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString()); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta recepcion ya esta cancelada, no se puede enlazar el CFDI, CBB o EXT<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getStatus().equals("F") || SetMod.getAbsRow(0).getStatus().equals("N")) { idmensaje = 1; mensaje += "PRECAUCION: Esta recepcion ya tiene una compra asociada, no se puede enlazar el CFDI, CBB o EXT. Debes enlazarlo a la compra<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0 || SetMod.getAbsRow(0).getTFD() > 1) { idmensaje = 1; mensaje += "PRECAUCION: Este documento ya tiene CFDIs, CBBs o EXTs asociados. No puedes asociar al mismo documento<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 1) != JUtil .redondear(TotalUUIDs, 1)) { idmensaje = 3; mensaje = "ERROR: El total en el, o los CFDIs, CBBs o EXTs no corresponden al Total del registro. No se puede enlazar. DOC: " + JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 2) + " XML: " + JUtil.redondear(TotalUUIDs, 2); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_Proveedor() != 0 && tipoEnlace != "CBBEXT") { JProveeProveeMasSetV2 setpro = new JProveeProveeMasSetV2(request); setpro.m_Where = "ID_Tipo = 'PR' and ID_EntidadCompra = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Proveedor() + "'"; setpro.Open(); if (!setpro.getAbsRow(0).getRFC().equalsIgnoreCase(RFC_Emisor)) { idmensaje = 3; mensaje = "ERROR: El RFC del proveedor no corresponde al RFC del emisor en el CFDI. No se puede enlazar. DOC: " + setpro.getAbsRow(0).getRFC() + " XML: " + RFC_Emisor; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } } else if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta compra ya esta cancelada, no se puede enlazar el CFDI, CBB o EXT<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0 || SetMod.getAbsRow(0).getTFD() > 1) { idmensaje = 1; mensaje += "PRECAUCION: Este documento ya tiene CFDIs, CBBs o EXTs asociados. No puedes asociar al mismo documento<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 1) != JUtil .redondear(TotalUUIDs, 1)) { idmensaje = 3; mensaje = "ERROR: El total en el, o los CFDIs, CBBs o EXTs no corresponden al Total del registro. No se puede enlazar. DOC: " + JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 2) + " CE: " + JUtil.redondear(TotalUUIDs, 2); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_Proveedor() != 0 && tipoEnlace != "CBBEXT") { JProveeProveeMasSetV2 setpro = new JProveeProveeMasSetV2(request); setpro.m_Where = "ID_Tipo = 'PR' and ID_EntidadCompra = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Proveedor() + "'"; setpro.Open(); if (!setpro.getAbsRow(0).getRFC().equalsIgnoreCase(RFC_Emisor)) { idmensaje = 3; mensaje = "ERROR: El RFC del proveedor no corresponde al RFC del emisor en el CFDI. No se puede enlazar. DOC: " + setpro.getAbsRow(0).getRFC() + " CE: " + RFC_Emisor; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } } else if (moddes.equals("GASTOS")) { JComprasGastosSet SetMod = new JComprasGastosSet(request); SetMod.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este gasto ya esta cancelado, no se puede enlazar el CFDI, CBB o EXT<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0 || SetMod.getAbsRow(0).getTFD() > 1) { idmensaje = 1; mensaje += "PRECAUCION: Este documento ya tiene CFDIs, CBBs o EXTs asociados. No puedes asociar al mismo documento<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 1) != JUtil .redondear(TotalUUIDs, 1)) { idmensaje = 3; mensaje = "ERROR: El total en el, o los CFDIs, CBBs o EXTs no corresponden al Total del registro. No se puede enlazar. DOC: " + JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 2) + " CE: " + JUtil.redondear(TotalUUIDs, 2); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (JUtil.redondear(SetMod.getAbsRow(0).getTC(), 1) != JUtil .redondear(TCAnt, 1)) { idmensaje = 3; mensaje = "ERROR: El tipo de cambio del documento no coincide con el o los CFDI, CBB o Facturas extranjeras cargadas. No se puede enlazar. DOC: " + JUtil.redondear(SetMod.getAbsRow(0).getTC(), 2) + " CE: " + JUtil.redondear(TCAnt, 2); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (moddes.equals("DEVOLUCIONES")) { JComprasDevolucionesSet SetMod = new JComprasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolucion ya esta cancelada, no se puede enlazar el CFDI, CBB o EXT<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0 || SetMod.getAbsRow(0).getTFD() > 1) { idmensaje = 1; mensaje += "PRECAUCION: Este documento ya tiene CFDIs, CBBs o EXTs asociados. No puedes asociar al mismo documento<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 1) != JUtil .redondear(TotalUUIDs, 1)) { idmensaje = 3; mensaje = "ERROR: El total en el, o los CFDIs, CBBs o EXTs no corresponden al Total del registro. No se puede enlazar. DOC: " + JUtil.redondear(SetMod.getAbsRow(0).getTotal(), 2) + " CE: " + JUtil.redondear(TotalUUIDs, 2); getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_Proveedor() != 0 && tipoEnlace != "CBBEXT") { JProveeProveeMasSetV2 setpro = new JProveeProveeMasSetV2(request); setpro.m_Where = "ID_Tipo = 'PR' and ID_EntidadCompra = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Proveedor() + "'"; setpro.Open(); if (!setpro.getAbsRow(0).getRFC().equalsIgnoreCase(RFC_Emisor)) { idmensaje = 3; mensaje = "ERROR: El RFC del proveedor no corresponde al RFC del emisor en el CFDI. No se puede enlazar. DOC: " + setpro.getAbsRow(0).getRFC() + " XML: " + RFC_Emisor; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } } else // sale si no es recepcion, factura gasto o devolucion return; // Aqui asocia. Enlazar(request, response, moddes, idmod, idmod4, UUIDs, tipoEnlace); 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("AGR_PART")) { if (!moddes.equals("DEVOLUCIONES")) { if (VerificarParametrosPartida(request, response)) AgregarPartida(request, response); } else { idmensaje = 1; mensaje += "No se permite agregar partidas en devoluciones"; getSesion(request).setID_Mensaje(idmensaje, mensaje); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("ACTUALIZAR") || request.getParameter("subproceso").equals("AGR_PROVEE")) { AgregarRecursos(request, response); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("ENVIAR")) { if (AgregarRecursos(request, response) == -1) { HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); //rec.setReferencia(p(request.getParameter("referencia"))); if (moddes.equals("FACTURAS") || moddes.equals("GASTOS")) { if (request.getParameter("forma_pago").equals("contado")) { request.setAttribute("fsipg_tipo", "compras"); request.setAttribute("fsipg_proc", "retiro"); request.setAttribute("fsipg_total", rec.getTotal()); request.setAttribute("fsipg_ident", getSesion(request).getSesion(idmod).getEspecial()); if (VerificarParametros(request, response) && VerificarPagoMult(request, response)) { Agregar(request, response, moddes, setids, idmod, idmod4); return; } } else { if (VerificarParametros(request, response)) { request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); Agregar(request, response, moddes, setids, idmod, idmod4); return; } } } else if (moddes.equals("RECEPCIONES")) { if (VerificarParametros(request, response)) { request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); Agregar(request, response, moddes, setids, idmod, idmod4); return; } } else // sale si es devolucion u orden... Las devoluciones no se pueden enlazar desde cero, solo enlaces a devoluciones creadas previamente return; } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } } } else // Sale si no es FACTURA, DEVOLUCION O RECEPCION return; } else if (request.getParameter("proceso").equals("AGREGAR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod + "_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_AGREGAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // 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); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("comp_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (AgregarCabecero(request, response) == -1) { if (moddes.equals("FACTURAS") || moddes.equals("GASTOS")) { if (request.getParameter("forma_pago").equals("contado")) { HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); request.setAttribute("fsipg_tipo", "compras"); request.setAttribute("fsipg_proc", "retiro"); request.setAttribute("fsipg_total", rec.getTotal()); request.setAttribute("fsipg_ident", getSesion(request).getSesion(idmod).getEspecial()); if (VerificarParametros(request, response) && VerificarPagoMult(request, response)) { Agregar(request, response, moddes, setids, idmod, idmod4); return; } } else { if (VerificarParametros(request, response)) { // establece los atributos por default para compras de crdito request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); Agregar(request, response, moddes, setids, idmod, idmod4); return; } } } else { if (VerificarParametros(request, response)) { // establece los atributos por default para compras de crdito request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); Agregar(request, response, moddes, setids, idmod, idmod4); return; } } } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_PROVEE")) { AgregarCabecero(request, response); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_PART")) { if (AgregarCabecero(request, response) == -1) { if (VerificarParametrosPartida(request, response)) AgregarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("EDIT_PART")) { if (AgregarCabecero(request, response) == -1) { if (VerificarParametrosPartida(request, response)) EditarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabecero(request, response) == -1) { BorrarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("DATOS_IMPORTACION")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("COMP_FAC_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_FAC_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_FAC_AGREGAR", "CFAC||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // 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 { if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta compra ya esta cancelada, no se puede gestionar informacin de importacin<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JProveeProveeMasSetV2 pro = new JProveeProveeMasSetV2(request); pro.m_Where = "ID_Clave = '" + SetMod.getAbsRow(0).getID_Proveedor() + "'"; pro.Open(); if (SetMod.getAbsRow(0).getID_Proveedor() == 0 || SetMod.getAbsRow(0).getMoneda() == 1 || pro.getAbsRow(0).getPais().equals("MEX") || pro.getAbsRow(0).getPedimento().equals("--")) { idmensaje = 1; mensaje += "PRECAUCION: Este proveedor es nacional, o es un proveedor extranjero con el cual no manejamos importaciones definitivas, o en su defecto, la compra no fue realizada en moneda extranjera. No se puede gestionar informacin de importacin<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JComercioExteriorCabSet ext = new JComercioExteriorCabSet(request, "COMPRA"); ext.m_Where = "ID_VC = '" + p(request.getParameter("ID")) + "'"; ext.Open(); } else // sale si no es factura return; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg_datimp.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 { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (VerificarParametrosDatosImportacion(request, response)) { DatosImportacion(request, response); return; } irApag("/forsetiweb/compras/comp_fact_dlg_datimp.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("CARGAR_COMPRA")) { // 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", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (setids.getAbsRow(0).getFija()) { idmensaje = 3; mensaje += "ERROR: No se puede subir ningun CFDI porque esta entidad de compra o gasto est establecida como Fija<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("comp_fact_xml"); if (rec == null) { rec = new JFacturasXML(); ses.setAttribute("comp_fact_xml", rec); } else { rec = null; rec = new JFacturasXML(); ses.setAttribute("comp_fact_xml", rec); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFCompFactDlg&archivo_1=xml&archivo_2=pdf&proceso=CARGAR_COMPRA&subproceso=ENVIAR&moddes=" + moddes + "&idmod=" + idmod + "&idmod4=" + idmod4, request, response); return; } else if (request.getParameter("proceso").equals("CARGAR_OTROS")) { // 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", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (setids.getAbsRow(0).getFija()) { idmensaje = 3; mensaje += "ERROR: No se puede subir ningun otro Documento porque esta entidad de compra o gasto est establecida como Fija<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } Integer subir_archivos = new Integer(1); request.setAttribute("subir_otros", subir_archivos); HttpSession ses = request.getSession(true); JFacturasXML rec = (JFacturasXML) ses.getAttribute("comp_fact_xml"); if (rec == null) { rec = new JFacturasXML(); ses.setAttribute("comp_fact_xml", rec); } else { rec = null; rec = new JFacturasXML(); ses.setAttribute("comp_fact_xml", rec); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/subir_otros.jsp?verif=/servlet/CEFCompFactDlg&proceso=CARGAR_OTROS&subproceso=ENVIAR&moddes=" + moddes + "&idmod=" + idmod + "&idmod4=" + idmod4, request, response); return; } else if (request.getParameter("proceso").equals("XML_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod)) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta compra no tiene un enlace a un CFDI, 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, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; String destino = "FAC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".xml"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); idmensaje = 0; mensaje = "La compra factura se bajo satisfactoriamente"; return; } else if (moddes.equals("GASTOS")) { JComprasGastosSet SetMod = new JComprasGastosSet(request); SetMod.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este gasto no tiene un enlace a un CFDI, no hay nada que bajar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0) // Solo tiene un CFDI asociado { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; String destino = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".xml"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); } else // Tiene varios CFDI asociados { JCompGastosCFDSet uuids = new JCompGastosCFDSet(request); uuids.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; uuids.Open(); String nombres[] = new String[uuids.getNumRows()]; String destinos[] = new String[uuids.getNumRows()]; for (int i = 0; i < uuids.getNumRows(); i++) { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + uuids.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); nombres[i] = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; destinos[i] = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-" + (i + 1) + ".xml"; } JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-XMLs.zip"), nombres, destinos); } idmensaje = 0; mensaje = "La compra gasto se bajo satisfactoriamente"; return; } /*else if(moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if(SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisin no esta completamente sellada, 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,"COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; String destino = "REC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".xml"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); idmensaje = 0; mensaje = "La recepcin se bajo satisfactoriamente"; return; }*/ else if (moddes.equals("DEVOLUCIONES")) { JComprasDevolucionesSet SetMod = new JComprasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolucin no tiene un enlace a un CFDI, 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, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; String destino = "DSC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".xml"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); idmensaje = 0; mensaje = "La devolucion se bajo satisfactoriamente"; return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("PDF_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod)) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() < 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta compra no tiene una asociacin de CFDI, CBB o EXT, no hay nada que bajar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getTFD() == 3) //es factura electronica CFDI { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "FAC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); } else if (SetMod.getAbsRow(0).getTFD() == 4 || SetMod.getAbsRow(0).getTFD() == 5) //es CBB o EXT { JCFDCompOtrSet cfd = new JCFDCompOtrSet(request); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/OTRs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "FAC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); } idmensaje = 0; mensaje = "La compra gasto se bajo satisfactoriamente"; return; } else if (moddes.equals("GASTOS")) { JComprasGastosSet SetMod = new JComprasGastosSet(request); SetMod.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() < 3 || SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este gasto no tiene ninguna asociacin de CFDIs, CBBs o EXTs, no hay nada que bajar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getTFD() == 3) { if (SetMod.getAbsRow(0).getID_CFD() != 0) // Solo tiene un CFDI asociado { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); } else // Tiene varios CFDI asociados { JCompGastosCFDSet uuids = new JCompGastosCFDSet(request); uuids.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; uuids.Open(); String nombres[] = new String[uuids.getNumRows()]; String destinos[] = new String[uuids.getNumRows()]; for (int i = 0; i < uuids.getNumRows(); i++) { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + uuids.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); nombres[i] = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; destinos[i] = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-" + (i + 1) + ".pdf"; } JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-PDFs.zip"), nombres, destinos); } } else if (SetMod.getAbsRow(0).getTFD() == 4 || SetMod.getAbsRow(0).getTFD() == 5 || SetMod.getAbsRow(0).getTFD() == 6) { if (SetMod.getAbsRow(0).getID_CFD() != 0) // Solo tiene un CBB o EXT asociado { JCFDCompOtrSet cfd = new JCFDCompOtrSet(request); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/OTRs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); } else // Tiene varios CBB o Ext ASociados { JCompGastosCFDSet uuids = new JCompGastosCFDSet(request); uuids.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; uuids.Open(); String nombres[] = new String[uuids.getNumRows()]; String destinos[] = new String[uuids.getNumRows()]; for (int i = 0; i < uuids.getNumRows(); i++) { JCFDCompOtrSet cfd = new JCFDCompOtrSet(request); cfd.m_Where = "ID_CFD = '" + uuids.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); nombres[i] = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/OTRs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; destinos[i] = "GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-" + (i + 1) + ".pdf"; } JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("GAS-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + "-PDFs.zip"), nombres, destinos); } } idmensaje = 0; mensaje = "La compra gasto se bajo satisfactoriamente"; return; } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisión no está completamente sellada, 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, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "REC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); idmensaje = 0; mensaje = "La remisión se bajo satisfactoriamente"; return; } else if (moddes.equals("DEVOLUCIONES")) { JComprasDevolucionesSet SetMod = new JComprasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolucion no está completamente sellada, 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, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/comp/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; String destino = "DSC-" + SetMod.getAbsRow(0).getID_Entidad() + "-" + SetMod.getAbsRow(0).getNumero() + ".pdf"; JBajarArchivo fd = new JBajarArchivo(); fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino); idmensaje = 0; mensaje = "La devolucion se bajo satisfactoriamente"; return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CAMBIAR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod + "_CAMBIAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_CAMBIAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_CAMBIAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // 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 { if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya esta cancelado, no se puede cambiar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getStatus().equals("F") || SetMod.getAbsRow(0).getStatus().equals("N")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya tiene una factura asociada, no se puede cambiar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es orden return; HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("comp_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); } // Llena el pedido o cotizacion if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); // checa si se permite la rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } JComprasFactSetCab SetCab = new JComprasFactSetCab(request, request.getParameter("tipomov")); JComprasFactSetDet SetDet = new JComprasFactSetDet(request, request.getParameter("tipomov")); SetCab.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDet.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetCab.Open(); SetDet.Open(); rec.setMoneda(SetCab.getAbsRow(0).getMoneda()); rec.setNumero((int) SetCab.getAbsRow(0).getNumero()); rec.setColonia(SetCab.getAbsRow(0).getColonia()); if (SetCab.getAbsRow(0).getCondicion() == 0) rec.setForma_Pago("contado"); else if (SetCab.getAbsRow(0).getCondicion() == 1) rec.setForma_Pago("credito"); else rec.setForma_Pago("ninguno"); rec.setCP(SetCab.getAbsRow(0).getCP()); rec.setDescuento(SetCab.getAbsRow(0).getDescuento()); rec.setDireccion(SetCab.getAbsRow(0).getDireccion()); rec.setImporte(SetCab.getAbsRow(0).getImporte()); rec.setIVA(SetCab.getAbsRow(0).getIVA()); rec.setIEPS(SetCab.getAbsRow(0).getIEPS()); rec.setIVARet(SetCab.getAbsRow(0).getIVARet()); rec.setISRRet(SetCab.getAbsRow(0).getISRRet()); rec.setObs(SetCab.getAbsRow(0).getObs()); rec.setPoblacion(SetCab.getAbsRow(0).getPoblacion()); rec.setRFC(SetCab.getAbsRow(0).getRFC()); rec.setSubTotal(SetCab.getAbsRow(0).getSubTotal()); rec.setTels(SetCab.getAbsRow(0).getTel()); rec.setID_Bodega(SetCab.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(SetCab.getAbsRow(0).getNombre()); for (int i = 0; i < SetDet.getNumRows(); i++) { rec.agregaPartida(SetDet.getAbsRow(i).getCantidad(), SetDet.getAbsRow(i).getID_UnidadSalida(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getDescripcion(), SetDet.getAbsRow(i).getPrecio(), SetDet.getAbsRow(i).getImporte(), SetDet.getAbsRow(i).getDescuento(), SetDet.getAbsRow(i).getIVA(), SetDet.getAbsRow(i).getIEPS(), SetDet.getAbsRow(i).getIVARet(), SetDet.getAbsRow(i).getISRRet(), SetDet.getAbsRow(i).getImporteDesc(), SetDet.getAbsRow(i).getImporteIVA(), SetDet.getAbsRow(i).getImporteIEPS(), SetDet.getAbsRow(i).getImporteIVARet(), SetDet.getAbsRow(i).getImporteISRRet(), SetDet.getAbsRow(i).getTotalPart(), SetDet.getAbsRow(i).getObs(), SetDet.getAbsRow(i).getID_Tipo()); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_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 { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (AgregarCabecero(request, response) == -1) { if (VerificarParametros(request, response)) { // establece los atributos por default para compras de crdito request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); Cambiar(request, response, moddes, idmod, idmod4); return; } } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_CLIENT")) { AgregarCabecero(request, response); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_PART")) { if (AgregarCabecero(request, response) == -1) { if (VerificarParametrosPartida(request, response)) AgregarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("EDIT_PART")) { if (AgregarCabecero(request, response) == -1) { if (VerificarParametrosPartida(request, response)) EditarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabecero(request, response) == -1) { BorrarPartida(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("CONSULTAR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod)) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("comp_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); // Llena la factura if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } else if (moddes.equals("GASTOS")) { JComprasGastosSet SetMod = new JComprasGastosSet(request); SetMod.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } else if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } else if (moddes.equals("DEVOLUCIONES")) { JComprasDevolucionesSet SetMod = new JComprasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } JComprasFactSetCab SetCab = new JComprasFactSetCab(request, moddes); JComprasFactSetDet SetDet = new JComprasFactSetDet(request, moddes); SetCab.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDet.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetCab.Open(); SetDet.Open(); rec.setMoneda(SetCab.getAbsRow(0).getMoneda()); rec.setNumero((int) SetCab.getAbsRow(0).getNumero()); rec.setColonia(SetCab.getAbsRow(0).getColonia()); if (SetCab.getAbsRow(0).getCondicion() == 0) rec.setForma_Pago("contado"); else if (SetCab.getAbsRow(0).getCondicion() == 1) rec.setForma_Pago("credito"); else rec.setForma_Pago("ninguno"); rec.setCP(SetCab.getAbsRow(0).getCP()); rec.setDescuento(SetCab.getAbsRow(0).getDescuento()); rec.setDireccion(SetCab.getAbsRow(0).getDireccion()); rec.setImporte(SetCab.getAbsRow(0).getImporte()); rec.setIVA(SetCab.getAbsRow(0).getIVA()); rec.setIEPS(SetCab.getAbsRow(0).getIEPS()); rec.setIVARet(SetCab.getAbsRow(0).getIVARet()); rec.setISRRet(SetCab.getAbsRow(0).getISRRet()); rec.setObs(SetCab.getAbsRow(0).getObs()); rec.setPoblacion(SetCab.getAbsRow(0).getPoblacion()); rec.setRFC(SetCab.getAbsRow(0).getRFC()); rec.setSubTotal(SetCab.getAbsRow(0).getSubTotal()); rec.setTels(SetCab.getAbsRow(0).getTel()); rec.setID_Bodega(SetCab.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(SetCab.getAbsRow(0).getNombre()); for (int i = 0; i < SetDet.getNumRows(); i++) { rec.agregaPartida(SetDet.getAbsRow(i).getCantidad(), SetDet.getAbsRow(i).getID_UnidadSalida(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getDescripcion(), SetDet.getAbsRow(i).getPrecio(), SetDet.getAbsRow(i).getImporte(), SetDet.getAbsRow(i).getDescuento(), SetDet.getAbsRow(i).getIVA(), SetDet.getAbsRow(i).getIEPS(), SetDet.getAbsRow(i).getIVARet(), SetDet.getAbsRow(i).getISRRet(), SetDet.getAbsRow(i).getImporteDesc(), SetDet.getAbsRow(i).getImporteIVA(), SetDet.getAbsRow(i).getImporteIEPS(), SetDet.getAbsRow(i).getImporteIVARet(), SetDet.getAbsRow(i).getImporteISRRet(), SetDet.getAbsRow(i).getTotalPart(), SetDet.getAbsRow(i).getObs(), SetDet.getAbsRow(i).getID_Tipo()); } RDP("CEF", getSesion(request).getConBD(), "OK", getSesion(request).getID_Usuario(), idmod, idmod4 + "|" + request.getParameter("ID") + "|" + getSesion(request).getSesion(idmod).getEspecial() + "||", ""); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CANCELAR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod + "_CANCELAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_CANCELAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_CANCELAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta orden ya est cancelada <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (SetMod.getAbsRow(0).getStatus().equals("F")) { idmensaje = 1; mensaje += "PRECAUCION: Esta orden ya tiene una factura o recepcin asociada, no se puede cancelar. Primero debes cancelar la factura o recepcin para poder cancelar la orden de compra <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "ORDENES", idmod, idmod4); return; } } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta recepcin ya esta cancelada <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (SetMod.getAbsRow(0).getID_Factura() != 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta recepcin ya tiene una factura asociada. No se puede cancelar, primero cancela la factura para poder cancelar la recepcin <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (!setids.getAbsRow(0).getFijaCost() && setids.getAbsRow(0).getAuditarAlm() && !SetMod.getAbsRow(0).getStatus().equals("R")) { idmensaje = 1; mensaje += "PRECAUCION: Esta recepcin necesita estar revertida desde el módulo del almacén para poder cancelarla <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "RECEPCIONES", idmod, idmod4); return; } } if (moddes.equals("FACTURAS")) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); JComprasRecepSetV2 SetRec = new JComprasRecepSetV2(request); SetRec.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetRec.Open(); JComprasDevolucionesSet SetDev = new JComprasDevolucionesSet(request); SetDev.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDev.Open(); if (SetDev.getNumRows() > 0) { for (int i = 0; i < SetDev.getNumRows(); i++) { if (!SetDev.getAbsRow(i).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura tiene devoluciones asociadas sin cancelar. Primero debes cancelar las devoluciones asociadas para poder cancelar la factura <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } } if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura ya est cancelada <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (SetRec.getNumRows() == 0 && SetMod.getAbsRow(0).getID_PolCost() != -1 && !setids.getAbsRow(0).getFijaCost() && setids.getAbsRow(0).getAuditarAlm() && !SetMod.getAbsRow(0).getStatus().equals("R")) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura necesita estar revertida desde el mdulo del almacn para poder cancelarla <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "FACTURAS", idmod, idmod4); return; } } else if (moddes.equals("DEVOLUCIONES")) { JComprasDevolucionesSet SetMod = new JComprasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolución ya está cancelada <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (SetMod.getAbsRow(0).getDevReb().equals("DEV") && !setids.getAbsRow(0).getFijaCost() && setids.getAbsRow(0).getAuditarAlm() && !SetMod.getAbsRow(0).getStatus().equals("R")) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolución necesita estar revertida desde el mdulo del almacn para poder cancelarla <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "DEVOLUCIONES", idmod, idmod4); return; } } else if (moddes.equals("GASTOS")) { JComprasGastosSet SetMod = new JComprasGastosSet(request); SetMod.m_Where = "ID_Gasto = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura ya est cancelada <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "GASTOS", idmod, idmod4); 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("FACTURAR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("COMP_FAC_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_FAC_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_FAC_AGREGAR", "CFAC||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // Como el subproceso no es ENVIAR, abre la ventana del proceso de FACTURADO por primera vez { if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya esta cancelado, no se puede facturar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getStatus().equals("F") || SetMod.getAbsRow(0).getStatus().equals("N")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya tiene una remisión o factura asociada, no se puede facturar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisión ya esta cancelada, no se puede facturar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getStatus().equals("F") || SetMod.getAbsRow(0).getStatus().equals("R") || SetMod.getAbsRow(0).getFactura() != 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisión ya tiene una factura asociada o está revertida, no se puede facturar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es orden o recepcion return; HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "FACTURAS"); ses.setAttribute("comp_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "FACTURAS"); } // Llena la factura if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } else if (moddes.equals("RECEPCIONES")) { JComprasRecepSetV2 SetMod = new JComprasRecepSetV2(request); SetMod.m_Where = "ID_Recepcion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); if (SetMod.getAbsRow(0).getID_CFD() != 0) { JCFDCompSet cfd = new JCFDCompSet(request, "COMPRAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); rec.setUUID(cfd.getAbsRow(0).getUUID()); } } JComprasFactSetCab SetCab = new JComprasFactSetCab(request, request.getParameter("tipomov")); JComprasFactSetDet SetDet = new JComprasFactSetDet(request, request.getParameter("tipomov")); SetCab.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDet.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetCab.Open(); SetDet.Open(); rec.setMoneda(SetCab.getAbsRow(0).getMoneda()); rec.setNumero((int) SetCab.getAbsRow(0).getNumero()); rec.setColonia(SetCab.getAbsRow(0).getColonia()); if (SetCab.getAbsRow(0).getCondicion() == 0) rec.setForma_Pago("contado"); else if (SetCab.getAbsRow(0).getCondicion() == 1) rec.setForma_Pago("credito"); else rec.setForma_Pago("ninguno"); rec.setCP(SetCab.getAbsRow(0).getCP()); rec.setDescuento(SetCab.getAbsRow(0).getDescuento()); rec.setDireccion(SetCab.getAbsRow(0).getDireccion()); rec.setImporte(SetCab.getAbsRow(0).getImporte()); rec.setIVA(SetCab.getAbsRow(0).getIVA()); rec.setIEPS(SetCab.getAbsRow(0).getIEPS()); rec.setIVARet(SetCab.getAbsRow(0).getIVARet()); rec.setISRRet(SetCab.getAbsRow(0).getISRRet()); rec.setObs(SetCab.getAbsRow(0).getObs()); rec.setPoblacion(SetCab.getAbsRow(0).getPoblacion()); rec.setRFC(SetCab.getAbsRow(0).getRFC()); rec.setSubTotal(SetCab.getAbsRow(0).getSubTotal()); rec.setTels(SetCab.getAbsRow(0).getTel()); rec.setID_Bodega(SetCab.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(SetCab.getAbsRow(0).getNombre()); for (int i = 0; i < SetDet.getNumRows(); i++) { rec.agregaPartida(SetDet.getAbsRow(i).getCantidad(), SetDet.getAbsRow(i).getID_UnidadSalida(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getDescripcion(), SetDet.getAbsRow(i).getPrecio(), SetDet.getAbsRow(i).getImporte(), SetDet.getAbsRow(i).getDescuento(), SetDet.getAbsRow(i).getIVA(), SetDet.getAbsRow(i).getIEPS(), SetDet.getAbsRow(i).getIVARet(), SetDet.getAbsRow(i).getISRRet(), SetDet.getAbsRow(i).getImporteDesc(), SetDet.getAbsRow(i).getImporteIVA(), SetDet.getAbsRow(i).getImporteIEPS(), SetDet.getAbsRow(i).getImporteIVARet(), SetDet.getAbsRow(i).getImporteISRRet(), SetDet.getAbsRow(i).getTotalPart(), SetDet.getAbsRow(i).getObs(), SetDet.getAbsRow(i).getID_Tipo()); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg_generar.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 { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (moddes.equals("ORDENES") || moddes.equals("RECEPCIONES")) { if (request.getParameter("fecha") == null || request.getParameter("referencia") == null || request.getParameter("fecha").equals("")) { idmensaje = 1; mensaje += "PRECAUCION: Se debe enviar la fecha y referencia de la factura <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg_generar.jsp", request, response); return; } else if (request.getParameter("forma_pago").equals("contado")) { HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); request.setAttribute("fsipg_tipo", "compras"); request.setAttribute("fsipg_proc", "retiro"); request.setAttribute("fsipg_total", rec.getTotal()); request.setAttribute("fsipg_ident", getSesion(request).getSesion(idmod).getEspecial()); if (VerificarParametros(request, response) && VerificarPagoMult(request, response)) { AgregarDesde(request, response, "CFAC", "COMP_FAC", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/compras/comp_fact_dlg_generar.jsp", request, response); return; } else { if (VerificarParametros(request, response)) { // establece los atributos por default para compras de crdito request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); AgregarDesde(request, response, "CFAC", "COMP_FACT", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/compras/comp_fact_dlg_generar.jsp", request, response); return; } } } } } else if (request.getParameter("proceso").equals("RECIBIR_COMPRA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("COMP_REC_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_REC_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_REC_AGREGAR", "CREC||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // Como el subproceso no es ENVIAR, abre la ventana del proceso de FACTURADO por primera vez { if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya esta cancelado, no se puede remisionar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getStatus().equals("F") || SetMod.getAbsRow(0).getStatus().equals("N")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya tiene una factura o remisión asociada, no se puede a remisionar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es orden return; HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompFactSes) ses.getAttribute("comp_fact_dlg"); if (rec == null) { rec = new JCompFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "RECEPCIONES"); ses.setAttribute("comp_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "RECEPCIONES"); } // Llena la factura if (moddes.equals("ORDENES")) { JComprasOrdenesSet SetMod = new JComprasOrdenesSet(request); SetMod.m_Where = "ID_Orden = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setFechaEntrega(SetMod.getAbsRow(0).getFecha()); } JComprasFactSetCab SetCab = new JComprasFactSetCab(request, request.getParameter("tipomov")); JComprasFactSetDet SetDet = new JComprasFactSetDet(request, request.getParameter("tipomov")); SetCab.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDet.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetCab.Open(); SetDet.Open(); rec.setMoneda(SetCab.getAbsRow(0).getMoneda()); rec.setNumero((int) SetCab.getAbsRow(0).getNumero()); rec.setColonia(SetCab.getAbsRow(0).getColonia()); if (SetCab.getAbsRow(0).getCondicion() == 0) rec.setForma_Pago("contado"); else if (SetCab.getAbsRow(0).getCondicion() == 1) rec.setForma_Pago("credito"); else rec.setForma_Pago("ninguno"); rec.setCP(SetCab.getAbsRow(0).getCP()); rec.setDescuento(SetCab.getAbsRow(0).getDescuento()); rec.setDireccion(SetCab.getAbsRow(0).getDireccion()); rec.setImporte(SetCab.getAbsRow(0).getImporte()); rec.setIVA(SetCab.getAbsRow(0).getIVA()); rec.setIEPS(SetCab.getAbsRow(0).getIEPS()); rec.setIVARet(SetCab.getAbsRow(0).getIVARet()); rec.setISRRet(SetCab.getAbsRow(0).getISRRet()); rec.setObs(SetCab.getAbsRow(0).getObs()); rec.setPoblacion(SetCab.getAbsRow(0).getPoblacion()); rec.setRFC(SetCab.getAbsRow(0).getRFC()); rec.setSubTotal(SetCab.getAbsRow(0).getSubTotal()); rec.setTels(SetCab.getAbsRow(0).getTel()); rec.setID_Bodega(SetCab.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(SetCab.getAbsRow(0).getNombre()); for (int i = 0; i < SetDet.getNumRows(); i++) { rec.agregaPartida(SetDet.getAbsRow(i).getCantidad(), SetDet.getAbsRow(i).getID_UnidadSalida(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getDescripcion(), SetDet.getAbsRow(i).getPrecio(), SetDet.getAbsRow(i).getImporte(), SetDet.getAbsRow(i).getDescuento(), SetDet.getAbsRow(i).getIVA(), SetDet.getAbsRow(i).getIEPS(), SetDet.getAbsRow(i).getIVARet(), SetDet.getAbsRow(i).getISRRet(), SetDet.getAbsRow(i).getImporteDesc(), SetDet.getAbsRow(i).getImporteIVA(), SetDet.getAbsRow(i).getImporteIEPS(), SetDet.getAbsRow(i).getImporteIVARet(), SetDet.getAbsRow(i).getImporteISRRet(), SetDet.getAbsRow(i).getTotalPart(), SetDet.getAbsRow(i).getObs(), SetDet.getAbsRow(i).getID_Tipo()); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg_generar.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 { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (moddes.equals("ORDENES")) { if (request.getParameter("fecha") == null || request.getParameter("referencia") == null || request.getParameter("fecha").equals("")) { idmensaje = 1; mensaje += "PRECAUCION: Se debe enviar la fecha y referencia de la remisión <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg_generar.jsp", request, response); return; } else { if (VerificarParametros(request, response)) { AgregarDesde(request, response, "CREC", "COMP_REC", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/compras/comp_fact_dlg_generar.jsp", request, response); return; } } } } } else if (request.getParameter("proceso").equals("IMPRIMIR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod)) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod, idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("IMPRESION")) { StringBuffer bsmensaje = new StringBuffer(254); String SQLCab = "select * from "; String SQLDet = "select * from "; if (moddes.equals("FACTURAS")) { SQLCab += "view_compras_facturas_impcab where ID_Factura = "; SQLDet += "view_compras_facturas_impdet where ID_Factura = "; } else if (moddes.equals("ORDENES")) { SQLCab += "view_compras_ordenes_impcab where ID_Orden = "; SQLDet += "view_compras_ordenes_impdet where ID_Orden = "; } else if (moddes.equals("RECEPCIONES")) { SQLCab += "view_compras_recepciones_impcab where ID_Recepcion = "; SQLDet += "view_compras_recepciones_impdet where ID_Recepcion = "; } else if (moddes.equals("GASTOS")) { SQLCab += "view_compras_gastos_impcab where ID_Gasto = "; SQLDet += "view_compras_gastos_impdet where ID_Gasto = "; } else // DEVOLUCIONES { SQLCab += "view_compras_devoluciones_impcab where ID_Devolucion = "; SQLDet += "view_compras_devoluciones_impdet where ID_Devolucion = "; } SQLCab += request.getParameter("ID"); SQLDet += request.getParameter("ID"); idmensaje = Imprimir(SQLCab, SQLDet, request.getParameter("idformato"), bsmensaje, request, response); if (idmensaje != -1) { getSesion(request).setID_Mensaje(idmensaje, bsmensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // significa que debe llamar a la ventana de formatos de impresion { if (moddes.equals("FACTURAS")) { request.setAttribute("impresion", "CEFCompFactDlg"); request.setAttribute("tipo_imp", "COMP_FAC"); request.setAttribute("formato_default", setids.getAbsRow(0).getFormato()); } else if (moddes.equals("ORDENES")) { request.setAttribute("impresion", "CEFCompFactDlg"); request.setAttribute("tipo_imp", "COMP_ORD"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Orden()); } else if (moddes.equals("RECEPCIONES")) { request.setAttribute("impresion", "CEFCompFactDlg"); request.setAttribute("tipo_imp", "COMP_REC"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Recepcion()); } else if (moddes.equals("GASTOS")) { request.setAttribute("impresion", "CEFCompFactDlg"); request.setAttribute("tipo_imp", "COMP_GAS"); } else // DEVOLUCIONES { request.setAttribute("impresion", "CEFCompFactDlg"); request.setAttribute("tipo_imp", "COMP_DEV"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Devolucion()); } 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("DEVOLVER_COMPRA") || request.getParameter("proceso").equals("REBAJAR_COMPRA")) { // Revisa si tiene permisos if (request.getParameter("proceso").equals("DEVOLVER_COMPRA") && !getSesion(request).getPermiso("COMP_DEV_DEVOLVER")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_DEV_DEVOLVER"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_DEV_DEVOLVER", "CDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("proceso").equals("REBAJAR_COMPRA") && !getSesion(request).getPermiso("COMP_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "COMP_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "COMP_DEV_REBAJAR", "CDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") == null) // Como el subproceso no es ENVIAR ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez { if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { JComprasFactSet SetMod = new JComprasFactSet(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura ya esta cancelada, no se puede generar la devolucin <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("proceso").equals("DEVOLVER_COMPRA")) { if (SetMod.getAbsRow(0).getID_PolCost() == -1 || (!SetMod.getAbsRow(0).getStatus().equals("E") && setids.getAbsRow(0).getAuditarAlm())) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura debe estar guardada, revertida, o ser factura sin movimiento al almacn. Solo se pueden devolver las facturas emitidas con movimientos al almacn <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // Rebajar venta { if (SetMod.getAbsRow(0).getID_PolCost() != -1 && !SetMod.getAbsRow(0).getStatus().equals("E") && setids.getAbsRow(0).getAuditarAlm()) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura debe estar guardada o revertida. Solo se pueden rebajar las facturas emitidas <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompDevSes) ses.getAttribute("comp_dev_dlg"); if (rec == null) { rec = new JCompDevSes(request, getSesion(request).getSesion("COMP_FAC").getEspecial(), usuario, "DEVOLUCIONES"); ses.setAttribute("comp_dev_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion("COMP_FAC").getEspecial(), usuario, "DEVOLUCIONES"); rec.setClave((int) SetMod.getAbsRow(0).getID_Proveedor()); rec.setNombre(SetMod.getAbsRow(0).getProveedor()); rec.setID_Moneda(SetMod.getAbsRow(0).getMoneda()); rec.setTC(SetMod.getAbsRow(0).getTC()); rec.setTotal(SetMod.getAbsRow(0).getTotal()); rec.setReferencia(SetMod.getAbsRow(0).getReferencia()); rec.setID_Factura(SetMod.getAbsRow(0).getID_Factura()); if (request.getParameter("proceso").equals("DEVOLVER_COMPRA")) rec.setDevReb("DEV"); else rec.setDevReb("REB"); JComprasFactSetCab SetCab = new JComprasFactSetCab(request, "FACTURAS"); JComprasFactSetDet SetDet = new JComprasFactSetDet(request, "FACTURAS"/*"AGR_DEVOL"*/); SetCab.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetDet.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetCab.Open(); SetDet.Open(); rec.setMoneda(SetCab.getAbsRow(0).getMoneda()); rec.setNumero((int) SetCab.getAbsRow(0).getNumero()); rec.setColonia(SetCab.getAbsRow(0).getColonia()); if (SetCab.getAbsRow(0).getCondicion() == 0) rec.setForma_Pago("contado"); else if (SetCab.getAbsRow(0).getCondicion() == 1) rec.setForma_Pago("credito"); else rec.setForma_Pago("ninguno"); rec.setCP(SetCab.getAbsRow(0).getCP()); rec.setDescuento(SetCab.getAbsRow(0).getDescuento()); rec.setDireccion(SetCab.getAbsRow(0).getDireccion()); rec.setImporte(SetCab.getAbsRow(0).getImporte()); rec.setIVA(SetCab.getAbsRow(0).getIVA()); rec.setIEPS(SetCab.getAbsRow(0).getIEPS()); rec.setIVARet(SetCab.getAbsRow(0).getIVARet()); rec.setISRRet(SetCab.getAbsRow(0).getISRRet()); rec.setObs(SetCab.getAbsRow(0).getObs()); rec.setPoblacion(SetCab.getAbsRow(0).getPoblacion()); rec.setRFC(SetCab.getAbsRow(0).getRFC()); rec.setSubTotal(SetCab.getAbsRow(0).getSubTotal()); rec.setTels(SetCab.getAbsRow(0).getTel()); rec.setID_Bodega(SetCab.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(SetCab.getAbsRow(0).getNombre()); for (int i = 0; i < SetDet.getNumRows(); i++) { rec.agregaPartida(SetDet.getAbsRow(i).getCantidad(), SetDet.getAbsRow(i).getID_UnidadSalida(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getID_Prod(), SetDet.getAbsRow(i).getDescripcion(), SetDet.getAbsRow(i).getPrecio(), SetDet.getAbsRow(i).getImporte(), SetDet.getAbsRow(i).getDescuento(), SetDet.getAbsRow(i).getIVA(), SetDet.getAbsRow(i).getIEPS(), SetDet.getAbsRow(i).getIVARet(), SetDet.getAbsRow(i).getISRRet(), SetDet.getAbsRow(i).getImporteDesc(), SetDet.getAbsRow(i).getImporteIVA(), SetDet.getAbsRow(i).getImporteIEPS(), SetDet.getAbsRow(i).getImporteIVARet(), SetDet.getAbsRow(i).getImporteISRRet(), SetDet.getAbsRow(i).getTotalPart(), SetDet.getAbsRow(i).getObs(), SetDet.getAbsRow(i).getID_Tipo()); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_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 { // Solicitud de envio a procesar if (request.getParameter("subproceso").equals("ENVIAR")) { if (AgregarCabeceroDev(request, response) == -1) { HttpSession ses = request.getSession(true); JCompFactSes rec = (JCompDevSes) ses.getAttribute("comp_dev_dlg"); if (rec.getForma_Pago().equals("contado")) { request.setAttribute("fsipg_tipo", "compras"); request.setAttribute("fsipg_proc", "deposito"); request.setAttribute("fsipg_total", rec.getTotal()); request.setAttribute("fsipg_ident", getSesion(request).getSesion("COMP_FAC").getEspecial()); request.setAttribute("fsipg_id_concepto", 0); request.setAttribute("fsipg_desc_concepto", ""); if (VerificarParametrosDev(request, response) && VerificarPagoMult(request, response)) { AgregarDev(request, response, setids); return; } } else if (rec.getForma_Pago().equals("credito")) { request.setAttribute("fsipg_tipo", "compras"); if (VerificarParametrosDev(request, response) && VerificarSaldo(request, response)) { AgregarDev(request, response, setids); return; } } else //if(rec.getForma_Pago().equals("ninguno")) { request.setAttribute("fsipg_tipo", "compras"); if (VerificarParametrosDev(request, response)) { AgregarDev(request, response, setids); return; } } } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("EDIT_PART")) { if (AgregarCabeceroDev(request, response) == -1) { if (VerificarParametrosPartidaDev(request, response)) EditarPartidaDev(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabeceroDev(request, response) == -1) { BorrarPartidaDev(request, response); } irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } idmensaje = 1; mensaje += "PRECAUCION: No se pueden agregar partidas a una devolucion o rebaja. Intenta editar o borrar lo que no desees devolver o rebajar"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/compras/comp_fact_dlg.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("RASTREAR_MOVIMIENTO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso(idmod + "_CONSULTAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", idmod + "_CONSULTAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), idmod + "_CONSULTAR", idmod4 + "||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { JRastreo rastreo = new JRastreo(request, getSesion(request).getSesion(idmod) .generarTitulo(JUtil.Msj("CEF", idmod, "VISTA", "CONSULTAR_COMPRA", 3)), idmod4, request.getParameter("ID")); String rastreo_imp = "true"; request.setAttribute("rastreo_imp", rastreo_imp); // Ahora pone los atributos para el jsp request.setAttribute("rastreo", rastreo); RDP("CEF", getSesion(request).getConBD(), "OK", getSesion(request).getID_Usuario(), idmod + "_CONSULTAR", idmod4 + "|" + request.getParameter("ID") + "|" + getSesion(request).getSesion(idmod).getEspecial() + "||", ""); irApag("/forsetiweb/rastreo_imp.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"PRECAUCION: Solo se permite consultar una pliza a la vez <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); //" ERROR: Se debe enviar el identificador de la pliza que se quiere consultar<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { 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; } }