From e7fbec05be0061e17aeb3f5695c2d97cb4df55a7 Mon Sep 17 00:00:00 2001 From: Vishwa Date: Thu, 5 May 2016 18:28:57 +0530 Subject: [PATCH] [BUG-347] Stop interest posting once the loan has moved to overpaid state --- .../fineract/portfolio/loanaccount/domain/Loan.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index 822b57534..386f70261 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -5053,6 +5053,10 @@ public class Loan extends AbstractPersistable { accrualTransaction); lastCompoundingDate = compoundingDetail.getEffectiveDate(); } + LoanRepaymentScheduleInstallment lastInstallment = this.repaymentScheduleInstallments.get(this.repaymentScheduleInstallments + .size() - 1); + reverseTransactionsPostEffectiveDate(incomeTransactions, lastInstallment.getDueDate()); + reverseTransactionsPostEffectiveDate(accrualTransactions, lastInstallment.getDueDate()); } } @@ -5163,6 +5167,14 @@ public class Loan extends AbstractPersistable { return null; } + private void reverseTransactionsPostEffectiveDate(List transactions, LocalDate effectiveDate) { + for (LoanTransaction loanTransaction : transactions) { + if (loanTransaction.getTransactionDate().isAfter(effectiveDate)) { + loanTransaction.reverse(); + } + } + } + private List extractInterestRecalculationAdditionalDetails() { List retDetails = new ArrayList<>(); if (null != this.repaymentScheduleInstallments && this.repaymentScheduleInstallments.size() > 0) {