local/modules/TracabilitePP/EventListeners/OrderEventListener.php line 34
<?phpnamespace TracabilitePP\EventListeners;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Thelia\Core\Event\Order\GetStockUpdateOperationOnOrderStatusChangeEvent;use Thelia\Core\Event\TheliaEvents;use Thelia\Log\Tlog;use TracabilitePP\Services\ProductLotService;/*** Class OrderEventListener* @package TracabilitePP* @author FrançoisCarfantan <f.carfantan@orange.fr>*/class OrderEventListener implements EventSubscriberInterface{protected ProductLotService $plService;public function __construct(ProductLotService $plService){$this->plService = $plService;}/*** @inheritdoc*/public static function getSubscribedEvents(){return array(TheliaEvents::ORDER_GET_STOCK_UPDATE_OPERATION_ON_ORDER_STATUS_CHANGE => array('processOrderGetStockUpdateOperationOnOrderStatusChange',110));}public function processOrderGetStockUpdateOperationOnOrderStatusChange(GetStockUpdateOperationOnOrderStatusChangeEvent $event){$status_before = $event->getOrder()->getStatusId();$status_after = $event->getNewOrderStatus()->getId();$order = $event->getOrder();// Status 1 : non payé et 2: payéif($status_before == 1 && $status_after == 2){$this->plService->updateOnlineStock($order,1);}elseif($status_before == 2 && $status_after == 1){$this->plService->updateOnlineStock($order,-1);}Tlog::getInstance()->addInfo("order status avant : ".$event->getOrder()->getStatusId());Tlog::getInstance()->addInfo("order status apres : ".$event->getNewOrderStatus());}}