From 01d0772261e07743ca7f37ca66cca2316bdfd12f Mon Sep 17 00:00:00 2001 From: goutham-M Date: Sat, 1 Jun 2013 15:34:23 +0530 Subject: [PATCH] savings ac getting activated before client activation date fixed --- .../portfolio/savings/domain/SavingsAccount.java | 9 +++++++++ ...InvalidSavingsAccountStateTransitionException.java | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java index fc03c6fed..15b487e54 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java @@ -58,6 +58,7 @@ import org.mifosplatform.portfolio.loanproduct.domain.PeriodFrequencyType; import org.mifosplatform.portfolio.paymentdetail.domain.PaymentDetail; import org.mifosplatform.portfolio.savings.api.SavingsApiConstants; import org.mifosplatform.portfolio.savings.exception.InsufficientAccountBalanceException; +import org.mifosplatform.portfolio.savings.exception.InvalidSavingsAccountStateTransitionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.jpa.domain.AbstractPersistable; @@ -300,6 +301,14 @@ public class SavingsAccount extends AbstractPersistable { throw new PlatformApiDataValidationException(dataValidationErrors); } + + if(this.client.getActivationLocalDate().isAfter(activationDate)) + { + final String errorMessage = "The date on which a savings account is activate cannot be before its client activated date: " + + this.client.getActivationLocalDate().toString(); + throw new InvalidSavingsAccountStateTransitionException("activate", "cannot.be.before.client.activation.date", errorMessage, activationDate, + this.client.getActivationLocalDate()); + } this.activationDate = activationDate.toDate(); this.status = SavingsAccountStatusType.ACTIVE.getValue(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java new file mode 100644 index 000000000..e6071f8f2 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java @@ -0,0 +1,11 @@ +package org.mifosplatform.portfolio.savings.exception; + +import org.mifosplatform.infrastructure.core.exception.AbstractPlatformDomainRuleException; + +public class InvalidSavingsAccountStateTransitionException extends AbstractPlatformDomainRuleException { + + public InvalidSavingsAccountStateTransitionException(final String action, String postFix, String defaultUserMessage, Object... defaultUserMessageArgs) { + super("error.msg.saving." + action + "." + postFix, defaultUserMessage, defaultUserMessageArgs); + } + +}