/** * @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; }