diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java index dde06235b..5c76de2e4 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java @@ -168,7 +168,14 @@ public final class Client extends AbstractPersistable { } deriveDisplayName(); - validateNameParts(); + validate(); + } + + private void validate() { + final List dataValidationErrors = new ArrayList(); + validateNameParts(dataValidationErrors); + validateActivationDate(dataValidationErrors); + if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } } public boolean isAccountNumberRequiresAutoGeneration() { @@ -218,6 +225,8 @@ public final class Client extends AbstractPersistable { this.activationDate = activationLocalDate.toDate(); this.status = ClientStatus.ACTIVE.getValue(); + + validate(); } public boolean isNotActive() { @@ -286,8 +295,6 @@ public final class Client extends AbstractPersistable { this.fullname = newValue; } - validateNameParts(); - final String dateFormatAsInput = command.dateFormat(); final String localeAsInput = command.locale(); @@ -301,14 +308,14 @@ public final class Client extends AbstractPersistable { this.activationDate = newValue.toDate(); } + validate(); + deriveDisplayName(); return actualChanges; } - private void validateNameParts() { - final List dataValidationErrors = new ArrayList(); - + private void validateNameParts(final List dataValidationErrors) { final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("client"); if (StringUtils.isNotBlank(this.fullname)) { @@ -331,7 +338,9 @@ public final class Client extends AbstractPersistable { baseDataValidator.reset().parameter(ClientApiConstants.lastnameParamName).value(this.lastname).notBlank() .notExceedingLengthOf(50); } + } + private void validateActivationDate(final List dataValidationErrors) { if (this.activationDate != null) { if (office.isOpeningDateAfter(getActivationLocalDate())) { final String defaultUserMessage = "Client activation date cannot be a date before the office opening date."; @@ -341,8 +350,6 @@ public final class Client extends AbstractPersistable { dataValidationErrors.add(error); } } - - if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } } private void deriveDisplayName() {