local/modules/TracabilitePP/EventListeners/OrderEventListener.php line 34

  1. <?php
  2. namespace TracabilitePP\EventListeners;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Thelia\Core\Event\Order\GetStockUpdateOperationOnOrderStatusChangeEvent;
  5. use Thelia\Core\Event\TheliaEvents;
  6. use Thelia\Log\Tlog;
  7. use TracabilitePP\Services\ProductLotService;
  8. /**
  9.  * Class OrderEventListener
  10.  * @package TracabilitePP
  11.  * @author FrançoisCarfantan <f.carfantan@orange.fr>
  12.  */
  13. class OrderEventListener implements EventSubscriberInterface
  14. {
  15.     protected ProductLotService $plService;
  16.     public function __construct(ProductLotService $plService)
  17.     {
  18.         $this->plService $plService;
  19.     }
  20.     /**
  21.      * @inheritdoc
  22.      */
  23.     public static function getSubscribedEvents()
  24.     {
  25.         return array(TheliaEvents::ORDER_GET_STOCK_UPDATE_OPERATION_ON_ORDER_STATUS_CHANGE => array('processOrderGetStockUpdateOperationOnOrderStatusChange',110));
  26.     }
  27.     public function processOrderGetStockUpdateOperationOnOrderStatusChange(GetStockUpdateOperationOnOrderStatusChangeEvent $event)
  28.     {
  29.         $status_before $event->getOrder()->getStatusId();
  30.         $status_after $event->getNewOrderStatus()->getId();
  31.         $order $event->getOrder();
  32.         // Status 1 : non payé et 2: payé
  33.         if($status_before == && $status_after == 2){
  34.             $this->plService->updateOnlineStock($order,1);
  35.         }
  36.         elseif($status_before == && $status_after == 1){
  37.             $this->plService->updateOnlineStock($order,-1);
  38.         }
  39.         Tlog::getInstance()->addInfo("order status avant : ".$event->getOrder()->getStatusId());
  40.         Tlog::getInstance()->addInfo("order status apres : ".$event->getNewOrderStatus());
  41.       
  42.     }
  43. }