Merge pull request #891 from pramodn02/MIFOSX-1162

MIFOSX-1162 : removed overdue loan charge on undo disburse
This commit is contained in:
Vishwas Babu A J
2014-05-04 14:01:29 +05:30
4 changed files with 15 additions and 3 deletions
@@ -46,6 +46,7 @@ public class AccountTransferTest {
public static final String TO_SAVINGS_ACCOUNT_TYPE = "2"; 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 = "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"; public static final String LOAN_DISBURSAL_DATE = "01 March 2013";
private ResponseSpecification responseSpec; private ResponseSpecification responseSpec;
@@ -651,7 +651,7 @@ public class SchedulerJobsTestResults {
loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID); loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap); 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); LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
@@ -670,6 +670,10 @@ public class SchedulerJobsTestResults {
Assert.assertEquals("Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job", Assert.assertEquals("Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job",
chargeAmount, (Float) repaymentScheduleDataAfter.get(1).get("penaltyChargesDue")); chargeAmount, (Float) repaymentScheduleDataAfter.get(1).get("penaltyChargesDue"));
loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
} }
@Test @Test
@@ -2118,7 +2118,11 @@ public class Loan extends AbstractPersistable<Long> {
this.actualDisbursementDate = null; this.actualDisbursementDate = null;
for (final LoanCharge charge : charges()) { for (final LoanCharge charge : charges()) {
charge.resetToOriginal(loanCurrency()); if (charge.isOverdueInstallmentCharge()) {
charge.setActive(false);
} else {
charge.resetToOriginal(loanCurrency());
}
} }
for (final LoanRepaymentScheduleInstallment currentInstallment : this.repaymentScheduleInstallments) { for (final LoanRepaymentScheduleInstallment currentInstallment : this.repaymentScheduleInstallments) {
@@ -305,7 +305,7 @@ public class LoanCharge extends AbstractPersistable<Long> {
this.paid = false; this.paid = false;
this.waived = false; this.waived = false;
for (final LoanInstallmentCharge installmentCharge : this.loanInstallmentCharge) { for (final LoanInstallmentCharge installmentCharge : this.loanInstallmentCharge) {
installmentCharge.resetPaidAmount(currency); installmentCharge.resetToOriginal(currency);
} }
} }
@@ -816,6 +816,9 @@ public class LoanCharge extends AbstractPersistable<Long> {
public void setActive(boolean active) { public void setActive(boolean active) {
this.active = active; this.active = active;
if (!active) {
this.overdueInstallmentCharge = null;
}
} }
public BigDecimal amountOrPercentage() { public BigDecimal amountOrPercentage() {