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 d5116d93c284dd90837170bee0ff203572e2fbb1 Author: Soma Sörös <[email protected]> AuthorDate: Mon Mar 9 14:47:48 2026 +0100 FINERACT-2421: ReAge - fix Equal Amortization cases for zero interest progressive loans handle EQUAL_AMORTIZATION_FULL_INTEREST and EQUAL_AMORTIZATION_PAYABLE_INTEREST to equally amortize fees and penalties in case of 0 interest progressive loans --- .../impl/AdvancedPaymentScheduleTransactionProcessor.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java index 5a93999d7c..3bbb4b43ab 100644 --- a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java +++ b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java @@ -63,6 +63,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.NotImplementedException; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.tuple.Pair; import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom; @@ -3261,7 +3262,14 @@ public class AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep } } } else { - handleReAgeWithCommonStrategy(loanTransaction, new CommonReAgeSettings(), ctx); + CommonReAgeSettings settings = switch (loanReAgeParameter.getInterestHandlingType()) { + case LoanReAgeInterestHandlingType.EQUAL_AMORTIZATION_FULL_INTEREST -> new CommonReAgeSettings(false, true, true, true); + case LoanReAgeInterestHandlingType.EQUAL_AMORTIZATION_PAYABLE_INTEREST -> new CommonReAgeSettings(true, true, true, true); + case LoanReAgeInterestHandlingType.DEFAULT -> new CommonReAgeSettings(); + case null -> new CommonReAgeSettings(); + default -> throw new NotImplementedException(); + }; + handleReAgeWithCommonStrategy(loanTransaction, settings, ctx); } if (loanTransaction.getAmount().compareTo(ZERO) == 0) { loanTransaction.reverse();
