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()) {

Reply via email to