📄 partyservices.java
字号:
newRelationship.set("partyIdTo", partyIdTo); newRelationship.create(); relationship.remove(); } // merge datasources simply by copying them (this is dangerous if a SECA is triggered by this service) List dataSources = delegator.findByAnd("PartyDataSource", UtilMisc.toMap("partyId", partyIdFrom)); for (Iterator iter = dataSources.iterator(); iter.hasNext(); ) { GenericValue dataSource = (GenericValue) iter.next(); serviceResults = dispatcher.runSync("createPartyDataSource", UtilMisc.toMap("partyId", partyIdTo, "dataSourceId", dataSource.getString("dataSourceId"), "userLogin", userLogin)); if (ServiceUtil.isError(serviceResults)) { return UtilCommon.createAndLogServiceError(serviceResults, "CrmErrorMergePartiesFail", locale, module); } } // copy all the contact mechs over serviceResults = dispatcher.runSync("copyPartyContactMechs", UtilMisc.toMap("partyIdFrom", partyIdFrom, "partyIdTo", partyIdTo, "userLogin", userLogin)); if (ServiceUtil.isError(serviceResults)) { return UtilCommon.createAndLogServiceError(serviceResults, "CrmErrorMergePartiesFail", locale, module); } // merge workefforts by changing partyIdFrom to partyIdTo in WorkEffortPartyAssignment, but avoid duplicates List associations = EntityUtil.filterByDate(delegator.findByAnd("WorkEffortPartyAssignment", UtilMisc.toMap("partyId", partyIdFrom))); for (Iterator iter = associations.iterator(); iter.hasNext(); ) { GenericValue wepa = (GenericValue) iter.next(); List toWepas = EntityUtil.filterByDate(delegator.findByAnd("WorkEffortPartyAssignment", UtilMisc.toMap("partyId", partyIdTo, "workEffortId", wepa.get("workEffortId"), "roleTypeId", wepa.get("roleTypeId")))); if (toWepas.size() > 0) continue; GenericValue newWepa = delegator.makeValue("WorkEffortPartyAssignment", wepa.getAllFields()); newWepa.set("partyId", partyIdTo); newWepa.create(); wepa.remove(); } // merge communication events by changing the partyId List comms = delegator.findByAnd("CommunicationEvent", UtilMisc.toMap("partyIdFrom", partyIdFrom)); for (Iterator iter = comms.iterator(); iter.hasNext(); ) { GenericValue comm = (GenericValue) iter.next(); comm.set("partyIdFrom", partyIdTo); comm.store(); } comms = delegator.findByAnd("CommunicationEvent", UtilMisc.toMap("partyIdTo", partyIdFrom)); for (Iterator iter = comms.iterator(); iter.hasNext(); ) { GenericValue comm = (GenericValue) iter.next(); comm.set("partyIdTo", partyIdTo); comm.store(); } // merge opportunities List oppRoles = delegator.findByAnd("SalesOpportunityRole", UtilMisc.toMap("partyId", partyIdFrom)); for (Iterator iter = oppRoles.iterator(); iter.hasNext(); ) { GenericValue oppRole = (GenericValue) iter.next(); Map input = UtilMisc.toMap("salesOpportunityId", oppRole.get("salesOpportunityId"), "partyId", partyIdTo, "roleTypeId", oppRole.get("roleTypeId")); GenericValue toOppRole = delegator.findByPrimaryKey("SalesOpportunityRole", input); if (toOppRole != null) continue; GenericValue newOppRole = delegator.makeValue("SalesOpportunityRole", input); newOppRole.create(); oppRole.remove(); } // merge case roles List caseRoles = delegator.findByAnd("CustRequestRole", UtilMisc.toMap("partyId", partyIdFrom)); for (Iterator iter = caseRoles.iterator(); iter.hasNext(); ) { GenericValue custRequestRole = (GenericValue) iter.next(); Map input = UtilMisc.toMap("custRequestId", custRequestRole.get("custRequestId"), "partyId", partyIdTo, "roleTypeId", custRequestRole.get("roleTypeId")); GenericValue toCustRequestRole = delegator.findByPrimaryKey("CustRequestRole", input); if (toCustRequestRole != null) continue; GenericValue newCustRequestRole = delegator.makeValue("CustRequestRole", input); newCustRequestRole.create(); custRequestRole.remove(); } // merge cases (here we just change the fromPartyId because it's not a pk) List cases = delegator.findByAnd("CustRequest", UtilMisc.toMap("fromPartyId", partyIdFrom)); for (Iterator iter = cases.iterator(); iter.hasNext(); ) { GenericValue custRequest = (GenericValue) iter.next(); custRequest.set("fromPartyId", partyIdTo); custRequest.store(); } // merge notes List notes = delegator.findByAnd("PartyNote", UtilMisc.toMap("partyId", partyIdFrom)); for (Iterator iter = notes.iterator(); iter.hasNext(); ) { GenericValue note = (GenericValue) iter.next(); GenericValue newNote = delegator.makeValue("PartyNote", note.getAllFields()); newNote.set("partyId", partyIdTo); newNote.create(); note.remove(); } // now delete the from party PartyHelper.deleteCrmParty(partyIdFrom, delegator); } catch (GenericServiceException e) { return UtilCommon.createAndLogServiceError(e, "CrmErrorMergePartiesFail", locale, module); } catch (GenericEntityException e) { return UtilCommon.createAndLogServiceError(e, "CrmErrorMergePartiesFail", locale, module); } return ServiceUtil.returnSuccess(); } public static Map setViewPreference(DispatchContext dctx, Map context) { GenericDelegator delegator = dctx.getDelegator(); LocalDispatcher dispatcher = dctx.getDispatcher(); GenericValue userLogin = (GenericValue) context.get("userLogin"); Locale locale = (Locale) context.get("locale"); String viewPrefTypeId = (String) context.get("viewPrefTypeId"); String value = (String) context.get("viewPrefValue"); if (value != null && value.trim().length() == 0) value = null; try { // if preference already exists, we'll be doing an update, otherwise a create GenericValue pref = ViewPrefWorker.getViewPreferenceValue(userLogin, viewPrefTypeId); // prepare the preference Map input = UtilMisc.toMap("userLogin", userLogin, "userLoginId", userLogin.get("userLoginId"), "viewPrefTypeId", viewPrefTypeId); // decide whether value is an enum or a string -- start with default to string input.put("viewPrefValueTypeId", "VPREF_VALTYPE_STRING"); input.put("viewPrefString", value); // and if we find an enumeration, reset the fields to store an enum if (value != null) { GenericValue enumeration = delegator.findByPrimaryKeyCache("Enumeration", UtilMisc.toMap("enumId", value)); if (enumeration != null) { input.put("viewPrefValueTypeId", "VPREF_VALTYPE_ENUM"); input.put("viewPrefString", null); input.put("viewPrefEnumId", value); } } return dispatcher.runSync(pref != null ? "crmsfa.updateViewPreference" : "crmsfa.createViewPreference", input); } catch (GenericServiceException e) { return UtilCommon.createAndLogServiceError(e, "CrmErrorSetPreferenceFail", locale, module); } catch (GenericEntityException e) { return UtilCommon.createAndLogServiceError(e, "CrmErrorSetPreferenceFail", locale, module); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -