=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetFindBeneficiaryFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetFindBeneficiaryFormAction.java 2012-05-15 07:40:06 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetFindBeneficiaryFormAction.java 2012-06-05 09:30:22 +0000 @@ -27,7 +27,11 @@ package org.hisp.dhis.light.namebaseddataentry.action; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.user.CurrentUserService; import com.opensymphony.xwork2.Action; @@ -38,9 +42,9 @@ // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- - + private CurrentUserService currentUserService; - + public CurrentUserService getCurrentUserService() { return currentUserService; @@ -55,14 +59,14 @@ // Input & Output // ------------------------------------------------------------------------- - private Collection organisationUnits; - - public Collection getOrganisationUnits() + private Set organisationUnits; + + public Set getOrganisationUnits() { return organisationUnits; } - public void setOrganisationUnits( Collection organisationUnits ) + public void setOrganisationUnits( Set organisationUnits ) { this.organisationUnits = organisationUnits; } @@ -71,8 +75,29 @@ public String execute() throws Exception { - organisationUnits = currentUserService.getCurrentUser().getOrganisationUnits(); + Collection basicOrganisationUnits = currentUserService.getCurrentUser() + .getOrganisationUnits(); + organisationUnits = new HashSet(); + + for ( OrganisationUnit organisationUnit : basicOrganisationUnits ) + { + organisationUnits.addAll( this.getAllParentOrganisationUnits( organisationUnit ) ); + } + return SUCCESS; } + private Collection getAllParentOrganisationUnits( OrganisationUnit organisationUnit ) + { + List parents = new ArrayList(); + parents.add( organisationUnit ); + + while ( organisationUnit.getParent() != null ) + { + parents.add( organisationUnit.getParent() ); + organisationUnit = organisationUnit.getParent(); + } + return parents; + } + }