Loading src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php +31 −4 Changes for src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php: 31 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -2,14 +2,16 @@ namespace UnicaenValidation\Service\ValidationInstance; use Doctrine\ORM\Exception\NotSupported; use Doctrine\ORM\Exception\ORMException; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\ORMException; use Doctrine\ORM\QueryBuilder; use Laminas\Mvc\Controller\AbstractActionController; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenUtilisateur\Entity\Db\User; use UnicaenValidation\Entity\Db\ValidationInstance; use UnicaenValidation\Entity\HasValidationsInterface; use UnicaenValidation\Service\ValidationType\ValidationTypeServiceAwareTrait; class ValidationInstanceService { Loading Loading @@ -105,11 +107,14 @@ class ValidationInstanceService { */ public function createQueryBuilder() : QueryBuilder { try { $qb = $this->getEntityManager()->getRepository(ValidationInstance::class)->createQueryBuilder('vinstance') ->addSelect('createur')->join('vinstance.histoCreateur', 'createur') ->addSelect('modificateur')->join('vinstance.histoModificateur', 'modificateur') ->addSelect('vtype')->join('vinstance.type', 'vtype') ; ->addSelect('vtype')->join('vinstance.type', 'vtype'); } catch (NotSupported $e) { throw new RuntimeException("Un problème est survenu lors de la création du QueryBuilder [".ValidationInstance::class."]",0,$e); } return $qb; } Loading Loading @@ -142,7 +147,7 @@ class ValidationInstanceService { try { $result = $qb->getQuery()->getOneOrNullResult(); } catch (NonUniqueResultException $e) { throw new RuntimeException("Plusieurs ValidationInstance partagent le même id [".$id."]", 0, true); throw new RuntimeException("Plusieurs ValidationInstance partagent le même id [".$id."]", 0, $e); } return $result; } Loading Loading @@ -205,6 +210,7 @@ class ValidationInstanceService { /** * @param string $code * @param string|null $valeur * @param string|null $justification * @return ValidationInstance */ public function createWithCode(string $code, ?string $valeur = null, ?string $justification = null) : ValidationInstance Loading @@ -219,4 +225,25 @@ class ValidationInstanceService { return $instance; } public function setValidationActive(HasValidationsInterface $element, string $code, ?string $value = null) : HasValidationsInterface { //historisation de l'état actif actuel (s'il existe) $validationActive = $element->getValidationActiveByTypeCode($code); if (isset($validationActive)) { $this->historise($validationActive); } //creation de la nouvelle instance $validation = $this->createWithCode($code, $value); //ajout à l'element et persist $element->addValidation($validation); try { $this->getEntityManager()->persist($element); } catch (ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'ajout de actif de [".get_class($element)."]",0,$e); } return $element; } } No newline at end of file Loading
src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php +31 −4 Changes for src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php: 31 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -2,14 +2,16 @@ namespace UnicaenValidation\Service\ValidationInstance; use Doctrine\ORM\Exception\NotSupported; use Doctrine\ORM\Exception\ORMException; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\ORMException; use Doctrine\ORM\QueryBuilder; use Laminas\Mvc\Controller\AbstractActionController; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenUtilisateur\Entity\Db\User; use UnicaenValidation\Entity\Db\ValidationInstance; use UnicaenValidation\Entity\HasValidationsInterface; use UnicaenValidation\Service\ValidationType\ValidationTypeServiceAwareTrait; class ValidationInstanceService { Loading Loading @@ -105,11 +107,14 @@ class ValidationInstanceService { */ public function createQueryBuilder() : QueryBuilder { try { $qb = $this->getEntityManager()->getRepository(ValidationInstance::class)->createQueryBuilder('vinstance') ->addSelect('createur')->join('vinstance.histoCreateur', 'createur') ->addSelect('modificateur')->join('vinstance.histoModificateur', 'modificateur') ->addSelect('vtype')->join('vinstance.type', 'vtype') ; ->addSelect('vtype')->join('vinstance.type', 'vtype'); } catch (NotSupported $e) { throw new RuntimeException("Un problème est survenu lors de la création du QueryBuilder [".ValidationInstance::class."]",0,$e); } return $qb; } Loading Loading @@ -142,7 +147,7 @@ class ValidationInstanceService { try { $result = $qb->getQuery()->getOneOrNullResult(); } catch (NonUniqueResultException $e) { throw new RuntimeException("Plusieurs ValidationInstance partagent le même id [".$id."]", 0, true); throw new RuntimeException("Plusieurs ValidationInstance partagent le même id [".$id."]", 0, $e); } return $result; } Loading Loading @@ -205,6 +210,7 @@ class ValidationInstanceService { /** * @param string $code * @param string|null $valeur * @param string|null $justification * @return ValidationInstance */ public function createWithCode(string $code, ?string $valeur = null, ?string $justification = null) : ValidationInstance Loading @@ -219,4 +225,25 @@ class ValidationInstanceService { return $instance; } public function setValidationActive(HasValidationsInterface $element, string $code, ?string $value = null) : HasValidationsInterface { //historisation de l'état actif actuel (s'il existe) $validationActive = $element->getValidationActiveByTypeCode($code); if (isset($validationActive)) { $this->historise($validationActive); } //creation de la nouvelle instance $validation = $this->createWithCode($code, $value); //ajout à l'element et persist $element->addValidation($validation); try { $this->getEntityManager()->persist($element); } catch (ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'ajout de actif de [".get_class($element)."]",0,$e); } return $element; } } No newline at end of file