Merge pull request #394 from mifoscontributer/MIFOSX-480

Allow assign parent office staff to group
This commit is contained in:
Vishwas Babu A J
2013-06-24 06:48:07 -07:00
4 changed files with 16 additions and 4 deletions
@@ -162,4 +162,8 @@ public class Staff extends AbstractPersistable<Long> {
public String displayName() {
return this.displayName;
}
public Office office() {
return this.office;
}
}
@@ -20,7 +20,5 @@ public interface StaffRepository extends JpaRepository<Staff, Long>,
*/
@Query(FIND_BY_OFFICE_QUERY)
public Staff findByOffice(@Param("id") Long id, @Param("officeId") Long officeId);
}
@@ -36,4 +36,14 @@ public class StaffRepositoryWrapper {
if (staff == null) { throw new StaffNotFoundException(staffId); }
return staff;
}
public Staff findByOfficeHierarchyWithNotFoundDetection(final Long staffId, final String hierarchy) {
final Staff staff = this.repository.findOne(staffId);
if (staff == null) { throw new StaffNotFoundException(staffId); }
final String staffhierarchy = staff.office().getHierarchy();
if (!hierarchy.startsWith(staffhierarchy)) {
throw new StaffNotFoundException(staffId);
}
return staff;
}
}
@@ -107,7 +107,7 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
Staff staff = null;
final Long staffId = command.longValueOfParameterNamed(GroupingTypesApiConstants.staffIdParamName);
if (staffId != null) {
staff = this.staffRepository.findByOfficeWithNotFoundDetection(staffId, officeId);
staff = this.staffRepository.findByOfficeHierarchyWithNotFoundDetection(staffId, groupOffice.getHierarchy());
}
final Set<Client> clientMembers = assembleSetOfClients(officeId, command);
@@ -228,7 +228,7 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
Staff newStaff = null;
if (newValue != null) {
newStaff = this.staffRepository.findByOfficeWithNotFoundDetection(newValue, officeId);
newStaff = this.staffRepository.findByOfficeHierarchyWithNotFoundDetection(newValue, groupHierarchy);
}
groupForUpdate.updateStaff(newStaff);
}