This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 3bc160c33 FINERACT-1604 fIX - Loan Account Details page not working
3bc160c33 is described below
commit 3bc160c33cbf4963bfd8683868a0c33406efbf84
Author: John Woodlock <[email protected]>
AuthorDate: Fri Apr 29 12:25:38 2022 +0100
FINERACT-1604 fIX - Loan Account Details page not working
---
.../service/LoanReadPlatformServiceImpl.java | 2 +-
.../ClientLoanIntegrationTest.java | 37 ++++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
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 fbaaa62a4..cb3e177ca 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
@@ -2394,7 +2394,7 @@ public class LoanReadPlatformServiceImpl implements
LoanReadPlatformService {
sqlBuilder.append(
sqlGenerator.currentDate() + " as delinquentDate,
coalesce(laa.total_overdue_derived, 0) as delinquentAmount, ");
sqlBuilder.append("lre.transactionDate as lastPaymentDate,
coalesce(lre.amount, 0) as lastPaymentAmount ");
- sqlBuilder.append("from m_loan l inner join m_loan_arrears_aging
laa on laa.loan_id = l.id ");
+ sqlBuilder.append("from m_loan l left join m_loan_arrears_aging
laa on laa.loan_id = l.id ");
sqlBuilder.append(
"left join (select lt.loan_id, lt.transaction_date as
transactionDate, lt.amount as amount from m_loan_transaction lt ");
sqlBuilder.append(
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
index 06f48f9ac..965e84c9d 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
@@ -307,6 +307,43 @@ public class ClientLoanIntegrationTest {
}
+ @Test
+ public void testLoanDisbursedTodayIsRetrieved() {
+ this.loanTransactionHelper = new
LoanTransactionHelper(this.requestSpec, this.responseSpec);
+
+ final Integer clientID = ClientHelper.createClient(this.requestSpec,
this.responseSpec);
+ ClientHelper.verifyClientCreatedOnServer(this.requestSpec,
this.responseSpec, clientID);
+ final Integer loanProductID = createLoanProduct(false, NONE);
+
+ final Integer loanID = applyForLoanApplication(clientID,
loanProductID, "5", null);
+ Assertions.assertNotNull(loanID);
+
+ HashMap loanStatusHashMap =
LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
+ LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+
+ DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy",
Locale.US);
+ Calendar todaysDate =
Calendar.getInstance(Utils.getTimeZoneOfTenant());
+ final String LOAN_DISBURSEMENT_DATE =
dateFormat.format(todaysDate.getTime());
+
+ LOG.info("-----------------------------------APPROVE
LOAN-----------------------------------------");
+ loanStatusHashMap =
this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
+ LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+ LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
+
+ // DISBURSE on todays date so that loan can't be in arrears
+ String loanDetails =
this.loanTransactionHelper.getLoanDetails(this.requestSpec, this.responseSpec,
loanID);
+ loanStatusHashMap =
this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID, "10000",
+
JsonPath.from(loanDetails).get("netDisbursalAmount").toString());
+ LOG.info("DISBURSE {}", loanStatusHashMap.toString());
+ LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+ loanDetails =
this.loanTransactionHelper.getLoanDetails(this.requestSpec, this.responseSpec,
loanID);
+ // Test added because loans created without arrears were failing to be
retrieved (associations=all) due to inner
+ // join on m_loan_arrears_aging (now left join)
+ Assertions.assertNotNull(loanDetails, "Empty Loan Details");
+ Assertions.assertNotNull(JsonPath.from(loanDetails).get("id"), "No id
Found");
+
+ }
+
@Test
public void testLoanCharges_SPECIFIED_DUE_DATE_FEE() {
this.loanTransactionHelper = new
LoanTransactionHelper(this.requestSpec, this.responseSpec);