You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by na...@apache.org on 2016/08/22 08:19:46 UTC

[1/2] incubator-fineract git commit: FINERACT-214 : adding validation for overdue charges while rescheuling

Repository: incubator-fineract
Updated Branches:
  refs/heads/develop 830412fdd -> 84651e054


FINERACT-214 : adding validation for overdue charges while rescheuling


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

Branch: refs/heads/develop
Commit: 4e9f534eaad49d202026414a729d9c1c19878cb7
Parents: 416a6e5
Author: venkatconflux <ve...@confluxtechnologies.com>
Authored: Fri Aug 19 18:11:11 2016 +0530
Committer: venkatconflux <ve...@confluxtechnologies.com>
Committed: Fri Aug 19 18:11:11 2016 +0530

----------------------------------------------------------------------
 .../portfolio/loanaccount/domain/Loan.java      |  4 +++
 .../LoanRescheduleRequestDataValidator.java     | 29 ++++++++++++++++----
 2 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4e9f534e/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 0ab4b2d..4f26f4a 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
@@ -6349,4 +6349,8 @@ public class Loan extends AbstractPersistable<Long> {
     public LoanTopupDetails getTopupLoanDetails() {
         return this.loanTopupDetails;
     }
+    
+    public Collection<LoanCharge> getLoanCharges() {
+        return this.charges;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4e9f534e/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/data/LoanRescheduleRequestDataValidator.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/data/LoanRescheduleRequestDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/data/LoanRescheduleRequestDataValidator.java
index 67e0f80..1203979 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/data/LoanRescheduleRequestDataValidator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/data/LoanRescheduleRequestDataValidator.java
@@ -20,6 +20,7 @@ package org.apache.fineract.portfolio.loanaccount.rescheduleloan.data;
 
 import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -31,6 +32,7 @@ import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
 import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
+import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
 import org.apache.fineract.portfolio.loanaccount.rescheduleloan.RescheduleLoansApiConstants;
 import org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest;
@@ -140,9 +142,9 @@ public class LoanRescheduleRequestDataValidator {
                 && !this.fromJsonHelper.parameterExists(RescheduleLoansApiConstants.adjustedDueDateParamName, jsonElement)) {
             dataValidatorBuilder.reset().parameter(RescheduleLoansApiConstants.graceOnPrincipalParamName).notNull();
         }
-
+        LoanRepaymentScheduleInstallment installment = null;
         if (rescheduleFromDate != null) {
-            LoanRepaymentScheduleInstallment installment = loan.getRepaymentScheduleInstallment(rescheduleFromDate);
+            installment = loan.getRepaymentScheduleInstallment(rescheduleFromDate);
 
             if (installment == null) {
                 dataValidatorBuilder.reset().parameter(RescheduleLoansApiConstants.rescheduleFromDateParamName)
@@ -165,9 +167,24 @@ public class LoanRescheduleRequestDataValidator {
             dataValidatorBuilder.reset().failWithCodeNoParameterAddedToErrorCode(RescheduleLoansApiConstants.resheduleWithInterestRecalculationNotSupportedErrorCode,
                     "Loan rescheduling is not supported for the loan product with interest recalculation enabled");
         }
-        
+        validateForOverdueCharges(dataValidatorBuilder, loan, installment);
         if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); }
     }
+    
+    
+    private void validateForOverdueCharges(DataValidatorBuilder dataValidatorBuilder, final Loan loan,
+            final LoanRepaymentScheduleInstallment installment) {
+        if (installment != null) {
+            LocalDate rescheduleFromDate = installment.getFromDate();
+            Collection<LoanCharge> charges = loan.getLoanCharges();
+            for (LoanCharge loanCharge : charges) {
+                if (loanCharge.isOverdueInstallmentCharge() && loanCharge.getDueLocalDate().isAfter(rescheduleFromDate)) {
+                    dataValidatorBuilder.failWithCodeNoParameterAddedToErrorCode("not.allowed.due.to.overdue.charges");
+                    break;
+                }
+            }
+        }
+    }
 
     /**
      * Validates a user request to approve a loan reschedule request
@@ -212,7 +229,7 @@ public class LoanRescheduleRequestDataValidator {
 
         LocalDate rescheduleFromDate = loanRescheduleRequest.getRescheduleFromDate();
         final Loan loan = loanRescheduleRequest.getLoan();
-
+        LoanRepaymentScheduleInstallment installment = null;
         if (loan != null) {
 
             if (!loan.status().isActive()) {
@@ -220,7 +237,7 @@ public class LoanRescheduleRequestDataValidator {
             }
 
             if (rescheduleFromDate != null) {
-                LoanRepaymentScheduleInstallment installment = loan.getRepaymentScheduleInstallment(rescheduleFromDate);
+                 installment = loan.getRepaymentScheduleInstallment(rescheduleFromDate);
 
                 if (installment == null) {
                     dataValidatorBuilder.reset().failWithCodeNoParameterAddedToErrorCode(
@@ -233,6 +250,8 @@ public class LoanRescheduleRequestDataValidator {
                 }
             }
         }
+        
+        validateForOverdueCharges(dataValidatorBuilder, loan, installment);
 
         if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); }
     }


[2/2] incubator-fineract git commit: Merge branch 'FINERACT-214' into develop

Posted by na...@apache.org.
Merge branch 'FINERACT-214' into develop


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

Branch: refs/heads/develop
Commit: 84651e0542079c17bc03693bb1870696bc100fe1
Parents: 830412f 4e9f534
Author: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Authored: Mon Aug 22 12:26:15 2016 +0530
Committer: Nazeer Hussain Shaik <na...@confluxtechnologies.com>
Committed: Mon Aug 22 12:26:15 2016 +0530

----------------------------------------------------------------------
 .../portfolio/loanaccount/domain/Loan.java      |  4 +++
 .../LoanRescheduleRequestDataValidator.java     | 29 ++++++++++++++++----
 2 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/84651e05/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
----------------------------------------------------------------------