From 8f18f847f5c5cdfa1efe9039b5edadb8748af4b2 Mon Sep 17 00:00:00 2001 From: ashok-conflux Date: Wed, 17 Apr 2013 19:16:02 +0530 Subject: [PATCH] wip: fixed issues in Group add/edit and add client functionality --- .../portfolio/group/api/GroupingTypesApiConstants.java | 7 +++++-- .../portfolio/loanaccount/api/LoansApiResource.java | 4 ++-- .../portfolio/loanaccount/data/LoanAccountData.java | 4 ++++ .../loanaccount/service/LoanReadPlatformServiceImpl.java | 9 ++++++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupingTypesApiConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupingTypesApiConstants.java index c45e7c550..f8593dfcc 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupingTypesApiConstants.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupingTypesApiConstants.java @@ -27,6 +27,9 @@ public class GroupingTypesApiConstants { public static final String hierarchyParamName = "hierarchy"; public static final String officeNameParamName = "officeName"; public static final String staffNameParamName = "staffName"; + public static final String officeOptionsParamName = "officeOptions"; + public static final String staffOptionsParamName = "staffOptions"; + public static final String clientOptionsParamName = "clientOptions"; public static final Set CENTER_REQUEST_DATA_PARAMETERS = new HashSet(Arrays.asList(localeParamName, dateFormatParamName, nameParamName, externalIdParamName, officeIdParamName, staffIdParamName)); @@ -42,9 +45,9 @@ public class GroupingTypesApiConstants { public static final Set CENTER_GROUP_RESPONSE_DATA_PARAMETERS = new HashSet(Arrays.asList(idParamName, nameParamName, externalIdParamName, officeIdParamName, officeNameParamName, staffIdParamName, staffNameParamName, hierarchyParamName, - "officeOptions", "staffOptions")); + officeOptionsParamName, staffOptionsParamName,clientOptionsParamName)); public static final Set GROUP_RESPONSE_DATA_PARAMETERS = new HashSet(Arrays.asList(idParamName, nameParamName, externalIdParamName, officeIdParamName, officeNameParamName, "parentId", "parentName", staffIdParamName, staffNameParamName, - hierarchyParamName, "officeOptions", "staffOptions", "clientOptions")); + hierarchyParamName, officeOptionsParamName, staffOptionsParamName,clientOptionsParamName)); } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java index 20a47c02d..298691be6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java @@ -230,8 +230,8 @@ public class LoansApiResource { final Collection charges = loanBasicDetails.charges(); if (productId != null) { - final Long officeId = loanBasicDetails.officeId(); - allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId); + final Long officeId = loanBasicDetails.groupOfficeId(); + if(officeId != null) allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId); } newLoanAccount = LoanAccountData.associationsAndTemplate(loanBasicDetails, repaymentSchedule, loanRepayments, charges, diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanAccountData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanAccountData.java index c29341c00..bc63929b2 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanAccountData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanAccountData.java @@ -599,4 +599,8 @@ public class LoanAccountData { public Collection charges() { return this.charges; } + + public Long groupOfficeId(){ + return group == null? null : group.officeId(); + } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java index 5694abfad..3b278061f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java @@ -57,6 +57,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.ResultSetExtractor; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; @Service public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { @@ -183,7 +184,13 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { context.authenticatedUser(); - final GroupGeneralData groupAccount = this.groupReadPlatformService.retrieveOne(groupId); + GroupGeneralData groupAccount = this.groupReadPlatformService.retrieveOne(groupId); + //get group associations + Collection membersOfGroup = this.clientReadPlatformService.retrieveClientMembersOfGroup(groupId); + if (!CollectionUtils.isEmpty(membersOfGroup)) { + groupAccount = GroupGeneralData.withAssocations(groupAccount, membersOfGroup); + } + final LocalDate expectedDisbursementDate = DateUtils.getLocalDateOfTenant(); LoanAccountData loanDetails = LoanAccountData.groupDefaults(groupAccount, expectedDisbursementDate);