diff --git a/src/UnicaenValidation/Entity/HasValidationsInterface.php b/src/UnicaenValidation/Entity/HasValidationsInterface.php
index 59ff8f9704db12b9ba915caaf0151541c1dd17e3..778b3269950fb806096d988ced639dc7f24ddd4c 100644
--- a/src/UnicaenValidation/Entity/HasValidationsInterface.php
+++ b/src/UnicaenValidation/Entity/HasValidationsInterface.php
@@ -3,6 +3,7 @@
 namespace UnicaenValidation\Entity;
 
 use UnicaenValidation\Entity\Db\ValidationInstance;
+use Doctrine\ORM\QueryBuilder;
 
 interface HasValidationsInterface {
 
@@ -12,4 +13,5 @@ interface HasValidationsInterface {
     public function getValidationsByTypeCode(string $typeCode) : array ;
     public function getValidationActiveByTypeCode(string $typeCode) : ?ValidationInstance;
 
+    static public function decorateWithValidations(QueryBuilder $qb, string $entityName,  array $validations = []) : QueryBuilder;
 }
\ No newline at end of file
diff --git a/src/UnicaenValidation/Entity/HasValidationsTrait.php b/src/UnicaenValidation/Entity/HasValidationsTrait.php
index b1a9f58ef4ecde4daaa5bb423b64f4ed5358fe19..3c3c8c292cb2f2ab4e9c1d09e74d1bbd2d9d2bde 100644
--- a/src/UnicaenValidation/Entity/HasValidationsTrait.php
+++ b/src/UnicaenValidation/Entity/HasValidationsTrait.php
@@ -4,6 +4,7 @@ namespace UnicaenValidation\Entity;
 
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
+use Doctrine\ORM\QueryBuilder;
 use UnicaenValidation\Entity\Db\ValidationInstance;
 
 trait HasValidationsTrait {
@@ -62,6 +63,20 @@ trait HasValidationsTrait {
         }
         return null;
     }
+    static public function decorateWithValidations(QueryBuilder $qb, string $entityName,  array $validations = []) : QueryBuilder
+    {
+        $qb = $qb
+            ->leftJoin($entityName . '.validations', 'validation')->addSelect('validation')
+            ->leftJoin('validation.type', 'validationtype')->addSelect('validationtype')
+            ->andWhere('validation.histoDestruction IS NULL')
+        ;
+
+        if (!empty($validations)) {
+            $qb = $qb->andWhere('validation.type in (:etats)')
+                ->setParameter('validations', $validations);
+        }
+        return $qb;
+    }
 
 
 
diff --git a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
index 10d291d2c5300dddf7b4fe0d9e8781b1219f94d3..37cfd4349593f4cc2cd010895dbe1af3fdaf863f 100644
--- a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
+++ b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php
@@ -226,7 +226,7 @@ class ValidationInstanceService {
         return $instance;
     }
 
-    public function setValidationActive(HasValidationsInterface $element, string $code, bool $refus = false, ?string $justification = null) : HasValidationsInterface
+    public function setValidationActive(HasValidationsInterface $element, string $code, bool $refus = false, ?string $justification = null) : ValidationInstance
     {
         //historisation de l'état actif actuel (s'il existe)
         $validationActive = $element->getValidationActiveByTypeCode($code);
@@ -245,6 +245,6 @@ class ValidationInstanceService {
         } 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;
+        return $validation;
     }
 }
\ No newline at end of file