src/EventListener/SansSuiteSubscriber.php line 47

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3.  
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
  8. use App\Utils\MailerService;
  9. use App\Entity\Notification;
  10. use App\Entity\StatutDossier;
  11. use App\Event\NotifyEvent;
  12. use App\Event\SansSuiteEvent;
  13. class SansSuiteSubscriber implements EventSubscriberInterface
  14. {
  15.   private $mailer;
  16.   private $parameters;
  17.   private $em;
  18.   
  19.   private $dispatcher;
  20.   
  21.   public function __construct(EntityManagerInterface  $emParameterBagInterface $parametersMailerService $mailerEventDispatcherInterface $dispatcher) {
  22.         $this->mailer $mailer;
  23.         $this->parameters $parameters;
  24.         $this->em $em;
  25.         $this->dispatcher $dispatcher;
  26.   }
  27.   public static function getSubscribedEvents(): array
  28.   {
  29.       return [
  30.         SansSuiteEvent::NAME => 'notify'
  31.       ];
  32.   }
  33.  
  34.   public function notify(SansSuiteEvent $event) {
  35.     $dossier $event->getDossier();
  36.     $dossier->setStatut(StatutDossier::STATUT_SANS_SUITE);
  37.     $statut = new StatutDossier();
  38.     $statut->setDossier($dossier);
  39.     $statut->setStatut(StatutDossier::STATUT_SANS_SUITE);
  40.     $statut->setDate(new \DateTime());
  41.     $this->em->persist($dossier);
  42.     $this->em->persist($statut);
  43.     $this->em->flush();
  44.     /*
  45.     $vars = [
  46.       'offre' => $dossier->getOffre(),
  47.       'raison_sociale' => $dossier->getEntreprise(), 
  48.       'date' =>  $dossier->getCreatedAt(), 
  49.     ];
  50.     
  51.     $object = [
  52.       'dossier' => $dossier,
  53.       'event' => $event::NAME,
  54.       'vars' => $vars,
  55.     ];
  56.     // Envoi notification membre
  57.     $this->dispatcher->dispatch(new NotifyEvent($object), NotifyEvent::NAME);
  58.     */ 
  59.     
  60.     
  61.   }
  62. }