src/App/EventListener/Client/Order/OrderListener.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\EventListener\Client\Order;
  3. use App\Entity\Client\Order\Order;
  4. use App\Entity\Client\Store\StoreHeader;
  5. use App\EventListener\GenericEvent;
  6. use App\Service\AppManager;
  7. use App\Service\Client\Order\OrderManager;
  8. class OrderListener
  9. {
  10.     private OrderManager $orderManager;
  11.     private AppManager $appManager;
  12.     public function __construct(OrderManager $orderManagerAppManager $appManager)
  13.     {
  14.         $this->orderManager $orderManager;
  15.         $this->appManager $appManager;
  16.     }
  17.     public function confirm(GenericEvent $genericEvent)
  18.     {
  19.         $order $genericEvent->getSubject();
  20.         if (!$order instanceof Order) {
  21.             return;
  22.         }
  23.         if ($order->getHeader() instanceof StoreHeader) {
  24.             throw new \Exception('Order is locked.');
  25.         }
  26.         $this->orderManager->confirm($order);
  27.         $this->appManager->eventPersist($order->getHeader());
  28.     }
  29. }