src/Domain/Registry/Symfony/EventSubscriber/Kernel/ConformiteTraitementSubscriber.php line 50

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of the MADIS - RGPD Management application.
  4.  *
  5.  * @copyright Copyright (c) 2018-2019 Soluris - Solutions Numériques Territoriales Innovantes
  6.  * @author ANODE <contact@agence-anode.fr>
  7.  *
  8.  * This program is free software: you can redistribute it and/or modify
  9.  * it under the terms of the GNU Affero General Public License as published by
  10.  * the Free Software Foundation, either version 3 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU Affero General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Affero General Public License
  19.  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  20.  */
  21. declare(strict_types=1);
  22. namespace App\Domain\Registry\Symfony\EventSubscriber\Kernel;
  23. use App\Domain\Registry\Symfony\EventSubscriber\Event\ConformiteTraitementEvent;
  24. use Doctrine\ORM\EntityManagerInterface;
  25. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  26. class ConformiteTraitementSubscriber implements EventSubscriberInterface
  27. {
  28.     /**
  29.      * @var EntityManagerInterface
  30.      */
  31.     private $entityManager;
  32.     public function __construct(EntityManagerInterface $manager)
  33.     {
  34.         $this->entityManager $manager;
  35.     }
  36.     public static function getSubscribedEvents(): array
  37.     {
  38.         return [
  39.             ConformiteTraitementEvent::class => ['resetAllReponseMesurementNotSeen'],
  40.         ];
  41.     }
  42.     public function resetAllReponseMesurementNotSeen(ConformiteTraitementEvent $event)
  43.     {
  44.         foreach ($event->getConformiteTraitement()->getReponses() as $reponse) {
  45.             $reponse->resetActionProtectionsPlanifiedNotSeens();
  46.             $this->entityManager->persist($reponse);
  47.         }
  48.         $this->entityManager->flush();
  49.     }
  50. }