Repository: incubator-fineract
Updated Branches:
  refs/heads/develop a6c9d3d3e -> b786d459b


FINERACT-59 : corrected interest calculation for flat loans


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

Branch: refs/heads/develop
Commit: 859c0affefe95d61c1cae8a7f158288591ba5ad0
Parents: 14499a2
Author: pramod <[email protected]>
Authored: Mon Mar 7 17:15:56 2016 +0530
Committer: pramod <[email protected]>
Committed: Mon Mar 7 17:15:56 2016 +0530

----------------------------------------------------------------------
 .../domain/LoanApplicationTerms.java            | 25 +++++++++++++-------
 1 file changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/859c0aff/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
index 80e2530..68e9d83 100755
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
@@ -178,7 +178,7 @@ public final class LoanApplicationTerms {
     private Money adjustPrincipalForFlatLoans;
 
     private final LocalDate seedDate;
-    
+
     private final CalendarHistoryDataWrapper calendarHistoryDataWrapper;
 
     public static LoanApplicationTerms assembleFrom(final ApplicationCurrency 
currency, final Integer loanTermFrequency,
@@ -235,7 +235,8 @@ public final class LoanApplicationTerms {
                 loanProductRelatedDetail, multiDisburseLoan, emiAmount, 
disbursementDatas, maxOutstandingBalance, interestChargedFromDate,
                 principalThresholdForLastInstalment, 
installmentAmountInMultiplesOf, recalculationFrequencyType, 
restCalendarInstance,
                 compoundingMethod, compoundingCalendarInstance, 
compoundingFrequencyType, loanPreClosureInterestCalculationStrategy,
-                rescheduleStrategyMethod, loanCalendar, approvedAmount, 
annualNominalInterestRate, loanTermVariations, calendarHistoryDataWrapper);
+                rescheduleStrategyMethod, loanCalendar, approvedAmount, 
annualNominalInterestRate, loanTermVariations,
+                calendarHistoryDataWrapper);
     }
 
     public static LoanApplicationTerms assembleFrom(final ApplicationCurrency 
applicationCurrency, final Integer loanTermFrequency,
@@ -250,7 +251,7 @@ public final class LoanApplicationTerms {
             final CalendarInstance compoundingCalendarInstance, final 
RecalculationFrequencyType compoundingFrequencyType,
             final LoanPreClosureInterestCalculationStrategy 
loanPreClosureInterestCalculationStrategy,
             final LoanRescheduleStrategyMethod rescheduleStrategyMethod, final 
Calendar loanCalendar, BigDecimal approvedAmount,
-            BigDecimal annualNominalInterestRate, final 
List<LoanTermVariationsData> loanTermVariations, 
+            BigDecimal annualNominalInterestRate, final 
List<LoanTermVariationsData> loanTermVariations,
             final CalendarHistoryDataWrapper calendarHistoryDataWrapper) {
 
         final Integer numberOfRepayments = 
loanProductRelatedDetail.getNumberOfRepayments();
@@ -326,7 +327,7 @@ public final class LoanApplicationTerms {
             interestRecalculationCompoundingMethod = 
interestRecalculationDetails.getInterestRecalculationCompoundingMethod();
         }
         final CalendarHistoryDataWrapper calendarHistoryDataWrapper = null;
-        
+
         return new LoanApplicationTerms(applicationCurrency, 
loanTermFrequency, loanTermPeriodFrequencyType, numberOfRepayments,
                 repaymentEvery, repaymentPeriodFrequencyType, null, null, 
amortizationMethod, interestMethod, interestRatePerPeriod,
                 interestRatePeriodFrequencyType, annualNominalInterestRate, 
interestCalculationPeriodMethod,
@@ -379,7 +380,8 @@ public final class LoanApplicationTerms {
             final CalendarInstance compoundingCalendarInstance, final 
RecalculationFrequencyType compoundingFrequencyType,
             final BigDecimal principalThresholdForLastInstalment, final 
Integer installmentAmountInMultiplesOf,
             final LoanPreClosureInterestCalculationStrategy 
preClosureInterestCalculationStrategy, final Calendar loanCalendar,
-            BigDecimal approvedAmount, List<LoanTermVariationsData> 
loanTermVariations, final CalendarHistoryDataWrapper 
calendarHistoryDataWrapper) {
+            BigDecimal approvedAmount, List<LoanTermVariationsData> 
loanTermVariations,
+            final CalendarHistoryDataWrapper calendarHistoryDataWrapper) {
         this.currency = currency;
         this.loanTermFrequency = loanTermFrequency;
         this.loanTermPeriodFrequencyType = loanTermPeriodFrequencyType;
@@ -709,8 +711,13 @@ public final class LoanApplicationTerms {
             case INVALID:
             break;
             case SAME_AS_REPAYMENT_PERIOD:
-                LocalDate startDate = getExpectedDisbursementDate();
-                periodsInLoanTerm = calculatePeriodsBetweenDates(startDate, 
this.loanEndDate);
+                if (this.allowPartialPeriodInterestCalcualtion) {
+                    LocalDate startDate = getExpectedDisbursementDate();
+                    if (getInterestChargedFromDate() != null) {
+                        startDate = getInterestChargedFromLocalDate();
+                    }
+                    periodsInLoanTerm = 
calculatePeriodsBetweenDates(startDate, this.loanEndDate);
+                }
             break;
         }
 
@@ -1429,8 +1436,8 @@ public final class LoanApplicationTerms {
     public LocalDate getSeedDate() {
         return this.seedDate;
     }
-    
-    public CalendarHistoryDataWrapper getCalendarHistoryDataWrapper(){
+
+    public CalendarHistoryDataWrapper getCalendarHistoryDataWrapper() {
         return this.calendarHistoryDataWrapper;
     }
 

Reply via email to