FINERACT-2553: Fix repayment schedule during accelerate maturity date charge off/contract termination when full backdated repayment occurs after it

This commit is contained in:
mariiaKraievska
2025-06-05 14:58:20 +02:00
committed by Adam Saghy
parent 57ef4a2771
commit 71a4d08849
9 changed files with 569 additions and 62 deletions
@@ -335,8 +335,8 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
private void addAccruals(@NotNull final Loan loan, @NotNull LocalDate tillDate, final boolean periodic, final boolean isFinal,
final boolean addJournal, final boolean chargeOnDueDate) {
if ((!isFinal && !loan.isOpen()) || loan.isNpa() || loan.isChargedOff()
|| !loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()) {
if ((!isFinal && !loan.isOpen()) || loan.isNpa() || loan.isChargedOff() || !loan.isPeriodicAccrualAccountingEnabledOnLoanProduct()
|| loan.isContractTermination()) {
return;
}
@@ -90,6 +90,7 @@ public class LoanTransactionProcessingServiceImpl implements LoanTransactionProc
new ChangedTransactionDetail(), savedModel.orElse(null), getTotalRefundInterestAmount(loan));
progressiveContext.getAlreadyProcessedTransactions().addAll(loanTransactionService.retrieveListOfTransactionsForReprocessing(loan));
progressiveContext.setChargedOff(loan.isChargedOff());
progressiveContext.setContractTerminated(loan.isContractTermination());
ChangedTransactionDetail result = advancedProcessor.processLatestTransaction(loanTransaction, progressiveContext);
if (savedModel.isPresent() && !TransactionSynchronizationManager.isCurrentTransactionReadOnly()) {
modelRepository.writeInterestScheduleModel(loan, savedModel.get());