public static int getPartyActivationLevelForPartyRole(String partyRoleCode) throws Exception { int activationLevel = 0; if (partyRoleCode != null && !"".equals(partyRoleCode)) { if (roleActivationLevelMap.containsKey(partyRoleCode)) { activationLevel = ((Integer) roleActivationLevelMap.get(partyRoleCode)).intValue(); } else if (roleActivationLevelMap.size() == 0) { try { LogicModuleService lms = LogicModuleServiceUtil.getHome().create(); ObjectQueryCommand additionalCommand = new ObjectQueryCommand("com.foursoft.etrans.entities.PartyRoleType", Locale.US); additionalCommand.setAttributeNames(new String[] {"code", "roleDependencyIndicator"}); additionalCommand.sethasLocaleData(false); Object[][] data = lms.getTableModel(additionalCommand).getData(); if (data != null && data.length > 0) { for (int i = 0; i < data.length; i++) { String code = (String) data[i][0]; Integer roleActivationLevel = (Integer) ((RoleDependencyIndicatorEnumeration) data[i][1]).getEnumCode(); if (code != null && !"".equals(code) && roleActivationLevel != null) { if (partyRoleCode.equals(code)) activationLevel = roleActivationLevel.intValue(); roleActivationLevelMap.put(code, roleActivationLevel); } } } } finally { } } } return activationLevel; }
public String[] getRelatedPartiesForParty(String partyId, String relationshipType) throws Exception { String[] ret = null; try { LogicModuleService lms = LogicModuleServiceUtil.getHome().create(); Serializable mainPartyId = null; ObjectQueryCommand additionalCommand = new ObjectQueryCommand("com.foursoft.etrans.entities.BusinessParty", Locale.US); additionalCommand.setAttributeNames(new String[] {"code"}); additionalCommand.sethasLocaleData(false); additionalCommand.setPaginationEnabled(false); additionalCommand.addFilterCriterion("code", ObjectQueryCommand.OPERATOR_EQUALS, partyId); IdTableModel additionalTableModel = lms.getTableModel(additionalCommand); Object[][] data = additionalTableModel.getData(); if (data != null && data.length > 0) { mainPartyId = additionalTableModel.getIdForRow(0); // Id retrieval } if (mainPartyId != null) { additionalCommand = new ObjectQueryCommand("com.foursoft.etrans.entities.PartyRelationShip", Locale.US); additionalCommand.setAttributeNames(new String[] {"relatedParty.code"}); additionalCommand.setPaginationEnabled(false); additionalCommand.sethasLocaleData(false); ParentInfo parentInfo = null; parentInfo = new ParentInfo(); parentInfo.setClassname("com.foursoft.etrans.entities.BusinessParty"); parentInfo.setId(mainPartyId); parentInfo.setChildRelationName("partyRelationShips"); additionalCommand.setParentInfo(parentInfo); additionalCommand.addFilterCriterion( "partyRelshipType.code", ObjectQueryCommand.OPERATOR_EQUALS, relationshipType); data = lms.getTableModel(additionalCommand).getData(); if (data != null && data.length > 0) { ArrayList relatedParties = new ArrayList(); for (int i = 0; i < data.length; i++) relatedParties.add((String) data[i][0]); if (relatedParties.size() > 0) ret = (String[]) relatedParties.toArray(new String[relatedParties.size()]); } } } finally { } return ret; }
public String[] getDefaultSalespersonForCustomer(String customerId, String branchId) throws Exception { String[] ret = null; try { String[] salesPersonArray = getRelatedPartiesForParty(customerId, "*SALESPERSON"); LogicModuleService lms = LogicModuleServiceUtil.getHome().create(); ObjectQueryCommand additionalCommand = new ObjectQueryCommand("com.foursoft.etrans.entities.BusinessParty", Locale.US); additionalCommand.setAttributeNames(new String[] {"code", "nickName"}); additionalCommand.sethasLocaleData(false); additionalCommand.addFilterCriterion( "partyRoleCrossRefs.partyRoleType.code", ObjectQueryCommand.OPERATOR_EQUALS, "*SALESPERSON"); int salesPersonActivationLevel = getPartyActivationLevelForPartyRole("*SALESPERSON"); if (salesPersonActivationLevel == 2 && branchId != null && !"".equals(branchId) && branchId.length() >= 3) additionalCommand.addFilterCriterion( "partyRoleCrossRefs.activatedCompanyPartyId", ObjectQueryCommand.OPERATOR_EQUALS, branchId.substring(0, 3)); if (salesPersonActivationLevel == 3 && branchId != null && !"".equals(branchId) && branchId.length() == 6) additionalCommand.addFilterCriterion( "partyRoleCrossRefs.activatedBranchPartyId", ObjectQueryCommand.OPERATOR_EQUALS, branchId); additionalCommand.addFilterCriterion( "code", ObjectQueryCommand.OPERATOR_IN, salesPersonArray); Object[][] data = lms.getTableModel(additionalCommand).getData(); if (data != null && data.length == 1) { ret = new String[2]; ret[0] = (String) data[0][0]; ret[1] = (String) data[0][1]; } } finally { } return ret; }