data); } $data = sqlQueryBuilder()->select('*') ->from(static::$tableName) ->where(\Query\Operator::equals(['id' => $id])) ->execute()->fetch(); if (!$data) { return ['name' => 'Neznámá pobočka']; } return $data; } public function storeDeliveryInfo($data) { parent::storeDeliveryInfo($data); $id = trim($data['spbalikobox_id'] ?? ''); $info = $this->getInfo($id); return empty($info['id']) ? [] : ($this->data = [ 'zip' => $info['zip'], 'spbalikobox_id' => $info['id'], ]); } /** * @param $data admin order data * @param Order $order * * @return bool|string */ public function applyToOrder(&$data, $order) { parent::applyToOrder($data, $order); $info = $this->getInfo(); if (empty($info['id'])) { return translate_shop('branch_not_selected', 'delivery'); } $data['delivery_zip'] = $info['zip']; $data['delivery_street'] = $info['street']; $data['delivery_city'] = $info['city']; $data['delivery_country'] = $info['country']; $data['delivery_firm'] = ''; return true; } /** * @param $cart CartBase */ public function applyToCart(CartBase $cart) { parent::applyToCart($cart); $info = $this->getInfo(); if (empty($info['id'])) { return; } if (isset($cart->invoice['name'])) { $cart->delivery['name'] = $cart->invoice['name']; $cart->delivery['surname'] = $cart->invoice['surname']; } $cart->delivery['zip'] = $info['zip']; $cart->delivery['street'] = $info['street']; $cart->delivery['city'] = $info['city']; $cart->delivery['country'] = $info['country']; $cart->delivery['firm'] = ''; } public function printDeliveryInfo() { $info = $this->getInfo(); return "{$info['name']}, {$info['zip']} {$info['city']}, {$info['street']}"; } public function checkSelected(Cart $cart, ?Payment $payment = null) { if (empty($this->data['spbalikobox_id']) && $cart->hasData('delivery')) { throw new DeliveryException(translate_shop('branch_not_selected', 'delivery')); } return parent::checkSelected($cart, $payment); } public function importCustomData($custom_data, $insert) { return $insert; } }