From 1cac15959c49eae768fcb374a58762797126684b Mon Sep 17 00:00:00 2001 From: Pramod Nuthakki Date: Wed, 1 Oct 2014 18:33:41 +0530 Subject: [PATCH] MIFOSX-1561 : added check to validate principal collected --- .../portfolio/loanaccount/domain/Loan.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java index 277e35420..c7ebcb22e 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java @@ -2523,6 +2523,16 @@ public class Loan extends AbstractPersistable { doPostLoanTransactionChecks(loanTransaction.getTransactionDate(), loanLifecycleStateMachine); } + if (this.loanProduct.isMultiDisburseLoan()) { + BigDecimal totalDisbursed = getDisbursedAmount(); + if (totalDisbursed.compareTo(this.summary.getTotalPrincipalRepaid()) < 0 + && this.repaymentScheduleDetail().getPrincipal().minus(totalDisbursed).isGreaterThanZero()) { + final String errorMessage = "The transaction cannot be done before the loan disbursement: " + + getApprovedOnDate().toString(); + throw new InvalidLoanStateTransitionException("transaction", "cannot.be.done.before.disbursement", errorMessage); + } + } + if (changedTransactionDetail != null) { this.loanTransactions.removeAll(changedTransactionDetail.getNewTransactionMappings().values()); }