FINERACT-2382: Repayment schedule for Flat-Cumulative-Multi Disbursement
This commit is contained in:
committed by
Adam Saghy
parent
567b12170b
commit
2269d616dc
+2
-27
@@ -214,8 +214,6 @@ public final class LoanApplicationValidator {
|
||||
expectedFirstRepaymentOnDate);
|
||||
}
|
||||
|
||||
validateCumulativeMultiDisburse(loan);
|
||||
|
||||
validateLoanTermAndRepaidEveryValues(loan.getTermFrequency(), loan.getTermPeriodFrequencyType().getValue(),
|
||||
loan.getLoanProductRelatedDetail().getNumberOfRepayments(), loan.getLoanProductRelatedDetail().getRepayEvery(),
|
||||
loan.getLoanProductRelatedDetail().getRepaymentPeriodFrequencyType().getValue(), loan);
|
||||
@@ -230,8 +228,6 @@ public final class LoanApplicationValidator {
|
||||
expectedFirstRepaymentOnDate);
|
||||
}
|
||||
|
||||
validateCumulativeMultiDisburse(loan);
|
||||
|
||||
validateLoanTermAndRepaidEveryValues(loan.getTermFrequency(), loan.getTermPeriodFrequencyType().getValue(),
|
||||
loan.getLoanProductRelatedDetail().getNumberOfRepayments(), loan.getLoanProductRelatedDetail().getRepayEvery(),
|
||||
loan.getLoanProductRelatedDetail().getRepaymentPeriodFrequencyType().getValue(), loan);
|
||||
@@ -1742,16 +1738,8 @@ public final class LoanApplicationValidator {
|
||||
if (transactionProcessingStrategyCode != null) {
|
||||
final Integer interestType = this.fromApiJsonHelper.extractIntegerNamed(LoanApiConstants.interestTypeParameterName,
|
||||
element, Locale.getDefault());
|
||||
String processorCode = loanRepaymentScheduleTransactionProcessorFactory
|
||||
.determineProcessor(transactionProcessingStrategyCode).getCode();
|
||||
boolean isProgressive = "advanced-payment-allocation-strategy".equals(processorCode);
|
||||
if (isProgressive) {
|
||||
baseDataValidator.reset().parameter(LoanApiConstants.interestTypeParameterName).value(interestType)
|
||||
.ignoreIfNull().inMinMaxRange(0, 1);
|
||||
} else {
|
||||
baseDataValidator.reset().parameter(LoanApiConstants.interestTypeParameterName).value(interestType)
|
||||
.ignoreIfNull().integerSameAsNumber(InterestMethod.DECLINING_BALANCE.getValue());
|
||||
}
|
||||
baseDataValidator.reset().parameter(LoanApiConstants.interestTypeParameterName).value(interestType).ignoreIfNull()
|
||||
.inMinMaxRange(0, 1);
|
||||
}
|
||||
} else {
|
||||
if (loan.isCumulativeSchedule()) {
|
||||
@@ -2208,19 +2196,6 @@ public final class LoanApplicationValidator {
|
||||
}
|
||||
}
|
||||
|
||||
private static void validateCumulativeMultiDisburse(Loan loan) {
|
||||
if (loan.isCumulativeSchedule() && loan.isMultiDisburmentLoan()
|
||||
&& loan.getLoanProductRelatedDetail().getInterestMethod().isFlat()) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final ApiParameterError error = ApiParameterError.generalError(
|
||||
"validation.msg.loan.cumulative.multidisburse.does.not.support.flat.interest.mode",
|
||||
"Cumulative multidisburse loan does NOT support FLAT interest mode.");
|
||||
dataValidationErrors.add(error);
|
||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.",
|
||||
dataValidationErrors);
|
||||
}
|
||||
}
|
||||
|
||||
private Calendar getCalendarInstance(Loan loan) {
|
||||
CalendarInstance calendarInstance = calendarInstanceRepository.findCalendarInstanceByEntityId(loan.getId(),
|
||||
CalendarEntityType.LOANS.getValue());
|
||||
|
||||
+1
-7
@@ -1059,13 +1059,7 @@ public final class LoanProductDataValidator {
|
||||
|
||||
final Integer interestType = this.fromApiJsonHelper.extractIntegerNamed(INTEREST_TYPE, element, Locale.getDefault());
|
||||
|
||||
boolean isProgressive = isProgressive(element, loanProduct);
|
||||
if (isProgressive) {
|
||||
baseDataValidator.reset().parameter(INTEREST_TYPE).value(interestType).ignoreIfNull().inMinMaxRange(0, 1);
|
||||
} else {
|
||||
baseDataValidator.reset().parameter(INTEREST_TYPE).value(interestType).ignoreIfNull()
|
||||
.integerSameAsNumber(InterestMethod.DECLINING_BALANCE.getValue());
|
||||
}
|
||||
baseDataValidator.reset().parameter(INTEREST_TYPE).value(interestType).ignoreIfNull().inMinMaxRange(0, 1);
|
||||
}
|
||||
|
||||
final String overAppliedCalculationType = this.fromApiJsonHelper.extractStringNamed(OVER_APPLIED_CALCULATION_TYPE, element);
|
||||
|
||||
Reference in New Issue
Block a user