Loading src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursService.php +29 −5 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace UnicaenIndicateur\Service\HasIndicateurs; use DoctrineModule\Persistence\ProvidesObjectManager; use Exception; use UnicaenIndicateur\Entity\Db\Categorie; use UnicaenIndicateur\Entity\Db\Indicateur; use UnicaenIndicateur\Entity\Interface\HasIndicateursInterface; Loading Loading @@ -31,6 +32,10 @@ class HasIndicateursService { $log = ""; $em = $this->getObjectManager(); $conn = $em->getConnection(); $conn->beginTransaction(); foreach ($listing as $itemCategorie) { $categorieCode = $itemCategorie['code']; $categorie = $this->getCategorieService()->getCategorieByCode($categorieCode); Loading @@ -38,22 +43,41 @@ class HasIndicateursService $categorie = new Categorie(); $categorie->setCode($categorieCode); $categorie->setLibelle($itemCategorie['libelle']); try { $this->getCategorieService()->create($categorie); } catch(Exception $e) { $log .= "Un problème s'est produit lors de la création de la catégorie d'indicateur [$categorieCode].\n" . $e->getMessage() . "\n"; $this->getObjectManager()->rollback(); $this->getObjectManager()->close(); } } foreach ($itemCategorie['indicateurs'] as $itemIndicateur) { $indicateur = new Indicateur(); $indicateur->setCode($categorie->getCode() . "__" . $itemIndicateur['code']); $indicateurCode = $categorie->getCode() . "__" . $itemIndicateur['code']; $indicateur->setCode($indicateurCode); $indicateur->setTitre($itemIndicateur['libelle']); $indicateur->setCategorie($categorie); $indicateur->setViewId('mv_indicateur_' . strtolower($indicateur->getCode())); $requete = str_replace($key, $object->getId(), $itemIndicateur['requete']); $indicateur->setRequete($requete); try { $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->refresh($indicateur); } catch(Exception $e) { $log .= "Un problème s'est produit lors de la création de l'indicateur [$indicateurCode].<br>" . $e->getMessage() . "<br>"; if ($conn->isTransactionActive()) { $conn->rollback(); } $em->close(); } $object->addIndicateur($indicateur); } } if ($conn->isTransactionActive()) { $conn->commit(); $this->getObjectManager()->flush($object); } return $log; } Loading Loading
src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursService.php +29 −5 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace UnicaenIndicateur\Service\HasIndicateurs; use DoctrineModule\Persistence\ProvidesObjectManager; use Exception; use UnicaenIndicateur\Entity\Db\Categorie; use UnicaenIndicateur\Entity\Db\Indicateur; use UnicaenIndicateur\Entity\Interface\HasIndicateursInterface; Loading Loading @@ -31,6 +32,10 @@ class HasIndicateursService { $log = ""; $em = $this->getObjectManager(); $conn = $em->getConnection(); $conn->beginTransaction(); foreach ($listing as $itemCategorie) { $categorieCode = $itemCategorie['code']; $categorie = $this->getCategorieService()->getCategorieByCode($categorieCode); Loading @@ -38,22 +43,41 @@ class HasIndicateursService $categorie = new Categorie(); $categorie->setCode($categorieCode); $categorie->setLibelle($itemCategorie['libelle']); try { $this->getCategorieService()->create($categorie); } catch(Exception $e) { $log .= "Un problème s'est produit lors de la création de la catégorie d'indicateur [$categorieCode].\n" . $e->getMessage() . "\n"; $this->getObjectManager()->rollback(); $this->getObjectManager()->close(); } } foreach ($itemCategorie['indicateurs'] as $itemIndicateur) { $indicateur = new Indicateur(); $indicateur->setCode($categorie->getCode() . "__" . $itemIndicateur['code']); $indicateurCode = $categorie->getCode() . "__" . $itemIndicateur['code']; $indicateur->setCode($indicateurCode); $indicateur->setTitre($itemIndicateur['libelle']); $indicateur->setCategorie($categorie); $indicateur->setViewId('mv_indicateur_' . strtolower($indicateur->getCode())); $requete = str_replace($key, $object->getId(), $itemIndicateur['requete']); $indicateur->setRequete($requete); try { $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->refresh($indicateur); } catch(Exception $e) { $log .= "Un problème s'est produit lors de la création de l'indicateur [$indicateurCode].<br>" . $e->getMessage() . "<br>"; if ($conn->isTransactionActive()) { $conn->rollback(); } $em->close(); } $object->addIndicateur($indicateur); } } if ($conn->isTransactionActive()) { $conn->commit(); $this->getObjectManager()->flush($object); } return $log; } Loading