This is an automated email from the ASF dual-hosted git repository.

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit d42ba45c9aa34baa79c5840f7c21850611eae153
Author: Adam Saghy <[email protected]>
AuthorDate: Thu Oct 16 19:00:12 2025 +0200

    FINERACT-2389: Fix related installment query
---
 .../java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java  | 4 +++-
 .../loanaccount/domain/LoanRepaymentScheduleInstallment.java         | 5 +++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
 
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
index 03b1794faf..0054f3de3e 100644
--- 
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
+++ 
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
@@ -1411,7 +1411,9 @@ public class Loan extends 
AbstractAuditableWithUTCDateTimeCustom<Long> {
      * @return a schedule installment is related to the provided date
      **/
     public LoanRepaymentScheduleInstallment 
getRelatedRepaymentScheduleInstallment(LocalDate date) {
-        return getRepaymentScheduleInstallment(e -> 
DateUtils.isDateInRangeFromExclusiveToInclusive(date, e.getFromDate(), 
e.getDueDate()));
+        return getRepaymentScheduleInstallment(
+                e -> (e.isFirstNormalInstallment() && 
DateUtils.isDateInRangeInclusive(date, e.getFromDate(), e.getDueDate()))
+                        || 
DateUtils.isDateInRangeFromExclusiveToInclusive(date, e.getFromDate(), 
e.getDueDate()));
     }
 
     public LoanRepaymentScheduleInstallment 
fetchRepaymentScheduleInstallment(final Integer installmentNumber) {
diff --git 
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
 
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
index 94d6dd3151..52e8dd8982 100644
--- 
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
+++ 
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
@@ -1215,4 +1215,9 @@ public class LoanRepaymentScheduleInstallment extends 
AbstractAuditableWithUTCDa
         }
         return value.setScale(6, MoneyHelper.getRoundingMode());
     }
+
+    public boolean isFirstNormalInstallment() {
+        return loan.getRepaymentScheduleInstallments().stream().filter(rp -> 
!rp.isDownPayment()).findFirst().stream()
+                .anyMatch(rp -> rp.equals(this));
+    }
 }

Reply via email to