/* * Created on Jan 11, 2005 */ package net.sourceforge.fenixedu.applicationTier.Servico.projectsManagement; import java.util.ArrayList; import java.util.List; import net.sourceforge.fenixedu.applicationTier.FenixService; import net.sourceforge.fenixedu.dataTransferObject.projectsManagement.InfoRubric; import net.sourceforge.fenixedu.domain.Person; import net.sourceforge.fenixedu.domain.projectsManagement.IRubric; import net.sourceforge.fenixedu.domain.projectsManagement.ProjectAccess; import net.sourceforge.fenixedu.persistenceTier.ExcepcaoPersistencia; import net.sourceforge.fenixedu.persistenceTierOracle.Oracle.PersistentProjectUser; /** * @author Susana Fernandes */ public class ReadUserCostCenters extends FenixService { public List run(Person person, String costCenter, Boolean it, String userNumber) throws ExcepcaoPersistencia { List infoCostCenterList = new ArrayList(); PersistentProjectUser persistentProjectUser = new PersistentProjectUser(); List costCenterList = persistentProjectUser.getInstitucionalProjectCoordId(Integer.valueOf(userNumber), it); List projectCodes = new ArrayList(); List accesses = ProjectAccess.getAllByPerson(person, it); for (ProjectAccess access : accesses) { Integer keyCostCenter = access.getKeyProjectCoordinator(); if (!projectCodes.contains(keyCostCenter)) { projectCodes.add(keyCostCenter); } } costCenterList.addAll(persistentProjectUser.getInstitucionalProjectByCCIDs(projectCodes, it)); for (IRubric cc : costCenterList) { infoCostCenterList.add(InfoRubric.newInfoFromDomain(cc)); } return infoCostCenterList; } }