FINERACT-2389: Fix related installment query

This commit is contained in:
Adam Saghy
2025-10-20 15:46:37 +02:00
parent 553347b320
commit d42ba45c9a
2 changed files with 8 additions and 1 deletions
@@ -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) {
@@ -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));
}
}