Loading module/Application/src/Application/Entity/Db/Agent.php +0 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ namespace Application\Entity\Db; use Application\Provider\Etat\FichePosteEtats; use Carriere\Entity\Db\Niveau; use Carriere\Entity\Db\NiveauEnveloppe; use Element\Entity\Db\Interfaces\HasApplicationCollectionInterface; use Element\Entity\Db\Interfaces\HasCompetenceCollectionInterface; Loading module/EntretienProfessionnel/src/EntretienProfessionnel/Service/EntretienProfessionnel/EntretienProfessionnelService.php +20 −0 Original line number Diff line number Diff line Loading @@ -563,4 +563,24 @@ class EntretienProfessionnelService { $result = $qb->getQuery()->getResult(); return $result; } /** * @param Campagne $campagne * @param array $agents * @return EntretienProfessionnel[] @desc [agentId => entretien] */ public function getEntretienProfessionnelByCampagneAndAgents(Campagne $campagne, array $agents) : array { $qb = $this->createQueryBuilder() ->andWhere('entretien.campagne = :campagne')->setParameter('campagne', $campagne) ->andWhere('entretien.agent in (:agents)')->setParameter('agents', $agents) ; $result = $qb->getQuery()->getResult(); $dictionnaire = []; foreach ($result as $entretien) { $dictionnaire[$entretien->getAgent()->getId()] = $entretien; } return $dictionnaire; } } module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/header.phtml +4 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,10 @@ $canAfficherInformationMetier = ( <?php endif; ?> <dt class="col-md-4"> Lieu </dt> <dd class="col-md-8"> <?php echo $entretien->getLieu(); ?> </dd> <dt class="col-md-4"> État </dt> <dd class="col-md-8"> <?php echo $this->etatbadge($entretien->getEtat()); ?> </dd> </dl> </div> </div> Loading module/Structure/src/Structure/Controller/StructureController.php +10 −0 Original line number Diff line number Diff line Loading @@ -115,12 +115,20 @@ class StructureController extends AbstractActionController { /** Campagne */ $last = $this->getCampagneService()->getLastCampagne(); /** Récupération des agents et postes liés aux structures */ $agentsLast = ($last !== null)?$this->getAgentService()->getAgentsByStructures($structures, $last->getDateDebut()):[]; $agentsForcesLast = array_map(function (StructureAgentForce $a) { return $a->getAgent(); }, $structure->getAgentsForces()); $allAgentsLast = array_merge($agentsLast, $agentsForcesLast); $entretiensLast = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($last, $allAgentsLast); $campagnes = $this->getCampagneService()->getCampagnesActives(); $entretiensArray = []; foreach ($campagnes as $campagne) { $entretiens = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($campagne, $allAgents); $entretiensArray[$campagne->getId()] = $entretiens; } $delegues = $this->getDelegueService()->getDeleguesByStructure($structure); // $profils = $this->getFicheProfilService()->getFichesPostesByStructure($structure); Loading Loading @@ -157,7 +165,9 @@ class StructureController extends AbstractActionController { 'last' => $last, 'agentsLast' => $allAgentsLast, 'entretiensLast' => $entretiensLast, 'campagnes' => $campagnes, 'entretiensArray' => $entretiensArray, 'delegues' => $delegues, //formations Loading module/Structure/src/Structure/Service/Structure/StructureService.php +4 −40 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ class StructureService { $qb = $this->getEntityManager()->getRepository(Structure::class)->createQueryBuilder('structure') ->addSelect('gestionnaire')->leftJoin('structure.gestionnaires', 'gestionnaire') ->leftJoin('gestionnaire.agent', 'gAgent')->addSelect('gAgent') ->addSelect('responsable')->leftJoin('structure.responsables', 'responsable') ->leftJoin('responsable.agent', 'rAgent')->addSelect('rAgent') ->addSelect('type')->join('structure.type', 'type') ->andWhere('structure.deleted_on IS NULL') ->orderBy('structure.code') Loading Loading @@ -232,7 +234,6 @@ left join structure_type st on st.id = s.type_id where s.d_fermeture IS NULL EOS; $tmp = null; try { $res = $this->getEntityManager()->getConnection()->executeQuery($sql, []); try { Loading Loading @@ -443,41 +444,6 @@ EOS; return false; } /** * @param Structure $structure * @param bool $filles * @return User[] */ public function getGestionnairesByStructure(Structure $structure, bool $filles = true) : array { $gestionnaires = []; $vue = []; $structures = []; $structures[] = $structure; $vue[$structure->getId()] = true; while (! empty($structures)) { $current = array_shift($structures); foreach ($current->getGestionnaires() as $gestionnaire) { $gestionnaires[$gestionnaire->getId()] = $gestionnaire; } foreach ($current->getResponsables() as $responsable) { $gestionnaires[$responsable->getId()] = $responsable; } if ($filles) { foreach ($current->getEnfants() as $enfant) { if ($vue[$enfant->getId()] !== true) { $structures[] = $enfant; $vue[$enfant->getId()] = true; } } } } return $gestionnaires; } /** * @return Structure[] */ Loading Loading @@ -505,7 +471,7 @@ EOS; if ($date === null) $date = new DateTime(); $qb = $this->getEntityManager()->getRepository(AgentAffectation::class)->createQueryBuilder('affectation') // ->join('affectation.agent', 'agent')->addSelect('agent') // affecation en cours non principale dans la structure // affectation en cours non principale dans la structure ->andWhere('affectation.structure = :structure') ->setParameter('structure', $structure) ->andWhere('affectation.principale IS NULL OR affectation.principale = :N') Loading @@ -523,7 +489,7 @@ EOS; $listing = []; foreach ($result as $affectation) { $agent = $affectation->getAgent(); $affectationPrincipale = $agent->getAffectationPrincipale($date); $affectationPrincipale = $agent->getAffectationPrincipale(); if ($affectationPrincipale) { $structurePrincipale = $affectationPrincipale->getStructure(); $listing[$structurePrincipale->getLibelleLong()][] = $agent->getDenomination(); Loading @@ -534,8 +500,6 @@ EOS; return $listing; } //TODO RESPONSABLE_SERVICE ??? /** * @param Structure|null $structure * @param DateTime|null $date Loading Loading
module/Application/src/Application/Entity/Db/Agent.php +0 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ namespace Application\Entity\Db; use Application\Provider\Etat\FichePosteEtats; use Carriere\Entity\Db\Niveau; use Carriere\Entity\Db\NiveauEnveloppe; use Element\Entity\Db\Interfaces\HasApplicationCollectionInterface; use Element\Entity\Db\Interfaces\HasCompetenceCollectionInterface; Loading
module/EntretienProfessionnel/src/EntretienProfessionnel/Service/EntretienProfessionnel/EntretienProfessionnelService.php +20 −0 Original line number Diff line number Diff line Loading @@ -563,4 +563,24 @@ class EntretienProfessionnelService { $result = $qb->getQuery()->getResult(); return $result; } /** * @param Campagne $campagne * @param array $agents * @return EntretienProfessionnel[] @desc [agentId => entretien] */ public function getEntretienProfessionnelByCampagneAndAgents(Campagne $campagne, array $agents) : array { $qb = $this->createQueryBuilder() ->andWhere('entretien.campagne = :campagne')->setParameter('campagne', $campagne) ->andWhere('entretien.agent in (:agents)')->setParameter('agents', $agents) ; $result = $qb->getQuery()->getResult(); $dictionnaire = []; foreach ($result as $entretien) { $dictionnaire[$entretien->getAgent()->getId()] = $entretien; } return $dictionnaire; } }
module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/header.phtml +4 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,10 @@ $canAfficherInformationMetier = ( <?php endif; ?> <dt class="col-md-4"> Lieu </dt> <dd class="col-md-8"> <?php echo $entretien->getLieu(); ?> </dd> <dt class="col-md-4"> État </dt> <dd class="col-md-8"> <?php echo $this->etatbadge($entretien->getEtat()); ?> </dd> </dl> </div> </div> Loading
module/Structure/src/Structure/Controller/StructureController.php +10 −0 Original line number Diff line number Diff line Loading @@ -115,12 +115,20 @@ class StructureController extends AbstractActionController { /** Campagne */ $last = $this->getCampagneService()->getLastCampagne(); /** Récupération des agents et postes liés aux structures */ $agentsLast = ($last !== null)?$this->getAgentService()->getAgentsByStructures($structures, $last->getDateDebut()):[]; $agentsForcesLast = array_map(function (StructureAgentForce $a) { return $a->getAgent(); }, $structure->getAgentsForces()); $allAgentsLast = array_merge($agentsLast, $agentsForcesLast); $entretiensLast = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($last, $allAgentsLast); $campagnes = $this->getCampagneService()->getCampagnesActives(); $entretiensArray = []; foreach ($campagnes as $campagne) { $entretiens = $this->getEntretienProfessionnelService()->getEntretienProfessionnelByCampagneAndAgents($campagne, $allAgents); $entretiensArray[$campagne->getId()] = $entretiens; } $delegues = $this->getDelegueService()->getDeleguesByStructure($structure); // $profils = $this->getFicheProfilService()->getFichesPostesByStructure($structure); Loading Loading @@ -157,7 +165,9 @@ class StructureController extends AbstractActionController { 'last' => $last, 'agentsLast' => $allAgentsLast, 'entretiensLast' => $entretiensLast, 'campagnes' => $campagnes, 'entretiensArray' => $entretiensArray, 'delegues' => $delegues, //formations Loading
module/Structure/src/Structure/Service/Structure/StructureService.php +4 −40 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ class StructureService { $qb = $this->getEntityManager()->getRepository(Structure::class)->createQueryBuilder('structure') ->addSelect('gestionnaire')->leftJoin('structure.gestionnaires', 'gestionnaire') ->leftJoin('gestionnaire.agent', 'gAgent')->addSelect('gAgent') ->addSelect('responsable')->leftJoin('structure.responsables', 'responsable') ->leftJoin('responsable.agent', 'rAgent')->addSelect('rAgent') ->addSelect('type')->join('structure.type', 'type') ->andWhere('structure.deleted_on IS NULL') ->orderBy('structure.code') Loading Loading @@ -232,7 +234,6 @@ left join structure_type st on st.id = s.type_id where s.d_fermeture IS NULL EOS; $tmp = null; try { $res = $this->getEntityManager()->getConnection()->executeQuery($sql, []); try { Loading Loading @@ -443,41 +444,6 @@ EOS; return false; } /** * @param Structure $structure * @param bool $filles * @return User[] */ public function getGestionnairesByStructure(Structure $structure, bool $filles = true) : array { $gestionnaires = []; $vue = []; $structures = []; $structures[] = $structure; $vue[$structure->getId()] = true; while (! empty($structures)) { $current = array_shift($structures); foreach ($current->getGestionnaires() as $gestionnaire) { $gestionnaires[$gestionnaire->getId()] = $gestionnaire; } foreach ($current->getResponsables() as $responsable) { $gestionnaires[$responsable->getId()] = $responsable; } if ($filles) { foreach ($current->getEnfants() as $enfant) { if ($vue[$enfant->getId()] !== true) { $structures[] = $enfant; $vue[$enfant->getId()] = true; } } } } return $gestionnaires; } /** * @return Structure[] */ Loading Loading @@ -505,7 +471,7 @@ EOS; if ($date === null) $date = new DateTime(); $qb = $this->getEntityManager()->getRepository(AgentAffectation::class)->createQueryBuilder('affectation') // ->join('affectation.agent', 'agent')->addSelect('agent') // affecation en cours non principale dans la structure // affectation en cours non principale dans la structure ->andWhere('affectation.structure = :structure') ->setParameter('structure', $structure) ->andWhere('affectation.principale IS NULL OR affectation.principale = :N') Loading @@ -523,7 +489,7 @@ EOS; $listing = []; foreach ($result as $affectation) { $agent = $affectation->getAgent(); $affectationPrincipale = $agent->getAffectationPrincipale($date); $affectationPrincipale = $agent->getAffectationPrincipale(); if ($affectationPrincipale) { $structurePrincipale = $affectationPrincipale->getStructure(); $listing[$structurePrincipale->getLibelleLong()][] = $agent->getDenomination(); Loading @@ -534,8 +500,6 @@ EOS; return $listing; } //TODO RESPONSABLE_SERVICE ??? /** * @param Structure|null $structure * @param DateTime|null $date Loading