This is an automated email from the ASF dual-hosted git repository. adamsaghy pushed a commit to branch release/1.13.1 in repository https://gitbox.apache.org/repos/asf/fineract.git
commit ffa1a974a22a7e0b81acbb6c3918e96de189bc5b 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)); + } }
