From c1ca960acefd7d97e630915b06c6e772d984bd33 Mon Sep 17 00:00:00 2001 From: percyashu Date: Fri, 22 May 2020 11:00:41 +0100 Subject: [PATCH] FINERACT-609 TopUp --- .../service/AccountDetailsReadPlatformService.java | 2 ++ ...untDetailsReadPlatformServiceJpaRepositoryImpl.java | 9 ++++++++- .../service/LoanReadPlatformServiceImpl.java | 10 ++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformService.java index 51a6c9b7c..6e99ff417 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformService.java @@ -37,5 +37,7 @@ public interface AccountDetailsReadPlatformService { public List retrieveLoanAccountDetailsByGroupIdAndGlimAccountNumber(Long groupId,final String glimAccount); + public Collection retrieveGroupActiveLoanAccountSummary(final Long groupId); + AccountSummaryCollectionData retrieveGroupAccountDetails(Long groupId, Long gsimId); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformServiceJpaRepositoryImpl.java index 185d96c71..ff00b1711 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountDetailsReadPlatformServiceJpaRepositoryImpl.java @@ -157,7 +157,8 @@ public class AccountDetailsReadPlatformServiceJpaRepositoryImpl implements Accou return retrieveLoanAccountDetails(loanWhereClause, new Object[] { groupId, loanOfficerId }); } - @Override public Collection retrieveClientActiveLoanAccountSummary(final Long clientId) { + @Override + public Collection retrieveClientActiveLoanAccountSummary(final Long clientId) { final String loanWhereClause = " where l.client_id = ? and l.loan_status_id = 300 "; return retrieveLoanAccountDetails(loanWhereClause, new Object[] { clientId }); } @@ -171,6 +172,12 @@ public class AccountDetailsReadPlatformServiceJpaRepositoryImpl implements Accou return this.jdbcTemplate.query(sql, rm, new Object[]{groupId , glimAccount}); } + @Override + public Collection retrieveGroupActiveLoanAccountSummary(final Long groupId) { + final String loanWhereClause = " where l.group_id = ? and l.loan_status_id = 300 and l.client_id is null"; + return retrieveLoanAccountDetails(loanWhereClause, new Object[] { groupId }); + } + private List retrieveLoanAccountDetails(final String loanwhereClause, final Object[] inputs) { final LoanAccountSummaryDataMapper rm = new LoanAccountSummaryDataMapper(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java index dfdc3ec5b..00c48f694 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java @@ -1428,15 +1428,17 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { } } - Collection clientActiveLoanOptions = null; - if(loanProduct.canUseForTopup() && clientId != null){ - clientActiveLoanOptions = this.accountDetailsReadPlatformService.retrieveClientActiveLoanAccountSummary(clientId); + Collection activeLoanOptions = null; + if(loanProduct.canUseForTopup() && clientId != null) { + activeLoanOptions = this.accountDetailsReadPlatformService.retrieveClientActiveLoanAccountSummary(clientId); + } else if (loanProduct.canUseForTopup() && groupId != null) { + activeLoanOptions = this.accountDetailsReadPlatformService.retrieveGroupActiveLoanAccountSummary(groupId); } return LoanAccountData.loanProductWithTemplateDefaults(loanProduct, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions, repaymentFrequencyNthDayTypeOptions, repaymentFrequencyDaysOfWeekTypeOptions, repaymentStrategyOptions, interestRateFrequencyTypeOptions, amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, - fundOptions, chargeOptions, loanPurposeOptions, loanCollateralOptions, loanCycleCounter, clientActiveLoanOptions); + fundOptions, chargeOptions, loanPurposeOptions, loanCollateralOptions, loanCycleCounter, activeLoanOptions); } @Override