avikganguly01 commented on a change in pull request #1220:
URL: https://github.com/apache/fineract/pull/1220#discussion_r470247807



##########
File path: 
fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/ConfigurationDomainServiceJpa.java
##########
@@ -252,6 +252,16 @@ public boolean isSkippingMeetingOnFirstDayOfMonthEnabled() 
{
         return 
getGlobalConfigurationPropertyData("skip-repayment-on-first-day-of-month").isEnabled();
     }
 
+    @Override
+    public boolean isFirstRepaymentDateAfterRescheduleAllowedOnHoliday() {
+        return 
getGlobalConfigurationPropertyData("loan-reschedule-is-first-payday-allowed-on-holiday").isEnabled();
+    }

Review comment:
       This should have been part of PR FIN-1106.

##########
File path: 
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java
##########
@@ -279,7 +282,8 @@ private LoanScheduleModel generate(final MathContext mc, 
final LoanApplicationTe
 
             // will check for EMI amount greater than interest calculated
             if (loanApplicationTerms.getFixedEmiAmount() != null
-                    && 
loanApplicationTerms.getFixedEmiAmount().compareTo(principalInterestForThisPeriod.interest().getAmount())
 < 0) {
+                    && 
loanApplicationTerms.getFixedEmiAmount().compareTo(principalInterestForThisPeriod.interest().getAmount())
 < 0
+                    && 
!loanApplicationTerms.isInterestToBeAppropriatedEquallyWhenGreaterThanEMIEnabled())
 {

Review comment:
       Is tranche loan approval failing due to flag?

##########
File path: 
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DecliningBalanceInterestLoanScheduleGenerator.java
##########
@@ -125,7 +125,30 @@ public PrincipalInterest 
calculatePrincipalInterestComponentsForPeriod(final Pay
                 interestCalculationGraceOnRepaymentPeriodFraction, 
periodNumber, mc, cumulatingInterestDueToGrace,
                 balanceForInterestCalculation, interestStartDate, 
periodEndDate);
 
-        interestForThisInstallment = 
interestForThisInstallment.plus(result.interest());
+        if 
(loanApplicationTerms.isInterestToBeAppropriatedEquallyWhenGreaterThanEMIEnabled()
 && !result.interest().isZero()
+                && !interestForThisInstallment.isZero()) {
+            
loanApplicationTerms.setInterestTobeApproppriated(result.interest());
+        } else {
+            interestForThisInstallment = 
interestForThisInstallment.plus(result.interest());
+        }
+
+        if (loanApplicationTerms.getFixedEmiAmount() != null
+                && 
loanApplicationTerms.isInterestToBeAppropriatedEquallyWhenGreaterThanEMIEnabled()
 && interestForThisInstallment
+                        
.isGreaterThan(Money.of(interestForThisInstallment.getCurrency(), 
loanApplicationTerms.getFixedEmiAmount()))) {
+            LocalDate actualPeriodEndDate = 
this.scheduledDateGenerator.generateNextRepaymentDate(interestStartDate, 
loanApplicationTerms,
+                    false);
+            // AdjustedDateDetailsDTO adjustedDateDetailsDTO = 
this.scheduledDateGenerator
+            // .adjustRepaymentDate(actualPeriodEndDate, loanApplicationTerms,
+            // loanApplicationTerms.getHolidayDetailDTO());
+
+            PrincipalInterest tempInterest = 
loanApplicationTerms.calculateTotalInterestForPeriod(calculator,
+                    interestCalculationGraceOnRepaymentPeriodFraction, 
periodNumber, mc, cumulatingInterestDueToGrace,
+                    balanceForInterestCalculation, interestStartDate, 
actualPeriodEndDate);
+
+            
loanApplicationTerms.setInterestTobeApproppriated(interestForThisInstallment.minus(tempInterest.interest()));
+            interestForThisInstallment = tempInterest.interest();
+        }

Review comment:
       LGTM

##########
File path: 
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelRepaymentPeriod.java
##########
@@ -154,7 +154,7 @@ public boolean isRecalculatedInterestComponent() {
     @Override
     public void addInterestAmount(Money interestDue) {
         this.interestDue = this.interestDue.plus(interestDue);
-        this.totalDue = this.totalDue.plus(principalDue);
+        this.totalDue = this.totalDue.plus(interestDue);

Review comment:
       Looks like a different bug got squashed here. What effects could this 
bug have been producing? Shall we create a different ticket to track this?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to