Merge pull request #404 from goutham-M/mifosx--471
New group activation date is accepting before the office opening date(fixed)"
This commit is contained in:
+1
-1
@@ -149,7 +149,7 @@ public class Office extends AbstractPersistable<Long> {
|
|||||||
return getOpeningLocalDate().isAfter(activationLocalDate);
|
return getOpeningLocalDate().isAfter(activationLocalDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LocalDate getOpeningLocalDate() {
|
public LocalDate getOpeningLocalDate() {
|
||||||
LocalDate openingLocalDate = null;
|
LocalDate openingLocalDate = null;
|
||||||
if (this.openingDate != null) {
|
if (this.openingDate != null) {
|
||||||
openingLocalDate = LocalDate.fromDateFields(this.openingDate);
|
openingLocalDate = LocalDate.fromDateFields(this.openingDate);
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
package org.mifosplatform.portfolio.group.exception;
|
||||||
|
|
||||||
|
import org.mifosplatform.infrastructure.core.exception.AbstractPlatformDomainRuleException;
|
||||||
|
|
||||||
|
|
||||||
|
public class InvalidGroupStateTransitionException extends AbstractPlatformDomainRuleException {
|
||||||
|
|
||||||
|
public InvalidGroupStateTransitionException(final String action, final String postFix, final String defaultUserMessage,
|
||||||
|
final Object... defaultUserMessageArgs) {
|
||||||
|
super("error.msg.group." + action + "." + postFix, defaultUserMessage, defaultUserMessageArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+19
-1
@@ -40,6 +40,7 @@ import org.mifosplatform.portfolio.group.exception.GroupHasNoStaffException;
|
|||||||
import org.mifosplatform.portfolio.group.exception.GroupLoanExistsException;
|
import org.mifosplatform.portfolio.group.exception.GroupLoanExistsException;
|
||||||
import org.mifosplatform.portfolio.group.exception.GroupMustBePendingToBeDeletedException;
|
import org.mifosplatform.portfolio.group.exception.GroupMustBePendingToBeDeletedException;
|
||||||
import org.mifosplatform.portfolio.group.exception.InvalidGroupLevelException;
|
import org.mifosplatform.portfolio.group.exception.InvalidGroupLevelException;
|
||||||
|
import org.mifosplatform.portfolio.group.exception.InvalidGroupStateTransitionException;
|
||||||
import org.mifosplatform.portfolio.group.serialization.GroupingTypesDataValidator;
|
import org.mifosplatform.portfolio.group.serialization.GroupingTypesDataValidator;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.Loan;
|
import org.mifosplatform.portfolio.loanaccount.domain.Loan;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanRepository;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanRepository;
|
||||||
@@ -104,6 +105,15 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
final Office groupOffice = this.officeRepository.findOne(officeId);
|
final Office groupOffice = this.officeRepository.findOne(officeId);
|
||||||
if (groupOffice == null) { throw new OfficeNotFoundException(officeId); }
|
if (groupOffice == null) { throw new OfficeNotFoundException(officeId); }
|
||||||
|
|
||||||
|
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
||||||
|
|
||||||
|
if (groupOffice.getOpeningLocalDate().isAfter(activationDate)) {
|
||||||
|
final String errorMessage = "Group activation date should be greater than or equal to the parent Office's creation date "
|
||||||
|
+ activationDate.toString();
|
||||||
|
throw new InvalidGroupStateTransitionException("activate.date", "cannot.be.before.office.activation.date", errorMessage, activationDate,
|
||||||
|
groupOffice.getOpeningLocalDate());
|
||||||
|
}
|
||||||
|
|
||||||
Staff staff = null;
|
Staff staff = null;
|
||||||
final Long staffId = command.longValueOfParameterNamed(GroupingTypesApiConstants.staffIdParamName);
|
final Long staffId = command.longValueOfParameterNamed(GroupingTypesApiConstants.staffIdParamName);
|
||||||
if (staffId != null) {
|
if (staffId != null) {
|
||||||
@@ -115,7 +125,6 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
final Set<Group> groupMembers = assembleSetOfChildGroups(officeId, command);
|
final Set<Group> groupMembers = assembleSetOfChildGroups(officeId, command);
|
||||||
|
|
||||||
final boolean active = command.booleanPrimitiveValueOfParameterNamed(GroupingTypesApiConstants.activeParamName);
|
final boolean active = command.booleanPrimitiveValueOfParameterNamed(GroupingTypesApiConstants.activeParamName);
|
||||||
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
|
||||||
final GroupLevel groupLevel = this.groupLevelRepository.findOne(groupingType.getId());
|
final GroupLevel groupLevel = this.groupLevelRepository.findOne(groupingType.getId());
|
||||||
final Group newGroup = Group.newGroup(groupOffice, staff, parentGroup, groupLevel, name, externalId, active, activationDate,
|
final Group newGroup = Group.newGroup(groupOffice, staff, parentGroup, groupLevel, name, externalId, active, activationDate,
|
||||||
clientMembers, groupMembers);
|
clientMembers, groupMembers);
|
||||||
@@ -221,6 +230,15 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
|
|
||||||
this.context.validateAccessRights(groupHierarchy);
|
this.context.validateAccessRights(groupHierarchy);
|
||||||
|
|
||||||
|
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
||||||
|
|
||||||
|
if (groupOffice.getOpeningLocalDate().isAfter(activationDate)) {
|
||||||
|
final String errorMessage = "Group activation date should be greater than or equal to the parent Office's creation date "
|
||||||
|
+ activationDate.toString();
|
||||||
|
throw new InvalidGroupStateTransitionException("activate.date", "cannot.be.before.office.activation.date", errorMessage, activationDate,
|
||||||
|
groupOffice.getOpeningLocalDate());
|
||||||
|
}
|
||||||
|
|
||||||
final Map<String, Object> actualChanges = groupForUpdate.update(command);
|
final Map<String, Object> actualChanges = groupForUpdate.update(command);
|
||||||
|
|
||||||
if (actualChanges.containsKey(GroupingTypesApiConstants.staffIdParamName)) {
|
if (actualChanges.containsKey(GroupingTypesApiConstants.staffIdParamName)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user