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