Example #1
0
 /**
  * @param array $stateToTransitionsMap
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem[] $orderItems
  * @param array $sourceStateBuffer
  * @param \Spryker\Zed\Oms\Business\Util\TransitionLogInterface $log
  *
  * @return array
  */
 protected function updateStateByTransition($stateToTransitionsMap, array $orderItems, array $sourceStateBuffer, TransitionLogInterface $log)
 {
     if ($sourceStateBuffer === null) {
         $sourceStateBuffer = [];
     }
     $targetStateMap = [];
     foreach ($orderItems as $i => $orderItem) {
         $stateId = $orderItem->getState()->getName();
         $sourceStateBuffer[$orderItem->getIdSalesOrderItem()] = $stateId;
         $process = $this->builder->createProcess($orderItem->getProcess()->getName());
         $sourceState = $process->getStateFromAllProcesses($stateId);
         $log->addSourceState($orderItem, $sourceState->getName());
         $transitions = $stateToTransitionsMap[$orderItem->getState()->getName()];
         $targetState = $sourceState;
         if (count($transitions) > 0) {
             $targetState = $this->checkCondition($transitions, $orderItem, $sourceState, $log);
         }
         $log->addTargetState($orderItem, $targetState->getName());
         $targetStateMap[$i] = $targetState->getName();
     }
     foreach ($orderItems as $i => $orderItem) {
         $this->setState($orderItems[$i], $targetStateMap[$i]);
     }
     return $sourceStateBuffer;
 }
Example #2
0
 /**
  * @param string $processName
  *
  * @return array
  */
 public function getOrderItems($processName)
 {
     $orderItemsArray = [];
     $c = 0;
     $process = $this->builder->createProcess($processName);
     for ($i = 0; $i < 2; $i++) {
         foreach ($process->getAllStates() as $state) {
             $orderItemsArray[] = ['id' => $c, 'process' => $processName, 'state' => $state->getName(), 'orderId' => $i];
             $c++;
             break 2;
         }
     }
     return $orderItemsArray;
 }