List of usage examples for javax.servlet.http HttpServletRequest getContentType
public String getContentType();
null
if the type is not known. From source file:com.mx.nibble.middleware.web.util.FileUploadOLD.java
public String execute() throws Exception { //ActionContext ac = invocation.getInvocationContext(); HttpServletResponse response = ServletActionContext.getResponse(); // MultiPartRequestWrapper multipartRequest = ((MultiPartRequestWrapper)ServletActionContext.getRequest()); HttpServletRequest multipartRequest = ServletActionContext.getRequest(); List<FileItem> items2 = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(multipartRequest); System.out.println("TAMAO ITEMS " + items2.size()); System.out.println("Check that we have a file upload request"); boolean isMultipart = ServletFileUpload.isMultipartContent(multipartRequest); System.out.println("isMultipart: " + isMultipart); String ourTempDirectory = "/opt/erp/import/obras/"; byte[] cr = { 13 }; byte[] lf = { 10 }; String CR = new String(cr); String LF = new String(lf); String CRLF = CR + LF;//from w ww . j a va 2 s .com System.out.println("Before a LF=chr(10)" + LF + "Before a CR=chr(13)" + CR + "Before a CRLF" + CRLF); //Initialization for chunk management. boolean bLastChunk = false; int numChunk = 0; //CAN BE OVERRIDEN BY THE postURL PARAMETER: if error=true is passed as a parameter on the URL boolean generateError = false; boolean generateWarning = false; boolean sendRequest = false; response.setContentType("text/plain"); java.util.Enumeration<String> headers = multipartRequest.getHeaderNames(); System.out.println("[parseRequest.jsp] ------------------------------ "); System.out.println("[parseRequest.jsp] Headers of the received request:"); while (headers.hasMoreElements()) { String header = headers.nextElement(); System.out.println("[parseRequest.jsp] " + header + ": " + multipartRequest.getHeader(header)); } System.out.println("[parseRequest.jsp] ------------------------------ "); try { System.out.println(" Get URL Parameters."); Enumeration paraNames = multipartRequest.getParameterNames(); System.out.println("[parseRequest.jsp] ------------------------------ "); System.out.println("[parseRequest.jsp] Parameters: "); String pname; String pvalue; while (paraNames.hasMoreElements()) { pname = (String) paraNames.nextElement(); pvalue = multipartRequest.getParameter(pname); System.out.println("[parseRequest.jsp] " + pname + " = " + pvalue); if (pname.equals("jufinal")) { System.out.println("pname.equals(\"jufinal\")"); bLastChunk = pvalue.equals("1"); } else if (pname.equals("jupart")) { System.out.println("pname.equals(\"jupart\")"); numChunk = Integer.parseInt(pvalue); } //For debug convenience, putting error=true as a URL parameter, will generate an error //in this response. if (pname.equals("error") && pvalue.equals("true")) { generateError = true; } //For debug convenience, putting warning=true as a URL parameter, will generate a warning //in this response. if (pname.equals("warning") && pvalue.equals("true")) { generateWarning = true; } //For debug convenience, putting readRequest=true as a URL parameter, will send back the request content //into the response of this page. if (pname.equals("sendRequest") && pvalue.equals("true")) { sendRequest = true; } } System.out.println("[parseRequest.jsp] ------------------------------ "); int ourMaxMemorySize = 10000000; int ourMaxRequestSize = 2000000000; /////////////////////////////////////////////////////////////////////////////////////////////////////// //The code below is directly taken from the jakarta fileupload common classes //All informations, and download, available here : http://jakarta.apache.org/commons/fileupload/ /////////////////////////////////////////////////////////////////////////////////////////////////////// // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(ourMaxMemorySize); factory.setRepository(new File(ourTempDirectory)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(ourMaxRequestSize); // Parse the request if (sendRequest) { //For debug only. Should be removed for production systems. System.out.println( "[parseRequest.jsp] ==========================================================================="); System.out.println("[parseRequest.jsp] Sending the received request content: "); InputStream is = multipartRequest.getInputStream(); int c; while ((c = is.read()) >= 0) { System.out.write(c); } //while is.close(); System.out.println( "[parseRequest.jsp] ==========================================================================="); } else if (!multipartRequest.getContentType().startsWith("multipart/form-data")) { System.out.println("[parseRequest.jsp] No parsing of uploaded file: content type is " + multipartRequest.getContentType()); } else { List /* FileItem */ items = upload.parseRequest(multipartRequest); // Process the uploaded items Iterator iter = items.iterator(); FileItem fileItem; File fout; System.out.println("[parseRequest.jsp] Let's read the sent data (" + items.size() + " items)"); while (iter.hasNext()) { fileItem = (FileItem) iter.next(); if (fileItem.isFormField()) { System.out.println("[parseRequest.jsp] (form field) " + fileItem.getFieldName() + " = " + fileItem.getString()); //If we receive the md5sum parameter, we've read finished to read the current file. It's not //a very good (end of file) signal. Will be better in the future ... probably ! //Let's put a separator, to make output easier to read. if (fileItem.getFieldName().equals("md5sum[]")) { System.out.println("[parseRequest.jsp] ------------------------------ "); } } else { //Ok, we've got a file. Let's process it. //Again, for all informations of what is exactly a FileItem, please //have a look to http://jakarta.apache.org/commons/fileupload/ // System.out.println("[parseRequest.jsp] FieldName: " + fileItem.getFieldName()); System.out.println("[parseRequest.jsp] File Name: " + fileItem.getName()); System.out.println("[parseRequest.jsp] ContentType: " + fileItem.getContentType()); System.out.println("[parseRequest.jsp] Size (Bytes): " + fileItem.getSize()); //If we are in chunk mode, we add ".partN" at the end of the file, where N is the chunk number. String uploadedFilename = fileItem.getName() + (numChunk > 0 ? ".part" + numChunk : ""); fout = new File(ourTempDirectory + (new File(uploadedFilename)).getName()); System.out.println("[parseRequest.jsp] File Out: " + fout.toString()); System.out.println(" write the file"); fileItem.write(fout); ////////////////////////////////////////////////////////////////////////////////////// System.out.println( " Chunk management: if it was the last chunk, let's recover the complete file"); System.out.println(" by concatenating all chunk parts."); // if (bLastChunk) { System.out.println( "[parseRequest.jsp] Last chunk received: let's rebuild the complete file (" + fileItem.getName() + ")"); //First: construct the final filename. FileInputStream fis; FileOutputStream fos = new FileOutputStream(ourTempDirectory + fileItem.getName()); int nbBytes; byte[] byteBuff = new byte[1024]; String filename; for (int i = 1; i <= numChunk; i += 1) { filename = fileItem.getName() + ".part" + i; System.out.println("[parseRequest.jsp] " + " Concatenating " + filename); fis = new FileInputStream(ourTempDirectory + filename); while ((nbBytes = fis.read(byteBuff)) >= 0) { //out.println("[parseRequest.jsp] " + " Nb bytes read: " + nbBytes); fos.write(byteBuff, 0, nbBytes); } fis.close(); } fos.close(); } // End of chunk management ////////////////////////////////////////////////////////////////////////////////////// fileItem.delete(); } } //while } if (generateWarning) { System.out.println("WARNING: just a warning message.\\nOn two lines!"); } System.out.println("[parseRequest.jsp] " + "Let's write a status, to finish the server response :"); //Let's wait a little, to simulate the server time to manage the file. Thread.sleep(500); //Do you want to test a successful upload, or the way the applet reacts to an error ? if (generateError) { System.out.println( "ERROR: this is a test error (forced in /wwwroot/pages/parseRequest.jsp).\\nHere is a second line!"); } else { System.out.println("SUCCESS"); //out.println(" <span class=\"cpg_user_message\">Il y eu une erreur lors de l'excution de la requte</span>"); } System.out.println("[parseRequest.jsp] " + "End of server treatment "); } catch (Exception e) { System.out.println(""); System.out.println("ERROR: Exception e = " + e.toString()); System.out.println(""); } return SUCCESS; }
From source file:com.mx.nibble.middleware.web.util.FileParse.java
public String execute(ActionInvocation invocation) throws Exception { Iterator iterator = parameters.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry mapEntry = (Map.Entry) iterator.next(); System.out.println("The key is: " + mapEntry.getKey() + ",value is :" + mapEntry.getValue()); }/*from ww w . j a v a 2 s .c o m*/ ActionContext ac = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); /** * This pages gives a sample of java upload management. It needs the commons FileUpload library, which can be found on apache.org. * * Note: * - putting error=true as a parameter on the URL will generate an error. Allows test of upload error management in the applet. * * * * * * */ // Directory to store all the uploaded files String ourTempDirectory = "/opt/erp/import/obras/"; byte[] cr = { 13 }; byte[] lf = { 10 }; String CR = new String(cr); String LF = new String(lf); String CRLF = CR + LF; System.out.println("Before a LF=chr(10)" + LF + "Before a CR=chr(13)" + CR + "Before a CRLF" + CRLF); //Initialization for chunk management. boolean bLastChunk = false; int numChunk = 0; //CAN BE OVERRIDEN BY THE postURL PARAMETER: if error=true is passed as a parameter on the URL boolean generateError = false; boolean generateWarning = false; boolean sendRequest = false; response.setContentType("text/plain"); java.util.Enumeration<String> headers = request.getHeaderNames(); System.out.println("[parseRequest.jsp] ------------------------------ "); System.out.println("[parseRequest.jsp] Headers of the received request:"); while (headers.hasMoreElements()) { String header = headers.nextElement(); System.out.println("[parseRequest.jsp] " + header + ": " + request.getHeader(header)); } System.out.println("[parseRequest.jsp] ------------------------------ "); try { // Get URL Parameters. Enumeration paraNames = request.getParameterNames(); System.out.println("[parseRequest.jsp] ------------------------------ "); System.out.println("[parseRequest.jsp] Parameters: "); String pname; String pvalue; while (paraNames.hasMoreElements()) { pname = (String) paraNames.nextElement(); pvalue = request.getParameter(pname); System.out.println("[parseRequest.jsp] " + pname + " = " + pvalue); if (pname.equals("jufinal")) { bLastChunk = pvalue.equals("1"); } else if (pname.equals("jupart")) { numChunk = Integer.parseInt(pvalue); } //For debug convenience, putting error=true as a URL parameter, will generate an error //in this response. if (pname.equals("error") && pvalue.equals("true")) { generateError = true; } //For debug convenience, putting warning=true as a URL parameter, will generate a warning //in this response. if (pname.equals("warning") && pvalue.equals("true")) { generateWarning = true; } //For debug convenience, putting readRequest=true as a URL parameter, will send back the request content //into the response of this page. if (pname.equals("sendRequest") && pvalue.equals("true")) { sendRequest = true; } } System.out.println("[parseRequest.jsp] ------------------------------ "); int ourMaxMemorySize = 10000000; int ourMaxRequestSize = 2000000000; /////////////////////////////////////////////////////////////////////////////////////////////////////// //The code below is directly taken from the jakarta fileupload common classes //All informations, and download, available here : http://jakarta.apache.org/commons/fileupload/ /////////////////////////////////////////////////////////////////////////////////////////////////////// // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(ourMaxMemorySize); factory.setRepository(new File(ourTempDirectory)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(ourMaxRequestSize); // Parse the request if (sendRequest) { //For debug only. Should be removed for production systems. System.out.println( "[parseRequest.jsp] ==========================================================================="); System.out.println("[parseRequest.jsp] Sending the received request content: "); InputStream is = request.getInputStream(); int c; while ((c = is.read()) >= 0) { out.write(c); } //while is.close(); System.out.println( "[parseRequest.jsp] ==========================================================================="); } else if (!request.getContentType().startsWith("multipart/form-data")) { System.out.println("[parseRequest.jsp] No parsing of uploaded file: content type is " + request.getContentType()); } else { List /* FileItem */ items = upload.parseRequest(request); // Process the uploaded items Iterator iter = items.iterator(); FileItem fileItem; File fout; System.out.println("[parseRequest.jsp] Let's read the sent data (" + items.size() + " items)"); while (iter.hasNext()) { fileItem = (FileItem) iter.next(); if (fileItem.isFormField()) { System.out.println("[parseRequest.jsp] (form field) " + fileItem.getFieldName() + " = " + fileItem.getString()); //If we receive the md5sum parameter, we've read finished to read the current file. It's not //a very good (end of file) signal. Will be better in the future ... probably ! //Let's put a separator, to make output easier to read. if (fileItem.getFieldName().equals("md5sum[]")) { System.out.println("[parseRequest.jsp] ------------------------------ "); } } else { //Ok, we've got a file. Let's process it. //Again, for all informations of what is exactly a FileItem, please //have a look to http://jakarta.apache.org/commons/fileupload/ // System.out.println("[parseRequest.jsp] FieldName: " + fileItem.getFieldName()); System.out.println("[parseRequest.jsp] File Name: " + fileItem.getName()); System.out.println("[parseRequest.jsp] ContentType: " + fileItem.getContentType()); System.out.println("[parseRequest.jsp] Size (Bytes): " + fileItem.getSize()); //If we are in chunk mode, we add ".partN" at the end of the file, where N is the chunk number. String uploadedFilename = fileItem.getName() + (numChunk > 0 ? ".part" + numChunk : ""); fout = new File(ourTempDirectory + (new File(uploadedFilename)).getName()); System.out.println("[parseRequest.jsp] File Out: " + fout.toString()); // write the file fileItem.write(fout); ////////////////////////////////////////////////////////////////////////////////////// //Chunk management: if it was the last chunk, let's recover the complete file //by concatenating all chunk parts. // if (bLastChunk) { System.out.println( "[parseRequest.jsp] Last chunk received: let's rebuild the complete file (" + fileItem.getName() + ")"); //First: construct the final filename. FileInputStream fis; FileOutputStream fos = new FileOutputStream(ourTempDirectory + fileItem.getName()); int nbBytes; byte[] byteBuff = new byte[1024]; String filename; for (int i = 1; i <= numChunk; i += 1) { filename = fileItem.getName() + ".part" + i; System.out.println("[parseRequest.jsp] " + " Concatenating " + filename); fis = new FileInputStream(ourTempDirectory + filename); while ((nbBytes = fis.read(byteBuff)) >= 0) { //System.out.println("[parseRequest.jsp] " + " Nb bytes read: " + nbBytes); fos.write(byteBuff, 0, nbBytes); } fis.close(); } fos.close(); } // End of chunk management ////////////////////////////////////////////////////////////////////////////////////// fileItem.delete(); } } //while } if (generateWarning) { System.out.println("WARNING: just a warning message.\\nOn two lines!"); } System.out.println("[parseRequest.jsp] " + "Let's write a status, to finish the server response :"); //Let's wait a little, to simulate the server time to manage the file. Thread.sleep(500); //Do you want to test a successful upload, or the way the applet reacts to an error ? if (generateError) { System.out.println( "ERROR: this is a test error (forced in /wwwroot/pages/parseRequest.jsp).\\nHere is a second line!"); } else { System.out.println("SUCCESS"); PrintWriter out = ServletActionContext.getResponse().getWriter(); out.write("SUCCESS"); //System.out.println(" <span class=\"cpg_user_message\">Il y eu une erreur lors de l'excution de la requte</span>"); } System.out.println("[parseRequest.jsp] " + "End of server treatment "); } catch (Exception e) { System.out.println(""); System.out.println("ERROR: Exception e = " + e.toString()); System.out.println(""); } return SUCCESS; }
From source file:org.springframework.extensions.webscripts.servlet.EndPointProxyServlet.java
@Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String uri = req.getRequestURI().substring(req.getContextPath().length()); // validate and return the endpoint id from the URI path - stripping the servlet context StringTokenizer t = new StringTokenizer(uri, "/"); String servletName = t.nextToken(); if (!t.hasMoreTokens()) { throw new IllegalArgumentException("Proxy URL did not specify endpoint id."); }/*from w ww. j a v a 2s. com*/ String endpointId = t.nextToken(); // rebuild rest of the URL for the proxy request StringBuilder buf = new StringBuilder(64); if (t.hasMoreTokens()) { do { buf.append('/'); buf.append(t.nextToken()); } while (t.hasMoreTokens()); } else { // allow for an empty uri to be passed in // this could therefore refer to the root of a service i.e. /webapp/axis buf.append('/'); } try { // retrieve the endpoint descriptor - do not allow proxy access to unsecure endpoints EndpointDescriptor descriptor = this.config.getEndpointDescriptor(endpointId); if (descriptor == null || descriptor.getUnsecure()) { // throw an exception if endpoint ID is does not exist or invalid throw new WebScriptsPlatformException("Invalid EndPoint Id: " + endpointId); } // special case for some Flash based apps - they might pass in the alf_ticket directly // as a parameter as POST requests do not correctly pickup the browser cookies and // therefore do not share the same session so we must apply the ticket directly String ticket = req.getParameter(PARAM_ALF_TICKET); // user id from session NOTE: @see org.alfresco.web.site.UserFactory Connector connector; String userId = (String) req.getSession().getAttribute(USER_ID); if (userId != null) { // build an authenticated connector - as we have a userId connector = this.connectorService.getConnector(endpointId, userId, req.getSession()); } else if (ticket != null || descriptor.getIdentity() == IdentityType.NONE || descriptor.getIdentity() == IdentityType.DECLARED || descriptor.getExternalAuth()) { // the authentication for this endpoint is either not required, declared in config or // managed "externally" (i.e. by a servlet filter such as NTLM) - this means we should // proceed on the assumption it will be dealt with later connector = this.connectorService.getConnector(endpointId, req.getSession()); } else if (descriptor.getBasicAuth()) { // check for HTTP authorisation request (i.e. RSS feeds etc.) String authorization = req.getHeader("Authorization"); if (authorization == null || authorization.length() == 0) { res.setStatus(HttpServletResponse.SC_UNAUTHORIZED, "No USER_ID found in session and requested endpoint requires authentication."); res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\""); // no further processing as authentication is required but not provided // the browser will now prompt the user for appropriate credentials return; } else { // user has provided authentication details with the request String[] authParts = authorization.split(" "); if (!authParts[0].equalsIgnoreCase("basic")) { throw new WebScriptsPlatformException( "Authorization '" + authParts[0] + "' not supported."); } String[] values = new String(Base64.decode(authParts[1])).split(":"); if (values.length == 2) { if (logger.isDebugEnabled()) logger.debug("Authenticating (BASIC HTTP) user " + values[0]); // assume username and password passed as the parts and // build an unauthenticated authentication connector then // apply the supplied credentials to it connector = this.connectorService.getConnector(endpointId, values[0], req.getSession()); Credentials credentials = new CredentialsImpl(endpointId); credentials.setProperty(Credentials.CREDENTIAL_USERNAME, values[0]); credentials.setProperty(Credentials.CREDENTIAL_PASSWORD, values[1]); connector.setCredentials(credentials); } else { throw new WebScriptsPlatformException("Authorization request did not provide user/pass."); } } } else { res.setStatus(HttpServletResponse.SC_UNAUTHORIZED, "No USER_ID found in session and requested endpoint requires authentication."); return; } // build a connector context, stores information about how we will drive the remote client ConnectorContext context; if (ticket == null) { context = new ConnectorContext(); } else { // special case for some Flash apps - see above Map<String, String> params = new HashMap<String, String>(1, 1.0f); params.put(PARAM_ALF_TICKET, ticket); context = new ConnectorContext(params, null); } context.setContentType(req.getContentType()); context.setMethod(HttpMethod.valueOf(req.getMethod().toUpperCase())); // build proxy URL referencing the endpoint String q = req.getQueryString(); String url = buf.toString() + (q != null && q.length() != 0 ? "?" + q : ""); if (logger.isDebugEnabled()) { logger.debug("EndPointProxyServlet preparing to proxy:"); logger.debug(" - endpointId: " + endpointId); logger.debug(" - userId: " + userId); logger.debug(" - connector: " + connector); logger.debug(" - method: " + context.getMethod()); logger.debug(" - url: " + url); } // call through using our connector to proxy Response response = connector.call(url, context, req, res); if (logger.isDebugEnabled()) { logger.debug("Return code: " + response.getStatus().getCode()); if (response.getStatus().getCode() == 500) { logger.debug("Error detected: " + response.getStatus().getMessage() + "\n" + response.getStatus().getException().toString()); } } } catch (Throwable err) { // TODO: trap and handle errors! throw new WebScriptsPlatformException("Error during endpoint proxy processing: " + err.getMessage(), err); } }
From source file:org.sakaiproject.dav.DavServlet.java
/** * Process a PUT request for the specified resource. * /* www . j av a2s. c om*/ * @param request * The servlet request we are processing * @param response * The servlet response we are creating * @exception IOException * if an input/output error occurs * @exception ServletException * if a servlet-specified error occurs */ @SuppressWarnings("unchecked") protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // Do not allow files which match patterns specified in properties if (!isFileNameAllowed(req)) { resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } if (isLocked(req)) { resp.sendError(SakaidavStatus.SC_LOCKED); return; } String path = getRelativePathSAKAI(req); if (prohibited(path) || (path.toUpperCase().startsWith("/WEB-INF")) || (path.toUpperCase().startsWith("/META-INF"))) { resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } // Looking for a Content-Range header if (req.getHeader("Content-Range") != null) { // No content range header is supported resp.sendError(SakaidavStatus.SC_NOT_IMPLEMENTED); } String name = justName(path); // Database max for id field is 255. If we allow longer, odd things happen if (path.length() > 254) { resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } if ((name.toUpperCase().startsWith("/WEB-INF")) || (name.toUpperCase().startsWith("/META-INF"))) { resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } // Don't delete the resource and add it again // Update the resource String contentType = ""; InputStream inputStream = req.getInputStream(); contentType = req.getContentType(); // For MS office, ignore the supplied content type if we can figure out one from file type // they send text/xml for doc and docx files if (contentType != null) { UsageSession session = UsageSessionService.getSession(); String agent = null; if (session != null) agent = session.getUserAgent(); if (agent != null && agent.startsWith("Microsoft Office Core Storage Infrastructure")) { String fileContentType = getServletContext().getMimeType(path); if (fileContentType != null) { contentType = fileContentType; } } } if (M_log.isDebugEnabled()) M_log.debug(" req.contentType() =" + contentType); if (contentType == null) { contentType = getServletContext().getMimeType(path); if (M_log.isDebugEnabled()) M_log.debug("Lookup contentType =" + contentType); } if (contentType == null) { if (M_log.isDebugEnabled()) M_log.debug("Unable to determine contentType"); contentType = ""; // Still cannot figure it out } try { ContentResourceEdit edit; boolean newfile = false; String resourcePath = adjustId(path); // Since editResource doesn't throw IdUnusedException correctly, try first with getResource try { contentHostingService.getResource(resourcePath); } catch (IdUnusedException e) { newfile = true; } if (newfile) { edit = contentHostingService.addResource(resourcePath); final ResourcePropertiesEdit p = edit.getPropertiesEdit(); p.addProperty(ResourceProperties.PROP_DISPLAY_NAME, name); User user = UserDirectoryService.getCurrentUser(); final TimeBreakdown timeBreakdown = TimeService.newTime().breakdownLocal(); p.addProperty(ResourceProperties.PROP_COPYRIGHT, "copyright (c)" + " " + timeBreakdown.getYear() + ", " + user.getDisplayName() + ". All Rights Reserved. "); } else { edit = contentHostingService.editResource(resourcePath); contentType = edit.getContentType(); } edit.setContentType(contentType); edit.setContent(inputStream); // commit the change contentHostingService.commitResource(edit, NotificationService.NOTI_NONE); } catch (IdUsedException e) { // Should not happen because we deleted above (unless two requests at same time) M_log.warn("SAKAIDavServlet.doPut() IdUsedException:" + e.getMessage()); resp.sendError(HttpServletResponse.SC_CONFLICT); return; } catch (IdInvalidException e) { M_log.warn("SAKAIDavServlet.doPut() IdInvalidException:" + e.getMessage()); resp.sendError(HttpServletResponse.SC_CONFLICT); return; } catch (PermissionException e) { // Normal resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } catch (OverQuotaException e) { // Normal %%% what's the proper response for over-quota? resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } catch (InconsistentException e) { M_log.warn("SAKAIDavServlet.doPut() InconsistentException:" + e.getMessage()); resp.sendError(HttpServletResponse.SC_CONFLICT); return; } catch (ServerOverloadException e) { M_log.warn("SAKAIDavServlet.doPut() ServerOverloadException:" + e.getMessage()); resp.setStatus(SakaidavStatus.SC_SERVICE_UNAVAILABLE); return; } catch (InUseException e) { resp.sendError(SakaidavStatus.SC_FORBIDDEN); return; } catch (TypeException e) { M_log.warn("SAKAIDavServlet.doPut() TypeException:" + e.getMessage()); resp.sendError(HttpServletResponse.SC_CONFLICT); return; } catch (IdUnusedException inconsistent) { M_log.error( "SAKAIDavServlet.doPut() Inconsistently got IdUnusedException after checking resource exists: " + inconsistent.getMessage()); resp.sendError(HttpServletResponse.SC_FORBIDDEN); return; } resp.setStatus(HttpServletResponse.SC_CREATED); // Removing any lock-null resource which would be present lockNullResources.remove(path); }
From source file:org.purl.sword.server.DepositServlet.java
/** * Process a post request.//www.j av a 2 s. c om */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Create the Deposit request Deposit d = new Deposit(); Date date = new Date(); log.debug("Starting deposit processing at " + date.toString() + " by " + request.getRemoteAddr()); // Are there any authentication details? String usernamePassword = getUsernamePassword(request); if ((usernamePassword != null) && (!usernamePassword.equals(""))) { int p = usernamePassword.indexOf(':'); if (p != -1) { d.setUsername(usernamePassword.substring(0, p)); d.setPassword(usernamePassword.substring(p + 1)); } } else if (authenticateWithBasic()) { String s = "Basic realm=\"SWORD\""; response.setHeader("WWW-Authenticate", s); response.setStatus(401); return; } // Set up some variables String filename = null; // Do the processing try { // Write the file to the temp directory filename = tempDirectory + "SWORD-" + request.getRemoteAddr() + "-" + counter.addAndGet(1); log.debug("Package temporarily stored as: " + filename); InputStream inputstream = request.getInputStream(); OutputStream outputstream = new FileOutputStream(new File(filename)); try { byte[] buf = new byte[1024]; int len; while ((len = inputstream.read(buf)) > 0) { outputstream.write(buf, 0, len); } } finally { inputstream.close(); outputstream.close(); } // Check the size is OK File file = new File(filename); long fLength = file.length() / 1024; if ((maxUploadSize != -1) && (fLength > maxUploadSize)) { this.makeErrorDocument(ErrorCodes.MAX_UPLOAD_SIZE_EXCEEDED, HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE, "The uploaded file exceeded the maximum file size this server will accept (the file is " + fLength + "kB but the server will only accept files as large as " + maxUploadSize + "kB)", request, response); return; } // Check the MD5 hash String receivedMD5 = ChecksumUtils.generateMD5(filename); log.debug("Received filechecksum: " + receivedMD5); d.setMd5(receivedMD5); String md5 = request.getHeader("Content-MD5"); log.debug("Received file checksum header: " + md5); if ((md5 != null) && (!md5.equals(receivedMD5))) { // Return an error document this.makeErrorDocument(ErrorCodes.ERROR_CHECKSUM_MISMATCH, HttpServletResponse.SC_PRECONDITION_FAILED, "The received MD5 checksum for the deposited file did not match the checksum sent by the deposit client", request, response); log.debug("Bad MD5 for file. Aborting with appropriate error message"); return; } else { // Set the file to be deposited d.setFile(file); // Set the X-On-Behalf-Of header String onBehalfOf = request.getHeader(HttpHeaders.X_ON_BEHALF_OF.toString()); if ((onBehalfOf != null) && (onBehalfOf.equals("reject"))) { // user name is "reject", so throw a not know error to allow the client to be tested throw new SWORDErrorException(ErrorCodes.TARGET_OWNER_UKNOWN, "unknown user \"reject\""); } else { d.setOnBehalfOf(onBehalfOf); } // Set the X-Packaging header d.setPackaging(request.getHeader(HttpHeaders.X_PACKAGING)); // Set the X-No-Op header String noop = request.getHeader(HttpHeaders.X_NO_OP); log.error("X_NO_OP value is " + noop); if ((noop != null) && (noop.equals("true"))) { d.setNoOp(true); } else if ((noop != null) && (noop.equals("false"))) { d.setNoOp(false); } else if (noop == null) { d.setNoOp(false); } else { throw new SWORDErrorException(ErrorCodes.ERROR_BAD_REQUEST, "Bad no-op"); } // Set the X-Verbose header String verbose = request.getHeader(HttpHeaders.X_VERBOSE); if ((verbose != null) && (verbose.equals("true"))) { d.setVerbose(true); } else if ((verbose != null) && (verbose.equals("false"))) { d.setVerbose(false); } else if (verbose == null) { d.setVerbose(false); } else { throw new SWORDErrorException(ErrorCodes.ERROR_BAD_REQUEST, "Bad verbose"); } // Set the slug String slug = request.getHeader(HttpHeaders.SLUG); if (slug != null) { d.setSlug(slug); } // Set the content disposition d.setContentDisposition(request.getHeader(HttpHeaders.CONTENT_DISPOSITION)); // Set the IP address d.setIPAddress(request.getRemoteAddr()); // Set the deposit location d.setLocation(getUrl(request)); // Set the content type d.setContentType(request.getContentType()); // Set the content length String cl = request.getHeader(HttpHeaders.CONTENT_LENGTH); if ((cl != null) && (!cl.equals(""))) { d.setContentLength(Integer.parseInt(cl)); } // Get the DepositResponse DepositResponse dr = myRepository.doDeposit(d); // Echo back the user agent if (request.getHeader(HttpHeaders.USER_AGENT.toString()) != null) { dr.getEntry().setUserAgent(request.getHeader(HttpHeaders.USER_AGENT.toString())); } // Echo back the packaging format if (request.getHeader(HttpHeaders.X_PACKAGING.toString()) != null) { dr.getEntry().setPackaging(request.getHeader(HttpHeaders.X_PACKAGING.toString())); } // Print out the Deposit Response response.setStatus(dr.getHttpResponse()); if ((dr.getLocation() != null) && (!dr.getLocation().equals(""))) { response.setHeader("Location", dr.getLocation()); } response.setContentType("application/atom+xml; charset=UTF-8"); PrintWriter out = response.getWriter(); out.write(dr.marshall()); out.flush(); } } catch (SWORDAuthenticationException sae) { // Ask for credentials again if (authN.equals("Basic")) { String s = "Basic realm=\"SWORD\""; response.setHeader("WWW-Authenticate", s); response.setStatus(401); } } catch (SWORDErrorException see) { // Get the details and send the right SWORD error document log.error(see.toString()); this.makeErrorDocument(see.getErrorURI(), see.getStatus(), see.getDescription(), request, response); return; } catch (SWORDException se) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); log.error(se.toString()); } catch (NoSuchAlgorithmException nsae) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); log.error(nsae.toString()); } finally { // Try deleting the temp file if (filename != null) { File f = new File(filename); if (f != null && !f.delete()) { log.error("Unable to delete file: " + filename); } } } }
From source file:com.mx.nibble.middleware.web.util.FileUpload.java
public void performTask(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) { /**//from w w w .jav a2 s.com * This pages gives a sample of java upload management. It needs the commons FileUpload library, which can be found on apache.org. * * Note: * - putting error=true as a parameter on the URL will generate an error. Allows test of upload error management in the applet. * * * * * * */ logger.debug(" Directory to store all the uploaded files"); String ourTempDirectory = "/opt/erp/import/obras/"; try { out = response.getWriter(); } catch (Exception e) { e.printStackTrace(); } byte[] cr = { 13 }; byte[] lf = { 10 }; String CR = new String(cr); String LF = new String(lf); String CRLF = CR + LF; out.println("Before a LF=chr(10)" + LF + "Before a CR=chr(13)" + CR + "Before a CRLF" + CRLF); logger.debug("Initialization for chunk management."); boolean bLastChunk = false; int numChunk = 0; logger.debug( "CAN BE OVERRIDEN BY THE postURL PARAMETER: if error=true is passed as a parameter on the URL"); boolean generateError = false; boolean generateWarning = false; boolean sendRequest = false; response.setContentType("text/plain"); java.util.Enumeration<String> headers = request.getHeaderNames(); out.println("[parseRequest.jsp] ------------------------------ "); out.println("[parseRequest.jsp] Headers of the received request:"); logger.debug("[parseRequest.jsp] Headers of the received request:"); while (headers.hasMoreElements()) { String header = headers.nextElement(); out.println("[parseRequest.jsp] " + header + ": " + request.getHeader(header)); logger.debug("[parseRequest.jsp] " + header + ": " + request.getHeader(header)); } out.println("[parseRequest.jsp] ------------------------------ "); try { logger.debug(" Get URL Parameters."); Enumeration paraNames = request.getParameterNames(); out.println("[parseRequest.jsp] ------------------------------ "); out.println("[parseRequest.jsp] Parameters: "); logger.debug("[parseRequest.jsp] Parameters: "); String pname; String pvalue; while (paraNames.hasMoreElements()) { pname = (String) paraNames.nextElement(); pvalue = request.getParameter(pname); out.println("[parseRequest.jsp] " + pname + " = " + pvalue); logger.debug("[parseRequest.jsp] " + pname + " = " + pvalue); if (pname.equals("jufinal")) { bLastChunk = pvalue.equals("1"); } else if (pname.equals("jupart")) { numChunk = Integer.parseInt(pvalue); } if (pname.equals("error") && pvalue.equals("true")) { generateError = true; logger.debug( "For debug convenience, putting error=true as a URL parameter, will generate an error in this response."); } if (pname.equals("warning") && pvalue.equals("true")) { generateWarning = true; logger.debug( "For debug convenience, putting warning=true as a URL parameter, will generate a warning in this response."); } if (pname.equals("sendRequest") && pvalue.equals("true")) { sendRequest = true; logger.debug( "For debug convenience, putting readRequest=true as a URL parameter, will send back the request content into the response of this page."); } } out.println("[parseRequest.jsp] ------------------------------ "); int ourMaxMemorySize = 10000000; int ourMaxRequestSize = 2000000000; /////////////////////////////////////////////////////////////////////////////////////////////////////// //The code below is directly taken from the jakarta fileupload common classes //All informations, and download, available here : http://jakarta.apache.org/commons/fileupload/ /////////////////////////////////////////////////////////////////////////////////////////////////////// logger.debug(" Create a factory for disk-based file items"); DiskFileItemFactory factory = new DiskFileItemFactory(); logger.debug(" Set factory constraints"); factory.setSizeThreshold(ourMaxMemorySize); logger.debug("ourTempDirectory" + ourTempDirectory); factory.setRepository(new File(ourTempDirectory)); logger.debug(" Create a new file upload handler"); ServletFileUpload upload = new ServletFileUpload(factory); logger.debug(" Set overall request size constraint"); upload.setSizeMax(ourMaxRequestSize); logger.debug(" Parse the request"); if (sendRequest) { logger.debug("For debug only. Should be removed for production systems. "); out.println( "[parseRequest.jsp] ==========================================================================="); out.println("[parseRequest.jsp] Sending the received request content: "); logger.debug("[parseRequest.jsp] Sending the received request content: "); InputStream is = request.getInputStream(); int c; while ((c = is.read()) >= 0) { out.write(c); } logger.debug("while"); is.close(); out.println( "[parseRequest.jsp] ==========================================================================="); } else if (!request.getContentType().startsWith("multipart/form-data")) { out.println("[parseRequest.jsp] No parsing of uploaded file: content type is " + request.getContentType()); } else { List /* FileItem */ items = upload.parseRequest(request); logger.debug(" Process the uploaded items" + items.size()); Iterator iter = items.iterator(); FileItem fileItem; File fout; out.println("[parseRequest.jsp] Let's read the sent data (" + items.size() + " items)"); while (iter.hasNext()) { fileItem = (FileItem) iter.next(); if (fileItem.isFormField()) { out.println("[parseRequest.jsp] (form field) " + fileItem.getFieldName() + " = " + fileItem.getString()); logger.debug( "If we receive the md5sum parameter, we've read finished to read the current file. It's not"); logger.debug( "a very good (end of file) signal. Will be better in the future ... probably !"); logger.debug("Let's put a separator, to make output easier to read."); if (fileItem.getFieldName().equals("md5sum[]")) { out.println("[parseRequest.jsp] ------------------------------ "); } } else { logger.debug("Ok, we've got a file. Let's process it."); logger.debug("Again, for all informations of what is exactly a FileItem, please"); logger.debug("have a look to http://jakarta.apache.org/commons/fileupload/"); out.println("[parseRequest.jsp] FieldName: " + fileItem.getFieldName()); out.println("[parseRequest.jsp] File Name: " + fileItem.getName()); out.println("[parseRequest.jsp] ContentType: " + fileItem.getContentType()); out.println("[parseRequest.jsp] Size (Bytes): " + fileItem.getSize()); logger.debug( "If we are in chunk mode, we add .partN at the end of the file, where N is the chunk number."); String uploadedFilename = fileItem.getName() + (numChunk > 0 ? ".part" + numChunk : ""); fout = new File(ourTempDirectory + (new File(uploadedFilename)).getName()); out.println("[parseRequest.jsp] File Out: " + fout.toString()); logger.debug(" write the file"); fileItem.write(fout); // logger.debug("Chunk management: if it was the last chunk, let's recover the complete file"); logger.debug("by concatenating all chunk parts."); logger.debug(""); if (bLastChunk) { out.println("[parseRequest.jsp] Last chunk received: let's rebuild the complete file (" + fileItem.getName() + ")"); logger.debug("First: construct the final filename."); FileInputStream fis; FileOutputStream fos = new FileOutputStream(ourTempDirectory + fileItem.getName()); int nbBytes; byte[] byteBuff = new byte[1024]; String filename; for (int i = 1; i <= numChunk; i += 1) { filename = fileItem.getName() + ".part" + i; out.println("[parseRequest.jsp] " + " Concatenating " + filename); fis = new FileInputStream(ourTempDirectory + filename); while ((nbBytes = fis.read(byteBuff)) >= 0) { //out.println("[parseRequest.jsp] " + " Nb bytes read: " + nbBytes); fos.write(byteBuff, 0, nbBytes); } fis.close(); } fos.close(); } logger.debug(" End of chunk management"); // fileItem.delete(); } } logger.debug("while"); } if (generateWarning) { out.println("WARNING: just a warning message.\\nOn two lines!"); } out.println("[parseRequest.jsp] " + "Let's write a status, to finish the server response :"); logger.debug("Let's wait a little, to simulate the server time to manage the file."); Thread.sleep(500); logger.debug("Do you want to test a successful upload, or the way the applet reacts to an error ?"); if (generateError) { out.println( "ERROR: this is a test error (forced in /wwwroot/pages/parseRequest.jsp).\\nHere is a second line!"); } else { out.println("SUCCESS"); logger.debug(""); } out.println("[parseRequest.jsp] " + "End of server treatment "); } catch (Exception e) { out.println(""); out.println("ERROR: Exception e = " + e.toString()); out.println(""); } }
From source file:nl.nn.adapterframework.http.rest.ApiListenerServlet.java
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /**/* ww w .j av a 2 s . c o m*/ * Initiate and populate messageContext */ PipeLineSessionBase messageContext = new PipeLineSessionBase(); messageContext.put(IPipeLineSession.HTTP_REQUEST_KEY, request); messageContext.put(IPipeLineSession.HTTP_RESPONSE_KEY, response); messageContext.put(IPipeLineSession.SERVLET_CONTEXT_KEY, getServletContext()); messageContext.setSecurityHandler(new HttpSecurityHandler(request)); try { String uri = request.getPathInfo(); String method = request.getMethod().toUpperCase(); log.trace("ApiListenerServlet dispatching uri [" + uri + "] and method [" + method + "]"); if (uri == null) { response.setStatus(400); log.warn("Aborting request with status [400], empty uri"); return; } if (uri.startsWith("/")) uri = uri.substring(1); if (uri.endsWith("/")) uri = uri.substring(0, uri.length() - 1); ApiDispatchConfig config = dispatcher.findConfigForUri(uri); if (config == null) { response.setStatus(404); log.trace("Aborting request with status [404], no ApiListener configured for [" + uri + "]"); return; } /** * Handle Cross-Origin Resource Sharing * TODO make this work behind loadbalancers/reverse proxies * TODO check if request ip/origin header matches allowOrigin property */ String origin = request.getHeader("Origin"); if (method.equals("OPTIONS") || origin != null) { response.setHeader("Access-Control-Allow-Origin", CorsAllowOrigin); String headers = request.getHeader("Access-Control-Request-Headers"); if (headers != null) response.setHeader("Access-Control-Allow-Headers", headers); response.setHeader("Access-Control-Expose-Headers", CorsExposeHeaders); StringBuilder methods = new StringBuilder(); for (String mtd : config.getMethods()) { methods.append(", ").append(mtd); } response.setHeader("Access-Control-Allow-Methods", methods.toString()); //Only cut off OPTIONS (aka preflight) requests if (method.equals("OPTIONS")) { response.setStatus(200); log.trace("Aborting preflight request with status [200], method [" + method + "]"); return; } } /** * Get serviceClient */ ApiListener listener = config.getApiListener(method); if (listener == null) { response.setStatus(405); log.trace("Aborting request with status [405], method [" + method + "] not allowed"); return; } log.trace("ApiListenerServlet calling service [" + listener.getName() + "]"); /** * Check authentication */ ApiPrincipal userPrincipal = null; if (listener.getAuthenticationMethod() != null) { String authorizationToken = null; Cookie authorizationCookie = null; if (listener.getAuthenticationMethod().equals("COOKIE")) { Cookie[] cookies = request.getCookies(); for (Cookie cookie : cookies) { if (cookie.getName().equals("authenticationToken")) { authorizationToken = cookie.getValue(); authorizationCookie = cookie; authorizationCookie.setPath("/"); } } } else if (listener.getAuthenticationMethod().equals("HEADER")) { authorizationToken = request.getHeader("Authorization"); } if (authorizationToken != null && cache.containsKey(authorizationToken)) userPrincipal = (ApiPrincipal) cache.get(authorizationToken); if (userPrincipal == null || !userPrincipal.isLoggedIn()) { cache.remove(authorizationToken); if (authorizationCookie != null) { authorizationCookie.setMaxAge(0); response.addCookie(authorizationCookie); } response.setStatus(401); log.trace("Aborting request with status [401], no (valid) credentials supplied"); return; } if (authorizationCookie != null) { authorizationCookie.setMaxAge(authTTL); response.addCookie(authorizationCookie); } userPrincipal.updateExpiry(); userPrincipal.setToken(authorizationToken); cache.put(authorizationToken, userPrincipal, authTTL); messageContext.put("authorizationToken", authorizationToken); } messageContext.put("remoteAddr", request.getRemoteAddr()); messageContext.put(IPipeLineSession.API_PRINCIPAL_KEY, userPrincipal); messageContext.put("uri", uri); /** * Evaluate preconditions */ String accept = request.getHeader("Accept"); if (accept != null && !accept.isEmpty() && !accept.equals("*/*")) { if (!listener.getProduces().equals("ANY") && !accept.contains(listener.getContentType())) { response.setStatus(406); response.getWriter().print("It appears you expected the MediaType [" + accept + "] but I only support the MediaType [" + listener.getContentType() + "] :)"); log.trace("Aborting request with status [406], client expects [" + accept + "] got [" + listener.getContentType() + "] instead"); return; } } if (request.getContentType() != null && !listener.isConsumable(request.getContentType())) { response.setStatus(415); log.trace("Aborting request with status [415], did not match consumes [" + listener.getConsumes() + "] got [" + request.getContentType() + "] instead"); return; } String etagCacheKey = ApiCacheManager.buildCacheKey(uri); log.debug("Evaluating preconditions for listener[" + listener.getName() + "] etagKey[" + etagCacheKey + "]"); if (cache.containsKey(etagCacheKey)) { String cachedEtag = (String) cache.get(etagCacheKey); log.debug("found etag value[" + cachedEtag + "] for key[" + etagCacheKey + "]"); if (method.equals("GET")) { String ifNoneMatch = request.getHeader("If-None-Match"); if (ifNoneMatch != null && ifNoneMatch.equals(cachedEtag)) { response.setStatus(304); log.trace( "Aborting request with status [304], matched if-none-match [" + ifNoneMatch + "]"); return; } } else { String ifMatch = request.getHeader("If-Match"); if (ifMatch != null && !ifMatch.equals(cachedEtag)) { response.setStatus(412); log.trace("Aborting request with status [412], matched if-match [" + ifMatch + "] method [" + method + "]"); return; } } } messageContext.put("updateEtag", listener.getUpdateEtag()); /** * Check authorization */ //TODO: authentication implementation /** * Map uriIdentifiers into messageContext */ String patternSegments[] = listener.getUriPattern().split("/"); String uriSegments[] = uri.split("/"); int uriIdentifier = 0; for (int i = 0; i < patternSegments.length; i++) { String segment = patternSegments[i]; if (segment.startsWith("{") && segment.endsWith("}")) { String name; if (segment.equals("*")) name = "uriIdentifier_" + uriIdentifier; else name = segment.substring(1, segment.length() - 1); uriIdentifier++; log.trace("setting uriSegment [" + name + "] to [" + uriSegments[i] + "]"); messageContext.put(name, uriSegments[i]); } } /** * Map queryParameters into messageContext */ Enumeration<?> paramnames = request.getParameterNames(); while (paramnames.hasMoreElements()) { String paramname = (String) paramnames.nextElement(); String paramvalue = request.getParameter(paramname); log.trace("setting queryParameter [" + paramname + "] to [" + paramvalue + "]"); messageContext.put(paramname, paramvalue); } /** * Map multipart parts into messageContext */ if (ServletFileUpload.isMultipartContent(request)) { DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); List<FileItem> items = servletFileUpload.parseRequest(request); for (FileItem item : items) { if (item.isFormField()) { // Process regular form field (input type="text|radio|checkbox|etc", select, etc). String fieldName = item.getFieldName(); String fieldValue = item.getString(); log.trace("setting multipart formField [" + fieldName + "] to [" + fieldValue + "]"); messageContext.put(fieldName, fieldValue); } else { // Process form file field (input type="file"). String fieldName = item.getFieldName(); String fieldNameName = fieldName + "Name"; String fileName = FilenameUtils.getName(item.getName()); log.trace("setting multipart formFile [" + fieldNameName + "] to [" + fileName + "]"); messageContext.put(fieldNameName, fileName); log.trace( "setting parameter [" + fieldName + "] to input stream of file [" + fileName + "]"); messageContext.put(fieldName, item.getInputStream()); } } } /** * Compile Allow header */ StringBuilder methods = new StringBuilder(); methods.append("OPTIONS, "); for (String mtd : config.getMethods()) { methods.append(mtd + ", "); } messageContext.put("allowedMethods", methods.substring(0, methods.length() - 2)); /** * Process the request through the pipeline */ String body = ""; if (!ServletFileUpload.isMultipartContent(request)) { body = Misc.streamToString(request.getInputStream(), "\n", false); } String result = listener.processRequest(null, body, messageContext); /** * Calculate an eTag over the processed result and store in cache */ if (messageContext.get("updateEtag", true)) { log.debug("calculating etags over processed result"); String cleanPattern = listener.getCleanPattern(); if (result != null && method.equals("GET")) { String eTag = ApiCacheManager.buildEtag(cleanPattern, result.hashCode()); log.debug("adding/overwriting etag with key[" + etagCacheKey + "] value[" + eTag + "]"); cache.put(etagCacheKey, eTag); response.addHeader("etag", eTag); } else { log.debug("removing etag with key[" + etagCacheKey + "]"); cache.remove(etagCacheKey); // Not only remove the eTag for the selected resources but also the collection String key = ApiCacheManager.getParentCacheKey(listener, uri); if (key != null) { log.debug("removing parent etag with key[" + key + "]"); cache.remove(key); } } } /** * Add headers */ response.addHeader("Allow", (String) messageContext.get("allowedMethods")); String contentType = listener.getContentType() + "; charset=utf-8"; if (listener.getProduces().equals("ANY")) { contentType = messageContext.get("contentType", contentType); } response.setHeader("Content-Type", contentType); /** * Check if an exitcode has been defined or if a statuscode has been added to the messageContext. */ int statusCode = messageContext.get("exitcode", 0); if (statusCode > 0) response.setStatus(statusCode); /** * Finalize the pipeline and write the result to the response */ if (result != null) response.getWriter().print(result); log.trace("ApiListenerServlet finished with statusCode [" + statusCode + "] result [" + result + "]"); } catch (Exception e) { log.warn("ApiListenerServlet caught exception, will rethrow as ServletException", e); try { response.flushBuffer(); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (IllegalStateException ex) { //We're only informing the end user(s), no need to catch this error... response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } }
From source file:org.springframework.extensions.webscripts.servlet.mvc.EndPointProxyController.java
public ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse res) throws Exception { // get the portion of the uri beyond the handler mapping (resolved by Spring) String uri = (String) req.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); // handle Flash uploader specific jsession parameter for conforming to servlet spec on later TomCat 6/7 versions int jsessionid; if ((jsessionid = uri.indexOf(JSESSIONID)) != -1) { uri = uri.substring(0, jsessionid); }//from ww w . j av a2s . c om // validate and return the endpoint id from the URI path StringTokenizer t = new StringTokenizer(URLEncoder.encodeUri(uri), "/"); if (!t.hasMoreTokens()) { throw new IllegalArgumentException("Proxy URL did not specify endpoint id."); } String endpointId = t.nextToken(); // rebuild rest of the URL for the proxy request StringBuilder buf = new StringBuilder(64); if (t.hasMoreTokens()) { do { buf.append('/'); buf.append(t.nextToken()); } while (t.hasMoreTokens()); } else { // allow for an empty uri to be passed in // this could therefore refer to the root of a service i.e. /webapp/axis buf.append('/'); } try { // retrieve the endpoint descriptor - do not allow proxy access to unsecure endpoints EndpointDescriptor descriptor = getRemoteConfig().getEndpointDescriptor(endpointId); if (descriptor == null || descriptor.getUnsecure()) { // throw an exception if endpoint ID is does not exist or invalid throw new WebScriptsPlatformException("Invalid EndPoint Id: " + endpointId); } // user id from session NOTE: @see org.springframework.extensions.surf.UserFactory Connector connector; String userId = null; HttpSession session = req.getSession(false); if (session != null) { userId = (String) session.getAttribute(USER_ID); } if (userId != null && this.connectorService.getCredentialVault(req.getSession(), userId) .hasCredentials(endpointId)) { // build an authenticated connector - as we have a userId connector = this.connectorService.getConnector(endpointId, userId, req.getSession()); } else if (descriptor.getIdentity() == IdentityType.NONE || descriptor.getIdentity() == IdentityType.DECLARED || descriptor.getExternalAuth()) { // the authentication for this endpoint is either not required, declared in config or // managed "externally" (i.e. by a servlet filter such as NTLM) - this means we should // proceed on the assumption it will be dealt with later connector = this.connectorService.getConnector(endpointId, req.getSession()); } else if (descriptor.getBasicAuth() || this.proxyControllerInterceptor.allowHttpBasicAuthentication(descriptor, uri)) { // check for HTTP authorisation request (i.e. RSS feeds, direct links etc.) String authorization = req.getHeader("Authorization"); if (authorization == null || authorization.length() == 0) { authorizedResponseStatus(res); // no further processing as authentication is required but not provided // the browser will now prompt the user for appropriate credentials return null; } else { // user has provided authentication details with the request String[] authParts = authorization.split(" "); // test for a "negotiate" header - we will then suggest "basic" as the auth mechanism if (authParts[0].equalsIgnoreCase("negotiate")) { authorizedResponseStatus(res); // no further processing as authentication is required but not provided // the browser will now prompt the user for appropriate credentials return null; } if (!authParts[0].equalsIgnoreCase("basic")) { throw new WebScriptsPlatformException( "Authorization '" + authParts[0] + "' not supported."); } String[] values = new String(Base64.decode(authParts[1])).split(":"); if (values.length == 2) { if (logger.isDebugEnabled()) logger.debug("Authenticating (BASIC HTTP) user " + values[0]); // assume username and password passed as the parts and // build an unauthenticated authentication connector then // apply the supplied credentials to it connector = this.connectorService.getConnector(endpointId, values[0], req.getSession()); Credentials credentials = new CredentialsImpl(endpointId); credentials.setProperty(Credentials.CREDENTIAL_USERNAME, values[0]); credentials.setProperty(Credentials.CREDENTIAL_PASSWORD, values[1]); connector.setCredentials(credentials); } else { authorizedResponseStatus(res); // no further processing as authentication is required but not provided // the browser will now prompt the user for appropriate credentials return null; } } } else { res.setStatus(HttpServletResponse.SC_UNAUTHORIZED, "No USER_ID found in session and requested endpoint requires authentication."); // no further processing as authentication is required but not provided return null; } // build a connector context, stores information about how we will drive the remote client // ensure we don't proxy over any browser to web-tier Authorization headers over to the endpoint Map<String, String> headers = new HashMap<String, String>(1, 1.0f); headers.put("Authorization", null); ConnectorContext context = new ConnectorContext(HttpMethod.valueOf(req.getMethod().toUpperCase()), null, headers); context.setExceptionOnError(this.proxyControllerInterceptor.exceptionOnError(descriptor, uri)); context.setContentType(req.getContentType()); // build proxy URL referencing the endpoint final String q = req.getQueryString(); final String url = buf.toString() + (q != null && q.length() != 0 ? "?" + q : ""); if (logger.isDebugEnabled()) { logger.debug("EndPointProxyController preparing to proxy:"); logger.debug(" - endpointId: " + endpointId); logger.debug(" - userId: " + userId); logger.debug(" - connector: " + connector); logger.debug(" - method: " + context.getMethod()); logger.debug(" - url: " + url); } // call through using our connector to proxy Response response = connector.call(url, context, req, res); if (logger.isDebugEnabled()) { logger.debug("Return code: " + response.getStatus().getCode()); if (response.getStatus().getCode() == 500) { logger.debug("Error detected: " + response.getStatus().getMessage() + "\n" + response.getStatus().getException().toString()); } } } catch (Throwable err) { // TODO: trap and handle errors! throw new WebScriptsPlatformException("Error during endpoint proxy processing: " + err.getMessage(), err); } return null; }
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.j ava 2 s . c o m 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; } }
From source file:forseti.ventas.JVenFactDlg.java
@SuppressWarnings({ "unchecked", "rawtypes" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doPost(request, response); String ven_fact_dlg = ""; request.setAttribute("ven_fact_dlg", ven_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. j a v a2s . c o m try { HttpSession ses = request.getSession(true); JFacturasXML venfactxml = (JFacturasXML) ses.getAttribute("ven_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()) venfactxml.getParametros().put(item.getFieldName(), item.getString()); else archivos.addElement(item); } // revisa por las entidades JVentasEntidadesSetIdsV2 setids; String idmod = venfactxml.getParametros().getProperty("idmod"), idmod4 = venfactxml.getParametros().getProperty("idmod4"), moddes = venfactxml.getParametros().getProperty("moddes"); request.setAttribute("idmod", idmod); request.setAttribute("moddes", moddes); setids = new JVentasEntidadesSetIdsV2(request, usuario, getSesion(request).getSesion(idmod).getEspecial()); 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("VEN_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("VEN_DEV_DEVOLVER") && !getSesion(request).getPermiso("VEN_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_DEV_DEVOLVER") + " / " + MsjPermisoDenegado(request, "CEF", "VEN_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_DEV_DEVOLVER", "VDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } SubirArchivosCFD(request, response, venfactxml, 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 JVentasEntidadesSetIdsV2 setids; String idmod, idmod4, moddes; if (request.getParameter("tipomov").equals("FACTURAS")) { idmod = "VEN_FAC"; idmod4 = "VFAC"; moddes = "FACTURAS"; } else if (request.getParameter("tipomov").equals("PEDIDOS")) { idmod = "VEN_PED"; idmod4 = "VPED"; moddes = "PEDIDOS"; } else if (request.getParameter("tipomov").equals("REMISIONES")) { idmod = "VEN_REM"; idmod4 = "VREM"; moddes = "REMISIONES"; } else if (request.getParameter("tipomov").equals("COTIZACIONES")) { idmod = "VEN_COT"; idmod4 = "VCOT"; moddes = "COTIZACIONES"; } else { idmod = "VEN_DEV"; idmod4 = "VDEV"; moddes = "DEVOLUCIONES"; } request.setAttribute("idmod", idmod); request.setAttribute("moddes", moddes); request.setAttribute("fact_xml", "VENTAS"); setids = new JVentasEntidadesSetIdsV2(request, usuario, getSesion(request).getSesion(idmod).getEspecial()); 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_VENTA") && request.getParameter("ID") != null) { boolean intrusion = false; if (moddes.equals("FACTURAS")) { JVentasFactSetV2 set = new JVentasFactSetV2(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("REMISIONES")) { JVentasRemisionesSet set = new JVentasRemisionesSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Remision = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else if (moddes.equals("PEDIDOS")) { JVentasPedidosSet set = new JVentasPedidosSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Pedido = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet set = new JVentasCotizacionesSet(request); set.m_Where = "ID_Entidad = '" + setids.getAbsRow(0).getID_Entidad() + "' and ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; set.Open(); if (set.getNumRows() < 1) intrusion = true; } else { JVentasDevolucionesSet set = new JVentasDevolucionesSet(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_VENTA")) { if (moddes.equals("FACTURAS") || moddes.equals("REMISIONES") || moddes.equals("DEVOLUCIONES")) { // Revisa si tiene permisos if (!idmod.equals("VEN_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("VEN_DEV_DEVOLVER") && !getSesion(request).getPermiso("VEN_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_DEV_DEVOLVER") + " / " + MsjPermisoDenegado(request, "CEF", "VEN_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_DEV_DEVOLVER", "VDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } if (setids.getAbsRow(0).getCFD() || setids.getAbsRow(0).getFija()) { idmensaje = 3; mensaje += "ERROR: No se puede enlazar ningun CFDI porque esta entidad de venta est establecida como Fija o genera sus propios CFDIs<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... HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("ven_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); JCFDCompSet comprobante = new JCFDCompSet(request, "VENTAS"); comprobante.m_Where = "UUID = '" + p(request.getParameter("uuid")) + "'"; comprobante.Open(); if (comprobante.getNumRows() < 1 || !comprobante.getAbsRow(0).getFSI_Tipo().equals("ENT") || comprobante.getAbsRow(0).getFSI_ID() != Integer .parseInt(getSesion(request).getSesion(idmod).getEspecial())) { idmensaje = 3; mensaje += "ERROR: No se ha cargado el CFDI de la venta, este ya esta ligado a otra venta, o el CFDI se carg en otra entidad<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JFacturasXML venfactxml = new JFacturasXML(); StringBuffer sb_mensaje = new StringBuffer(); if (!JForsetiCFD.CargarDocumentoCFDI(request, venfactxml, sb_mensaje, request.getParameter("uuid"), "I")) { idmensaje = 3; mensaje += sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if ((venfactxml.getComprobante().getProperty("tipoDeComprobante").equals("ingreso") && moddes.equals("DEVOLUCIONES")) || (venfactxml.getComprobante().getProperty("tipoDeComprobante") .equals("egreso") && !moddes.equals("DEVOLUCIONES")) || venfactxml.getComprobante().getProperty("tipoDeComprobante") .equals("traslado")) { idmensaje = 3; mensaje += "ERROR: El tipo de comprobante fiscal digital CFDI, No corresponde con el tipo de documento a enlazar.<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } //Verifica que el RFC del Emisor sea igual al RFC registrado, o que sea rfc generico JBDSSet set = new JBDSSet(request); set.ConCat(true); set.m_Where = "Nombre = 'FSIBD_" + p(getSesion(request).getBDCompania()) + "'"; set.Open(); if (!venfactxml.getRFC_Emisor().equalsIgnoreCase(set.getAbsRow(0).getRFC())) { idmensaje = 3; mensaje = "ERROR: El RFC del emisor en el XML no pertenece a la compaia"; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("ID") == null) // Significa que debe agregar una nueva venta { if (moddes.equals("DEVOLUCIONES") || moddes.equals("PEDIDOS") || moddes.equals("COTIZACIONES")) { idmensaje = 1; mensaje = "PRECAUCION: Solo se pueden enlazar devoluciones previamente generadas desde facturas. Selecciona una devolucin e intenta enlazar de nuevo."; getSesion(request).setID_Mensaje(idmensaje, mensaje.toString()); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } float descuento = Float .parseFloat(venfactxml.getComprobante().getProperty("descuento")); if (descuento != 0.0) { idmensaje = 1; mensaje = "PRECAUCION: Por el momento, la carga de ventas 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(venfactxml); Date fecha = JUtil.estFechaCFDI(venfactxml.getComprobante().getProperty("fecha")); rec.setFecha(fecha); float tc; try { tc = Float.parseFloat(venfactxml.getComprobante().getProperty("TipoCambio")); } catch (NumberFormatException e) { tc = 1.0F; } rec.setTC(tc); int 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(venfactxml.getComprobante().getProperty("total"))); float iva; try { iva = Float.parseFloat( venfactxml.getImpuestos().getProperty("totalImpuestosTrasladados")); } catch (NumberFormatException e) { iva = 0.0F; } rec.setIVA(iva); rec.setSubTotal( Float.parseFloat(venfactxml.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: " + venfactxml.getTFD().getProperty("UUID")); rec.setID_Bodega(setids.getAbsRow(0).getID_Bodega()); rec.setBodegaDesc(setids.getAbsRow(0).getBodega()); JClientClientMasSetV2 setcli = new JClientClientMasSetV2(request); setcli.m_Where = "ID_Tipo = 'CL' and ID_EntidadVenta = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and RFC ~~* '" + p(venfactxml.getRFC_Receptor()) + "'"; setcli.Open(); if (setcli.getNumRows() > 0) { JClientClientSetV2 setcli2 = new JClientClientSetV2(request); setcli2.m_Where = "ID_Tipo = 'CL' and Clave = '" + setcli.getAbsRow(0).getID_Clave() + "'"; setcli2.Open(); rec.setClave(setcli.getAbsRow(0).getID_Clave()); rec.setNombre(setcli2.getAbsRow(0).getNombre()); rec.setRFC(venfactxml.getRFC_Emisor()); rec.setNumero(setcli2.getAbsRow(0).getNumero()); rec.setColonia(setcli.getAbsRow(0).getColonia()); rec.setCP(setcli.getAbsRow(0).getCP()); rec.setDireccion(setcli.getAbsRow(0).getDireccion()); rec.setPoblacion(setcli.getAbsRow(0).getPoblacion()); rec.setTels(setcli2.getAbsRow(0).getTel()); rec.setID_Vendedor(setcli.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(setcli.getAbsRow(0).getVendedorNombre()); } for (int i = 0; i < venfactxml.getConceptos().size(); i++) { Properties concepto = (Properties) venfactxml.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 = ""; 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; JPublicInvServInvCatalogSetV2 cat = new JPublicInvServInvCatalogSetV2(request); cat.m_Where = "(Clave = '" + p(concepto.getProperty("noIdentificacion")) + "' or Codigo = '" + p(concepto.getProperty("noIdentificacion")) + "') and NoSeVende = '0' 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(); } //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); } rec.setUUID(venfactxml.getTFD().getProperty("UUID")); rec.setTotalUUIDs(JUtil.redondear( Float.parseFloat(venfactxml.getComprobante().getProperty("total")), 2)); 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 CFDI no corresponden al Total calculado en el registro a partir de estos CFDI. No se puede agregar. DOC: " + rec.getTotal() + " XML: " + rec.getTotalUUIDs()); } getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString()); irApag("/forsetiweb/ventas/ven_fact_dlg.jsp", request, response); return; } else // Significa que debe Enlazar a una compra existente { //////////////////////////////////////////////// String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisin ya esta cancelada, no se puede enlazar el CFDI<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 remisin ya tiene una factura asociada, no se puede enlazar el CFDI. Debes enlazarlo a la factura<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisin ya tiene un CFDI asociado. No puedes asociar otro CFDI a la misma remisin<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientMasSetV2 setcli = new JClientClientMasSetV2(request); setcli.m_Where = "ID_Tipo = 'CL' and ID_EntidadVenta = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; setcli.Open(); if (SetMod.getAbsRow(0).getTotal() != Float .parseFloat(venfactxml.getComprobante().getProperty("total")) || !setcli.getAbsRow(0).getRFC() .equals(venfactxml.getRFC_Receptor())) { idmensaje = 1; mensaje += "PRECAUCION: Los totales o los RFCs de la remisin y el CFDI no coinciden. No se puede asociar este CFDI al registro<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (moddes.equals("FACTURAS")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(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 enlazar el CFDI<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura ya tiene un CFDI asociado. No puedes asociar otro CFDI a la misma factura<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientMasSetV2 setcli = new JClientClientMasSetV2(request); setcli.m_Where = "ID_Tipo = 'CL' and ID_EntidadVenta = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; setcli.Open(); if (SetMod.getAbsRow(0).getTotal() != Float .parseFloat(venfactxml.getComprobante().getProperty("total")) || !setcli.getAbsRow(0).getRFC() .equals(venfactxml.getRFC_Receptor())) { idmensaje = 1; mensaje += "PRECAUCION: Los totales o los RFCs de la factura y el CFDI no coinciden. No se puede asociar este CFDI al registro<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(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<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (SetMod.getAbsRow(0).getID_CFD() != 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolucion ya tiene un CFDI asociado. No puedes asociar otro CFDI a la misma compra<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientMasSetV2 setcli = new JClientClientMasSetV2(request); setcli.m_Where = "ID_Tipo = 'CL' and ID_EntidadVenta = '" + getSesion(request).getSesion(idmod).getEspecial() + "' and ID_Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; setcli.Open(); if (SetMod.getAbsRow(0).getTotal() != Float .parseFloat(venfactxml.getComprobante().getProperty("total")) || !setcli.getAbsRow(0).getRFC() .equals(venfactxml.getRFC_Receptor())) { idmensaje = 1; mensaje += "PRECAUCION: Los totales o los RFCs de la devolucion y el CFDI no coinciden. No se puede asociar este CFDI al registro<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es recepcion, factura gasto o devolucion return; // Aqui asocia. Enlazar(request, response, moddes, 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 if (request.getParameter("subproceso").equals("ENVIAR")) { if (AgregarRecursos(request, response) == -1) { HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); rec.setReferencia(p(request.getParameter("referencia"))); if (moddes.equals("FACTURAS")) { if (request.getParameter("forma_pago").equals("contado")) { request.setAttribute("fsipg_tipo", "ventas"); request.setAttribute("fsipg_proc", "deposito"); 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("REMISIONES")) { 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/ventas/ven_fact_dlg.jsp", request, response); return; } } } else // Sale si no es FACTURA, DEVOLUCION O REMISION return; } else if (request.getParameter("proceso").equals("AGREGAR_VENTA")) { // 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); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("ven_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/ventas/ven_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")) { HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (request.getParameter("forma_pago").equals("contado")) { request.setAttribute("fsipg_tipo", "ventas"); request.setAttribute("fsipg_proc", "deposito"); 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 ventas 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 ventas 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/ventas/ven_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_CLIENT")) { AgregarCabecero(request, response); irApag("/forsetiweb/ventas/ven_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/ventas/ven_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/ventas/ven_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabecero(request, response) == -1) { BorrarPartida(request, response); } irApag("/forsetiweb/ventas/ven_fact_dlg.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("DATOS_EXPORTACION")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("VEN_FAC_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_FAC_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_FAC_AGREGAR", "VFAC||||", 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")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta venta ya esta cancelada, no se puede gestionar informacin de exportacin<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (setids.getAbsRow(0).getCFD() && SetMod.getAbsRow(0).getTFD() >= 2) { idmensaje = 1; mensaje += "PRECAUCION: Esta venta ya esta sellada. No se puede gestionar informacin de exportacin porque ya est gestionada en el complemento de la factura electrnica generada por forseti<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientMasSetV2 cli = new JClientClientMasSetV2(request); cli.m_Where = "ID_Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; cli.Open(); if (SetMod.getAbsRow(0).getID_Cliente() == 0 || SetMod.getAbsRow(0).getMoneda() == 1 || cli.getAbsRow(0).getPais().equals("MEX") || cli.getAbsRow(0).getPedimento().equals("--")) { idmensaje = 1; mensaje += "PRECAUCION: Este cliente es nacional, o es un cliente extranjero con el cual no manejamos exportaciones definitivas, o en su defecto, la venta no fue realizada en moneda extranjera. No se puede gestionar informacin de exportacin<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es factura return; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/ventas/ven_fact_dlg_datexp.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 (VerificarParametrosDatosExportacion(request, response)) { DatosExportacion(request, response); return; } irApag("/forsetiweb/ventas/ven_fact_dlg_datexp.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("CARGAR_VENTA")) { // 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).getCFD() || setids.getAbsRow(0).getFija()) { idmensaje = 3; mensaje += "ERROR: No se puede cargar ningun CFDI porque esta entidad de venta est establecida como Fija o genera sus propios CFDIs<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("ven_fact_xml"); if (rec == null) { rec = new JFacturasXML(); ses.setAttribute("ven_fact_xml", rec); } else { rec = null; rec = new JFacturasXML(); ses.setAttribute("ven_fact_xml", rec); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFVenFactDlg&archivo_1=xml&archivo_2=pdf&proceso=CARGAR_VENTA&subproceso=ENVIAR&moddes=" + moddes + "&idmod=" + idmod + "&idmod4=" + idmod4, request, response); return; } else if (request.getParameter("proceso").equals("SELLAR_VENTA")) { // Revisa si tiene permisos if (!idmod.equals("VEN_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("VEN_DEV_DEVOLVER") && !getSesion(request).getPermiso("VEN_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_DEV_DEVOLVER") + " / " + MsjPermisoDenegado(request, "CEF", "VEN_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_DEV_DEVOLVER", "VDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } if (request.getParameter("ID") != null) { String[] valoresParam = request.getParameterValues("ID"); if (valoresParam.length == 1) { if (setids.getAbsRow(0).getCFD() == false) { idmensaje = 1; mensaje += "PRECAUCION: Esta entidad de venta no está establecida como CFDI. No se puede sellar el registro<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (moddes.equals("FACTURAS")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() == 3 || SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este registro ya est sellado o cancelado <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } StringBuffer sb_mensaje = new StringBuffer(254); idmensaje = generarCFDI(request, response, "FACTURAS", Integer.parseInt(request.getParameter("ID")), Long.toString(SetMod.getAbsRow(0).getID_Cliente()), setids, SetMod.getAbsRow(0).getTFD(), sb_mensaje); mensaje = sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() == 3 || SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisión ya está sellada o cancelada<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } StringBuffer sb_mensaje = new StringBuffer(254); idmensaje = generarCFDI(request, response, "REMISIONES", Integer.parseInt(request.getParameter("ID")), Long.toString(SetMod.getAbsRow(0).getID_Cliente()), setids, SetMod.getAbsRow(0).getTFD(), sb_mensaje); mensaje = sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() == 3 || SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este registro ya esta sellado o cancelada<br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } StringBuffer sb_mensaje = new StringBuffer(254); idmensaje = generarCFDI(request, response, "DEVOLUCIONES", Integer.parseInt(request.getParameter("ID")), Long.toString(SetMod.getAbsRow(0).getID_Cliente()), setids, SetMod.getAbsRow(0).getTFD(), sb_mensaje); mensaje = sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else 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("XML_VENTA")) { // 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")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(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 factura 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; else // Es CFDI generado internamente { if (SetMod.getAbsRow(0).getStatus().equals("C")) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/CANCEL_FAC-" + request.getParameter("ID") + ".xml"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/SIGN_FAC-" + request.getParameter("ID") + ".xml"; } 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 factura se bajo satisfactoriamente"; return; } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; else { if (SetMod.getAbsRow(0).getStatus().equals("C")) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/CANCEL_REM-" + request.getParameter("ID") + ".xml"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/SIGN_REM-" + request.getParameter("ID") + ".xml"; } destino = "REM-" + 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 remisión se bajo satisfactoriamente"; return; } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(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 dev 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/TFDs/" + cfd.getAbsRow(0).getUUID() + ".xml"; else { if (SetMod.getAbsRow(0).getStatus().equals("C")) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/CANCEL_DSV-" + request.getParameter("ID") + ".xml"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/TFDs/SIGN_DSV-" + request.getParameter("ID") + ".xml"; } destino = "DSV-" + 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("ENVIAR_VENTA")) { // 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")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_Cliente() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta factura no está completamente sellada, o es de mostrador. No hay nada que enviar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientSetV2 set = new JClientClientSetV2(request); set.m_Where = "Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; set.Open(); if (set.getAbsRow(0).getSMTP() == 0) // Maneja smtp manual o automtico { idmensaje = 1; mensaje += "PRECAUCION: Este cliente no esta confgurado para recibir sus cfdi por correo <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JFsiSMTPClient smtp = new JFsiSMTPClient(); smtp.enviarCFDIMPE(request, "FAC", request.getParameter("ID"), "", set.getAbsRow(0).getNombre(), set.getAbsRow(0).getEMail()); if (smtp.getStatusSMTP() == JFsiSMTPClient.ERROR) { idmensaje = 3; mensaje += "ERROR: " + smtp.getError(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } getSesion(request).setID_Mensaje((short) 0, "El correo se ha mandado satisfactoriamente"); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_Cliente() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta remision no está completamente sellada, o es de mostrador. No hay nada que enviar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientSetV2 set = new JClientClientSetV2(request); set.m_Where = "Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; set.Open(); if (set.getAbsRow(0).getSMTP() == 0) // Maneja smtp manual o automtico { idmensaje = 1; mensaje += "PRECAUCION: Este cliente no esta confgurado para recibir sus cfdi por correo <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JFsiSMTPClient smtp = new JFsiSMTPClient(); smtp.enviarCFDIMPE(request, "REM", request.getParameter("ID"), "", set.getAbsRow(0).getNombre(), set.getAbsRow(0).getEMail()); if (smtp.getStatusSMTP() == JFsiSMTPClient.ERROR) { idmensaje = 3; mensaje += "ERROR: " + smtp.getError(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } getSesion(request).setID_Mensaje((short) 0, "El correo se ha mandado satisfactoriamente"); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(request); SetMod.m_Where = "ID_Devolucion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_Cliente() == 0) { idmensaje = 1; mensaje += "PRECAUCION: Esta devolucion/rebaja no está completamente sellada, o es de mostrador. No hay nada que enviar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JClientClientSetV2 set = new JClientClientSetV2(request); set.m_Where = "Clave = '" + SetMod.getAbsRow(0).getID_Cliente() + "'"; set.Open(); if (set.getAbsRow(0).getSMTP() == 0) // Maneja smtp manual o automtico { idmensaje = 1; mensaje += "PRECAUCION: Este cliente no esta confgurado para recibir sus cfdi por correo <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } JFsiSMTPClient smtp = new JFsiSMTPClient(); smtp.enviarCFDIMPE(request, "DSV", request.getParameter("ID"), "", set.getAbsRow(0).getNombre(), set.getAbsRow(0).getEMail()); if (smtp.getStatusSMTP() == JFsiSMTPClient.ERROR) { idmensaje = 3; mensaje += "ERROR: " + smtp.getError(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } getSesion(request).setID_Mensaje((short) 0, "El correo se ha mandado satisfactoriamente"); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); //"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_VENTA")) { // 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")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(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 factura 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/PDFs/FAC-" + request.getParameter("ID") + ".pdf"; 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 factura se bajo satisfactoriamente"; return; } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/PDFs/REM-" + request.getParameter("ID") + ".pdf"; destino = "REM-" + 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")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(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 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, "VENTAS"); cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'"; cfd.Open(); String nombre, destino; if (cfd.getNumRows() > 0) nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/ven/PDFs/" + cfd.getAbsRow(0).getUUID() + ".pdf"; else nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/PDFs/DSV-" + request.getParameter("ID") + ".pdf"; destino = "DSV-" + 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_VENTA")) { // 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("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + 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 if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotización ya esta cancelada, 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: Esta cotización ya tiene un pedido, remisión o 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 ni pedido ni cotizacion porque seria factura o remision ( se estaria violando la seguridad ) return; HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("ven_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); } // Llena el pedido o cotizacion if (moddes.equals("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); // checa si se permite la rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); // checa si se permite la rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, request.getParameter("tipomov")); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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/ventas/ven_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 ventas 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/ventas/ven_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("AGR_CLIENT")) { AgregarCabecero(request, response); irApag("/forsetiweb/ventas/ven_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/ventas/ven_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/ventas/ven_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabecero(request, response) == -1) { BorrarPartida(request, response); } irApag("/forsetiweb/ventas/ven_fact_dlg.jsp", request, response); return; } } } else if (request.getParameter("proceso").equals("CONSULTAR_VENTA")) { // 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); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); ses.setAttribute("ven_fact_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, moddes); // Llena la factura if (moddes.equals("FACTURAS")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(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_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(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_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, moddes); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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/ventas/ven_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_VENTA")) { // 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("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotización 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 cotización ya tiene un pedido, remisión o factura asociada, no se puede cancelar. Primero debes cancelar el pedido, remisión o factura para poder cancelar la cotización <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "COTIZACIONES", idmod, idmod4, new StringBuffer()); return; } } else if (moddes.equals("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Este pedido ya est cancelado <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: Este pedido ya tiene una factura o remisin asociada, no se puede cancelar. Primero debes cancelar la factura o remision para poder cancelar el pedido <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "PEDIDOS", idmod, idmod4, new StringBuffer()); return; } } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta remisión 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 remisión ya tiene una factura asociada. No se puede cancelar, primero cancela la factura para poder cancelar la remisin <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 remisión 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 { StringBuffer sb_mensaje = new StringBuffer(); int idms = cancelarCFDI(request, response, "REMISIONES", Integer.parseInt(request.getParameter("ID")), SetMod.getAbsRow(0).getTFD(), sb_mensaje); if (idms == JForsetiCFD.ERROR) // quiere decir algun tipo de error de cfd { idmensaje = 3; mensaje += sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "REMISIONES", idmod, idmod4, sb_mensaje); return; } } } if (moddes.equals("FACTURAS")) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(request); SetMod.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); JVentasRemisionesSet SetRem = new JVentasRemisionesSet(request); SetRem.m_Where = "ID_Factura = '" + p(request.getParameter("ID")) + "'"; SetRem.Open(); JVentasDevolucionesSet SetDev = new JVentasDevolucionesSet(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 (SetRem.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 { StringBuffer sb_mensaje = new StringBuffer(); int idms = cancelarCFDI(request, response, "FACTURAS", Integer.parseInt(request.getParameter("ID")), SetMod.getAbsRow(0).getTFD(), sb_mensaje); if (idms == JForsetiCFD.ERROR) // quiere decir algun tipo de error de cfd { idmensaje = 3; mensaje += sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "FACTURAS", idmod, idmod4, sb_mensaje); return; } } } else if (moddes.equals("DEVOLUCIONES")) { JVentasDevolucionesSet SetMod = new JVentasDevolucionesSet(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 { StringBuffer sb_mensaje = new StringBuffer(); int idms = cancelarCFDI(request, response, "DEVOLUCIONES", Integer.parseInt(request.getParameter("ID")), SetMod.getAbsRow(0).getTFD(), sb_mensaje); if (idms == JForsetiCFD.ERROR) // quiere decir algun tipo de error de cfd { idmensaje = 3; mensaje += sb_mensaje.toString(); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { CancelarFactura(request, response, "DEVOLUCIONES", idmod, idmod4, sb_mensaje); 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_VENTA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("VEN_FAC_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_FAC_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_FAC_AGREGAR", "VFAC||||", 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("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + 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("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + 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 if (request.getParameter("tipomov").equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotizació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("N")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotización ya tiene un pedido, 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 // sale si no es ni pedido ni cotizacion porque seria factura ( se estaria violando la seguridad ) return; HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "FACTURAS"); ses.setAttribute("ven_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "FACTURAS"); } // Llena la factura if (moddes.equals("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("REMISIONES")) { JVentasRemisionesSet SetMod = new JVentasRemisionesSet(request); SetMod.m_Where = "ID_Remision = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, request.getParameter("tipomov")); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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.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/ventas/ven_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("PEDIDOS") || moddes.equals("COTIZACIONES") || moddes.equals("REMISIONES")) { HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); 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/ventas/ven_fact_dlg_generar.jsp", request, response); return; } else if (request.getParameter("forma_pago").equals("contado")) { request.setAttribute("fsipg_tipo", "ventas"); request.setAttribute("fsipg_proc", "deposito"); 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, "VFAC", "VEN_FAC", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/ventas/ven_fact_dlg_generar.jsp", request, response); return; } else { if (VerificarParametros(request, response)) { // establece los atributos por default para ventas de crdito request.setAttribute("fsipg_cambio", 0F); request.setAttribute("fsipg_efectivo", 0F); request.setAttribute("fsipg_bancos", 0F); AgregarDesde(request, response, "VFAC", "VEN_FACT", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/ventas/ven_fact_dlg_generar.jsp", request, response); return; } } } } } else if (request.getParameter("proceso").equals("REMISIONAR_VENTA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("VEN_REM_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_REM_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_REM_AGREGAR", "VREM||||", 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("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + 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 if (moddes.equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotización ya esta cancelada, 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: Esta cotización ya tiene un pedido, remisión o factura asociada, no se puede remisionar <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es ni pedido ni cotizacion porque seria factura ( se estaria violando la seguridad ) return; HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "REMISIONES"); ses.setAttribute("ven_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "REMISIONES"); } // Llena la factura if (moddes.equals("PEDIDOS")) { JVentasPedidosSet SetMod = new JVentasPedidosSet(request); SetMod.m_Where = "ID_Pedido = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } else if (request.getParameter("tipomov").equals("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); } JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, request.getParameter("tipomov")); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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/ventas/ven_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("PEDIDOS") || moddes.equals("COTIZACIONES")) { 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/ventas/ven_fact_dlg_generar.jsp", request, response); return; } else { if (VerificarParametros(request, response)) { AgregarDesde(request, response, "VREM", "VEN_REM", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/ventas/ven_fact_dlg_generar.jsp", request, response); return; } } } } } else if (request.getParameter("proceso").equals("PEDIR_VENTA")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("VEN_PED_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_PED_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_PED_AGREGAR", "VPED||||", 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("COTIZACIONES")) { JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); if (SetMod.getAbsRow(0).getStatus().equals("C")) { idmensaje = 1; mensaje += "PRECAUCION: Esta cotización ya esta cancelada, no se puede pedir <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 cotización ya tiene un pedido, remisión o factura asociada, no se puede pedir <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // sale si no es cotizacion porque seria ( se estaria violando la seguridad ) return; HttpSession ses = request.getSession(true); JVenFactSes rec = (JVenFactSes) ses.getAttribute("ven_fact_dlg"); if (rec == null) { rec = new JVenFactSes(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "PEDIDOS"); ses.setAttribute("ven_fact_dlg", rec); } else { rec.resetear(request, getSesion(request).getSesion(idmod).getEspecial(), usuario, "PEDIDOS"); } // Llena el pedido JVentasCotizacionesSet SetMod = new JVentasCotizacionesSet(request); SetMod.m_Where = "ID_Cotizacion = '" + p(request.getParameter("ID")) + "'"; SetMod.Open(); //rec.setFactNum(SetMod.getAbsRow(0).getNumero()); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setFecha(SetMod.getAbsRow(0).getFecha()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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()); rec.setID_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, moddes); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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()); } getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/ventas/ven_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 (request.getParameter("tipomov").equals("COTIZACIONES")) { if (request.getParameter("fecha") == null || request.getParameter("referencia") == null || request.getParameter("fecha").equals("")) { idmensaje = 1; mensaje += "PRECAUCION: Se debe enviar la fecha y referencia del pedido <br>"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/ventas/ven_fact_dlg_generar.jsp", request, response); return; } else { if (VerificarParametros(request, response)) { AgregarDesde(request, response, "VPED", "VEN_PED", request.getParameter("ID"), idmod4, idmod, setids); return; } irApag("/forsetiweb/ventas/ven_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_ventas_facturas_impcab where ID_Factura = "; SQLDet += "view_ventas_facturas_impdet where ID_Factura = "; } else if (moddes.equals("PEDIDOS")) { SQLCab += "view_ventas_pedidos_impcab where ID_Pedido = "; SQLDet += "view_ventas_pedidos_impdet where ID_Pedido = "; } else if (moddes.equals("REMISIONES")) { SQLCab += "view_ventas_remisiones_impcab where ID_Remision = "; SQLDet += "view_ventas_remisiones_impdet where ID_Remision = "; } else if (moddes.equals("COTIZACIONES")) { SQLCab += "view_ventas_cotizaciones_impcab where ID_Cotizacion = "; SQLDet += "view_ventas_cotizaciones_impdet where ID_Cotizacion = "; } else //Devoluciones { SQLCab += "view_ventas_devoluciones_impcab where ID_Devolucion = "; SQLDet += "view_ventas_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", "CEFVenFactDlg"); request.setAttribute("tipo_imp", "VEN_FAC"); request.setAttribute("formato_default", setids.getAbsRow(0).getFormato()); } else if (moddes.equals("PEDIDOS")) { request.setAttribute("impresion", "CEFVenFactDlg"); request.setAttribute("tipo_imp", "VEN_PED"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Pedido()); } else if (moddes.equals("REMISIONES")) { request.setAttribute("impresion", "CEFVenFactDlg"); request.setAttribute("tipo_imp", "VEN_REM"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Remision()); } else if (moddes.equals("COTIZACIONES")) { request.setAttribute("impresion", "CEFVenFactDlg"); request.setAttribute("tipo_imp", "VEN_COT"); request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Cotizacion()); } else //DEVOLUCIONES { request.setAttribute("impresion", "CEFVenFactDlg"); request.setAttribute("tipo_imp", "VEN_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_VENTA") || request.getParameter("proceso").equals("REBAJAR_VENTA")) { // Revisa si tiene permisos if (request.getParameter("proceso").equals("DEVOLVER_VENTA") && !getSesion(request).getPermiso("VEN_DEV_DEVOLVER")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_DEV_DEVOLVER"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_DEV_DEVOLVER", "VDEV||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("proceso").equals("REBAJAR_VENTA") && !getSesion(request).getPermiso("VEN_DEV_REBAJAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "VEN_DEV_REBAJAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "VEN_DEV_REBAJAR", "VDEV||||", 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) { JVentasFactSetV2 SetMod = new JVentasFactSetV2(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_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, 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; } //SetRem.getNumRows() == 0 && SetMod.getAbsRow(0).getID_PolCost() != -1 && !setids.getAbsRow(0).getFijaCost() && setids.getAbsRow(0).getAuditarAlm() && !SetMod.getAbsRow(0).getStatus().equals("R") ) } 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); JVenFactSes rec = (JVenDevSes) ses.getAttribute("ven_dev_dlg"); if (rec == null) { rec = new JVenDevSes(request, getSesion(request).getSesion("VEN_FAC").getEspecial(), usuario, "DEVOLUCIONES"); ses.setAttribute("ven_dev_dlg", rec); } else rec.resetear(request, getSesion(request).getSesion("VEN_FAC").getEspecial(), usuario, "DEVOLUCIONES"); rec.setClave((int) SetMod.getAbsRow(0).getID_Cliente()); rec.setNombre(SetMod.getAbsRow(0).getCliente()); 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_Vendedor(SetMod.getAbsRow(0).getID_Vendedor()); rec.setVendedorNombre(SetMod.getAbsRow(0).getVendedorNombre()); rec.setID_Factura(SetMod.getAbsRow(0).getID_Factura()); if (request.getParameter("proceso").equals("DEVOLVER_VENTA")) rec.setDevReb("DEV"); else rec.setDevReb("REB"); JVentasFactSetCabV2 SetCab = new JVentasFactSetCabV2(request, "FACTURAS"); JVentasFactSetDetV2 SetDet = new JVentasFactSetDetV2(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/ventas/ven_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); JVenFactSes rec = (JVenDevSes) ses.getAttribute("ven_dev_dlg"); if (rec.getForma_Pago().equals("contado")) { request.setAttribute("fsipg_tipo", "ventas"); request.setAttribute("fsipg_total", rec.getTotal()); request.setAttribute("fsipg_proc", "retiro"); request.setAttribute("fsipg_ident", getSesion(request).getSesion("VEN_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", "ventas"); if (VerificarParametrosDev(request, response) && VerificarSaldo(request, response)) { AgregarDev(request, response, setids); return; } } else //Ningun pago { request.setAttribute("fsipg_tipo", "ventas"); if (VerificarParametrosDev(request, response)) { AgregarDev(request, response, setids); return; } } } irApag("/forsetiweb/ventas/ven_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/ventas/ven_fact_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso").equals("BORR_PART")) { if (AgregarCabeceroDev(request, response) == -1) { BorrarPartidaDev(request, response); } irApag("/forsetiweb/ventas/ven_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/ventas/ven_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_VENTA", 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; } }