diff --git a/mifosng-provider/src/main/java/org/mifosplatform/organisation/office/domain/Office.java b/mifosng-provider/src/main/java/org/mifosplatform/organisation/office/domain/Office.java index 0d76f35ce..0a90b1dd2 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/organisation/office/domain/Office.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/organisation/office/domain/Office.java @@ -141,6 +141,14 @@ public class Office extends AbstractPersistable { return actualChanges; } + public boolean isOpeningDateBefore(final LocalDate baseDate) { + return getOpeningLocalDate().isBefore(baseDate); + } + + public boolean isOpeningDateAfter(final LocalDate activationLocalDate) { + return getOpeningLocalDate().isAfter(activationLocalDate); + } + private LocalDate getOpeningLocalDate() { LocalDate openingLocalDate = null; if (this.openingDate != null) { @@ -217,8 +225,4 @@ public class Office extends AbstractPersistable { return match; } - - public boolean isBefore(final Date baseDate) { - return this.openingDate.before(baseDate); - } } \ No newline at end of file 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 d74b60f1d..70a2af00d 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 @@ -356,19 +356,18 @@ public final class Client extends AbstractPersistable { baseDataValidator.reset().parameter("middlename").value(this.middlename).ignoreIfNull().notExceedingLengthOf(50); baseDataValidator.reset().parameter("lastname").value(this.lastname).notBlank().notExceedingLengthOf(50); } - - if(this.activationDate!=null) - { - if(!office.isBefore(this.activationDate)){ - final String defaultUserMessage = "Client activation date cannot be a date before the Office activation date"; - final ApiParameterError error = ApiParameterError.parameterError("error.msg.clients.activationDate.cannot.be.before.Office.activatoin.date", - defaultUserMessage, "activationDate", this.activationDate); + + if (this.activationDate != null) { + if (office.isOpeningDateAfter(getActivationLocalDate())) { + final String defaultUserMessage = "Client activation date cannot be a date before the office opening date."; + final ApiParameterError error = ApiParameterError.parameterError( + "error.msg.clients.activationDate.cannot.be.before.office.activation.date", defaultUserMessage, "activationDate", + getActivationLocalDate()); dataValidationErrors.add(error); } - + } - if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", - "Validation errors exist.", dataValidationErrors); } + if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } } private void deriveDisplayName() {