Commit f848c476 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Recherche de rapports d'Activité/CSI/Mi-parcours : les filtres...

[FIX] Recherche de rapports d'Activité/CSI/Mi-parcours : les filtres Établissement/ED/UR géraient mal la subsitution de structures.
parent a2453b81
Loading
Loading
Loading
Loading
+7 −4
Changes for module/Application/src/Application/Service/Rapport/RapportSearchService.php: 7 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ class RapportSearchService extends SearchService
        $etablissementInscrFilter = $this->getEtablissementTheseSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_structureSubstituante.sourceCode = :sourceCodeEtab')
                    ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_substituant.sourceCode = :sourceCodeEtab')
                    ->setParameter('sourceCodeEtab', $filter->getValue());
            })
            ->setDataProvider(function() {
@@ -96,7 +96,7 @@ class RapportSearchService extends SearchService
        $uniteRechercheFilter = $this->getUniteRechercheSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_structureSubstituante.sourceCode = :sourceCodeUR')
                    ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_substituant.sourceCode = :sourceCodeUR')
                    ->setParameter('sourceCodeUR', $filter->getValue());
            })
            ->setDataProvider(function() {
@@ -105,7 +105,7 @@ class RapportSearchService extends SearchService
        $ecoleDoctoraleFilter = $this->getEcoleDoctoraleSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('ed.sourceCode = :sourceCodeED OR ed_structureSubstituante.sourceCode = :sourceCodeED')
                    ->andWhere('ed.sourceCode = :sourceCodeED OR ed_substituant.sourceCode = :sourceCodeED')
                    ->setParameter('sourceCodeED', $filter->getValue());
            })
            ->setDataProvider(function() {
@@ -318,7 +318,10 @@ class RapportSearchService extends SearchService
            ->leftJoin('ur.structure', 'ur_structure')->addSelect('ur_structure')
            ->leftJoinStructureSubstituante('etab_structure', 'etab_structureSubstituante')
            ->leftJoinStructureSubstituante('ed_structure', 'ed_structureSubstituante')
            ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante');
            ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante')
            ->leftJoin('etab_structureSubstituante.etablissement', 'etab_substituant')->addSelect('etab_substituant')
            ->leftJoin('ed_structureSubstituante.ecoleDoctorale', 'ed_substituant')->addSelect('ed_substituant')
            ->leftJoin('ur_structureSubstituante.uniteRecherche', 'ur_substituant')->addSelect('ur_substituant');

        if ($this->typeRapport !== null) {
            $qb->andWhere('tr = :type')->setParameter('type', $this->typeRapport);
+7 −4
Changes for module/RapportActivite/src/RapportActivite/Service/Search/RapportActiviteSearchService.php: 7 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -76,19 +76,19 @@ class RapportActiviteSearchService extends SearchService
        $etablissementInscrFilter = $this->getEtablissementTheseSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_structureSubstituante.sourceCode = :sourceCodeEtab')
                    ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_substituant.sourceCode = :sourceCodeEtab')
                    ->setParameter('sourceCodeEtab', $filter->getValue());
            });
        $ecoleDoctoraleFilter = $this->getEcoleDoctoraleSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('ed.sourceCode = :sourceCodeED OR ed_structureSubstituante.sourceCode = :sourceCodeED')
                    ->andWhere('ed.sourceCode = :sourceCodeED OR ed_substituant.sourceCode = :sourceCodeED')
                    ->setParameter('sourceCodeED', $filter->getValue());
            });
        $uniteRechercheFilter = $this->getUniteRechercheSearchFilter()
            ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) {
                $qb
                    ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_structureSubstituante.sourceCode = :sourceCodeUR')
                    ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_substituant.sourceCode = :sourceCodeUR')
                    ->setParameter('sourceCodeUR', $filter->getValue());
            });
        $origineFinancementFilter = $this->getOrigineFinancementSearchFilter();
@@ -156,7 +156,10 @@ class RapportActiviteSearchService extends SearchService
            ->leftJoin('ur.structure', 'ur_structure')->addSelect('ur_structure')
            ->leftJoinStructureSubstituante('etab_structure', 'etab_structureSubstituante')
            ->leftJoinStructureSubstituante('ed_structure', 'ed_structureSubstituante')
            ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante');
            ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante')
            ->leftJoin('etab_structureSubstituante.etablissement', 'etab_substituant')
            ->leftJoin('ed_structureSubstituante.ecoleDoctorale', 'ed_substituant')
            ->leftJoin('ur_structureSubstituante.uniteRecherche', 'ur_substituant');

        return $qb;
    }