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);

Reply via email to