Repository: incubator-fineract Updated Branches: refs/heads/develop ded0c7b84 -> 218663ac3
MIFOSX-2505 : included due date charge for interest only recalcualtion installments Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/2dae8f8a Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/2dae8f8a Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/2dae8f8a Branch: refs/heads/develop Commit: 2dae8f8a0edbe1baee95838babd17247231dd959 Parents: fe6e1e8 Author: pramod <pra...@confluxtechnologies.com> Authored: Mon Apr 18 16:10:35 2016 +0530 Committer: pramod <pra...@confluxtechnologies.com> Committed: Mon Apr 18 16:10:35 2016 +0530 ---------------------------------------------------------------------- .../fineract/portfolio/loanaccount/domain/Loan.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/2dae8f8a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java ---------------------------------------------------------------------- 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 1bf5ec1..c9e51a7 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 @@ -579,7 +579,7 @@ public class Loan extends AbstractPersistable<Long> { getId(), loanCharge.name()); } - validateChargeHasValidSpecifiedDateIfApplicable(loanCharge, getDisbursementDate(), getLastRepaymentPeriodDueDate()); + validateChargeHasValidSpecifiedDateIfApplicable(loanCharge, getDisbursementDate(), getLastRepaymentPeriodDueDate(false)); loanCharge.update(this); @@ -735,10 +735,11 @@ public class Loan extends AbstractPersistable<Long> { } } - private LocalDate getLastRepaymentPeriodDueDate() { + private LocalDate getLastRepaymentPeriodDueDate(final boolean includeRecalculatedInterestComponent) { LocalDate lastRepaymentDate = getDisbursementDate(); for (LoanRepaymentScheduleInstallment installment : this.repaymentScheduleInstallments) { - if (!installment.isRecalculatedInterestComponent() && installment.getDueDate().isAfter(lastRepaymentDate)) { + if ((includeRecalculatedInterestComponent || !installment.isRecalculatedInterestComponent()) + && installment.getDueDate().isAfter(lastRepaymentDate)) { lastRepaymentDate = installment.getDueDate(); } } @@ -750,7 +751,7 @@ public class Loan extends AbstractPersistable<Long> { validateLoanIsNotClosed(loanCharge); // NOTE: to remove this constraint requires that loan transactions - // that represent the waive of charges also be removed (or reversed) + // that represent the waive of charges also be removed (or reversed)M // if you want ability to remove loan charges that are waived. validateLoanChargeIsNotWaived(loanCharge); @@ -1616,7 +1617,7 @@ public class Loan extends AbstractPersistable<Long> { } if (loanCharge.isActive()) { loanCharge.update(chargeAmt, loanCharge.getDueLocalDate(), amount, fetchNumberOfInstallmensAfterExceptions(), totalChargeAmt); - validateChargeHasValidSpecifiedDateIfApplicable(loanCharge, getDisbursementDate(), getLastRepaymentPeriodDueDate()); + validateChargeHasValidSpecifiedDateIfApplicable(loanCharge, getDisbursementDate(), getLastRepaymentPeriodDueDate(false)); } } @@ -4946,7 +4947,7 @@ public class Loan extends AbstractPersistable<Long> { if (loanSchedule == null) { return; } updateLoanSchedule(loanSchedule.getInstallments(), currentUser); this.interestRecalculatedOn = DateUtils.getDateOfTenant(); - LocalDate lastRepaymentDate = this.getLastRepaymentPeriodDueDate(); + LocalDate lastRepaymentDate = this.getLastRepaymentPeriodDueDate(true); Set<LoanCharge> charges = this.charges(); for (LoanCharge loanCharge : charges) { if (!loanCharge.isDueAtDisbursement()) {