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
----------------------------------------------------------------------