From 29478ca023c311e92c6df28d6c4bbe307a23544a Mon Sep 17 00:00:00 2001 From: Pramod Nuthakki Date: Sat, 3 May 2014 01:07:01 +0530 Subject: [PATCH] MIFOSX-1162 : removed overdue loan charge on undo disburse --- .../mifosplatform/integrationtests/AccountTransferTest.java | 1 + .../integrationtests/SchedulerJobsTestResults.java | 6 +++++- .../mifosplatform/portfolio/loanaccount/domain/Loan.java | 6 +++++- .../portfolio/loanaccount/domain/LoanCharge.java | 5 ++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java index 8408a92c1..82a70f19e 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java @@ -46,6 +46,7 @@ public class AccountTransferTest { public static final String TO_SAVINGS_ACCOUNT_TYPE = "2"; public static final String LOAN_APPROVAL_DATE = "01 March 2013"; + public static final String LOAN_APPROVAL_DATE_PLUS_ONE = "02 March 2013"; public static final String LOAN_DISBURSAL_DATE = "01 March 2013"; private ResponseSpecification responseSpec; diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SchedulerJobsTestResults.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SchedulerJobsTestResults.java index 2869cb35d..973f9e329 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SchedulerJobsTestResults.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SchedulerJobsTestResults.java @@ -651,7 +651,7 @@ public class SchedulerJobsTestResults { loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID); LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap); - loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE, loanID); + loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_APPROVAL_DATE_PLUS_ONE, loanID); LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap); ArrayList repaymentScheduleDataBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, @@ -669,6 +669,10 @@ public class SchedulerJobsTestResults { Assert.assertEquals("Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job", chargeAmount, (Float) repaymentScheduleDataAfter.get(1).get("penaltyChargesDue")); + + loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID); + LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap); + LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap); } 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 f38919628..de6ef69b9 100644 --- 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 @@ -2118,7 +2118,11 @@ public class Loan extends AbstractPersistable { this.actualDisbursementDate = null; for (final LoanCharge charge : charges()) { - charge.resetToOriginal(loanCurrency()); + if (charge.isOverdueInstallmentCharge()) { + charge.setActive(false); + } else { + charge.resetToOriginal(loanCurrency()); + } } for (final LoanRepaymentScheduleInstallment currentInstallment : this.repaymentScheduleInstallments) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java index 966e4188a..f24d74367 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanCharge.java @@ -305,7 +305,7 @@ public class LoanCharge extends AbstractPersistable { this.paid = false; this.waived = false; for (final LoanInstallmentCharge installmentCharge : this.loanInstallmentCharge) { - installmentCharge.resetPaidAmount(currency); + installmentCharge.resetToOriginal(currency); } } @@ -816,6 +816,9 @@ public class LoanCharge extends AbstractPersistable { public void setActive(boolean active) { this.active = active; + if (!active) { + this.overdueInstallmentCharge = null; + } } public BigDecimal amountOrPercentage() {