This is an automated email from the ASF dual-hosted git repository.
aleks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new e4e4782 Allow Reschedule feature for multi-disbursal loans w/o
expected details
e4e4782 is described below
commit e4e47829725c6ac667da6c3b0ae76c00d3e16258
Author: John Woodlock <[email protected]>
AuthorDate: Wed Mar 16 09:39:05 2022 +0000
Allow Reschedule feature for multi-disbursal loans w/o expected details
---
.../loanaccount/rescheduleloan/RescheduleLoansApiConstants.java | 2 +-
.../rescheduleloan/data/LoanRescheduleRequestDataValidator.java | 8 +++++---
.../loanaccount/service/LoanReadPlatformServiceImpl.java | 4 ----
3 files changed, 6 insertions(+), 8 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/RescheduleLoansApiConstants.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/RescheduleLoansApiConstants.java
index 73163d1..87f4ebb 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/RescheduleLoansApiConstants.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/RescheduleLoansApiConstants.java
@@ -50,7 +50,7 @@ public final class RescheduleLoansApiConstants {
public static final String rescheduleReasonCommentParamName =
"rescheduleReasonComment";
public static final String submittedOnDateParamName = "submittedOnDate";
public static final String adjustedDueDateParamName = "adjustedDueDate";
- public static final String
resheduleForMultiDisbursementNotSupportedErrorCode =
"loan.reschedule.multidisbursement.error.code";
+ public static final String
resheduleForMultiDisbursementNotSupportedErrorCode =
"loan.reschedule.tranche.multidisbursement.error.code";
public static final String
resheduleWithInterestRecalculationNotSupportedErrorCode =
"loan.reschedule.interestrecalculation.error.code";
public static final String allCommandParamName = "all";
public static final String approveCommandParamName = "approve";
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 bf8d82e..67d7b8a 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
@@ -197,9 +197,11 @@ public class LoanRescheduleRequestDataValidator {
}
if (loan.isMultiDisburmentLoan()) {
-
dataValidatorBuilder.reset().failWithCodeNoParameterAddedToErrorCode(
-
RescheduleLoansApiConstants.resheduleForMultiDisbursementNotSupportedErrorCode,
- "Loan rescheduling is not supported for multidisbursement
loans");
+ if (!loan.loanProduct().isDisallowExpectedDisbursements()) {
+
dataValidatorBuilder.reset().failWithCodeNoParameterAddedToErrorCode(
+
RescheduleLoansApiConstants.resheduleForMultiDisbursementNotSupportedErrorCode,
+ "Loan rescheduling is not supported for
multidisbursement tranche loans");
+ }
}
validateForOverdueCharges(dataValidatorBuilder, loan, installment);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index 3fc27ee..2bead69 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -107,7 +107,6 @@ import
org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariationType;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
import
org.apache.fineract.portfolio.loanaccount.exception.LoanNotFoundException;
-import
org.apache.fineract.portfolio.loanaccount.exception.LoanRepaymentScheduleNotFoundException;
import
org.apache.fineract.portfolio.loanaccount.exception.LoanTransactionNotFoundException;
import
org.apache.fineract.portfolio.loanaccount.loanschedule.data.LoanScheduleData;
import
org.apache.fineract.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData;
@@ -565,9 +564,6 @@ public class LoanReadPlatformServiceImpl implements
LoanReadPlatformService {
.getLoanRepaymentScheduleInstallments(loanId);
List<LoanRepaymentScheduleInstallmentData>
loanRepaymentScheduleInstallmentData = new ArrayList<>();
- if (loanRepaymentScheduleInstallments == null ||
loanRepaymentScheduleInstallments.size() == 0) {
- throw new LoanRepaymentScheduleNotFoundException(loanId,
Integer.valueOf(0));
- }
for (LoanRepaymentScheduleInstallment loanRepaymentScheduleInstallment
: loanRepaymentScheduleInstallments) {
loanRepaymentScheduleInstallmentData.add(LoanRepaymentScheduleInstallmentData.instanceOf(
loanRepaymentScheduleInstallment.getId(),
loanRepaymentScheduleInstallment.getInstallmentNumber(),