From e66da3eaba3475cb52994ea8d7909e3df75ab4b6 Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Tue, 19 Mar 2024 13:16:03 +0100 Subject: [PATCH] FINERACT-2059: Re-aging repayment schedule handling --- .../impl/AdvancedPaymentScheduleTransactionProcessor.java | 2 +- .../fineract/integrationtests/BaseLoanIntegrationTest.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java index 30d876ef7..10c6e1c41 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java @@ -1335,7 +1335,7 @@ public class AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep } private void reprocessInstallmentsOrder(List installments) { - AtomicInteger counter = new AtomicInteger(0); + AtomicInteger counter = new AtomicInteger(1); installments.stream().sorted(LoanRepaymentScheduleInstallment::compareToByDueDate) .forEachOrdered(i -> i.updateInstallmentNumber(counter.getAndIncrement())); } diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/BaseLoanIntegrationTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/BaseLoanIntegrationTest.java index ccf4d02a1..fe7b07331 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/BaseLoanIntegrationTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/BaseLoanIntegrationTest.java @@ -462,6 +462,7 @@ public abstract class BaseLoanIntegrationTest { Assertions.assertEquals(installments.length, loanResponse.getRepaymentSchedule().getPeriods().size(), "Expected installments are not matching with the installments configured on the loan"); + int installmentNumber = 0; for (int i = 1; i < installments.length; i++) { GetLoansLoanIdRepaymentPeriod period = loanResponse.getRepaymentSchedule().getPeriods().get(i); Double principalDue = period.getPrincipalDue(); @@ -546,6 +547,8 @@ public abstract class BaseLoanIntegrationTest { outstandingTotalExpected, outstandingTotal)); } + installmentNumber++; + Assertions.assertEquals(installmentNumber, period.getPeriod()); } Assertions.assertEquals(installments[i].completed, period.getComplete()); Assertions.assertEquals(LocalDate.parse(installments[i].dueDate, dateTimeFormatter), period.getDueDate());