Merge pull request #416 from goutham-M/mifosx522
In add new group form if activation date field is empty it showing connection fail(fixed)
This commit is contained in:
+3
-3
@@ -10,9 +10,9 @@ import org.mifosplatform.infrastructure.core.exception.AbstractPlatformDomainRul
|
|||||||
|
|
||||||
public class InvalidGroupStateTransitionException extends AbstractPlatformDomainRuleException {
|
public class InvalidGroupStateTransitionException extends AbstractPlatformDomainRuleException {
|
||||||
|
|
||||||
public InvalidGroupStateTransitionException(final String action, final String postFix, final String defaultUserMessage,
|
public InvalidGroupStateTransitionException(final String levelName, final String action, final String postFix,
|
||||||
final Object... defaultUserMessageArgs) {
|
final String defaultUserMessage, final Object... defaultUserMessageArgs) {
|
||||||
super("error.msg.group." + action + "." + postFix, defaultUserMessage, defaultUserMessageArgs);
|
super("error.msg." + levelName + "." + action + "." + postFix, defaultUserMessage, defaultUserMessageArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-16
@@ -106,13 +106,9 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
if (groupOffice == null) { throw new OfficeNotFoundException(officeId); }
|
if (groupOffice == null) { throw new OfficeNotFoundException(officeId); }
|
||||||
|
|
||||||
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
||||||
|
final GroupLevel groupLevel = this.groupLevelRepository.findOne(groupingType.getId());
|
||||||
if (groupOffice.getOpeningLocalDate().isAfter(activationDate)) {
|
|
||||||
final String errorMessage = "Group activation date should be greater than or equal to the parent Office's creation date "
|
validateOfficeOpeningDateisAfterGroupOrCenterOpeningDate(groupOffice, groupLevel, activationDate);
|
||||||
+ 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);
|
||||||
@@ -125,7 +121,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 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);
|
||||||
|
|
||||||
@@ -184,7 +179,8 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
final Locale locale = command.extractLocale();
|
final Locale locale = command.extractLocale();
|
||||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||||
final LocalDate activationDate = command.localDateValueOfParameterNamed("activationDate");
|
final LocalDate activationDate = command.localDateValueOfParameterNamed("activationDate");
|
||||||
|
|
||||||
|
validateOfficeOpeningDateisAfterGroupOrCenterOpeningDate(group.getOffice(), group.getGroupLevel(), activationDate);
|
||||||
group.activate(fmt, activationDate);
|
group.activate(fmt, activationDate);
|
||||||
|
|
||||||
this.groupRepository.saveAndFlush(group);
|
this.groupRepository.saveAndFlush(group);
|
||||||
@@ -232,13 +228,8 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
|
|
||||||
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
final LocalDate activationDate = command.localDateValueOfParameterNamed(GroupingTypesApiConstants.activationDateParamName);
|
||||||
|
|
||||||
if (groupOffice.getOpeningLocalDate().isAfter(activationDate)) {
|
validateOfficeOpeningDateisAfterGroupOrCenterOpeningDate(groupOffice, groupForUpdate.getGroupLevel(), 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)) {
|
||||||
@@ -530,4 +521,15 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void validateOfficeOpeningDateisAfterGroupOrCenterOpeningDate(final Office groupOffice, final GroupLevel groupLevel,
|
||||||
|
final LocalDate activationDate) {
|
||||||
|
if (activationDate != null && groupOffice.getOpeningLocalDate().isAfter(activationDate)) {
|
||||||
|
final String levelName = groupLevel.getLevelName();
|
||||||
|
final String errorMessage = levelName
|
||||||
|
+ " activation date should be greater than or equal to the parent Office's creation date " + activationDate.toString();
|
||||||
|
throw new InvalidGroupStateTransitionException(levelName.toLowerCase(), "activate.date",
|
||||||
|
"cannot.be.before.office.activation.date", errorMessage, activationDate, groupOffice.getOpeningLocalDate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user