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

[FIX] Plantage lors de la création/modification/suppression d'une substitution...

[FIX] Plantage lors de la création/modification/suppression d'une substitution de structure (Synchro introuvable avec ce nom : these)
parent 999b3b36
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ Journal des modifications
- Ajout des unités de recherche fermées dans le filtre des thèses
- [FIX] correction du bug lié au typage de retour trop strict de l'entité Structure 
- Mise en place de la déclaration de non plagiat dans la proposition de soutenance
- [FIX] Plantage lors de la création/modification/suppression d'une substitution de structure ("Synchro introuvable avec ce nom : these")

3.0.12
------
+26 −5
Original line number Diff line number Diff line
@@ -150,8 +150,7 @@ class StructureService extends BaseService
            throw new RuntimeException("Erreur rencontrée lors de l'enregistrement des substitutions", null, $e);
        }

        $this->synchroService->addService('these');
        $this->synchroService->synchronize();
        $this->runSynchroTheses($structureConcreteCible->getStructure());

        return $structureConcreteCible;
    }
@@ -229,7 +228,29 @@ class StructureService extends BaseService
            throw new RuntimeException("Erreur rencontrée lors de l'enregistrement des substitutions", null, $e);
        }

        $this->synchroService->addService('these');
        $this->runSynchroTheses($structureCible);
    }

    /**
     * Lance la synchro des thèses pour prendre en compte la substitution de structure.
     *
     * @param \Application\Entity\Db\Structure $structureCible
     */
    private function runSynchroTheses(Structure $structureCible)
    {
        // Les noms de synchros sont déclinés par source/établissement (ex: 'these-UCN') ; on ne retient que
        // les sources/établissements des structures substituées.
        $etabs = [];
        foreach ($structureCible->getStructuresSubstituees() as $structuresSubstituee) {
            /** @var \Application\Entity\Db\Source $source */
            $source = $structuresSubstituee->getSource();
            $etab = $source->getEtablissement()->getCode();
            $etabs[$etab] = $etab;
        }
        foreach ($etabs as $etab) {
            $this->synchroService->addService(sprintf('these-%s', $etab));
        }

        $this->synchroService->synchronize();
    }

@@ -268,8 +289,8 @@ class StructureService extends BaseService
            throw new RuntimeException("Erreur rencontrée lors de la supression des substitutions", null, $e);
        }

        $this->synchroService->addService('these');
        $this->synchroService->synchronize();
        $this->runSynchroTheses($structureCible);

        return $structureSubstits;
    }