Commit 8e18bb84 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Correction : 2 paramètres sont nécessaires pour les plafonds de service référentiel

(cherry picked from commit 1f6ae193)
parent daa81783
Loading
Loading
Loading
Loading
+27 −3
Changes for module/Plafond/src/Service/PlafondService.php: 27 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -216,7 +216,8 @@ class PlafondService extends AbstractEntityService
        }

        if ($entity instanceof ServiceReferentiel) {
            $this->controlePop($entity->getFonctionReferentiel(), $pqr);
            /* Ca n'a pas de sens de limiter le nombre d'heures total par fonction uniquement */
            //$this->controlePop($entity->getFonctionReferentiel(), $pqr);
            $this->controlePop($entity->getIntervenant(), $pqr);
            $this->controlePop($entity->getStructure(), $pqr);
        }
@@ -349,15 +350,38 @@ class PlafondService extends AbstractEntityService
                $filters['pd.TYPE_INTERVENTION_ID'] = (int)$pqr->entity->getTypeIntervention()->getId();
                break;

            case FonctionReferentiel::class:
            case ServiceReferentiel::class:
                $intervenants = [];
                $fonctions = [];
                foreach( $entities as $entity){
                    /* @var $entity ServiceReferentiel */
                    if ($intervenant = $entity->getIntervenant()){
                        $intervenants[$intervenant->getId()] = $intervenant;
                    }
                    if ($fonction = $entity->getFonctionReferentiel()){
                        $fonctions[$fonction->getId()] = $fonction;
                    }
                }

                $perimetre = PlafondPerimetre::REFERENTIEL;
                $join = "JOIN FONCTION_REFERENTIEL entity ON entity.id = pd.FONCTION_REFERENTIEL_ID";
                $libVal = 'entity.libelle_court';
                $groupBy = 'entity.libelle_court';
                $filters['pd.FONCTION_REFERENTIEL_ID'] = $entities;
                $filters['pd.FONCTION_REFERENTIEL_ID'] = $fonctions;
                $filters['pd.INTERVENANT_ID'] = $intervenants;
                $filters['pd.ANNEE_ID'] = (int)$this->getServiceContext()->getAnnee()->getId();
                break;

            /* Ca n'a pas de sens de limiter le nombre d'heures total par fonction uniquement */
            /*case FonctionReferentiel::class:
                $perimetre = PlafondPerimetre::REFERENTIEL;
                $join = "JOIN FONCTION_REFERENTIEL entity ON entity.id = pd.FONCTION_REFERENTIEL_ID";
                $libVal = 'entity.libelle_court';
                $groupBy = 'entity.libelle_court';
                $filters['pd.FONCTION_REFERENTIEL_ID'] = $entities;
                $filters['pd.ANNEE_ID'] = (int)$this->getServiceContext()->getAnnee()->getId();
                break;*/

            case TypeMission::class:
                $perimetre = PlafondPerimetre::MISSION;
                $join = "JOIN TYPE_MISSION entity ON entity.id = pd.TYPE_MISSION_ID";