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

Utilisation d'un paramètre pour les temoins d'affectation pour la liste des agents passant un EP

parent 96c1525a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ Version 3.2.1 (10/05/2023)
- Correction bug unicaen/privilege
- Formulaire de saisie des chaînes hiérarchiques pour un agent
- Correction de la modale de convocation qui ne fermait plus
- Utilisation d'un paramètre pour les temoins d'affectation pour la liste des agents passant un EP 

---

@@ -30,6 +31,15 @@ delete from unicaen_privilege_categorie where code = 'sursis';

-- table
drop table entretienprofessionnel_sursis;

-- Nouveaux parametres
INSERT INTO unicaen_parametre_parametre(CATEGORIE_ID, CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, VALEUR, ORDRE)
WITH d(CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, VALEUR, ORDRE) AS (
    SELECT 'TEMOIN_AFFECTATION','Liste des temoins à considerer pour les affectations',null,'String',null, 100
)
SELECT cp.id, d.CODE, d.LIBELLE, d.DESCRIPTION, d.VALEURS_POSSIBLES, d.VALEUR, d.ORDRE
FROM d
JOIN unicaen_parametre_categorie cp ON cp.CODE = 'ENTRETIEN_PROFESSIONNEL';
```

Evolution des librairies 
+5 −1
Original line number Diff line number Diff line
@@ -589,7 +589,7 @@ class AgentService {
     * @param DateTime|null $date
     * @return array
     */
    public function getAgentsByStructuresAndDate(array $structures, ?DateTime $date = null) : array
    public function getAgentsByStructuresAndDate(array $structures, ?DateTime $date = null, array $temoins = []) : array
    {
        if ($date === null) $date = new DateTime();

@@ -600,6 +600,10 @@ class AgentService {
            ->andWhere('affectation.dateFin IS NULL OR affectation.dateFin >= :date')->setParameter('date', $date)
            ->andWhere('affectation.structure in (:structures)')->setParameter('structures', $structures)
        ;
        if (in_array('hierarchique', $temoins)) $qb = $qb->andWhere("affectation.hierarchique = 'O'");
        if (in_array('fonctionnelle', $temoins)) $qb = $qb->andWhere("affectation.fonctionnel = 'O'");


        $liste = $qb->getQuery()->getResult();

        $ids = [];
+9 −2
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use DateTime;
use EntretienProfessionnel\Entity\Db\Campagne;
use EntretienProfessionnel\Form\Campagne\CampagneFormAwareTrait;
use EntretienProfessionnel\Provider\Etat\EntretienProfessionnelEtats;
use EntretienProfessionnel\Provider\Parametre\EntretienProfessionnelParametres;
use EntretienProfessionnel\Service\Campagne\CampagneService;
use EntretienProfessionnel\Service\Campagne\CampagneServiceAwareTrait;
use EntretienProfessionnel\Service\EntretienProfessionnel\EntretienProfessionnelServiceAwareTrait;
@@ -20,6 +21,7 @@ use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Laminas\View\Model\ViewModel;
use Structure\Service\Structure\StructureServiceAwareTrait;
use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;

/** @method FlashMessenger flashMessenger() */
@@ -29,6 +31,7 @@ class CampagneController extends AbstractActionController {
    use CampagneServiceAwareTrait;
    use EntretienProfessionnelServiceAwareTrait;
    use NotificationServiceAwareTrait;
    use ParametreServiceAwareTrait;
    use RappelCampagneAvancementServiceAwareTrait;
    use StructureServiceAwareTrait;
    use CampagneFormAwareTrait;
@@ -167,9 +170,13 @@ class CampagneController extends AbstractActionController {
        $selecteur = $this->getStructureService()->getStructuresByCurrentRole($utilisateur, $role);

        $structures = $this->getStructureService()->getStructuresFilles($structure, true);
        $agentsAll = $this->getAgentService()->getAgentsByStructuresAndDate($structures, $campagne->getDateDebut());
        $temoins = $this->getParametreService()->getValeurForParametre(EntretienProfessionnelParametres::TYPE, EntretienProfessionnelParametres::TEMOIN_AFFECTATION);
        if ($temoins !== null) {
            $temoins = explode(";",$temoins);
        } else $temoins = [];
        $agentsAll = $this->getAgentService()->getAgentsByStructuresAndDate($structures, $campagne->getDateDebut(), $temoins);

        /** Filtrage des agents (seul les agents ayants le statut adminstratif lors de la campagne sont éligibles) */
        /** Filtrage des agents (seuls les agents ayants le statut adminstratif lors de la campagne sont éligibles) */
        $agents = [];
        /** @var Agent $agent */
        foreach ($agentsAll as $agent) {
+4 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ use Psr\Container\ContainerExceptionInterface;
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
@@ -30,6 +31,7 @@ class CampagneControllerFactory extends AbstractActionController
         * @var CampagneService $campagneService
         * @var EntretienProfessionnelService $entretienProfessionnelService
         * @var NotificationService $notificationService
         * @var ParametreService $parametreService
         * @var RappelCampagneAvancementService $rappelCampagneAvancementService
         * @var StructureService $structureService
         * @var UserService $userService
@@ -38,6 +40,7 @@ class CampagneControllerFactory extends AbstractActionController
        $campagneService = $container->get(CampagneService::class);
        $entretienProfessionnelService = $container->get(EntretienProfessionnelService::class);
        $notificationService = $container->get(NotificationService::class);
        $parametreService = $container->get(ParametreService::class);
        $rappelCampagneAvancementService = $container->get(RappelCampagneAvancementService::class);
        $structureService = $container->get(StructureService::class);
        $userService = $container->get(UserService::class);
@@ -52,6 +55,7 @@ class CampagneControllerFactory extends AbstractActionController
        $controller->setCampagneService($campagneService);
        $controller->setEntretienProfessionnelService($entretienProfessionnelService);
        $controller->setNotificationService($notificationService);
        $controller->setParametreService($parametreService);
        $controller->setRappelCampagneAvancementService($rappelCampagneAvancementService);
        $controller->setStructureService($structureService);
        $controller->setUserService($userService);
+1 −0
Original line number Diff line number Diff line
@@ -10,4 +10,5 @@ class EntretienProfessionnelParametres {
    const INTRANET_DOCUMENT = 'INTRANET_DOCUMENT';
    const MAIL_LISTE_BIATS = 'MAIL_LISTE_BIATS';
    const MAIL_LISTE_DAC = 'MAIL_LISTE_DAC';
    const TEMOIN_AFFECTATION = 'TEMOIN_AFFECTATION';
}
 No newline at end of file