contexts = ServiceContainer::getService(DynamicContexts::class); } private function getUserPreorder(): UserPreorder { if ($this->userPreorder === null) { [$userId, $dateId] = explode('-', $this->getID()); $this->userPreorder = new UserPreorder((int) $userId, (int) $dateId); } return $this->userPreorder; } protected function getObject() { return $this->getUserPreorder()->getTemplateVars(); } public function get_vars() { $vars = parent::get_vars(); $this->contexts->activateUserPreorder($this->getUserPreorder()); return $vars; } public function hasRights($name = null): bool { switch ($name) { case \Window::RIGHT_DUPLICATE: case \Window::RIGHT_DELETE: return false; default: return true; } } public function handleUpdate(): true { $vars = $this->get_vars(); $data = $vars['body']['data']; $items = isset($data['items']) ? array_filter($data['items']) : []; if (!empty($items)) { /** @var OrderCreator $orderCreator */ $orderCreator = ServiceContainer::getService(OrderCreator::class); $userPreorder = new UserPreorder((int) $data['id_user'], (int) $data['id_preorder_date']); $order = $orderCreator->createOrder($userPreorder, $items); $this->returnOK("Objednávka {$order->order_no} úspěšně vytvořena."); } return true; } } return preordersCreateOrder::class;