src/EventSubscriber/BookingEventSubscriber.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Booking\Booking;
  4. use App\Entity\EventCodes;
  5. use App\Manager\Level_1\BookingManager;
  6. use Crea\EventBundle\Model\CreaEvent;
  7. use Doctrine\ORM\NonUniqueResultException;
  8. class BookingEventSubscriber extends AbstractEventSubscriber
  9. {
  10.     public static function getSubscribedEvents(): array
  11.     {
  12.         return [
  13.             EventCodes::BOOKING_PAYMENT_CREATE => 'handlePaymentEvent',
  14.             EventCodes::BOOKING_PAYMENT_UPDATE => 'handlePaymentEvent',
  15.             EventCodes::BOOKING_PAYMENT_DELETE => 'handlePaymentEvent',
  16.         ];
  17.     }
  18.     /**
  19.      * @throws NonUniqueResultException
  20.      */
  21.     public function handlePaymentEvent(CreaEvent $creaEvent): void
  22.     {
  23.         /** @var Booking $booking */
  24.         $booking $this->creaEventHelper->getProjectEntity($creaEvent);
  25.         /** @var BookingManager $bookingManager */
  26.         $bookingManager $this->managerProvider->getManager(Booking::class);
  27.         $bookingManager->updateBalance($booking);
  28.         $bookingManager->manageStatus($booking);
  29.     }
  30. }