src/Aqarmap/Bundle/CreditBundle/EventListener/ChurnAndExpiryEventSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\CreditBundle\EventListener;
  3. use Aqarmap\Bundle\CreditBundle\Event\ChurnAndExpiryEvent;
  4. use Aqarmap\Bundle\CreditBundle\Services\ChurnAndExpiryManager;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class ChurnAndExpiryEventSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var EntityManagerInterface
  11.      */
  12.     private $em;
  13.     /**
  14.      * @var ChurnAndExpiryManager
  15.      */
  16.     private $churnAndExpiryManager;
  17.     /**
  18.      * ChurnAndExpiryListener constructor.
  19.      */
  20.     public function __construct(EntityManagerInterface $emChurnAndExpiryManager $churnAndExpiryManager)
  21.     {
  22.         $this->em $em;
  23.         $this->churnAndExpiryManager $churnAndExpiryManager;
  24.     }
  25.     public function onUserRenewal(ChurnAndExpiryEvent $churnAndExpiryEvent): void
  26.     {
  27.         $account $churnAndExpiryEvent->getUser();
  28.         $staffHistory $this->em->getRepository('AqarmapCRMBundle:StaffHistory')
  29.             ->findOneBy(['user' => $account], ['createdAt' => 'DESC']);
  30.         if ($staffHistory) {
  31.             try {
  32.                 $this->churnAndExpiryManager->updateChurnHistory($account$staffHistory);
  33.             } catch (\Exception $exception) {
  34.                 return;
  35.             }
  36.         }
  37.     }
  38.     public static function getSubscribedEvents()
  39.     {
  40.         return [
  41.             ChurnAndExpiryEvent::NAME => 'onUserRenewal',
  42.         ];
  43.     }
  44. }