diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java index 7de978433..fa1783262 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java @@ -1,5 +1,6 @@ package org.mifosng.platform.api; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -81,6 +82,9 @@ public class OfficesApiResource { boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); OfficeData office = this.readPlatformService.retrieveNewOfficeTemplate(); + List allowedParents = new ArrayList(this.readPlatformService.retrieveAllOfficesForLookup()); + office = OfficeData.appendedTemplate(office, allowedParents); + typicalResponseParameters.add("allowedParents"); return this.apiJsonSerializerService.serializeOfficeDataToJson(prettyPrint, typicalResponseParameters, office); } diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/OfficeReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/OfficeReadPlatformServiceImpl.java index 2521c32c3..24c068eae 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/OfficeReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/OfficeReadPlatformServiceImpl.java @@ -141,24 +141,26 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService context.authenticatedUser(); - List parentLookups = new ArrayList( - retrieveAllOfficesForLookup()); + List parentLookups = new ArrayList(); return OfficeData.template(parentLookups, new LocalDate()); } @Override - public List retrieveAllowedParents(Long officeId) { + public List retrieveAllowedParents(final Long officeId) { context.authenticatedUser(); - - List parentLookups = new ArrayList(retrieveAllOfficesForLookup()); List filterParentLookups = new ArrayList(); - - for (OfficeLookup office : parentLookups) { - - if (!office.getId().equals(officeId)) { - filterParentLookups.add(office); + + if (isNotHeadOffice(officeId)) { + List parentLookups = new ArrayList(retrieveAllOfficesForLookup()); + + + for (OfficeLookup office : parentLookups) { + + if (!office.getId().equals(officeId)) { + filterParentLookups.add(office); + } } } @@ -166,6 +168,10 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService } + private boolean isNotHeadOffice(final Long officeId) { + return !Long.valueOf(1).equals(officeId); + } + @Override public OfficeTransactionData retrieveNewOfficeTransactionDetails() { context.authenticatedUser();