Change Api call for client transfers
This commit is contained in:
+12
-49
@@ -39,8 +39,6 @@ import org.mifosplatform.infrastructure.core.serialization.FromJsonHelper;
|
|||||||
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.organisation.staff.data.StaffData;
|
|
||||||
import org.mifosplatform.organisation.staff.service.StaffReadPlatformService;
|
|
||||||
import org.mifosplatform.portfolio.accountdetails.data.AccountSummaryCollectionData;
|
import org.mifosplatform.portfolio.accountdetails.data.AccountSummaryCollectionData;
|
||||||
import org.mifosplatform.portfolio.accountdetails.service.AccountDetailsReadPlatformService;
|
import org.mifosplatform.portfolio.accountdetails.service.AccountDetailsReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.calendar.data.CalendarData;
|
import org.mifosplatform.portfolio.calendar.data.CalendarData;
|
||||||
@@ -84,7 +82,6 @@ public class GroupsApiResource {
|
|||||||
private final GroupRolesReadPlatformService groupRolesReadPlatformService;
|
private final GroupRolesReadPlatformService groupRolesReadPlatformService;
|
||||||
private final AccountDetailsReadPlatformService accountDetailsReadPlatformService;
|
private final AccountDetailsReadPlatformService accountDetailsReadPlatformService;
|
||||||
private final CalendarReadPlatformService calendarReadPlatformService;
|
private final CalendarReadPlatformService calendarReadPlatformService;
|
||||||
private final StaffReadPlatformService staffReadPlatformService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public GroupsApiResource(final PlatformSecurityContext context, final GroupReadPlatformService groupReadPlatformService,
|
public GroupsApiResource(final PlatformSecurityContext context, final GroupReadPlatformService groupReadPlatformService,
|
||||||
@@ -97,7 +94,7 @@ public class GroupsApiResource {
|
|||||||
final CollectionSheetReadPlatformService collectionSheetReadPlatformService, final FromJsonHelper fromJsonHelper,
|
final CollectionSheetReadPlatformService collectionSheetReadPlatformService, final FromJsonHelper fromJsonHelper,
|
||||||
final GroupRolesReadPlatformService groupRolesReadPlatformService,
|
final GroupRolesReadPlatformService groupRolesReadPlatformService,
|
||||||
final AccountDetailsReadPlatformService accountDetailsReadPlatformService,
|
final AccountDetailsReadPlatformService accountDetailsReadPlatformService,
|
||||||
final CalendarReadPlatformService calendarReadPlatformService, final StaffReadPlatformService staffReadPlatformService) {
|
final CalendarReadPlatformService calendarReadPlatformService) {
|
||||||
|
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.groupReadPlatformService = groupReadPlatformService;
|
this.groupReadPlatformService = groupReadPlatformService;
|
||||||
@@ -113,7 +110,6 @@ public class GroupsApiResource {
|
|||||||
this.groupRolesReadPlatformService = groupRolesReadPlatformService;
|
this.groupRolesReadPlatformService = groupRolesReadPlatformService;
|
||||||
this.accountDetailsReadPlatformService = accountDetailsReadPlatformService;
|
this.accountDetailsReadPlatformService = accountDetailsReadPlatformService;
|
||||||
this.calendarReadPlatformService = calendarReadPlatformService;
|
this.calendarReadPlatformService = calendarReadPlatformService;
|
||||||
this.staffReadPlatformService = staffReadPlatformService;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@@ -165,12 +161,22 @@ public class GroupsApiResource {
|
|||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String retrieveOne(@Context final UriInfo uriInfo, @PathParam("groupId") final Long groupId,
|
public String retrieveOne(@Context final UriInfo uriInfo, @PathParam("groupId") final Long groupId,
|
||||||
@DefaultValue("false") @QueryParam("staffInSelectedOfficeOnly") final boolean staffInSelectedOfficeOnly,
|
@DefaultValue("false") @QueryParam("staffInSelectedOfficeOnly") final boolean staffInSelectedOfficeOnly,
|
||||||
@QueryParam("roleId") final Long roleId) {
|
@QueryParam("roleId") final Long roleId, @QueryParam("templateType") final String templateType) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
||||||
final Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
|
final Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||||
|
|
||||||
GroupGeneralData group = this.groupReadPlatformService.retrieveOne(groupId);
|
GroupGeneralData group = this.groupReadPlatformService.retrieveOne(groupId);
|
||||||
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
|
|
||||||
|
if (templateType != null && templateType.equalsIgnoreCase("clientstransfertemplate")) {
|
||||||
|
final GroupTransferData groupTransferData = this.groupReadPlatformService.retrieveClientTransferTemplate(group.officeId(),
|
||||||
|
groupId, staffInSelectedOfficeOnly);
|
||||||
|
final Set<String> GROUP_TRANSFERS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("groupId", "clientOptions",
|
||||||
|
"groupOptions", "staffOptions", "transferActiveLoans", "inheritDestinationGroupLoanOfficer"));
|
||||||
|
|
||||||
|
return this.toApiJsonSerializer.serialize(settings, groupTransferData, GROUP_TRANSFERS_DATA_PARAMETERS);
|
||||||
|
}
|
||||||
|
|
||||||
// associations
|
// associations
|
||||||
Collection<ClientData> membersOfGroup = null;
|
Collection<ClientData> membersOfGroup = null;
|
||||||
@@ -223,7 +229,6 @@ public class GroupsApiResource {
|
|||||||
group = GroupGeneralData.withTemplate(templateGroup, group);
|
group = GroupGeneralData.withTemplate(templateGroup, group);
|
||||||
}
|
}
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
|
||||||
return this.groupGeneralApiJsonSerializer.serialize(settings, group, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_PARAMETERS);
|
return this.groupGeneralApiJsonSerializer.serialize(settings, group, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,46 +371,4 @@ public class GroupsApiResource {
|
|||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
return this.groupSummaryToApiJsonSerializer.serialize(settings, groupAccount, GROUP_ACCOUNTS_DATA_PARAMETERS);
|
return this.groupSummaryToApiJsonSerializer.serialize(settings, groupAccount, GROUP_ACCOUNTS_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
|
||||||
@Path("{groupId}/clientstransfertemplate")
|
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
|
||||||
public String retrieveClientTranferTemplate(@Context final UriInfo uriInfo, @PathParam("groupId") final Long groupId,
|
|
||||||
@DefaultValue("false") @QueryParam("staffInSelectedOfficeOnly") final boolean staffInSelectedOfficeOnly) {
|
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission("GROUP");
|
|
||||||
GroupGeneralData group = this.groupReadPlatformService.retrieveOne(groupId);
|
|
||||||
|
|
||||||
final boolean transferActiveLoans = true;
|
|
||||||
final boolean inheritDestinationGroupLoanOfficer = true;
|
|
||||||
|
|
||||||
Collection<ClientData> membersOfGroup = this.clientReadPlatformService.retrieveClientMembersOfGroup(groupId);
|
|
||||||
if (CollectionUtils.isEmpty(membersOfGroup)) {
|
|
||||||
membersOfGroup = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
final boolean loanOfficersOnly = false;
|
|
||||||
Collection<StaffData> staffOptions = null;
|
|
||||||
if (staffInSelectedOfficeOnly) {
|
|
||||||
staffOptions = this.staffReadPlatformService.retrieveAllStaffForDropdown(group.officeId());
|
|
||||||
} else {
|
|
||||||
staffOptions = this.staffReadPlatformService.retrieveAllStaffInOfficeAndItsParentOfficeHierarchy(group.officeId(),
|
|
||||||
loanOfficersOnly);
|
|
||||||
}
|
|
||||||
if (CollectionUtils.isEmpty(staffOptions)) {
|
|
||||||
staffOptions = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection<GroupGeneralData> groupOptions = this.groupReadPlatformService.retrieveGroupsForLookup(group.officeId(), groupId);
|
|
||||||
GroupTransferData data = GroupTransferData.template(groupId, membersOfGroup, groupOptions, staffOptions, transferActiveLoans,
|
|
||||||
inheritDestinationGroupLoanOfficer);
|
|
||||||
|
|
||||||
final Set<String> GROUP_TRANSFERS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("groupId", "clientOptions", "groupOptions",
|
|
||||||
"staffOptions", "transferActiveLoans", "inheritDestinationGroupLoanOfficer"));
|
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
|
||||||
return this.toApiJsonSerializer.serialize(settings, data, GROUP_TRANSFERS_DATA_PARAMETERS);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+3
@@ -9,6 +9,7 @@ import java.util.Collection;
|
|||||||
|
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
|
import org.mifosplatform.portfolio.group.data.GroupTransferData;
|
||||||
|
|
||||||
public interface GroupReadPlatformService {
|
public interface GroupReadPlatformService {
|
||||||
|
|
||||||
@@ -19,4 +20,6 @@ public interface GroupReadPlatformService {
|
|||||||
GroupGeneralData retrieveOne(Long groupId);
|
GroupGeneralData retrieveOne(Long groupId);
|
||||||
|
|
||||||
Collection<GroupGeneralData> retrieveGroupsForLookup(Long officeId, Long groupId);
|
Collection<GroupGeneralData> retrieveGroupsForLookup(Long officeId, Long groupId);
|
||||||
|
|
||||||
|
GroupTransferData retrieveClientTransferTemplate(Long officeId, Long groupId, boolean staffInSelectedOfficeOnly);
|
||||||
}
|
}
|
||||||
+28
@@ -27,6 +27,7 @@ import org.mifosplatform.portfolio.client.service.ClientReadPlatformService;
|
|||||||
import org.mifosplatform.portfolio.group.api.GroupingTypesApiConstants;
|
import org.mifosplatform.portfolio.group.api.GroupingTypesApiConstants;
|
||||||
import org.mifosplatform.portfolio.group.data.CenterData;
|
import org.mifosplatform.portfolio.group.data.CenterData;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
|
import org.mifosplatform.portfolio.group.data.GroupTransferData;
|
||||||
import org.mifosplatform.portfolio.group.domain.GroupTypes;
|
import org.mifosplatform.portfolio.group.domain.GroupTypes;
|
||||||
import org.mifosplatform.portfolio.group.exception.GroupNotFoundException;
|
import org.mifosplatform.portfolio.group.exception.GroupNotFoundException;
|
||||||
import org.mifosplatform.useradministration.domain.AppUser;
|
import org.mifosplatform.useradministration.domain.AppUser;
|
||||||
@@ -226,4 +227,31 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
return GroupGeneralData.lookup(id, displayName);
|
return GroupGeneralData.lookup(id, displayName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GroupTransferData retrieveClientTransferTemplate(final Long officeId, final Long groupId, final boolean staffInSelectedOfficeOnly) {
|
||||||
|
|
||||||
|
final boolean transferActiveLoans = true;
|
||||||
|
final boolean inheritDestinationGroupLoanOfficer = true;
|
||||||
|
|
||||||
|
Collection<ClientData> membersOfGroup = this.clientReadPlatformService.retrieveClientMembersOfGroup(groupId);
|
||||||
|
if (CollectionUtils.isEmpty(membersOfGroup)) {
|
||||||
|
membersOfGroup = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
final boolean loanOfficersOnly = false;
|
||||||
|
Collection<StaffData> staffOptions = null;
|
||||||
|
if (staffInSelectedOfficeOnly) {
|
||||||
|
staffOptions = this.staffReadPlatformService.retrieveAllStaffForDropdown(officeId);
|
||||||
|
} else {
|
||||||
|
staffOptions = this.staffReadPlatformService.retrieveAllStaffInOfficeAndItsParentOfficeHierarchy(officeId, loanOfficersOnly);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isEmpty(staffOptions)) {
|
||||||
|
staffOptions = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<GroupGeneralData> groupOptions = this.retrieveGroupsForLookup(officeId, groupId);
|
||||||
|
return GroupTransferData.template(groupId, membersOfGroup, groupOptions, staffOptions, transferActiveLoans,
|
||||||
|
inheritDestinationGroupLoanOfficer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user