List of usage examples for java.util Vector addElement
public synchronized void addElement(E obj)
From source file:com.concursive.connect.web.webdav.servlets.WebdavServlet.java
/** * Propfind helper method. Dispays the properties of a lock-null resource. * * @param generatedXML XML response to the Propfind request * @param path Path of the current resource * @param type Propfind type * @param propertiesVector If the propfind type is find properties by name, * then this Vector contains those properties * @param req Description of the Parameter *///from ww w .j a va 2s.c o m private void parseLockNullProperties(HttpServletRequest req, XMLWriter generatedXML, String path, int type, Vector propertiesVector) { // Exclude any resource in the /WEB-INF and /META-INF subdirectories // (the "toUpperCase()" avoids problems on Windows systems) if (path.toUpperCase().startsWith("/WEB-INF") || path.toUpperCase().startsWith("/META-INF")) { return; } // Retrieving the lock associated with the lock-null resource WebdavServlet.LockInfo lock = (WebdavServlet.LockInfo) resourceLocks.get(path); if (lock == null) { return; } generatedXML.writeElement(null, "response", XMLWriter.OPENING); String status = new String( "HTTP/1.1 " + WebdavStatus.SC_OK + " " + WebdavStatus.getStatusText(WebdavStatus.SC_OK)); // Generating href element generatedXML.writeElement(null, "href", XMLWriter.OPENING); String absoluteUri = req.getRequestURI(); String relativePath = getRelativePath(req); String toAppend = path.substring(relativePath.length()); if (!toAppend.startsWith("/")) { toAppend = "/" + toAppend; } generatedXML.writeText(rewriteUrl(normalize(absoluteUri + toAppend))); generatedXML.writeElement(null, "href", XMLWriter.CLOSING); String resourceName = path; //System.out.println("Resource Name: " + resourceName); int lastSlash = path.lastIndexOf('/'); if (lastSlash != -1) { resourceName = resourceName.substring(lastSlash + 1); } switch (type) { case FIND_ALL_PROP: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeProperty(null, "creationdate", getISOCreationDate(lock.creationDate.getTime())); generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); generatedXML.writeProperty(null, "getlastmodified", FastHttpDateFormat.formatDate(lock.creationDate.getTime(), null)); generatedXML.writeProperty(null, "getcontentlength", String.valueOf(0)); generatedXML.writeProperty(null, "getcontenttype", ""); generatedXML.writeProperty(null, "getetag", ""); generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "lock-null", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); generatedXML.writeProperty(null, "source", ""); String supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_PROPERTY_NAMES: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeElement(null, "creationdate", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "displayname", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontentlength", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontenttype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getetag", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getlastmodified", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_BY_PROPERTY: Vector propertiesNotFound = new Vector(); // Parse the list of properties generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); Enumeration properties = propertiesVector.elements(); while (properties.hasMoreElements()) { String property = (String) properties.nextElement(); if (property.equals("creationdate")) { generatedXML.writeProperty(null, "creationdate", getISOCreationDate(lock.creationDate.getTime())); } else if (property.equals("displayname")) { generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); } else if (property.equals("getcontentlanguage")) { generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); } else if (property.equals("getcontentlength")) { generatedXML.writeProperty(null, "getcontentlength", (String.valueOf(0))); } else if (property.equals("getcontenttype")) { generatedXML.writeProperty(null, "getcontenttype", ""); } else if (property.equals("getetag")) { generatedXML.writeProperty(null, "getetag", ""); } else if (property.equals("getlastmodified")) { generatedXML.writeProperty(null, "getlastmodified", FastHttpDateFormat.formatDate(lock.creationDate.getTime(), null)); } else if (property.equals("resourcetype")) { generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "lock-null", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); } else if (property.equals("source")) { generatedXML.writeProperty(null, "source", ""); } else if (property.equals("supportedlock")) { supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); } else if (property.equals("lockdiscovery")) { if (!generateLockDiscovery(path, generatedXML)) { propertiesNotFound.addElement(property); } } else { propertiesNotFound.addElement(property); } } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); Enumeration propertiesNotFoundList = propertiesNotFound.elements(); if (propertiesNotFoundList.hasMoreElements()) { status = new String("HTTP/1.1 " + WebdavStatus.SC_NOT_FOUND + " " + WebdavStatus.getStatusText(WebdavStatus.SC_NOT_FOUND)); generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); while (propertiesNotFoundList.hasMoreElements()) { generatedXML.writeElement(null, (String) propertiesNotFoundList.nextElement(), XMLWriter.NO_CONTENT); } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); } break; } generatedXML.writeElement(null, "response", XMLWriter.CLOSING); }
From source file:alter.vitro.vgw.service.query.SimpleQueryHandler.java
private Vector<ReqResultOverData> findAggrAttrValue(String pQueryDefId, Vector<QueriedMoteAndSensors> pMotesAndTheirSensorAndFunctsVec, Vector<ReqFunctionOverData> reqFunctionVec, List<String> serviceDeployStatusStr, List<String[]> localReplacedResources) { ///*from w w w . j av a 2 s . c o m*/ // ADDED CODE -- OPTIMIZATION PENDING +++++ // // --------------- SERVICE CONTINUATION PREP // TODO: SERVICE CONTINUATION PREP //service Continuation Additions: //String serviceDeployStatusStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_UNKNOWN; serviceDeployStatusStr.add(ResponseAggrMsg.DEPLOY_STATUS_SERVICE_UNKNOWN); // deploy status flags boolean serviceDeployAllNodesAvailable = true; boolean serviceDeployContinuationEmployed = false; boolean serviceDeployPartiallyPossible = false; boolean serviceDeployImpossible = false; // [0] is the original nodeId, [1] the replacing node id and [2] the capability //List<String[]> localReplacedResources = new ArrayList<String[]>(); // // // TODO: 1.Use the motesAndTheirSensorAndFunctVec to get the requested motes and the requested capabilities. // TODO: 2.Check wth Continuation Service and Resource Availability Service. // TODO. 2a. If all nodes are available then Deploy_Status = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_POSSIBLE. // 2b. If a node in the requested motes is unavailable (or future: a requested resource is unavailable) // Check the equivalent nodes for matches for this capability. // If a match is found, replace the node in the motesAndTheirSensorAndFunctsVec with the replacement node // and keep this replacing tracked/stored locally (as well as the cache of the continuationService) // when the results are found, replace the original mote back, but also send the extra xml that says that the values from that node for that capability are from the replacement node // TODO: Careful! a node could be replaced by more than one nodes, based on the capabilities requested! TEST THIS CASE! // TODO: Careful! a node could be replaced for one capability, but not for another! // Also set the flag serviceContinuationEmployed to true. // if at the end only this flag is set then update the Deploy_Status to ResponseAggrMsg.DEPLOY_STATUS_SERVICE_CONTINUATION // If a match is not found then remove this node from the results. // Also set the flag servicePartiallyPossible to true. // if at the end only this flag is set then update the Deploy_Status ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL // If a the end both flags serviceContinuationEmployed and servicePartiallyPossible are true // and not the serviceImpossible flag then update the Deploy_Status to ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL_CONT_COMBO // // Finally if NO nodes are available for the service set the serviceImpossible flag to true and // update the deploy_status to ResponseAggrMsg.DEPLOY_STATUS_SERVICE_IMPOSSIBLE // END: SERVICE CONTINUATION PREP Vector<QueriedMoteAndSensors> originalMotesAndTheirSensorAndFunctsVec = pMotesAndTheirSensorAndFunctsVec; Vector<QueriedMoteAndSensors> newMotesAndTheirSensorAndFunctsVec = new Vector<QueriedMoteAndSensors>(); List<String> allInvolvedMoteIdsList = new ArrayList<String>(); for (QueriedMoteAndSensors aMoteAndSensors : originalMotesAndTheirSensorAndFunctsVec) { allInvolvedMoteIdsList.add(aMoteAndSensors.getMoteid()); } logger.debug("Queried motes and sensors:"); for (QueriedMoteAndSensors aMoteAndSensors : originalMotesAndTheirSensorAndFunctsVec) { logger.debug("Mote Id: " + aMoteAndSensors.getMoteid()); if (aMoteAndSensors.getQueriedSensorIdsAndFuncVec() != null && !aMoteAndSensors.getQueriedSensorIdsAndFuncVec().isEmpty()) { HashMap<String, Vector<Integer>> functionsForCapabilityOfThisMoteHM = new HashMap<String, Vector<Integer>>(); for (ReqSensorAndFunctions sensAndFuncts : aMoteAndSensors.getQueriedSensorIdsAndFuncVec()) { logger.debug(" Capabilities: " + sensAndFuncts.getSensorModelid()); // TODO: we could probably acquire the friendly name too from some map //TODO: this isNodeResourceAvailable could be also done ideally within the ContinuationOfProvisionService within the findNextEquivalaneNode funciton (also could be synchronized) //logger.debug("DDDDD Size of functs:"+ Integer.toString(sensAndFuncts.getFunctionsOverSensorModelVec().size())); //{ // int smid = sensAndFuncts.getSensorModelIdInt(); // //logger.debug("For mote "+fullMoteId +" and sensor "+Integer.toString(smid) + " function vector size is "+reqFunctionVec.size()); // for (Integer inFunctVec : sensAndFuncts.getFunctionsOverSensorModelVec()) { // logger.debug("Fid: " + inFunctVec); // } // } functionsForCapabilityOfThisMoteHM.put(sensAndFuncts.getSensorModelid(), sensAndFuncts.getFunctionsOverSensorModelVec()); if (!ResourceAvailabilityService.getInstance().isNodeResourceAvailable(pQueryDefId, aMoteAndSensors.getMoteid(), sensAndFuncts.getSensorModelid())) { logger.debug("Node id: " + aMoteAndSensors.getMoteid() + " unavailable for: " + sensAndFuncts.getSensorModelid()); String[] replacementInfo = ContinuationOfProvisionService.getInstance() .findNextEquivalentNode(pQueryDefId, allInvolvedMoteIdsList, aMoteAndSensors.getMoteid(), sensAndFuncts.getSensorModelid()); if (replacementInfo == null) { // logger.debug("Could not find replacement node for " + sensAndFuncts.getSensorModelid() + " vsn id: " + pQueryDefId); serviceDeployPartiallyPossible = true; } else { logger.debug("Found replacement node " + replacementInfo[1] + " for node " + replacementInfo[0] + " for " + replacementInfo[2] + " vsn id: " + pQueryDefId); serviceDeployContinuationEmployed = true; // to prevent duplicates (though there really should not be such case) addToLocalReplacementInfoList(localReplacedResources, replacementInfo); } } //end if: node capability is not available else { //capability is available // add self as a replacement (locally) // a node could be available for some capabilities but not for others String[] replacementInfo = { aMoteAndSensors.getMoteid(), aMoteAndSensors.getMoteid(), sensAndFuncts.getSensorModelid() }; logger.debug("Adding self to local cache"); addToLocalReplacementInfoList(localReplacedResources, replacementInfo); } } //end for loop for this node's capability //loop through the localReplacedResources for this node and update the newMotesAndTheirSensorAndFunctsVec List<String> consideredReplacementNodes = new ArrayList<String>(); for (String[] entryLocal : localReplacedResources) { //logger.debug("Checking localReplacedResources for: " + entryLocal[0]); if (entryLocal[0].compareToIgnoreCase(aMoteAndSensors.getMoteid()) == 0) { String idOfOneReplacingNode = entryLocal[1]; if (!consideredReplacementNodes.contains(idOfOneReplacingNode)) { //logger.debug("INNER Checking localReplacedResources for: " + idOfOneReplacingNode); consideredReplacementNodes.add(idOfOneReplacingNode); Vector<ReqSensorAndFunctions> replacementNodeSensorAndFuncts = new Vector<ReqSensorAndFunctions>(); QueriedMoteAndSensors replacementMoteAndSensors = new QueriedMoteAndSensors( idOfOneReplacingNode, replacementNodeSensorAndFuncts); // inner loop again to find all capabilities that this node (idOfOneReplacingNode) is a replacement for for (String[] entryLocalInner : localReplacedResources) { if (entryLocalInner[0].compareToIgnoreCase(aMoteAndSensors.getMoteid()) == 0 && entryLocalInner[1].compareToIgnoreCase(idOfOneReplacingNode) == 0) { //logger.debug("INNER MATCh FOUND for: " + entryLocalInner[1] + " capability: " + entryLocalInner[2] ); String capabilityToAdd = entryLocalInner[2]; int capabilityToAddInt = ReqSensorAndFunctions.invalidSensModelId; try { capabilityToAddInt = Integer.valueOf(capabilityToAdd); } catch (Exception ex33) { logger.error( "Could not convert capability id to int for replacement capability: " + capabilityToAdd); } //logger.error("CAP TO ADD" + capabilityToAdd); if (functionsForCapabilityOfThisMoteHM.containsKey(capabilityToAdd) && functionsForCapabilityOfThisMoteHM.get(capabilityToAdd) != null && !functionsForCapabilityOfThisMoteHM.get(capabilityToAdd).isEmpty()) { //logger.error("FOUND IN HASHMAP!!!"); Vector<Integer> funcsOverThisCapability = functionsForCapabilityOfThisMoteHM .get(capabilityToAdd); //int smid = capabilityToAddInt; //logger.debug("DEB DEB For mote "+aMoteAndSensors.getMoteid() +" and sensor "+Integer.toString(smid) + " function vector size is "+reqFunctionVec.size()); //for (Integer inFunctVec : funcsOverThisCapability) { // logger.debug("DEB DEB Fid: " + inFunctVec); //} ReqSensorAndFunctions thisSensorAndFuncts = new ReqSensorAndFunctions( capabilityToAddInt, funcsOverThisCapability); //thisSensorAndFuncts.getSensorModelid(); //thisSensorAndFuncts.getFunctionsOverSensorModelVec().size(); //logger.debug("DEB DEB 333 For sensor "+ thisSensorAndFuncts.getSensorModelid()+ " function vector size is "+ thisSensorAndFuncts.getFunctionsOverSensorModelVec().size()); //for (Integer inFunctVec : funcsOverThisCapability) { // logger.debug("DEB DEB 333 Fid: " + inFunctVec); //} replacementNodeSensorAndFuncts.addElement(thisSensorAndFuncts); } } } if (!replacementNodeSensorAndFuncts.isEmpty()) { //logger.error("ADDING ELEMENT TO NEW MOTES LIST!!!" + replacementMoteAndSensors.getMoteid() + ":: " + Integer.toString(replacementMoteAndSensors.getQueriedSensorIdsAndFuncVec().size())); replacementMoteAndSensors .setQueriedSensorIdsAndFuncVec(replacementNodeSensorAndFuncts); newMotesAndTheirSensorAndFunctsVec.addElement(replacementMoteAndSensors); } } } } //functionsForCapabilityOfThisMoteHM.clear(); } } //end for loop for this node of queried motes if (newMotesAndTheirSensorAndFunctsVec == null || newMotesAndTheirSensorAndFunctsVec.isEmpty()) { serviceDeployImpossible = true; logger.debug("Service Deploy is impossible for vsn id: " + pQueryDefId); } // decide status String statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_UNKNOWN; if (serviceDeployImpossible) { statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_IMPOSSIBLE; } else if (serviceDeployContinuationEmployed && serviceDeployPartiallyPossible) { statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL_CONT_COMBO; } else if (serviceDeployContinuationEmployed) { statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_CONTINUATION; } else if (serviceDeployPartiallyPossible) { statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL; } else if (serviceDeployAllNodesAvailable && !serviceDeployImpossible && !serviceDeployContinuationEmployed && !serviceDeployPartiallyPossible) { statusDecidedStr = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_POSSIBLE; } serviceDeployStatusStr.set(0, statusDecidedStr); logger.debug("Decided DEPLOY STATUS WAS: " + serviceDeployStatusStr.get(0)); // We proceed here because even if service deploy is not possible, a reply will be sent with the status and empty lists (TODO consider) // However we also send (near the end of this method, alert messages for the deploy status if <> OK // // // TODO: To skip redundant queries in network // TODO: Count the reqFunction in reqFunction Vec (Debug print them) (also check that they are executed even if gateway level for each node-which should not happen) // TODO: Verify that if a function is gateway level and its removed(?) from the reqFunctionVec then it's not executed by the wsi adapter! // // // TODO: handle conditions for aggregate (gateway level functions). // //clone the reqFunctionsVec . TODO. this is not cloning though, we pass references to the added elements Vector<ReqFunctionOverData> onlyNodeReqFunctVec = new Vector<ReqFunctionOverData>(); Vector<ReqFunctionOverData> onlyGwLevelReqFunctVec = new Vector<ReqFunctionOverData>(); for (int i = 0; i < reqFunctionVec.size(); i++) { if (ReqFunctionOverData.isValidGatewayReqFunct(reqFunctionVec.elementAt(i).getfuncName())) onlyGwLevelReqFunctVec.addElement(reqFunctionVec.elementAt(i)); else { onlyNodeReqFunctVec.addElement(reqFunctionVec.elementAt(i)); } } // // get the involved capabilities per gatewaylevel function, and then remove the function id from those sensorModels! // // Produce a hashmap of gwLevel function name to Vector of capabilities (sensorModelId from the query/request) HashMap<String, Vector<String>> gwLevelFunctToCapsList = new HashMap<String, Vector<String>>(); // todo: IMPORTANT later we should group sensormodelIds per capability they belong to, but for now sensormodelid == capability! Iterator<ReqFunctionOverData> gwLevelFunctsIter = onlyGwLevelReqFunctVec.iterator(); while (gwLevelFunctsIter.hasNext()) { Vector<String> myInvolvedCaps = new Vector<String>(); ReqFunctionOverData tmpGwLevelFunct = gwLevelFunctsIter.next(); // new change to new Vector of motes (19/04) Iterator<QueriedMoteAndSensors> onMotesSensFunctsVecIter = newMotesAndTheirSensorAndFunctsVec .iterator(); while (onMotesSensFunctsVecIter.hasNext()) { QueriedMoteAndSensors tmpMoteAndSenAndFuncts = onMotesSensFunctsVecIter.next(); Iterator<ReqSensorAndFunctions> sensAndFunctsIter = tmpMoteAndSenAndFuncts .getQueriedSensorIdsAndFuncVec().iterator(); while (sensAndFunctsIter.hasNext()) { ReqSensorAndFunctions sensAndFuncts = sensAndFunctsIter.next(); //Vector<Integer> sensfunctsVector = sensAndFuncts.getFunctionsOverSensorModelVec(); int initSize = sensAndFuncts.getFid().size(); for (int k = initSize - 1; k >= 0; k--) { int sensfid = sensAndFuncts.getFid().get(k).intValue(); if (sensfid == tmpGwLevelFunct.getfuncId()) { if (!myInvolvedCaps.contains(sensAndFuncts.getSensorModelid())) { myInvolvedCaps.addElement(sensAndFuncts.getSensorModelid()); } // TODO: WHY??? (NOT NEEDED ANYMORE because we use the onlyNodeReqFunctVec to query the sensor and that filters out the functions in the adapter) ::here we should also delete the fid from the sensor model (but the simple way does not work for some reason, so it is left for future) //List tmpList = removeElementAt(sensAndFuncts.getFid(),k); //sensAndFuncts.getFid().clear(); //sensAndFuncts.getFid().addAll(tmpList); //sensAndFuncts.getFunctionsOverSensorModelVec().clear(); } } } } gwLevelFunctToCapsList.put(tmpGwLevelFunct.getfuncName(), myInvolvedCaps); } // // // Vector<ReqResultOverData> allResultsRead = new Vector<ReqResultOverData>(); //WsiAdapterCon myDCon = WsiAdapterConFactory.createMiddleWCon("uberdust", DbConInfoFactory.createConInfo("restHttp")); // DONE: The translateAggrQuery should not be executed for gateway level functions (skip them here or in the adapter con class.(?) // new changed to the new vector of motes : 19/04 logger.debug("Submitting query to the network"); // ASK ONLY FOR NODE LEVEL FUNCTIONS (TODO: Essentially for now, only last value is a node level function sent from the VSP, although other node level functions are supported) allResultsRead = myDCon.translateAggrQuery(newMotesAndTheirSensorAndFunctsVec, onlyNodeReqFunctVec); logger.debug("After Submitting query to the network"); // // // TODO: All gateway level functions reference a node level function at some point (either directly eg max or two hops eg "IF MAX " // // // Handle gateway level functions // first order of business, delete everything within them (some connectors could put latest values of all nodes, but we want to do it the more proper way) // then get the values of the referenced function(s) // aggregate the values and produce a single result. TODO: here UOMs of different sensor models could come into play. Handle this in the future! // // // 1. we create a new derived structure with unique fid keyed entries for required Result over data. Vector<ReqResultOverData> allUniqueFunctionsWithResults = new Vector<ReqResultOverData>(); Iterator<ReqResultOverData> messyResultsIter = allResultsRead.iterator(); // Loop over all resultOverData. They are keyed by fid, but there can be multiple of the same fid! // So here we merge those of same fid. while (messyResultsIter.hasNext()) //OUTER loop { ReqResultOverData tmpResStructFromMessyVec = messyResultsIter.next(); //ReqResultOverData tmpResStructMatched = null; boolean foundTheFid = false; Iterator<ReqResultOverData> uniqueFuncResultsIter = allUniqueFunctionsWithResults.iterator(); while (uniqueFuncResultsIter.hasNext()) //for the first pass of the OUTER loop the allUniqueFunctionsWithResults is empty { ReqResultOverData uniqueFunctResult = uniqueFuncResultsIter.next(); if (uniqueFunctResult.getFidInt() == tmpResStructFromMessyVec.getFidInt()) { foundTheFid = true; uniqueFunctResult.getOut().addAll(tmpResStructFromMessyVec.getAllResultsforFunct()); break; } } if (!foundTheFid) { allUniqueFunctionsWithResults.addElement(new ReqResultOverData(tmpResStructFromMessyVec.getFidInt(), tmpResStructFromMessyVec.getAllResultsforFunct())); } } // // Repeat this process slightly altered to add the unique Gw level functions // Iterator<ReqFunctionOverData> gwfunctIter = onlyGwLevelReqFunctVec.iterator(); while (gwfunctIter.hasNext()) //OUTER loop { ReqFunctionOverData tmpReqGwFunct = gwfunctIter.next(); //ReqResultOverData tmpResStructMatched = null; boolean foundTheFid = false; Iterator<ReqResultOverData> uniqueFuncResultsIter = allUniqueFunctionsWithResults.iterator(); while (uniqueFuncResultsIter.hasNext()) //for the first pass of the OUTER loop the allUniqueFunctionsWithResults is empty { ReqResultOverData uniqueFunctResult = uniqueFuncResultsIter.next(); if (uniqueFunctResult.getFidInt() == tmpReqGwFunct.getfuncId()) { foundTheFid = true; break; } } if (!foundTheFid) { allUniqueFunctionsWithResults.addElement( new ReqResultOverData(tmpReqGwFunct.getfuncId(), new Vector<ResultAggrStruct>())); } } // end of 1. // // 2. Go through all the gateway level functions (all of which are missing values right now). // For each gateway level function, go through all the results for this function. // gwfunctIter = onlyGwLevelReqFunctVec.iterator(); while (gwfunctIter.hasNext()) { ReqFunctionOverData tmpGwFunct = gwfunctIter.next(); Iterator<ReqResultOverData> resultsIter = allUniqueFunctionsWithResults.iterator(); // loop over all resultOverData for this specific function (matching is made in the next two lines) while (resultsIter.hasNext()) { ReqResultOverData tmpResForGWFunct = resultsIter.next(); if (tmpResForGWFunct.getFidInt() == tmpGwFunct.getfuncId()) { // descriptionTokens[0] : GW LEVEL PREFIX // descriptionTokens[1] : FUNCTION NAME // descriptionTokens[2] : REFERENCED FUNCTION ID String[] descriptionTokens = tmpGwFunct.getfuncName() .split(ReqFunctionOverData.GW_LEVEL_SEPARATOR); // // 3. Handle min, max and avg gateway level functions. (IF THEN FUNCTIONS ARE HANDLED AS ANOTHER CASE - THEY ARE ONE HOP HIGHER) // MIN, MAX, and AVG are all one hop (reference) away from a node level function (last value) if (descriptionTokens != null && descriptionTokens.length > 2 && (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.maxFunc) || descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.minFunc) || descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.avgFunc))) { logger.debug("Clearing up values for gw funct name: " + tmpGwFunct.getfuncName()); // cleanup of output list (it should however be already empty now that we rightfully only poll the WSI for node level functions) tmpResForGWFunct.getOut().clear(); tmpResForGWFunct.getAllResultsforFunct().clear(); //after cleanup of output list logger.debug("Filling up values for gw funct name: " + tmpGwFunct.getfuncName()); if (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.maxFunc)) { // MAX FUNCTION ======================================= int aggregatedValues = 0; int refFunct = ReqFunctionOverData.unknownFuncId; try { refFunct = Integer.valueOf(descriptionTokens[2]); } catch (Exception exfrtm) { logger.error("Reference function id was set as unknown!"); } HashMap<String, Long> capToTsFromMinLong = new HashMap<String, Long>(); HashMap<String, Long> capToTsToMaxLong = new HashMap<String, Long>(); HashMap<String, Long> capToMaxValueLong = new HashMap<String, Long>(); // Iterator<ReqResultOverData> resultsIter002 = allUniqueFunctionsWithResults.iterator(); // INNER LOOP THROUGH FUNCTIONS with results, searching for the referenced NODE level function while (resultsIter002.hasNext()) { ReqResultOverData tmpRes = resultsIter002.next(); if (tmpRes.getFidInt() == refFunct) { // for every GENERIC capability requested( the generic capability is coded as hashcode() ) for (String currCapSidStr : gwLevelFunctToCapsList .get(tmpGwFunct.getfuncName())) { if (!capToMaxValueLong.containsKey(currCapSidStr)) { capToMaxValueLong.put(currCapSidStr, Long.valueOf(Long.MIN_VALUE)); capToTsFromMinLong.put(currCapSidStr, Long.valueOf(Long.MAX_VALUE)); capToTsToMaxLong.put(currCapSidStr, Long.valueOf(Long.MIN_VALUE)); } Iterator<OutType> tmpOutItemIter = tmpRes.getOut().iterator(); while (tmpOutItemIter.hasNext()) { ResultAggrStruct tmpOutItem = new ResultAggrStruct( tmpOutItemIter.next()); if (currCapSidStr.trim().equalsIgnoreCase(tmpOutItem.getSid().trim())) { try { long longValToCompare = Long.parseLong(tmpOutItem.getVal()); if (longValToCompare > capToMaxValueLong.get(currCapSidStr) .longValue()) { capToMaxValueLong.put(currCapSidStr, Long.valueOf(longValToCompare)); } if (capToTsFromMinLong.get(currCapSidStr) .longValue() > tmpOutItem.getTis().getFromTimestamp() .getTime()) { capToTsFromMinLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getFromTimestamp().getTime())); } if (capToTsToMaxLong.get(currCapSidStr).longValue() < tmpOutItem .getTis().getToTimestamp().getTime()) { capToTsToMaxLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getToTimestamp().getTime())); } aggregatedValues += 1; } catch (Exception e) { logger.error("Invalid format to aggregate"); } } } ResultAggrStruct thisAggrResult = new ResultAggrStruct( ResultAggrStruct.MidSpecialForAggregateMultipleValues, Integer.valueOf(currCapSidStr), Long.toString(capToMaxValueLong.get(currCapSidStr)), aggregatedValues, new TimeIntervalStructure( new Timestamp(capToTsFromMinLong.get(currCapSidStr)), new Timestamp(capToTsToMaxLong.get(currCapSidStr)))); tmpResForGWFunct.getOut().add(thisAggrResult); } } } } else if (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.minFunc)) { // MIN FUNCTION ======================================= int aggregatedValues = 0; int refFunct = ReqFunctionOverData.unknownFuncId; try { refFunct = Integer.valueOf(descriptionTokens[2]); } catch (Exception exfrtm) { logger.error("Reference function id was set as unknown!"); } HashMap<String, Long> capToTsFromMinLong = new HashMap<String, Long>(); HashMap<String, Long> capToTsToMaxLong = new HashMap<String, Long>(); HashMap<String, Long> capToMinValueLong = new HashMap<String, Long>(); // Iterator<ReqResultOverData> resultsIter002 = allUniqueFunctionsWithResults.iterator(); while (resultsIter002.hasNext()) { ReqResultOverData tmpRes = resultsIter002.next(); if (tmpRes.getFidInt() == refFunct) { // for every GENERIC capability requested( the genereic capability is coded as hashcode() ) for (String currCapSidStr : gwLevelFunctToCapsList .get(tmpGwFunct.getfuncName())) { if (!capToMinValueLong.containsKey(currCapSidStr)) { capToMinValueLong.put(currCapSidStr, Long.valueOf(Long.MAX_VALUE)); capToTsFromMinLong.put(currCapSidStr, Long.valueOf(Long.MAX_VALUE)); capToTsToMaxLong.put(currCapSidStr, Long.valueOf(Long.MIN_VALUE)); } Iterator<OutType> tmpOutItemIter = tmpRes.getOut().iterator(); while (tmpOutItemIter.hasNext()) { ResultAggrStruct tmpOutItem = new ResultAggrStruct( tmpOutItemIter.next()); if (currCapSidStr.trim().equalsIgnoreCase(tmpOutItem.getSid().trim())) { try { long longValToCompare = Long.parseLong(tmpOutItem.getVal()); if (longValToCompare < capToMinValueLong.get(currCapSidStr) .longValue()) { capToMinValueLong.put(currCapSidStr, Long.valueOf(longValToCompare)); } if (capToTsFromMinLong.get(currCapSidStr) .longValue() > tmpOutItem.getTis().getFromTimestamp() .getTime()) { capToTsFromMinLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getFromTimestamp().getTime())); } if (capToTsToMaxLong.get(currCapSidStr).longValue() < tmpOutItem .getTis().getToTimestamp().getTime()) { capToTsToMaxLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getToTimestamp().getTime())); } aggregatedValues += 1; } catch (Exception e) { logger.error("Invalid format to aggregate"); } } } ResultAggrStruct thisAggrResult = new ResultAggrStruct( ResultAggrStruct.MidSpecialForAggregateMultipleValues, Integer.valueOf(currCapSidStr), Long.toString(capToMinValueLong.get(currCapSidStr)), aggregatedValues, new TimeIntervalStructure( new Timestamp(capToTsFromMinLong.get(currCapSidStr)), new Timestamp(capToTsToMaxLong.get(currCapSidStr)))); logger.debug("Adding a result"); tmpResForGWFunct.getOut().add(thisAggrResult); logger.debug("Added a result"); } } } } else if (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.avgFunc)) { // AVG FUNCTION ======================================= int aggregatedValues = 0; int refFunct = ReqFunctionOverData.unknownFuncId; try { refFunct = Integer.valueOf(descriptionTokens[2]); } catch (Exception exfrtm) { logger.error("Reference function id was set as unknown!"); } HashMap<String, Long> capToTsFromMinLong = new HashMap<String, Long>(); HashMap<String, Long> capToTsToMaxLong = new HashMap<String, Long>(); HashMap<String, Long> capToAvgValueLong = new HashMap<String, Long>(); // Iterator<ReqResultOverData> resultsIter002 = allUniqueFunctionsWithResults.iterator(); while (resultsIter002.hasNext()) { ReqResultOverData tmpRes = resultsIter002.next(); /*System.out.println("LLLLLLLL TEST 3"); StringBuilder tmpRsOD = new StringBuilder(); tmpRsOD.append("resf fid:"); tmpRsOD.append(tmpRes.getFidInt()); tmpRsOD.append(" AND ref funct:"); tmpRsOD.append(refFunct); System.out.println("OOOOOOOOOOOOOO TEST 3B" + tmpRsOD.toString());*/ if (tmpRes.getFidInt() == refFunct) { // for every GENERIC capability requested( the genereic capability is coded as hashcode() ) for (String currCapSidStr : gwLevelFunctToCapsList .get(tmpGwFunct.getfuncName())) { if (!capToAvgValueLong.containsKey(currCapSidStr)) { capToAvgValueLong.put(currCapSidStr, Long.valueOf(0)); capToTsFromMinLong.put(currCapSidStr, Long.valueOf(Long.MAX_VALUE)); capToTsToMaxLong.put(currCapSidStr, Long.valueOf(Long.MIN_VALUE)); } Iterator<OutType> tmpOutItemIter = tmpRes.getOut().iterator(); while (tmpOutItemIter.hasNext()) { ResultAggrStruct tmpOutItem = new ResultAggrStruct( tmpOutItemIter.next()); if (currCapSidStr.trim().equalsIgnoreCase(tmpOutItem.getSid().trim())) { try { long longValOfSensor = Long.parseLong(tmpOutItem.getVal()); long valPrevious = capToAvgValueLong.get(currCapSidStr) .longValue(); long newVal = valPrevious + longValOfSensor; capToAvgValueLong.put(currCapSidStr, Long.valueOf(newVal)); // if (capToTsFromMinLong.get(currCapSidStr) .longValue() > tmpOutItem.getTis().getFromTimestamp() .getTime()) { capToTsFromMinLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getFromTimestamp().getTime())); } if (capToTsToMaxLong.get(currCapSidStr).longValue() < tmpOutItem .getTis().getToTimestamp().getTime()) { capToTsToMaxLong.put(currCapSidStr, Long.valueOf( tmpOutItem.getTis().getToTimestamp().getTime())); } aggregatedValues += 1; } catch (Exception e) { logger.error("Invalid format to aggregate"); } } } Double avgVal = Double .valueOf(capToAvgValueLong.get(currCapSidStr).longValue()) / Double.valueOf(aggregatedValues); /*StringBuilder tmpRs = new StringBuilder(); tmpRs.append("Result:"); tmpRs.append(avgVal); tmpRs.append(" aggr vals:"); tmpRs.append(aggregatedValues); System.out.println("OOOOOOOOOOOOOO TEST 3C" + tmpRs.toString());*/ ResultAggrStruct thisAggrResult = new ResultAggrStruct( ResultAggrStruct.MidSpecialForAggregateMultipleValues, Integer.valueOf(currCapSidStr), Double.toString(avgVal), aggregatedValues, new TimeIntervalStructure( new Timestamp(capToTsFromMinLong.get(currCapSidStr)), new Timestamp(capToTsToMaxLong.get(currCapSidStr)))); tmpResForGWFunct.getOut().add(thisAggrResult); //System.out.println("OOOOOOOOOOOOOO TEST 3D" + tmpRs.toString()); } } } } } } } } // end of while loop on ONE HOP REFERENCE GW FUNCTIONs (MIN, MAX, AVG // Start of while loop on 2nd HOP reference GW function (need the one hops already filled in) // TODO: we don't handle/anticipate the case where the IF_THEN function references another IF_THEN function (even repeatedly). More flexibility could be implemented!! gwfunctIter = onlyGwLevelReqFunctVec.iterator(); // gets a NEW iterator while (gwfunctIter.hasNext()) { ReqFunctionOverData tmpGwFunct = gwfunctIter.next(); Iterator<ReqResultOverData> resultsIter = allUniqueFunctionsWithResults.iterator(); // loop over all resultOverData for this specific function (matching is made in the next two lines) while (resultsIter.hasNext()) { ReqResultOverData tmpResForGWFunct = resultsIter.next(); if (tmpResForGWFunct.getFidInt() == tmpGwFunct.getfuncId()) { // descriptionTokens[0] : GW LEVEL PREFIX // descriptionTokens[1] : FUNCTION NAME // descriptionTokens[2] : REFERENCED FUNCTION ID String[] descriptionTokens = tmpGwFunct.getfuncName() .split(ReqFunctionOverData.GW_LEVEL_SEPARATOR); if (descriptionTokens != null && descriptionTokens.length > 2 && (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.ruleRuleBinaryAndFunc) || descriptionTokens[1] .equalsIgnoreCase(ReqFunctionOverData.ruleRuleIfThenFunc))) { logger.debug("Clearing up values for gw funct name: " + tmpGwFunct.getfuncName()); // cleanup of output list (it should however be already empty now that we rightfully only poll the WSI for node level functions) tmpResForGWFunct.getOut().clear(); tmpResForGWFunct.getAllResultsforFunct().clear(); //after cleanup of output list logger.debug("Filling values for funct name: " + tmpGwFunct.getfuncName()); if (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.ruleRuleBinaryAndFunc)) { //TODO: handle a binary rule (condition1 and condition2) } else if (descriptionTokens[1].equalsIgnoreCase(ReqFunctionOverData.ruleRuleIfThenFunc)) { logger.debug("Filling values for funct name: " + tmpGwFunct.getfuncName()); //handle a binary rule (condition1 then do 3) // 1: check if the referenced function has results that meet the conditions in its threshold int consideredValues = 0; int refFunct = ReqFunctionOverData.unknownFuncId; try { refFunct = Integer.valueOf(descriptionTokens[2]); } catch (Exception exfrtm) { logger.error("Reference function id was set as unknown!"); } HashMap<String, Long> capToTsFromMinLong = new HashMap<String, Long>(); HashMap<String, Long> capToTsToMaxLong = new HashMap<String, Long>(); HashMap<String, Long> capToConditionValueLong = new HashMap<String, Long>(); // Iterator<ReqResultOverData> resultsIter002 = allUniqueFunctionsWithResults.iterator(); while (resultsIter002.hasNext()) { ReqResultOverData tmpRes = resultsIter002.next(); if (tmpRes.getFidInt() == refFunct) { // for every GENERIC capability requested( the genereic capability is coded as hashcode() ) for (String currCapSidStr : gwLevelFunctToCapsList .get(tmpGwFunct.getfuncName())) { if (!capToConditionValueLong.containsKey(currCapSidStr)) { capToTsFromMinLong.put(currCapSidStr, Long.valueOf(Long.MAX_VALUE)); capToTsToMaxLong.put(currCapSidStr, Long.valueOf(Long.MIN_VALUE)); capToConditionValueLong.put(currCapSidStr, Long.valueOf(0)); } Iterator<OutType> tmpOutItemIter = tmpRes.getOut().iterator(); while (tmpOutItemIter.hasNext()) { ResultAggrStruct tmpOutItem = new ResultAggrStruct( tmpOutItemIter.next()); if (currCapSidStr.trim().equalsIgnoreCase(tmpOutItem.getSid().trim())) { try { // TODO: Actually here we need to find in the original ReqFunctVec (that contains the full function definitions, not just the function id) // the thresholds set. Before we search for the thresholds in the referenced function but now (better) we get them from this function (If_then) boolean foundTheCurrentFunctionInTheOriginalReqFunctionVec = false; long longValOfSensor = Long.parseLong(tmpOutItem.getVal()); ReqFunctionOverData currentFunctionInCondition = null; for (int kx1 = 0; kx1 < reqFunctionVec.size(); kx1++) { if (reqFunctionVec.elementAt(kx1) .getfuncId() == tmpResForGWFunct.getFidInt()) { currentFunctionInCondition = reqFunctionVec .elementAt(kx1); foundTheCurrentFunctionInTheOriginalReqFunctionVec = true; break; } } // but also find the reference function in the condition to include details in the notification boolean foundTheReferencedFunctionInTheOriginalReqFunctionVec = false; ReqFunctionOverData referencedFunctionInCondition = null; for (int kx1 = 0; kx1 < reqFunctionVec.size(); kx1++) { if (reqFunctionVec.elementAt(kx1) .getfuncId() == tmpResForGWFunct.getFidInt()) { referencedFunctionInCondition = reqFunctionVec .elementAt(kx1); foundTheReferencedFunctionInTheOriginalReqFunctionVec = true; break; } } if (foundTheCurrentFunctionInTheOriginalReqFunctionVec) // the referred function here must have a threshold field because it's an evaluation of a condition { if (currentFunctionInCondition != null && currentFunctionInCondition .getThresholdField() != null && !currentFunctionInCondition.getThresholdField() .isEmpty()) { logger.debug( "-------- INTO EVALUATING CONDITION NOW! "); ThresholdStructure requiredThresholds = new ThresholdStructure( currentFunctionInCondition.getThresholdField()); if (requiredThresholds.getLowerBound() != null && !requiredThresholds.getLowerBound() .isEmpty()) { logger.debug("Condition low parameter: " + requiredThresholds.getLowerBound() .trim()); // TODO: handle other conditions for services (lower than, equals, between) long lowbound = Long.parseLong( requiredThresholds.getLowerBound()); if (longValOfSensor >= lowbound) { logger.debug("Sensor: " + tmpOutItem.getMid() + ". Condition is met: " + Long.toString(longValOfSensor) + " >= " + requiredThresholds .getLowerBound().trim()); consideredValues = 1; ResultAggrStruct thisAggrResult = new ResultAggrStruct( tmpOutItem.getMid(), Integer.valueOf(currCapSidStr), Long.toString(longValOfSensor), consideredValues, new TimeIntervalStructure(new Timestamp( Long.valueOf(tmpOutItem.getTis() .getFromTimestamp() .getTime())), new Timestamp(Long.valueOf( tmpOutItem.getTis() .getToTimestamp() .getTime())))); tmpResForGWFunct.getOut().add(thisAggrResult); // DONE: Send an alert notification NotificationsFromVSNs newNotify = new NotificationsFromVSNs(); newNotify.setQueryDefId(pQueryDefId); newNotify.setVgwID(myPeerId); // get continuation info. Careful, we have not yet replaced the replacemntIDs with the original nodes in the measurements here (it's done later) // but we have to set the MoteId to the Original Id and the replacementId to the replacement node String[] replaceItem = getLocalReplacemntInfoListItem( localReplacedResources, tmpOutItem.getMid(), tmpOutItem.getSid()); if (replaceItem != null && replaceItem[0] != null && !replaceItem[0].isEmpty() && replaceItem[0].compareToIgnoreCase( replaceItem[1]) != 0) { newNotify.setMoteID(replaceItem[0]); newNotify.setReplacmntID( tmpOutItem.getMid()); } else { newNotify.setMoteID(tmpOutItem.getMid()); newNotify.setReplacmntID(""); } newNotify.setValue(longValOfSensor); if (tmpOutItem.getTis() != null && tmpOutItem .getTis().isTimestampFromDefined()) newNotify.setValueTimestamp( Long.toString(tmpOutItem.getTis() .getFromTimestamp() .getTime())); newNotify.setBoundValue(lowbound); newNotify.setRefFunctName( referencedFunctionInCondition .getfuncName()); newNotify.setRefFunctTriggerSign("gt"); //default for lower bound conditions newNotify.setCapabilityCode( tmpOutItem.getSid().trim()); newNotify.setTimestamp(Long .toString(System.currentTimeMillis())); newNotify.setType( NotificationsFromVSNs.CRITICAL_TYPE); newNotify.setLevel( NotificationsFromVSNs.GATEWAY_LEVEL); newNotify.setRefFunctId( referencedFunctionInCondition .getfuncId()); newNotify.setMessage( "Condition was met for node id: " + newNotify.getMoteID() + " value: " + longValOfSensor + " capability code:__" + tmpOutItem.getSid().trim()); // Send the response to the requesting end user //System.out.println("Sending Notification!"); String notifMsgToSend = NotificationsFromVSNs .getAlertDelimitedString(newNotify); this.sendResponse(notifMsgToSend); } else { logger.debug("Sensor: " + tmpOutItem.getMid() + " with value: " + Long.toString(longValOfSensor) + " does not meet Condition!"); } } } } } catch (Exception e) { logger.error("Invalid format to aggregate"); } } } // // } } } } } } } } // Add trailing section for service deployability and replacements list // Careful! for the replacements list, skip the entries where the node replaces itself // DONE: RECONSTRUCT the Vector<ReqResultOverData> allUniqueFunctionsWithResults for the original nodes! // // logger.debug("BEFORE RECONSTRUCTION"); if (allUniqueFunctionsWithResults != null) { logger.debug("IN RECONSTRUCTION"); for (ReqResultOverData aResultOverData : allUniqueFunctionsWithResults) { String functionId = aResultOverData.getFid(); // replacing is needed only for node level functions and possibly for if then functions referring to last values of sensors (not for aggregate GW level or if_then over aggregates) // &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++== /* boolean isGwLevel = false; Iterator<ReqFunctionOverData> gwfunctIterLocal = onlyGwLevelReqFunctVec.iterator(); while(gwfunctIterLocal.hasNext()) //OUTER loop { ReqFunctionOverData tmpReqGwFunct = gwfunctIterLocal.next(); if(Integer.toString(tmpReqGwFunct.getfuncId()).equalsIgnoreCase(functionId)){ isGwLevel = true; break; } } if(!isGwLevel) { */ logger.debug("FID:: " + functionId); if (aResultOverData.getAllResultsforFunct() != null) { if (aResultOverData.getAllResultsforFunct().isEmpty()) { logger.debug("has no results!!"); } else { logger.debug("found results!!"); } Vector<ResultAggrStruct> newReconstructedResultVec = null; boolean foundAtLeastOneResultForSpecificMoteId = false; for (ResultAggrStruct thisResult : aResultOverData.getAllResultsforFunct()) { if (thisResult.getMid() .compareToIgnoreCase(ResultAggrStruct.MidSpecialForAggregateMultipleValues) != 0) { if (!foundAtLeastOneResultForSpecificMoteId) { foundAtLeastOneResultForSpecificMoteId = true; newReconstructedResultVec = new Vector<ResultAggrStruct>(); } String[] replaceItem = getLocalReplacemntInfoListItem(localReplacedResources, thisResult.getMid(), thisResult.getSid()); if (replaceItem != null && replaceItem[0] != null && !replaceItem[0].isEmpty()) { logger.debug("Back to replacing node :" + thisResult.getMid() + " with original node: " + replaceItem[0]); thisResult.setMid(replaceItem[0]); newReconstructedResultVec.addElement(thisResult); } } } if (foundAtLeastOneResultForSpecificMoteId) { aResultOverData.setAllResultsforFunct(newReconstructedResultVec); } } /* } */ } } // // DEBUG: logger.debug("The gateway has collected results and is ready to send them!"); //return allResultsRead; // Support for various data types is added by the DataTypeAdapter class // ********************** COAP MESSAGES BACK TO GATEWAY ******************************* // ALSO SEND ANY SECURITY MESSAGES // TODO: we could clean the cache after sending these messages (?) if (!VitroGatewayService.getVitroGatewayService().isWsiTrustCoapMessagingSupport()) { logger.debug("No SUPPORT FOR SENDING TRUST SECURITY INFO back to VSP!"); } if (!VitroGatewayService.getVitroGatewayService().isTrustRoutingCoapMessagingActive()) { logger.debug("No ACTIVATION FOR SENDING TRUST SECURITY INFO back to VSP!"); } if (VitroGatewayService.getVitroGatewayService().isWsiTrustCoapMessagingSupport() && VitroGatewayService.getVitroGatewayService().isTrustRoutingCoapMessagingActive()) { logger.debug("Attempting to send TRUST SECURITY INFO back to VSP!"); HashMap<String, InfoOnTrustRouting> cacheTrustCoapCopy = new HashMap<String, InfoOnTrustRouting>( TrustRoutingQueryService.getInstance().getCachedDirectoryOfTrustRoutingInfo()); String aRefCapCode = ""; int aRefFunctId = 1;// last value is always in the request if (originalMotesAndTheirSensorAndFunctsVec != null) { try { aRefCapCode = originalMotesAndTheirSensorAndFunctsVec.firstElement() .getQueriedSensorIdsAndFuncVec().get(0).getSensorModelid(); } catch (Exception e339) { logger.error("Could not acquire sample capability id for security TRUST alert "); } try { aRefFunctId = originalMotesAndTheirSensorAndFunctsVec.firstElement() .getQueriedSensorIdsAndFuncVec().get(0).getFunctionsOverSensorModelVec().firstElement(); } catch (Exception e339) { logger.error("Could not acquire sample function id for security TRUST alert "); } } if (cacheTrustCoapCopy != null) { for (String sourceNodeId : cacheTrustCoapCopy.keySet()) { InfoOnTrustRouting tmpInfoOnTrust = cacheTrustCoapCopy.get(sourceNodeId); HashMap<String, Integer> tmpParentIdToPFiHM = tmpInfoOnTrust.getParentIdsToPFI(); for (String parentNodeId : tmpParentIdToPFiHM.keySet()) { // TODO: Send a SECURITY notification NotificationsFromVSNs newNotify = new NotificationsFromVSNs(); newNotify.setQueryDefId(pQueryDefId); newNotify.setVgwID(myPeerId); newNotify.setMoteID(sourceNodeId); newNotify.setValue(tmpParentIdToPFiHM.get(parentNodeId)); // TODO: Demo: change to current timestamp which is more reliable newNotify.setValueTimestamp(Long.toString(System.currentTimeMillis())); // the time stamp for the PFI value newNotify.setTimestamp(Long.toString(System.currentTimeMillis())); //the time stamp of the notification //newNotify.setTimestamp(tmpInfoOnTrust.getTimestamp() ); //newNotify.setValueTimestamp(tmpInfoOnTrust.getTimestamp()); newNotify.setType(NotificationsFromVSNs.SECURITY_TYPE); newNotify.setLevel(NotificationsFromVSNs.GATEWAY_LEVEL); // we need sample valid funct ids and capability codes related to this VSN , to associate it at the VSP level with a partial service! newNotify.setRefFunctId(aRefFunctId); newNotify.setCapabilityCode(aRefCapCode); // the message field is here used to store the parent ID. newNotify.setMessage(parentNodeId); // Send the response to the requesting end user //System.out.println("Sending Notification!"); String notifMsgToSend = NotificationsFromVSNs.getAlertDelimitedString(newNotify); try { this.sendResponse(notifMsgToSend); logger.debug("Sent one TRUST SECURITY INFO back to VSP!"); } catch (Exception securSendExc) { logger.error("Could not send Security Type notification", securSendExc); } } } } // /* logger.debug("Sending a dummy message security for TRUST-DEBUG"); { //--------------------------------------------------------------------- // TODO: Send a SECURITY notification NotificationsFromVSNs newNotify = new NotificationsFromVSNs(); newNotify.setQueryDefId(pQueryDefId); newNotify.setVgwID(myPeerId); newNotify.setMoteID("urn:wisebed:ctitestbed:0xca2"); newNotify.setValue(400); newNotify.setValueTimestamp(Long.toString(new Date().getTime())); newNotify.setTimestamp(Long.toString(new Date().getTime())); newNotify.setType(NotificationsFromVSNs.SECURITY_TYPE); newNotify.setLevel(NotificationsFromVSNs.GATEWAY_LEVEL); newNotify.setRefFunctId(aRefFunctId); newNotify.setCapabilityCode(aRefCapCode); // the message field is here used to store the parent ID. newNotify.setMessage("urn:wisebed:ctitestbed:0xCC"); // Send the response to the requesting end user //System.out.println("Sending Notification!"); String notifMsgToSend = NotificationsFromVSNs.getAlertDelimitedString(newNotify); try{ this.sendResponse(notifMsgToSend); logger.debug("Sent one TRUST SECURITY INFO back to VSP!"); }catch(Exception securSendExc){ logger.error("Could not send Security Type notification" , securSendExc); } //--------------------------------------------------------------------- } */ } //end of if we have to send the security Coap Routing Trust Messages // %%%%%%%%%% DIRECTLY INFORM THE GATEWAY OF PROBLEMATIC DEPLOY STATUS: if (serviceDeployImpossible || serviceDeployContinuationEmployed || serviceDeployPartiallyPossible) { String aRefMote = ""; String aRefCapCode = ""; int aRefFunctId = 1;// last value is always in the request if (originalMotesAndTheirSensorAndFunctsVec != null) { try { aRefMote = originalMotesAndTheirSensorAndFunctsVec.firstElement().getMoteid(); } catch (Exception e339) { logger.error("Could not acquire sample ref node it for DEPLOY ABILITY STATUS alert "); } try { aRefCapCode = originalMotesAndTheirSensorAndFunctsVec.firstElement() .getQueriedSensorIdsAndFuncVec().get(0).getSensorModelid(); } catch (Exception e339) { logger.error("Could not acquire sample capability for DEPLOY ABILITY STATUS alert "); } try { aRefFunctId = originalMotesAndTheirSensorAndFunctsVec.firstElement() .getQueriedSensorIdsAndFuncVec().get(0).getFunctionsOverSensorModelVec().firstElement(); } catch (Exception e339) { logger.error("Could not acquire sample function id for DEPLOY ABILITY STATUS alert "); } } String strMessage = ""; long deployValue = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_POSSIBLE_INT; if (serviceDeployImpossible) { strMessage = "The requested VSN cannot be supported by this island: " + myPeerId; // case ResponseAggrMsg.DEPLOY_STATUS_SERVICE_IMPOSSIBLE; deployValue = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_IMPOSSIBLE_INT; } else if (serviceDeployContinuationEmployed && serviceDeployPartiallyPossible) { // case ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL_CONT_COMBO; strMessage = "The requested VSN is partially supported using service continuation on this island: " + myPeerId; deployValue = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL_CONT_COMBO_INT; } else if (serviceDeployContinuationEmployed) { // case ResponseAggrMsg.DEPLOY_STATUS_SERVICE_CONTINUATION; strMessage = "The requested VSN is supported using service continuation on this island: " + myPeerId; deployValue = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_CONTINUATION_INT; } else if (serviceDeployPartiallyPossible) { // case ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL; strMessage = "The requested VSN is partially supported on this island: " + myPeerId; deployValue = ResponseAggrMsg.DEPLOY_STATUS_SERVICE_PARTIAL_INT; } // SEND THE NOTIFICATION:: // TODO: Send a DEPLOY_STATUS_TYPE notification NotificationsFromVSNs newNotify = new NotificationsFromVSNs(); newNotify.setQueryDefId(pQueryDefId); newNotify.setVgwID(myPeerId); newNotify.setMoteID(aRefMote); newNotify.setValue(deployValue); // TODO: Demo: change to current timestamp which is more reliable newNotify.setValueTimestamp(Long.toString(System.currentTimeMillis())); // the time stamp for the PFI value newNotify.setTimestamp(Long.toString(System.currentTimeMillis())); //the time stamp of the notification //newNotify.setTimestamp(tmpInfoOnTrust.getTimestamp() ); //newNotify.setValueTimestamp(tmpInfoOnTrust.getTimestamp()); newNotify.setType(NotificationsFromVSNs.DEPLOY_STATUS_TYPE); newNotify.setLevel(NotificationsFromVSNs.GATEWAY_LEVEL); // we need sample valid funct ids and capability codes related to this VSN , to associate it at the VSP level with a partial service! newNotify.setRefFunctId(aRefFunctId); newNotify.setCapabilityCode(aRefCapCode); // the message field is here used to store the parent ID. newNotify.setMessage(strMessage); // Send the response to the requesting end user //System.out.println("Sending Notification!"); String notifMsgToSend = NotificationsFromVSNs.getAlertDelimitedString(newNotify); try { this.sendResponse(notifMsgToSend); logger.debug("Sent one DEPLOY STATUS info back to VSP!"); } catch (Exception securSendExc) { logger.error("Could not send DEPLOY STATUS notification", securSendExc); } } return allUniqueFunctionsWithResults; }
From source file:org.apache.webdav.lib.WebdavResource.java
/** * Get an array of pathnames and basic information denoting the WebDAV * resources in the denoted by this pathname. * * array 0: displayname/* w ww . ja va2 s.c om*/ * array 1: getcontentlength * array 2: iscollection or getcontentype * array 3: getlastmodifieddate * array 4: name * * @return An array of pathnames and more denoting the resources. * @exception HttpException * @exception IOException */ public Vector listBasic() throws HttpException, IOException { setBasicProperties(DepthSupport.DEPTH_1); Enumeration hrefs = childResources.getResourceNames(); Vector hrefList = new Vector(); while (hrefs.hasMoreElements()) { try { String resourceName = (String) hrefs.nextElement(); WebdavResource currentResource = childResources.getResource(resourceName); String[] longFormat = new String[5]; // displayname. longFormat[0] = currentResource.getDisplayName(); long length = currentResource.getGetContentLength(); // getcontentlength longFormat[1] = new Long(length).toString(); // resourcetype ResourceTypeProperty resourceTypeProperty = currentResource.getResourceType(); // getcontenttype String getContentType = currentResource.getGetContentType(); longFormat[2] = resourceTypeProperty.isCollection() ? "COLLECTION" : getContentType; Date date = new Date(currentResource.getGetLastModified()); // getlastmodified // Save the dummy what if failed. longFormat[3] = (date == null) ? "-- -- ----" : // Print the local fancy date format. DateFormat.getDateTimeInstance().format(date); hrefList.addElement(longFormat); // real name of componente longFormat[4] = currentResource.getName(); } catch (Exception e) { // FIXME: After if's gotten an exception, any solution? if (debug > 0) e.printStackTrace(); //log.error(e,e); } } return hrefList; }
From source file:com.zeroio.webdav.WebdavServlet.java
/** * Propfind helper method. Dispays the properties of a lock-null resource. * * @param generatedXML XML response to the Propfind request * @param path Path of the current resource * @param type Propfind type * @param propertiesVector If the propfind type is find properties by name, * then this Vector contains those properties * @param req Description of the Parameter *///from w w w .j a va 2 s.c o m private void parseLockNullProperties(HttpServletRequest req, XMLWriter generatedXML, String path, int type, Vector propertiesVector) { //System.out.println("PARSING LOCK NULL PROPERTIES....PATH: " + path); // Exclude any resource in the /WEB-INF and /META-INF subdirectories // (the "toUpperCase()" avoids problems on Windows systems) if (path.toUpperCase().startsWith("/WEB-INF") || path.toUpperCase().startsWith("/META-INF")) { return; } // Retrieving the lock associated with the lock-null resource LockInfo lock = (LockInfo) resourceLocks.get(path); if (lock == null) { return; } generatedXML.writeElement(null, "response", XMLWriter.OPENING); String status = new String( "HTTP/1.1 " + WebdavStatus.SC_OK + " " + WebdavStatus.getStatusText(WebdavStatus.SC_OK)); // Generating href element generatedXML.writeElement(null, "href", XMLWriter.OPENING); String absoluteUri = req.getRequestURI(); String relativePath = getRelativePath(req); String toAppend = path.substring(relativePath.length()); if (!toAppend.startsWith("/")) { toAppend = "/" + toAppend; } generatedXML.writeText(rewriteUrl(normalize(absoluteUri + toAppend))); generatedXML.writeElement(null, "href", XMLWriter.CLOSING); String resourceName = path; //System.out.println("Resource Name: " + resourceName); int lastSlash = path.lastIndexOf('/'); if (lastSlash != -1) { resourceName = resourceName.substring(lastSlash + 1); } switch (type) { case FIND_ALL_PROP: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeProperty(null, "creationdate", getISOCreationDate(lock.creationDate.getTime())); generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); generatedXML.writeProperty(null, "getlastmodified", FastHttpDateFormat.formatDate(lock.creationDate.getTime(), null)); generatedXML.writeProperty(null, "getcontentlength", String.valueOf(0)); generatedXML.writeProperty(null, "getcontenttype", ""); generatedXML.writeProperty(null, "getetag", ""); generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "lock-null", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); generatedXML.writeProperty(null, "source", ""); String supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_PROPERTY_NAMES: generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); generatedXML.writeElement(null, "creationdate", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "displayname", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontentlength", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getcontenttype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getetag", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "getlastmodified", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "lockdiscovery", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; case FIND_BY_PROPERTY: Vector propertiesNotFound = new Vector(); // Parse the list of properties generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); Enumeration properties = propertiesVector.elements(); while (properties.hasMoreElements()) { String property = (String) properties.nextElement(); if (property.equals("creationdate")) { generatedXML.writeProperty(null, "creationdate", getISOCreationDate(lock.creationDate.getTime())); } else if (property.equals("displayname")) { generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); } else if (property.equals("getcontentlanguage")) { generatedXML.writeElement(null, "getcontentlanguage", XMLWriter.NO_CONTENT); } else if (property.equals("getcontentlength")) { generatedXML.writeProperty(null, "getcontentlength", (String.valueOf(0))); } else if (property.equals("getcontenttype")) { generatedXML.writeProperty(null, "getcontenttype", ""); } else if (property.equals("getetag")) { generatedXML.writeProperty(null, "getetag", ""); } else if (property.equals("getlastmodified")) { generatedXML.writeProperty(null, "getlastmodified", FastHttpDateFormat.formatDate(lock.creationDate.getTime(), null)); } else if (property.equals("resourcetype")) { generatedXML.writeElement(null, "resourcetype", XMLWriter.OPENING); generatedXML.writeElement(null, "lock-null", XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "resourcetype", XMLWriter.CLOSING); } else if (property.equals("source")) { generatedXML.writeProperty(null, "source", ""); } else if (property.equals("supportedlock")) { supportedLocks = "<lockentry>" + "<lockscope><exclusive/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>" + "<lockentry>" + "<lockscope><shared/></lockscope>" + "<locktype><write/></locktype>" + "</lockentry>"; generatedXML.writeElement(null, "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); generatedXML.writeElement(null, "supportedlock", XMLWriter.CLOSING); } else if (property.equals("lockdiscovery")) { if (!generateLockDiscovery(path, generatedXML)) { propertiesNotFound.addElement(property); } } else { propertiesNotFound.addElement(property); } } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); Enumeration propertiesNotFoundList = propertiesNotFound.elements(); if (propertiesNotFoundList.hasMoreElements()) { status = new String("HTTP/1.1 " + WebdavStatus.SC_NOT_FOUND + " " + WebdavStatus.getStatusText(WebdavStatus.SC_NOT_FOUND)); generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); generatedXML.writeElement(null, "prop", XMLWriter.OPENING); while (propertiesNotFoundList.hasMoreElements()) { generatedXML.writeElement(null, (String) propertiesNotFoundList.nextElement(), XMLWriter.NO_CONTENT); } generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); generatedXML.writeElement(null, "status", XMLWriter.OPENING); generatedXML.writeText(status); generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); } break; } generatedXML.writeElement(null, "response", XMLWriter.CLOSING); }
From source file:alter.vitro.vgw.wsiadapter.WsiUberDustCon.java
/** * TODO: to remove the sample code from CTI gateway * * Will initiate a query (CoAP) to all sensors in the parameter list for trust routing info (pfi of their parents) and will return the result * @param nodeIdsToQuery a list of node ids to query * @return a vector of InfoOnTrustRouting objects *//*from w w w. j ava 2 s . c o m*/ public Vector<InfoOnTrustRouting> findRealTimeTrustInfoOnNodes(Vector<String> nodeIdsToQuery, int secondBetweenIssuingToAnotherNode) { Vector<InfoOnTrustRouting> retVec = new Vector<InfoOnTrustRouting>(); if (isTrustCoapMessagingModeSupported() && isTrustCoapMessagingActive()) { // TODO: implement querying sensors for trust routing info (if supported) // Sample test code for conversion debugging... Do we have a special order for the bytes (little endian ?) InfoOnTrustRouting retInfo = new InfoOnTrustRouting(); byte[] payloadBytes = new byte[] { 1, 0, (byte) 0xE8, (byte) 0x03 }; String tmpStr = Base64.encodeBase64String(payloadBytes); byte[] wholePayloadBytes = Base64.decodeBase64(tmpStr); String payLoadValStr = new String(payloadBytes); String sampleNodeId = "urn:wisebed:ctitestbed:0x153d"; logger.debug("Trust Routing retrieval for node: " + sampleNodeId + " returned: " + payLoadValStr + " + length: " + payLoadValStr.length() + " bytes length: " + payLoadValStr.getBytes().length + " orig bytes length: " + payloadBytes.length + " reformed byte[] length: " + wholePayloadBytes.length); retInfo.setSourceNodeId(sampleNodeId); retInfo.setTimestamp(Long.toString(new Date().getTime())); //String wholePayload = payLoadValStr; //byte[] wholePayloadBytes = payLoadValStr.getBytes(); if (wholePayloadBytes != null /*&& !wholePayload.isEmpty() && wholePayloadBytes.length> 0 */ && wholePayloadBytes.length >= 4) { //&& wholePayloadBytes.length %4==0 ) // { //String tmpNodeIdSubStr; //String tmpPFIvalSubStr; for (int i = 0; i < wholePayloadBytes.length && (i + 3 < wholePayloadBytes.length); i += 4) { //tmpNodeIdSubStr = wholePayload.substring(i, i+2); //tmpPFIvalSubStr = wholePayload.substring(i+2, i+4); //logger.debug("TrustRoutingCoap parent node: " +tmpNodeIdSubStr + " pfi val: " + tmpPFIvalSubStr); byte[] nodeIdBytes = new byte[] { wholePayloadBytes[i], wholePayloadBytes[i + 1] }; //tmpNodeIdSubStr.getBytes(); //javax.xml.bind.DatatypeConverter.parseHexBinary(tmpNodeIdSubStr); byte[] pfiValueHexBytes = new byte[] { wholePayloadBytes[i + 2], wholePayloadBytes[i + 3] };//tmpPFIvalSubStr.getBytes(); //javax.xml.bind.DatatypeConverter.parseHexBinary(tmpPFIvalSubStr); short tmpNodeIdValue = Functions.byteArraytoShort(nodeIdBytes); // TODO (temp solution): is this the correct value of a node ID??? We need to add the prefix as a parameter to the function (or even set it later?) String parentNodeId = (new StringBuilder()).append(InfoOnTrustRouting.getNodePrefix()) .append(tmpNodeIdValue).toString(); //short tmpPFIvalue = Functions.byteArraytoShort(pfiValueHexBytes); short tmpPFIvalue = Functions.byteArraytoSecShort(pfiValueHexBytes); logger.debug("TrustRoutingCoap par node int sec CONVERTED: " + parentNodeId + " pfi val: " + Integer.valueOf(tmpPFIvalue).toString()); retInfo.getParentIdsToPFI().put(parentNodeId, Integer.valueOf(tmpPFIvalue)); } } if (retInfo.getSourceNodeId().compareTo(InfoOnTrustRouting.INVALID_SOURCENODEID) == 0 || retInfo.getParentIdsToPFI().isEmpty()) { retInfo = null; } else { retVec.addElement(retInfo); } } return retVec; }
From source file:maui.main.MauiTopicExtractor.java
/** * Builds the model from the files//w ww .j a v a 2 s . c o m */ public void extractKeyphrases(HashSet<String> fileNames) throws Exception { // Check whether there is actually any data if (fileNames.size() == 0) { throw new Exception("Couldn't find any data in " + inputDirectoryName); } mauiFilter.setVocabularyName(vocabularyName); mauiFilter.setVocabularyFormat(vocabularyFormat); mauiFilter.setDocumentLanguage(documentLanguage); mauiFilter.setStemmer(stemmer); mauiFilter.setStopwords(stopwords); if (wikipedia != null) { mauiFilter.setWikipedia(wikipedia); } else if (wikipediaServer.equals("localhost") && wikipediaDatabase.equals("database")) { mauiFilter.setWikipedia(wikipedia); } else { mauiFilter.setWikipedia(wikipediaServer, wikipediaDatabase, cacheWikipediaData, wikipediaDataDirectory); } if (!vocabularyName.equals("none") && !vocabularyName.equals("wikipedia")) { loadThesaurus(stemmer, stopwords, vocabularyDirectory); mauiFilter.setVocabulary(vocabulary); } FastVector atts = new FastVector(3); atts.addElement(new Attribute("filename", (FastVector) null)); atts.addElement(new Attribute("doc", (FastVector) null)); atts.addElement(new Attribute("keyphrases", (FastVector) null)); Instances data = new Instances("keyphrase_training_data", atts, 0); System.err.println("-- Extracting keyphrases... "); Vector<Double> correctStatistics = new Vector<Double>(); Vector<Double> precisionStatistics = new Vector<Double>(); Vector<Double> recallStatistics = new Vector<Double>(); for (String fileName : fileNames) { double[] newInst = new double[3]; newInst[0] = (double) data.attribute(0).addStringValue(fileName); ; File documentTextFile = new File(inputDirectoryName + "/" + fileName + ".txt"); File documentTopicsFile = new File(inputDirectoryName + "/" + fileName + ".key"); try { String documentText; if (!documentEncoding.equals("default")) { documentText = FileUtils.readFileToString(documentTextFile, documentEncoding); } else { documentText = FileUtils.readFileToString(documentTextFile); } // Adding the text of the document to the instance newInst[1] = (double) data.attribute(1).addStringValue(documentText); } catch (Exception e) { System.err.println("Problem with reading " + documentTextFile); e.printStackTrace(); newInst[1] = Instance.missingValue(); } try { String documentTopics; if (!documentEncoding.equals("default")) { documentTopics = FileUtils.readFileToString(documentTopicsFile, documentEncoding); } else { documentTopics = FileUtils.readFileToString(documentTopicsFile); } // Adding the topics to the file newInst[2] = (double) data.attribute(2).addStringValue(documentTopics); } catch (Exception e) { if (debugMode) { System.err.println("No existing topics for " + documentTextFile); } newInst[2] = Instance.missingValue(); } data.add(new Instance(1.0, newInst)); mauiFilter.input(data.instance(0)); data = data.stringFreeStructure(); if (debugMode) { System.err.println("-- Processing document: " + fileName); } Instance[] topRankedInstances = new Instance[topicsPerDocument]; Instance inst; // Iterating over all extracted keyphrases (inst) while ((inst = mauiFilter.output()) != null) { int index = (int) inst.value(mauiFilter.getRankIndex()) - 1; if (index < topicsPerDocument) { topRankedInstances[index] = inst; } } if (debugMode) { System.err.println("-- Keyphrases and feature values:"); } FileOutputStream out = null; PrintWriter printer = null; if (!documentTopicsFile.exists()) { out = new FileOutputStream(documentTopicsFile); if (!documentEncoding.equals("default")) { printer = new PrintWriter(new OutputStreamWriter(out, documentEncoding)); } else { printer = new PrintWriter(out); } } double numExtracted = 0, numCorrect = 0; wikipedia = mauiFilter.getWikipedia(); HashMap<Article, Integer> topics = null; if (printGraph) { topics = new HashMap<Article, Integer>(); } int p = 0; String root = ""; for (int i = 0; i < topicsPerDocument; i++) { if (topRankedInstances[i] != null) { if (!topRankedInstances[i].isMissing(topRankedInstances[i].numAttributes() - 1)) { numExtracted += 1.0; } if ((int) topRankedInstances[i].value(topRankedInstances[i].numAttributes() - 1) == 1) { numCorrect += 1.0; } if (printer != null) { String topic = topRankedInstances[i].stringValue(mauiFilter.getOutputFormIndex()); printer.print(topic); if (printGraph) { Article article = wikipedia.getArticleByTitle(topic); if (article == null) { article = wikipedia.getMostLikelyArticle(topic, new CaseFolder()); } if (article != null) { if (root == "") { root = article.getTitle(); } topics.put(article, new Integer(p)); } else { if (debugMode) { System.err.println( "Couldn't find article for " + topic + " in " + documentTopicsFile); } } p++; } if (additionalInfo) { printer.print("\t"); printer.print(topRankedInstances[i].stringValue(mauiFilter.getNormalizedFormIndex())); printer.print("\t"); printer.print(Utils.doubleToString( topRankedInstances[i].value(mauiFilter.getProbabilityIndex()), 4)); } printer.println(); } if (debugMode) { System.err.println(topRankedInstances[i]); } } } if (printGraph) { String graphFile = documentTopicsFile.getAbsolutePath().replace(".key", ".gv"); computeGraph(topics, root, graphFile); } if (numExtracted > 0) { if (debugMode) { System.err.println("-- " + numCorrect + " correct"); } double totalCorrect = mauiFilter.getTotalCorrect(); correctStatistics.addElement(new Double(numCorrect)); precisionStatistics.addElement(new Double(numCorrect / numExtracted)); recallStatistics.addElement(new Double(numCorrect / totalCorrect)); } if (printer != null) { printer.flush(); printer.close(); out.close(); } } if (correctStatistics.size() != 0) { double[] st = new double[correctStatistics.size()]; for (int i = 0; i < correctStatistics.size(); i++) { st[i] = correctStatistics.elementAt(i).doubleValue(); } double avg = Utils.mean(st); double stdDev = Math.sqrt(Utils.variance(st)); if (correctStatistics.size() == 1) { System.err.println("\n-- Evaluation results based on 1 document:"); } else { System.err.println("\n-- Evaluation results based on " + correctStatistics.size() + " documents:"); } System.err.println("Avg. number of correct keyphrases per document: " + Utils.doubleToString(avg, 2) + " +/- " + Utils.doubleToString(stdDev, 2)); st = new double[precisionStatistics.size()]; for (int i = 0; i < precisionStatistics.size(); i++) { st[i] = precisionStatistics.elementAt(i).doubleValue(); } double avgPrecision = Utils.mean(st); double stdDevPrecision = Math.sqrt(Utils.variance(st)); System.err.println("Precision: " + Utils.doubleToString(avgPrecision * 100, 2) + " +/- " + Utils.doubleToString(stdDevPrecision * 100, 2)); st = new double[recallStatistics.size()]; for (int i = 0; i < recallStatistics.size(); i++) { st[i] = recallStatistics.elementAt(i).doubleValue(); } double avgRecall = Utils.mean(st); double stdDevRecall = Math.sqrt(Utils.variance(st)); System.err.println("Recall: " + Utils.doubleToString(avgRecall * 100, 2) + " +/- " + Utils.doubleToString(stdDevRecall * 100, 2)); double fMeasure = 2 * avgRecall * avgPrecision / (avgRecall + avgPrecision); System.err.println("F-Measure: " + Utils.doubleToString(fMeasure * 100, 2)); System.err.println(""); } mauiFilter.batchFinished(); }
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 {//w w w. ja va 2 s .com 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 {/*w ww . ja v a 2 s . com*/ 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; } }
From source file:com.duroty.application.files.manager.FilesManager.java
/** * DOCUMENT ME!//from w w w .ja v a2 s .c o m * * @param hsession DOCUMENT ME! * @param repositoryName DOCUMENT ME! * @param folderName DOCUMENT ME! * @param page DOCUMENT ME! * @param messagesByPage DOCUMENT ME! * @param order DOCUMENT ME! * @param orderType DOCUMENT ME! * * @return DOCUMENT ME! * * @throws FilesException DOCUMENT ME! */ public Vector getFiles(Session hsession, String repositoryName, String folderName, int label, int page, int messagesByPage, int order, String orderType) throws FilesException { Vector files = new Vector(); try { Users user = getUser(hsession, repositoryName); Locale locale = new Locale(user.getUseLanguage()); TimeZone timeZone = TimeZone.getDefault(); Date now = new Date(); Calendar calendar = Calendar.getInstance(timeZone, locale); calendar.setTime(now); SimpleDateFormat formatter1 = new SimpleDateFormat("MMM dd", locale); SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss", locale); SimpleDateFormat formatter3 = new SimpleDateFormat("MM/yy", locale); Query hquery = null; String[] folderNameList = new String[0]; try { folderName = parseFolder(folderName); folderNameList = new String[] { folderName }; if (folderName.equals(this.folderAll) || folderName.equals(this.folderHidden)) { folderNameList = new String[] { this.folderAll, this.folderDraft, this.folderHidden, this.folderImportant, this.folderInbox, this.folderSent }; } } catch (Exception ex) { } if ((folderNameList.length == 0) && (label <= 0)) { hquery = hsession.getNamedQuery("attachments"); } else if ((folderNameList.length > 0) && (label <= 0)) { hquery = hsession.getNamedQuery("attachments-by-folder"); } else if ((folderNameList.length == 0) && (label > 0)) { hquery = hsession.getNamedQuery("attachments-by-label"); } else if ((folderNameList.length > 0) && (label > 0)) { hquery = hsession.getNamedQuery("attachments-by-folder-label"); } String aux = hquery.getQueryString(); switch (order) { case ORDER_BY_SIZE: if (orderType.equals("ASC")) { aux += " order by att_size asc"; } else { aux += " order by att_size desc"; } break; case ORDER_BY_DATE: if (orderType.equals("ASC")) { aux += " order by mes_date asc"; } else { aux += " order by mes_date desc"; } break; case ORDER_BY_TYPE: if (orderType.equals("ASC")) { aux += " order by att_content_type asc"; } else { aux += " order by att_content_type desc"; } break; default: if (!orderType.equals("ASC")) { aux += " order by att_name desc"; } else { aux += " order by att_name asc"; } break; } SQLQuery h2query = hsession.createSQLQuery(aux); if ((folderNameList.length == 0) && (label <= 0)) { h2query.setParameterList("no_boxes", new String[] { this.folderTrash, this.folderChat, this.folderSpam, FOLDER_DELETE }); h2query.setInteger("user", getUser(hsession, repositoryName).getUseIdint()); } else if ((folderNameList.length > 0) && (label <= 0)) { h2query.setParameterList("boxes", folderNameList); h2query.setInteger("user", getUser(hsession, repositoryName).getUseIdint()); } else if ((folderNameList.length == 0) && (label > 0)) { h2query.setInteger("label", label); h2query.setParameterList("no_boxes", new String[] { this.folderTrash, this.folderChat, this.folderSpam, FOLDER_DELETE }); h2query.setInteger("user", getUser(hsession, repositoryName).getUseIdint()); } else if ((folderNameList.length > 0) && (label > 0)) { h2query.setInteger("label", label); h2query.setParameterList("boxes", folderNameList); h2query.setInteger("user", getUser(hsession, repositoryName).getUseIdint()); } h2query.setFirstResult(page * messagesByPage); h2query.setMaxResults(messagesByPage); h2query.addEntity("testo", AttachmentWithDate.class); ScrollableResults scroll = h2query.scroll(); while (scroll.next()) { AttachmentWithDate attachment = (AttachmentWithDate) scroll.get(0); AttachmentObj obj = new AttachmentObj(); obj.setContentType(attachment.getAttContentType()); Date date = attachment.getAttDate(); if (date != null) { Calendar calendar2 = Calendar.getInstance(timeZone, locale); calendar2.setTime(date); if ((calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) && (calendar.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH)) && (calendar.get(Calendar.DATE) == calendar2.get(Calendar.DATE))) { obj.setDateStr(formatter2.format(calendar2.getTime())); } else if (calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) { obj.setDateStr(formatter1.format(calendar2.getTime())); } else { obj.setDateStr(formatter3.format(calendar2.getTime())); } } obj.setDate(date); obj.setDate(date); obj.setIdint(attachment.getAttIdint()); obj.setName(attachment.getAttName()); obj.setPart(attachment.getAttPart()); int size = attachment.getAttSize(); size /= 1024; if (size > 1024) { size /= 1024; obj.setSize(size + " MB"); } else { obj.setSize(((size > 0) ? (size + "") : "<1") + " kB"); } String extension = (String) this.extensions.get(attachment.getAttContentType()); if (StringUtils.isBlank(extension)) { extension = "generic"; } obj.setExtension(extension); Message message = attachment.getMessage(); if (message.isMesFlagged()) { obj.setFlagged(true); } else { obj.setFlagged(false); } if (message.getLabMeses() != null) { Iterator it = message.getLabMeses().iterator(); StringBuffer lab = new StringBuffer(); while (it.hasNext()) { if (lab.length() > 0) { lab.append(", "); } LabMes labMes = (LabMes) it.next(); lab.append(labMes.getId().getLabel().getLabName()); } if (lab.length() > 0) { obj.setLabel(lab.toString()); } else { } } obj.setBox(message.getMesBox()); obj.setMid(message.getMesName()); files.addElement(obj); } return files; } catch (Exception e) { throw new FilesException(e); } finally { GeneralOperations.closeHibernateSession(hsession); } }
From source file:com.duroty.application.mail.manager.MailManager.java
/** * DOCUMENT ME!/*from w ww. jav a2s .c om*/ * * @param hsession DOCUMENT ME! * @param repositoryName DOCUMENT ME! * @param label DOCUMENT ME! * @param page DOCUMENT ME! * @param messagesByPage DOCUMENT ME! * @param order DOCUMENT ME! * @param orderType DOCUMENT ME! * * @return DOCUMENT ME! * * @throws MailException DOCUMENT ME! */ public Vector getMessages(Session hsession, String repositoryName, Label label, int page, int messagesByPage, int order, String orderType) throws MailException { Vector messages = new Vector(); try { Users user = getUser(hsession, repositoryName); Locale locale = new Locale(user.getUseLanguage()); TimeZone timeZone = TimeZone.getDefault(); Date now = new Date(); Calendar calendar = Calendar.getInstance(timeZone, locale); calendar.setTime(now); SimpleDateFormat formatter1 = new SimpleDateFormat("MMM dd", locale); SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss", locale); SimpleDateFormat formatter3 = new SimpleDateFormat("MM/yy", locale); Query hquery = hsession.getNamedQuery("messages-by-label"); String aux = hquery.getQueryString(); switch (order) { case ORDER_BY_IMPORTANT: if (orderType.equals("ASC")) { aux += " order by mes_flagged asc"; } else { aux += " order by mes_flagged desc"; } break; case ORDER_BY_ADDRESS: if (orderType.equals("ASC")) { aux += " order by mes_from asc"; } else { aux += " order by mes_from desc"; } break; case ORDER_BY_SIZE: if (orderType.equals("ASC")) { aux += " order by mes_size asc"; } else { aux += " order by mes_size desc"; } break; case ORDER_BY_SUBJECT: if (orderType.equals("ASC")) { aux += " order by mes_subject asc"; } else { aux += " order by mes_subject desc"; } break; case ORDER_BY_DATE: if (orderType.equals("ASC")) { aux += " order by mes_date asc"; } else { aux += " order by mes_date desc"; } break; case ORDER_BY_UNREAD: if (orderType.equals("ASC")) { aux += " order by mes_recent asc"; } else { aux += " order by mes_recent desc"; } break; default: aux += " order by mes_date desc"; break; } SQLQuery h2query = hsession.createSQLQuery(aux); h2query.addEntity("i", Message.class); h2query.setInteger("label", label.getLabIdint()); h2query.setInteger("user", user.getUseIdint()); h2query.setString("folderTrash", this.folderTrash); h2query.setString("folderSpam", this.folderSpam); h2query.setString("folderDelete", FOLDER_DELETE); h2query.setFirstResult(page * messagesByPage); h2query.setMaxResults(messagesByPage); ScrollableResults scroll = h2query.scroll(); while (scroll.next()) { Message message = (Message) scroll.get(0); MessageObj obj = new MessageObj(message.getMesName()); obj.setBox(message.getMesBox()); obj.setFrom(message.getMesFrom()); if ((message.getAttachments() != null) && (message.getAttachments().size() > 0)) { obj.setHasAttachment(true); } else { obj.setHasAttachment(false); } int size = message.getMesSize(); size /= 1024; if (size > 1024) { size /= 1024; obj.setSize(size + " MB"); } else { obj.setSize(((size > 0) ? (size + "") : "<1") + " kB"); } if (message.getMesBox().equals(folderSent)) { try { obj.setEmail(message.getMesTo()); } catch (Exception e) { obj.setEmail("unknown to"); } } else { obj.setEmail(message.getMesFrom()); } Date date = message.getMesDate(); if (date != null) { Calendar calendar2 = Calendar.getInstance(timeZone, locale); calendar2.setTime(date); if ((calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) && (calendar.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH)) && (calendar.get(Calendar.DATE) == calendar2.get(Calendar.DATE))) { obj.setDateStr(formatter2.format(calendar2.getTime())); } else if (calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) { obj.setDateStr(formatter1.format(calendar2.getTime())); } else { obj.setDateStr(formatter3.format(calendar2.getTime())); } } obj.setDate(date); if (message.getLabMeses() != null) { Iterator it = message.getLabMeses().iterator(); StringBuffer buff = new StringBuffer(); while (it.hasNext()) { if (buff.length() > 0) { buff.append(", "); } LabMes labMes = (LabMes) it.next(); buff.append(labMes.getId().getLabel().getLabName()); } obj.setLabel(buff.toString()); } try { if (StringUtils.isBlank(message.getMesSubject())) { obj.setSubject("(no subject)"); } else { obj.setSubject(message.getMesSubject()); } } catch (Exception ex) { obj.setSubject("(no subject)"); } if (message.isMesFlagged()) { obj.setFlagged(true); } else { obj.setFlagged(false); } if (message.isMesRecent()) { obj.setRecent(true); } else { obj.setRecent(false); } String priority = "normal"; if (MessageUtilities.isHighPriority(message.getMesHeaders())) { priority = "high"; } else if (MessageUtilities.isLowPriority(message.getMesHeaders())) { priority = "low"; } obj.setPriority(priority); messages.addElement(obj); } return messages; } catch (Exception e) { throw new MailException(e); } finally { GeneralOperations.closeHibernateSession(hsession); } }