Commit ca9a4ca7 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Simplification selecteur pour les campagnes

parent f4a0573c
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -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() */

@@ -37,7 +36,6 @@ class CampagneController extends AbstractActionController {
    use RappelCampagneAvancementServiceAwareTrait;
    use StructureServiceAwareTrait;
    use CampagneFormAwareTrait;
    use UserServiceAwareTrait;

    public function indexAction() : ViewModel
    {
@@ -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 {
@@ -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 = [];
+0 −4
Original line number Diff line number Diff line
@@ -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
{
@@ -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);
@@ -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
@@ -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;
    }
+11 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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
+4 −1
Original line number Diff line number Diff line
@@ -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);
+3 −13
Original line number Diff line number Diff line
@@ -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