FINERACT-2326: Backdated loan charge-off accrual fix
This commit is contained in:
+12
-11
@@ -2727,6 +2727,18 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
} else {
|
||||
loan.markAsChargedOff(transactionDate, currentUser, null);
|
||||
}
|
||||
|
||||
loan.getLoanTransactions().stream().filter(lt -> lt.isAccrual() || lt.isAccrualAdjustment())
|
||||
.filter(transaction -> loan.getLoanProductRelatedDetail().isInterestRecognitionOnDisbursementDate()
|
||||
? !DateUtils.isBefore(transaction.getTransactionDate(), transactionDate)
|
||||
: DateUtils.isAfter(transaction.getTransactionDate(), transactionDate))
|
||||
.forEach(transaction -> {
|
||||
transaction.reverse();
|
||||
journalEntryPoster.postJournalEntriesForLoanTransaction(transaction, false, false);
|
||||
final LoanAdjustTransactionBusinessEvent.Data data = new LoanAdjustTransactionBusinessEvent.Data(transaction);
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanAdjustTransactionBusinessEvent(data));
|
||||
});
|
||||
|
||||
final LoanTransaction chargeOffTransaction = LoanTransaction.chargeOff(loan, transactionDate, txnExternalId);
|
||||
|
||||
if (loan.isInterestBearingAndInterestRecalculationEnabled()) {
|
||||
@@ -2754,17 +2766,6 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
this.noteRepository.save(note);
|
||||
}
|
||||
|
||||
loan.getLoanTransactions().stream().filter(LoanTransaction::isAccrual)
|
||||
.filter(transaction -> loan.getLoanProductRelatedDetail().isInterestRecognitionOnDisbursementDate()
|
||||
? !DateUtils.isBefore(transaction.getTransactionDate(), transactionDate)
|
||||
: DateUtils.isAfter(transaction.getTransactionDate(), transactionDate))
|
||||
.forEach(transaction -> {
|
||||
transaction.reverse();
|
||||
journalEntryPoster.postJournalEntriesForLoanTransaction(transaction, false, false);
|
||||
final LoanAdjustTransactionBusinessEvent.Data data = new LoanAdjustTransactionBusinessEvent.Data(transaction);
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanAdjustTransactionBusinessEvent(data));
|
||||
});
|
||||
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargeOffPostBusinessEvent(chargeOffTransaction));
|
||||
return new CommandProcessingResultBuilder() //
|
||||
.withCommandId(command.commandId()) //
|
||||
|
||||
Reference in New Issue
Block a user