Loading module/Application/src/Application/Controller/SubstitutionController.php +11 −9 Original line number Diff line number Diff line Loading @@ -49,20 +49,22 @@ class SubstitutionController extends AbstractController if ($request->isPost()) { $data = $request->getPost(); $sources = []; foreach($data['sources'] as $sourceId) { $etablissement = $this->etablissementService->getEtablissementById($sourceId); foreach($data['sourceIds'] as $sourceId) { $etablissement = $this->etablissementService->findEtablissementByStructureId($sourceId); if ($etablissement === null) { throw new RuntimeException("Etablissement cible non trouvé avec id=$sourceId."); } $sources[] = $etablissement; } $structureCible = new Etablissement(); $structureCible->setCode(uniqid()); $this->etablissementService->updateFromPostData($structureCible, $data['cible']); // $this->structureService->createStructureSubstitutions($sources, $structureCible); return $this->redirect()->toRoute('substitution-index'); $structureCibleDataObject = new Etablissement(); $structureCibleDataObject->setCode(uniqid()); $this->etablissementService->updateFromPostData($structureCibleDataObject, $data['cible']); // $id = $structureCible->getStructure()->getId(); // return $this->redirect()->toRoute('substitution-modifier', ['cible' => $id], [], true); $structureCible = $this->structureService->createStructureSubstitutions($sources, $structureCibleDataObject); $id = $structureCible->getStructure()->getId(); return $this->redirect()->toRoute('substitution-modifier', ['cible' => $id], [], true); } else { $cible = new Structure(); Loading module/Application/src/Application/Service/Structure/StructureService.php +6 −6 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class StructureService extends BaseService * Structures à substituer (Etablissement|EcoleDoctorale|UniteRecherche * @param StructureConcreteInterface $structureCibleDataObject * Objet contenant les attributs de la structure de substitution à créer * @return StructureSubstit[] Entités créées (une par substitution) * @return StructureConcreteInterface Entités créées (une par substitution) */ public function createStructureSubstitutions(array $structuresSources, StructureConcreteInterface $structureCibleDataObject) { Loading Loading @@ -76,8 +76,8 @@ class StructureService extends BaseService $structureCibleDataObject->setSourceCode($sourceCode); // instanciation du couple (Etab|ED|UR ; Structure) cible $structureCible = Structure::constructFromDataObject($structureCibleDataObject, $typeStructure, $sourceSygal); $structureRattachCible = $structureCible->getStructure(); // StructureSubstitution ne référence que des entités de type Structure $structureConcreteCible = Structure::constructFromDataObject($structureCibleDataObject, $typeStructure, $sourceSygal); $structureRattachCible = $structureConcreteCible->getStructure(); // StructureSubstitution ne référence que des entités de type Structure // instanciations des substitutions $substitutions = StructureSubstit::fromStructures($structuresSources, $structureRattachCible); Loading @@ -85,13 +85,13 @@ class StructureService extends BaseService // enregistrement en bdd $this->getEntityManager()->beginTransaction(); try { $this->getEntityManager()->persist($structureCible); $this->getEntityManager()->persist($structureConcreteCible); $this->getEntityManager()->persist($structureRattachCible); array_map(function(StructureSubstit $ss) { $this->getEntityManager()->persist($ss); }, $substitutions); $this->getEntityManager()->flush($structureCible); $this->getEntityManager()->flush($structureConcreteCible); $this->getEntityManager()->flush($structureRattachCible); $this->getEntityManager()->flush($substitutions); Loading @@ -101,7 +101,7 @@ class StructureService extends BaseService throw new RuntimeException("Erreur rencontrée lors de l'enregistrement des substitutions", null, $e); } return $substitutions; return $structureConcreteCible; } /** Loading module/Application/view/application/substitution/modifier.phtml +8 −9 Original line number Diff line number Diff line Loading @@ -83,14 +83,13 @@ function generateSelect($etablissements, \Zend\View\Renderer\PhpRenderer $render $(document).ready(function() { //remplacement dans la structure cible $("input[type='radio']").click(function() { $("div#sources").on("click", "input[type='radio']", function () { var type = $(this).attr('name'); var texte = ($(this).parent().find(".texte").text()); $('input#' + type).val(texte); }); }) //suppression d'une structure $("button.supprimer").click(function() { .on("click", "button.supprimer", function () { $(this).parent().remove(); }); Loading Loading
module/Application/src/Application/Controller/SubstitutionController.php +11 −9 Original line number Diff line number Diff line Loading @@ -49,20 +49,22 @@ class SubstitutionController extends AbstractController if ($request->isPost()) { $data = $request->getPost(); $sources = []; foreach($data['sources'] as $sourceId) { $etablissement = $this->etablissementService->getEtablissementById($sourceId); foreach($data['sourceIds'] as $sourceId) { $etablissement = $this->etablissementService->findEtablissementByStructureId($sourceId); if ($etablissement === null) { throw new RuntimeException("Etablissement cible non trouvé avec id=$sourceId."); } $sources[] = $etablissement; } $structureCible = new Etablissement(); $structureCible->setCode(uniqid()); $this->etablissementService->updateFromPostData($structureCible, $data['cible']); // $this->structureService->createStructureSubstitutions($sources, $structureCible); return $this->redirect()->toRoute('substitution-index'); $structureCibleDataObject = new Etablissement(); $structureCibleDataObject->setCode(uniqid()); $this->etablissementService->updateFromPostData($structureCibleDataObject, $data['cible']); // $id = $structureCible->getStructure()->getId(); // return $this->redirect()->toRoute('substitution-modifier', ['cible' => $id], [], true); $structureCible = $this->structureService->createStructureSubstitutions($sources, $structureCibleDataObject); $id = $structureCible->getStructure()->getId(); return $this->redirect()->toRoute('substitution-modifier', ['cible' => $id], [], true); } else { $cible = new Structure(); Loading
module/Application/src/Application/Service/Structure/StructureService.php +6 −6 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class StructureService extends BaseService * Structures à substituer (Etablissement|EcoleDoctorale|UniteRecherche * @param StructureConcreteInterface $structureCibleDataObject * Objet contenant les attributs de la structure de substitution à créer * @return StructureSubstit[] Entités créées (une par substitution) * @return StructureConcreteInterface Entités créées (une par substitution) */ public function createStructureSubstitutions(array $structuresSources, StructureConcreteInterface $structureCibleDataObject) { Loading Loading @@ -76,8 +76,8 @@ class StructureService extends BaseService $structureCibleDataObject->setSourceCode($sourceCode); // instanciation du couple (Etab|ED|UR ; Structure) cible $structureCible = Structure::constructFromDataObject($structureCibleDataObject, $typeStructure, $sourceSygal); $structureRattachCible = $structureCible->getStructure(); // StructureSubstitution ne référence que des entités de type Structure $structureConcreteCible = Structure::constructFromDataObject($structureCibleDataObject, $typeStructure, $sourceSygal); $structureRattachCible = $structureConcreteCible->getStructure(); // StructureSubstitution ne référence que des entités de type Structure // instanciations des substitutions $substitutions = StructureSubstit::fromStructures($structuresSources, $structureRattachCible); Loading @@ -85,13 +85,13 @@ class StructureService extends BaseService // enregistrement en bdd $this->getEntityManager()->beginTransaction(); try { $this->getEntityManager()->persist($structureCible); $this->getEntityManager()->persist($structureConcreteCible); $this->getEntityManager()->persist($structureRattachCible); array_map(function(StructureSubstit $ss) { $this->getEntityManager()->persist($ss); }, $substitutions); $this->getEntityManager()->flush($structureCible); $this->getEntityManager()->flush($structureConcreteCible); $this->getEntityManager()->flush($structureRattachCible); $this->getEntityManager()->flush($substitutions); Loading @@ -101,7 +101,7 @@ class StructureService extends BaseService throw new RuntimeException("Erreur rencontrée lors de l'enregistrement des substitutions", null, $e); } return $substitutions; return $structureConcreteCible; } /** Loading
module/Application/view/application/substitution/modifier.phtml +8 −9 Original line number Diff line number Diff line Loading @@ -83,14 +83,13 @@ function generateSelect($etablissements, \Zend\View\Renderer\PhpRenderer $render $(document).ready(function() { //remplacement dans la structure cible $("input[type='radio']").click(function() { $("div#sources").on("click", "input[type='radio']", function () { var type = $(this).attr('name'); var texte = ($(this).parent().find(".texte").text()); $('input#' + type).val(texte); }); }) //suppression d'une structure $("button.supprimer").click(function() { .on("click", "button.supprimer", function () { $(this).parent().remove(); }); Loading