Loading module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/CampagneController.php +3 −11 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ use Laminas\View\Model\ViewModel; use RuntimeException; use Structure\Service\Structure\StructureServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; /** @method FlashMessenger flashMessenger() */ Loading @@ -37,7 +36,6 @@ class CampagneController extends AbstractActionController { use RappelCampagneAvancementServiceAwareTrait; use StructureServiceAwareTrait; use CampagneFormAwareTrait; use UserServiceAwareTrait; public function indexAction() : ViewModel { Loading Loading @@ -173,15 +171,13 @@ class CampagneController extends AbstractActionController { /** * Action affichant une campagne d'entretien professionnel pour une structure * <!> les agents doivent être complétement hydratés sinon les calculs d'affectations, de grades et d'obligation seront erronés * Attention : les agents doivent être complétement hydratés sinon les calculs d'affectations, de grades et d'obligation seront erronés */ public function structureAction() : ViewModel { $campagne = $this->getCampagneService()->getRequestedCampagne($this); $structure = $this->getStructureService()->getRequestedStructure($this); $role = $this->getUserService()->getConnectedRole(); $utilisateur = $this->getUserService()->getConnectedUser(); $selecteur = $this->getStructureService()->getStructuresByCurrentRole($utilisateur, $role); $selecteur = $this->getStructureService()->getStructuresByCurrentRole(); $structures = $this->getStructureService()->getStructuresFilles($structure, true); try { Loading Loading @@ -213,12 +209,8 @@ class CampagneController extends AbstractActionController { return $aaa > $bbb; }); /** Les agents avec obligation d'entretien sont ceux qui était en poste 12 mois avant la fin de campagne */ $obligatoires = []; $facultatifs = []; $dateMinEnPoste = (DateTime::createFromFormat('d/m/Y', $campagne->getDateFin()->format('d/m/Y')))->sub(new DateInterval('P12M')); foreach ($agents as $agent) { if (!empty($agent->getAffectationsActifs($dateMinEnPoste))) $obligatoires[] = $agent; else $facultatifs[] = $agent; } [$obligatoires, $facultatifs] = $this->getCampagneService()->trierAgents($campagne, $agents); $entretiens = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($campagne, $agents); $finalises = []; Loading module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/CampagneControllerFactory.php +0 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use Structure\Service\Structure\StructureService; use UnicaenParametre\Service\Parametre\ParametreService; use UnicaenUtilisateur\Service\User\UserService; class CampagneControllerFactory extends AbstractActionController { Loading @@ -34,7 +33,6 @@ class CampagneControllerFactory extends AbstractActionController * @var ParametreService $parametreService * @var RappelCampagneAvancementService $rappelCampagneAvancementService * @var StructureService $structureService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $campagneService = $container->get(CampagneService::class); Loading @@ -43,7 +41,6 @@ class CampagneControllerFactory extends AbstractActionController $parametreService = $container->get(ParametreService::class); $rappelCampagneAvancementService = $container->get(RappelCampagneAvancementService::class); $structureService = $container->get(StructureService::class); $userService = $container->get(UserService::class); /** * @var CampagneForm $campagneForm Loading @@ -58,7 +55,6 @@ class CampagneControllerFactory extends AbstractActionController $controller->setParametreService($parametreService); $controller->setRappelCampagneAvancementService($rappelCampagneAvancementService); $controller->setStructureService($structureService); $controller->setUserService($userService); $controller->setCampagneForm($campagneForm); return $controller; } Loading module/EntretienProfessionnel/src/EntretienProfessionnel/Service/Campagne/CampagneService.php +11 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace EntretienProfessionnel\Service\Campagne; use Application\Entity\Db\Agent; use Application\Service\Agent\AgentServiceAwareTrait; use DateInterval; use DateTime; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\ORMException; Loading Loading @@ -428,4 +429,14 @@ class CampagneService { $result = $qb->getQuery()->getResult(); return $result; } public function trierAgents(Campagne $campagne, array $agents) : array { $obligatoires = []; $facultatifs = []; $dateMinEnPoste = (DateTime::createFromFormat('d/m/Y', $campagne->getDateFin()->format('d/m/Y')))->sub(new DateInterval('P12M')); foreach ($agents as $agent) { if (!empty($agent->getAffectationsActifs($dateMinEnPoste))) $obligatoires[] = $agent; else $facultatifs[] = $agent; } return [$obligatoires, $facultatifs]; } } No newline at end of file module/Structure/src/Structure/Service/Structure/StructureService.php +4 −1 Original line number Diff line number Diff line Loading @@ -451,8 +451,11 @@ EOS; /** * @return Structure[] */ public function getStructuresByCurrentRole(User $user, RoleInterface $role) : array public function getStructuresByCurrentRole(?User $user = null, ?RoleInterface $role = null) : array { if ($user === null) $user = $this->getUserService()->getConnectedUser(); if ($role === null) $role = $this->getUserService()->getConnectedRole(); $selecteur = []; if ($role->getRoleId() === RoleProvider::RESPONSABLE) { $structures = $this->getStructuresByResponsable($user); Loading module/Structure/src/Structure/Service/Structure/StructureServiceAwareTrait.php +3 −13 Original line number Diff line number Diff line Loading @@ -4,26 +4,16 @@ namespace Structure\Service\Structure; trait StructureServiceAwareTrait { /** @var StructureService */ private $structureService; private StructureService $structureService; /** * @return StructureService */ public function getStructureService() public function getStructureService() : StructureService { return $this->structureService; } /** * @param StructureService $structureService * @return StructureService */ public function setStructureService($structureService) public function setStructureService(StructureService $structureService) : void { $this->structureService = $structureService; return $this->structureService; } } No newline at end of file Loading
module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/CampagneController.php +3 −11 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ use Laminas\View\Model\ViewModel; use RuntimeException; use Structure\Service\Structure\StructureServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; /** @method FlashMessenger flashMessenger() */ Loading @@ -37,7 +36,6 @@ class CampagneController extends AbstractActionController { use RappelCampagneAvancementServiceAwareTrait; use StructureServiceAwareTrait; use CampagneFormAwareTrait; use UserServiceAwareTrait; public function indexAction() : ViewModel { Loading Loading @@ -173,15 +171,13 @@ class CampagneController extends AbstractActionController { /** * Action affichant une campagne d'entretien professionnel pour une structure * <!> les agents doivent être complétement hydratés sinon les calculs d'affectations, de grades et d'obligation seront erronés * Attention : les agents doivent être complétement hydratés sinon les calculs d'affectations, de grades et d'obligation seront erronés */ public function structureAction() : ViewModel { $campagne = $this->getCampagneService()->getRequestedCampagne($this); $structure = $this->getStructureService()->getRequestedStructure($this); $role = $this->getUserService()->getConnectedRole(); $utilisateur = $this->getUserService()->getConnectedUser(); $selecteur = $this->getStructureService()->getStructuresByCurrentRole($utilisateur, $role); $selecteur = $this->getStructureService()->getStructuresByCurrentRole(); $structures = $this->getStructureService()->getStructuresFilles($structure, true); try { Loading Loading @@ -213,12 +209,8 @@ class CampagneController extends AbstractActionController { return $aaa > $bbb; }); /** Les agents avec obligation d'entretien sont ceux qui était en poste 12 mois avant la fin de campagne */ $obligatoires = []; $facultatifs = []; $dateMinEnPoste = (DateTime::createFromFormat('d/m/Y', $campagne->getDateFin()->format('d/m/Y')))->sub(new DateInterval('P12M')); foreach ($agents as $agent) { if (!empty($agent->getAffectationsActifs($dateMinEnPoste))) $obligatoires[] = $agent; else $facultatifs[] = $agent; } [$obligatoires, $facultatifs] = $this->getCampagneService()->trierAgents($campagne, $agents); $entretiens = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($campagne, $agents); $finalises = []; Loading
module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/CampagneControllerFactory.php +0 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use Structure\Service\Structure\StructureService; use UnicaenParametre\Service\Parametre\ParametreService; use UnicaenUtilisateur\Service\User\UserService; class CampagneControllerFactory extends AbstractActionController { Loading @@ -34,7 +33,6 @@ class CampagneControllerFactory extends AbstractActionController * @var ParametreService $parametreService * @var RappelCampagneAvancementService $rappelCampagneAvancementService * @var StructureService $structureService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $campagneService = $container->get(CampagneService::class); Loading @@ -43,7 +41,6 @@ class CampagneControllerFactory extends AbstractActionController $parametreService = $container->get(ParametreService::class); $rappelCampagneAvancementService = $container->get(RappelCampagneAvancementService::class); $structureService = $container->get(StructureService::class); $userService = $container->get(UserService::class); /** * @var CampagneForm $campagneForm Loading @@ -58,7 +55,6 @@ class CampagneControllerFactory extends AbstractActionController $controller->setParametreService($parametreService); $controller->setRappelCampagneAvancementService($rappelCampagneAvancementService); $controller->setStructureService($structureService); $controller->setUserService($userService); $controller->setCampagneForm($campagneForm); return $controller; } Loading
module/EntretienProfessionnel/src/EntretienProfessionnel/Service/Campagne/CampagneService.php +11 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace EntretienProfessionnel\Service\Campagne; use Application\Entity\Db\Agent; use Application\Service\Agent\AgentServiceAwareTrait; use DateInterval; use DateTime; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\ORMException; Loading Loading @@ -428,4 +429,14 @@ class CampagneService { $result = $qb->getQuery()->getResult(); return $result; } public function trierAgents(Campagne $campagne, array $agents) : array { $obligatoires = []; $facultatifs = []; $dateMinEnPoste = (DateTime::createFromFormat('d/m/Y', $campagne->getDateFin()->format('d/m/Y')))->sub(new DateInterval('P12M')); foreach ($agents as $agent) { if (!empty($agent->getAffectationsActifs($dateMinEnPoste))) $obligatoires[] = $agent; else $facultatifs[] = $agent; } return [$obligatoires, $facultatifs]; } } No newline at end of file
module/Structure/src/Structure/Service/Structure/StructureService.php +4 −1 Original line number Diff line number Diff line Loading @@ -451,8 +451,11 @@ EOS; /** * @return Structure[] */ public function getStructuresByCurrentRole(User $user, RoleInterface $role) : array public function getStructuresByCurrentRole(?User $user = null, ?RoleInterface $role = null) : array { if ($user === null) $user = $this->getUserService()->getConnectedUser(); if ($role === null) $role = $this->getUserService()->getConnectedRole(); $selecteur = []; if ($role->getRoleId() === RoleProvider::RESPONSABLE) { $structures = $this->getStructuresByResponsable($user); Loading
module/Structure/src/Structure/Service/Structure/StructureServiceAwareTrait.php +3 −13 Original line number Diff line number Diff line Loading @@ -4,26 +4,16 @@ namespace Structure\Service\Structure; trait StructureServiceAwareTrait { /** @var StructureService */ private $structureService; private StructureService $structureService; /** * @return StructureService */ public function getStructureService() public function getStructureService() : StructureService { return $this->structureService; } /** * @param StructureService $structureService * @return StructureService */ public function setStructureService($structureService) public function setStructureService(StructureService $structureService) : void { $this->structureService = $structureService; return $this->structureService; } } No newline at end of file