Exemple #1
0
 /**
  * @param \Spryker\Zed\Oms\Business\OrderStateMachine\OrderStateMachineInterface $orderStateMachine
  *
  * @return int
  */
 public function checkTimeouts(OrderStateMachineInterface $orderStateMachine)
 {
     $orderItems = $this->findItemsWithExpiredTimeouts();
     $countAffectedItems = $orderItems->count();
     $groupedOrderItems = $this->groupItemsByEvent($orderItems);
     foreach ($groupedOrderItems as $event => $orderItems) {
         $orderStateMachine->triggerEvent($event, $orderItems, []);
     }
     return $countAffectedItems;
 }
 /**
  * @param string $eventId
  * @param array $orderItemIds
  * @param array $data
  *
  * @return array
  */
 public function triggerEventForOrderItems($eventId, array $orderItemIds, $data)
 {
     $identifier = $this->buildIdentifierForOrderItemIdsLock($orderItemIds);
     $this->triggerLocker->acquire($identifier);
     try {
         $triggerEventResult = $this->stateMachine->triggerEventForOrderItems($eventId, $orderItemIds, $data);
     } finally {
         $this->triggerLocker->release($identifier);
     }
     return $triggerEventResult;
 }