MIFOSX-2035 Added new boolean parameter optionsOnly to retrieve all clients.

This commit is contained in:
Chandrika
2015-05-12 13:40:15 -04:00
parent 257d18798c
commit efa73ed009
3 changed files with 8 additions and 4 deletions
@@ -42,14 +42,13 @@ public final class SearchParameters {
public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId, public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId,
final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset, final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset,
final Integer limit, final String orderBy, final String sortOrder) { final Integer limit, final String orderBy, final String sortOrder, final Boolean orphansOnly) {
final Integer maxLimitAllowed = getCheckedLimit(limit); final Integer maxLimitAllowed = getCheckedLimit(limit);
final Long staffId = null; final Long staffId = null;
final String accountNo = null; final String accountNo = null;
final Long loanId = null; final Long loanId = null;
final Long savingsId = null; final Long savingsId = null;
final Boolean orphansOnly = false;
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed, return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
orderBy, sortOrder, staffId, accountNo, loanId, savingsId, orphansOnly); orderBy, sortOrder, staffId, accountNo, loanId, savingsId, orphansOnly);
@@ -114,12 +114,13 @@ public class ClientsApiResource {
@QueryParam("displayName") final String displayName, @QueryParam("firstName") final String firstname, @QueryParam("displayName") final String displayName, @QueryParam("firstName") final String firstname,
@QueryParam("lastName") final String lastname, @QueryParam("underHierarchy") final String hierarchy, @QueryParam("lastName") final String lastname, @QueryParam("underHierarchy") final String hierarchy,
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) { @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder,
@QueryParam("orphansOnly") final Boolean orphansOnly) {
this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_RESOURCE_NAME); this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_RESOURCE_NAME);
final SearchParameters searchParameters = SearchParameters.forClients(sqlSearch, officeId, externalId, displayName, firstname, final SearchParameters searchParameters = SearchParameters.forClients(sqlSearch, officeId, externalId, displayName, firstname,
lastname, hierarchy, offset, limit, orderBy, sortOrder); lastname, hierarchy, offset, limit, orderBy, sortOrder, orphansOnly);
final Page<ClientData> clientData = this.clientReadPlatformService.retrieveAll(searchParameters); final Page<ClientData> clientData = this.clientReadPlatformService.retrieveAll(searchParameters);
@@ -190,6 +190,10 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
if (searchParameters.isScopedByOfficeHierarchy()) { if (searchParameters.isScopedByOfficeHierarchy()) {
extraCriteria += " and o.hierarchy like " + ApiParameterHelper.sqlEncodeString(searchParameters.getHierarchy() + "%"); extraCriteria += " and o.hierarchy like " + ApiParameterHelper.sqlEncodeString(searchParameters.getHierarchy() + "%");
} }
if(searchParameters.isOrphansOnly()){
extraCriteria += " and c.id NOT IN (select client_id from m_group_client) ";
}
if (StringUtils.isNotBlank(extraCriteria)) { if (StringUtils.isNotBlank(extraCriteria)) {
extraCriteria = extraCriteria.substring(4); extraCriteria = extraCriteria.substring(4);