/** * @param Order $order * @return array */ public function getWorkflows($order) { $workflows = array(); // allow to add orders as long as Order status is confirmed if ($order->getStatus()->getId() === OrderStatus::STATUS_CONFIRMED) { $workflows = array(array('section' => $this->getName(), 'title' => 'salesorder.orders.shipping.create', 'route' => $this->getRoute($order->getId(), 'order', 'shippings'))); } return $workflows; }
/** * Returns all possible workflows for the current entity. * * @param Order $order * * @return array */ public function getWorkflows($order) { $workflows = array('confirm' => array('section' => $this->getName(), 'title' => 'salesorder.orders.confirm', 'event' => 'sulu.salesorder.order.confirm.clicked', 'disabled' => true), 'edit' => array('section' => $this->getName(), 'title' => 'salesorder.orders.edit', 'event' => 'sulu.salesorder.order.edit.clicked', 'disabled' => true)); // define workflows by order's status $orderStatusId = $order->getStatus()->getId(); // order is in created state if ($orderStatusId === OrderStatus::STATUS_CREATED) { $workflows['confirm']['disabled'] = false; } else { if ($orderStatusId === OrderStatus::STATUS_CONFIRMED) { $workflows['edit']['disabled'] = false; } } // get workflows from dependencies /** @var SalesDependencyClassInterface $dependency */ foreach ($this->dependencyClasses as $dependency) { $workflows = array_merge($workflows, $dependency->getWorkflows($order)); } return array_values($workflows); }