Repository: incubator-fineract
Updated Branches:
  refs/heads/develop 935d6146c -> f59dacbfc


FINERACT-303 - % Loan Amount + Interest or %Amount if collected as disbursement 
fees it is not working as expected


Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/f59dacbf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/f59dacbf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/f59dacbf

Branch: refs/heads/develop
Commit: f59dacbfc8a04031cd9521ed1c23bc57245d2c26
Parents: 935d614
Author: nazeer1100126 <nazeer.sh...@confluxtechnologies.com>
Authored: Fri Mar 24 17:20:40 2017 +0530
Committer: nazeer1100126 <nazeer.sh...@confluxtechnologies.com>
Committed: Fri Mar 24 17:20:40 2017 +0530

----------------------------------------------------------------------
 .../portfolio/loanaccount/domain/Loan.java      | 31 +++++++++++++++++++-
 .../loanaccount/domain/LoanCharge.java          |  4 +++
 2 files changed, 34 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/f59dacbf/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 3b35c53..8b1cc2a 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
@@ -862,7 +862,11 @@ public class Loan extends AbstractPersistableCustom<Long> {
             break;
             case PERCENT_OF_AMOUNT_AND_INTEREST:
                 final BigDecimal totalInterestCharged = getTotalInterest();
-                amount = getPrincpal().getAmount().add(totalInterestCharged);
+                if (isMultiDisburmentLoan() && 
loanCharge.isDisbursementCharge()) {
+                    amount = 
getTotalAllTrancheDisbursementAmount().getAmount().add(totalInterestCharged);
+                }else{
+                    amount = 
getPrincpal().getAmount().add(totalInterestCharged);
+                }
             break;
             case PERCENT_OF_INTEREST:
                 amount = getTotalInterest();
@@ -880,6 +884,31 @@ public class Loan extends AbstractPersistableCustom<Long> {
         return amount;
     }
 
+    private Money getTotalAllTrancheDisbursementAmount() {
+        Money amount = Money.zero(getCurrency());
+        if (isMultiDisburmentLoan()) {
+            for (final LoanDisbursementDetails loanDisbursementDetail : 
this.disbursementDetails) {
+                amount = amount.plus(loanDisbursementDetail.principal());
+            }
+        }
+        return amount;
+    }
+
+    private boolean isFirstTrancheDisbursement() {
+        if (isMultiDisburmentLoan()) {
+            int totalTranchDisbursementCount = 0;
+            for (final LoanDisbursementDetails loanDisbursementDetail : 
this.disbursementDetails) {
+                if(loanDisbursementDetail.actualDisbursementDate() != null){
+                    totalTranchDisbursementCount++;
+                }
+            }
+            if(totalTranchDisbursementCount < 2){
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
      * @return
      */

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/f59dacbf/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
index 88a8aee..5a8582f 100755
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
@@ -990,6 +990,10 @@ public class LoanCharge extends 
AbstractPersistableCustom<Long> {
         return this.loan;
     }
     
+    public boolean isDisbursementCharge() {
+        return 
ChargeTimeType.fromInt(this.chargeTime).equals(ChargeTimeType.DISBURSEMENT);
+    }
+    
     public boolean isTrancheDisbursementCharge() {
         return 
ChargeTimeType.fromInt(this.chargeTime).equals(ChargeTimeType.TRANCHE_DISBURSEMENT);
     }

Reply via email to