diff --git a/fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanAssemblerImpl.java b/fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanAssemblerImpl.java index b2db4905c01..b80a36f21f1 100644 --- a/fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanAssemblerImpl.java +++ b/fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/WorkingCapitalLoanAssemblerImpl.java @@ -190,11 +190,15 @@ private WorkingCapitalLoanProductRelatedDetails buildLoanProductRelatedDetails(f ? fromApiJsonHelper.extractIntegerNamed(WorkingCapitalLoanProductConstants.delinquencyGraceDaysParamName, element, new HashSet<>()) : productDetail.getDelinquencyGraceDays()); - detail.setDelinquencyStartType( - fromApiJsonHelper.parameterExists(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element) - ? WorkingCapitalLoanDelinquencyStartType.valueOf(fromApiJsonHelper - .extractStringNamed(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element)) - : productDetail.getDelinquencyStartType()); + final String delinquencyStartTypeValue = fromApiJsonHelper + .parameterExists(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element) + ? fromApiJsonHelper.extractStringNamed(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element) + : null; + if (delinquencyStartTypeValue != null) { + detail.setDelinquencyStartType(WorkingCapitalLoanDelinquencyStartType.valueOf(delinquencyStartTypeValue)); + } else { + detail.setDelinquencyStartType(productDetail.getDelinquencyStartType()); + } if (fromApiJsonHelper.parameterExists(WorkingCapitalLoanProductConstants.delinquencyBucketIdParamName, element)) { final Long bucketId = fromApiJsonHelper.extractLongNamed(WorkingCapitalLoanProductConstants.delinquencyBucketIdParamName, @@ -374,10 +378,17 @@ public Map updateFrom(final JsonCommand command, final WorkingCa final String existingValue = detail.getDelinquencyStartType() != null ? detail.getDelinquencyStartType().name() : null; if (command.isChangeInStringParameterNamed(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, existingValue)) { - final WorkingCapitalLoanDelinquencyStartType type = WorkingCapitalLoanDelinquencyStartType.valueOf(fromApiJsonHelper - .extractStringNamed(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element)); - detail.setDelinquencyStartType(type); - changes.put(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, type.name()); + final String delinquencyStartTypeValue = fromApiJsonHelper + .extractStringNamed(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, element); + if (delinquencyStartTypeValue != null) { + final WorkingCapitalLoanDelinquencyStartType type = WorkingCapitalLoanDelinquencyStartType + .valueOf(delinquencyStartTypeValue); + detail.setDelinquencyStartType(type); + changes.put(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, type.getCode()); + } else { + detail.setDelinquencyStartType(null); + changes.put(WorkingCapitalLoanProductConstants.delinquencyStartTypeParamName, null); + } } } } diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/workingcapitalloan/WorkingCapitalLoanApplicationTestBuilder.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/workingcapitalloan/WorkingCapitalLoanApplicationTestBuilder.java index 41a58c669fa..1a8de86b7b7 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/workingcapitalloan/WorkingCapitalLoanApplicationTestBuilder.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/workingcapitalloan/WorkingCapitalLoanApplicationTestBuilder.java @@ -209,12 +209,8 @@ public String buildModifyJson() { if (delinquencyBucketId != null) { json.addProperty("delinquencyBucketId", delinquencyBucketId); } - if (delinquencyGraceDays != null) { - json.addProperty("delinquencyGraceDays", delinquencyGraceDays); - } - if (delinquencyStartType != null) { - json.addProperty("delinquencyStartType", delinquencyStartType); - } + json.addProperty("delinquencyGraceDays", delinquencyGraceDays); + json.addProperty("delinquencyStartType", delinquencyStartType); if (breachId != null) { json.addProperty("breachId", breachId); }