diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java index 4050539d7..b95a5d54f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java @@ -233,7 +233,7 @@ public final class LoanEventApiJsonValidator { baseDataValidator.reset().parameter(LoanApiConstants.REVERSAL_EXTERNAL_ID_PARAMNAME).ignoreIfNull().value(reversalExternalId) .notExceedingLengthOf(100); - validatePaymentDetails(baseDataValidator, element, false); + validatePaymentDetails(baseDataValidator, element); throwExceptionIfValidationWarningsExist(dataValidationErrors); } @@ -263,7 +263,7 @@ public final class LoanEventApiJsonValidator { final String note = this.fromApiJsonHelper.extractStringNamed(LoanApiConstants.noteParameterName, element); baseDataValidator.reset().parameter(LoanApiConstants.noteParameterName).value(note).notExceedingLengthOf(1000); - validatePaymentDetails(baseDataValidator, element, true); + validatePaymentDetails(baseDataValidator, element); throwExceptionIfValidationWarningsExist(dataValidationErrors); } @@ -313,19 +313,11 @@ public final class LoanEventApiJsonValidator { } private void validatePaymentDetails(final DataValidatorBuilder baseDataValidator, final JsonElement element) { - final boolean paymentDetailRequired = false; // Default value for backward compatibility - validatePaymentDetails(baseDataValidator, element, paymentDetailRequired); - } - - private void validatePaymentDetails(final DataValidatorBuilder baseDataValidator, final JsonElement element, - final boolean paymentDetailRequired) { // Validate all string payment detail fields for max length final Integer paymentTypeId = this.fromApiJsonHelper.extractIntegerWithLocaleNamed("paymentTypeId", element); - if (paymentDetailRequired) { - baseDataValidator.reset().parameter("paymentTypeId").value(paymentTypeId).notNull().integerGreaterThanZero(); - } else { - baseDataValidator.reset().parameter("paymentTypeId").value(paymentTypeId).ignoreIfNull().integerGreaterThanZero(); - } + + baseDataValidator.reset().parameter("paymentTypeId").value(paymentTypeId).ignoreIfNull().integerGreaterThanZero(); + final Set paymentDetailParameters = new HashSet<>( Arrays.asList("accountNumber", "checkNumber", "routingCode", "receiptNumber", "bankNumber")); for (final String paymentDetailParameterName : paymentDetailParameters) { diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackOnPaymentTypeRepaymentTransactionsTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackOnPaymentTypeRepaymentTransactionsTest.java index 2f6e81210..0abb77ab7 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackOnPaymentTypeRepaymentTransactionsTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanChargebackOnPaymentTypeRepaymentTransactionsTest.java @@ -201,7 +201,7 @@ public class LoanChargebackOnPaymentTypeRepaymentTransactionsTest { // chargeback on Merchant Issued Refund Transaction chargebackTransactionResponse = loanTransactionHelper.chargebackLoanTransaction(loanExternalIdStr, merchantIssuedRefund_1.getResourceId(), - new PostLoansLoanIdTransactionsTransactionIdRequest().locale("en").transactionAmount(100.0).paymentTypeId(1L)); + new PostLoansLoanIdTransactionsTransactionIdRequest().locale("en").transactionAmount(100.0)); // verify transaction relation and outstanding balance assertNotNull(chargebackTransactionResponse);