public function action_orders($data) { // id пользователя $user_id = Auth::instance()->get_user()->id; $model_orders = new Model_Orders(); // Поиск заказов пользователя $orders = $model_orders->getOrders(array(array("user_id", "=", $user_id))); $replace_val_by_id = function ($id, $val_arr, $table_val_name) { $res = ""; foreach ($val_arr as $key => $val) { if ($id == $val["id"]) { $res = $val[$table_val_name]; break; } } return $res; }; $delivery_types = $model_orders->getDeliveryTypes(); $payment_types = $model_orders->getPaymentTypes(); $delivery_points = $model_orders->getDeliveryPoints(); $delivery_times = $model_orders->getDeliveryTimes(); $order_statuses = $model_orders->getOrderStatuses(); foreach ($orders as $key => $order) { $items = Arr::get($model_orders->getOrder($order["id"]), "items"); // Есть товары if ($items) { // --- Замена id параметров на человекочитаемые ------------------------------------------------------- $orders[$key]["delivery_type"] = $replace_val_by_id($order["delivery_type"], $delivery_types, "title"); $orders[$key]["payment_type"] = $replace_val_by_id($order["payment_type"], $payment_types, "title"); $orders[$key]["delivery_point"] = $replace_val_by_id($order["delivery_point"], $delivery_points, "title"); $orders[$key]["delivery_time"] = $replace_val_by_id($order["delivery_time"], $delivery_times, "title"); $orders[$key]["status"] = $replace_val_by_id($order["status"], $order_statuses, "title"); // --- /Замена id параметров на человекочитаемые ------------------------------------------------------ //if ($order["id"] == $_COOKIE["order_id"]) //$orders[$key]["tr_style"] = ' style="background-color:#ccc;"'; $orders[$key]["href"] = "/user/cabinet/order/?id=" . $order["id"]; $orders[$key]["all_price"] = number_format($model_orders->get_all_price($order["id"]), 0, '', ' ') . ' руб.'; } else { // удаляем заказ из таблицы unset($orders[$key]); } } $model = array("orders" => $orders); return self::render('user/cabinet/orders.php', $model, "response"); }
public function action_index() { $model = array(); $counter = 0; if (isset($_COOKIE["order_id"])) { $orders = new Model_Orders(); $order_data = $orders->getOrder($_COOKIE["order_id"]); if (isset($order_data['items'])) { foreach ($order_data['items'] as $item_id => $item) { $counter += $item['cnt']; } } $model['items_count'] = $counter; } else { $model['items_count'] = 0; } Resources::add_scripts(array("js/classes/LexFormValidator.js", "js/classes/helpers.js", "js/classes/LexCookie.js", "js/classes/LexCart.js", "js/modules/cart/cart.js"), get_class()); Resources::add_styles(array("css/modules/cart/default.less"), get_class()); return $this->set_template('widgets/cart/button.php')->render($model)->body(); }
public function action_index() { if (isset($_POST['status'])) { $orders = new Model_Orders(); $orders->finishOrder($_POST); Controller::redirect('/admin/orders'); } $orders = new Model_Orders(); $order_id = $this->request->param('id'); $model = array('user' => $this->user, 'errors' => $this->errors, 'messages' => $this->messages); $model = array(); // Все заказы if ($order_id == null) { $filter = Arr::get($_GET, "filter", ""); /* 1 - Новый - new 2 - Ожидает - wait 3 - Перезвонить - call 4 - Принят - ok 5 - Отказ - fail 6 - Завершён - success Брошенная корзина - drop */ switch ($filter) { // Из архива case "archive": $items = DB::select()->from("orders")->where("archive", "=", 1)->execute()->as_array(); break; // Новые // Новые case "new": $items = DB::select()->from("orders")->where("status", "=", 1)->execute()->as_array(); break; // Ожидает // Ожидает case "wait": $items = DB::select()->from("orders")->where("status", "=", 2)->execute()->as_array(); break; // Перезвонить // Перезвонить case "call": $items = DB::select()->from("orders")->where("status", "=", 3)->execute()->as_array(); break; // Принят // Принят case "ok": $items = DB::select()->from("orders")->where("status", "=", 4)->execute()->as_array(); break; // Отказ // Отказ case "fail": $items = DB::select()->from("orders")->where("status", "=", 5)->execute()->as_array(); break; // Завершён // Завершён case "success": $items = DB::select()->from("orders")->where("status", "=", 6)->execute()->as_array(); break; // Брошенная корзина // Брошенная корзина case "drop": $items = DB::select()->from("orders")->where("time", "<", time() - 3600)->execute()->as_array(); break; default: $items = $orders->getOrders(); break; } //$model['orders'] = $orders->getOrders(); $model['orders'] = $items; $template = 'admin/admOrders'; // Конкретный заказ } else { $order_id = $this->request->param('id'); //$data['orders'] = $orders->getOrders(); $template = 'admin/admOrder'; $order_data = $orders->getOrder($order_id); $model['order_id'] = $order_id; $model['order_data'] = $order_data; $model['items'] = array(); $all_price = 0; // Есть товары if (isset($order_data['items'])) { foreach ($order_data['items'] as $item_id => $item) { array_push($model['items'], array('id' => $item_id, 'name' => $item['name'], 'img' => $item['photos'][0]['value'], 'count' => $item['cnt'], 'price' => number_format($item['price'], 0, '', ' ') . ' руб.')); $all_price += (int) $item['price'] * (int) $item['cnt']; } $model['all_price'] = number_format($all_price, 0, '', ' '); // Нет товаров } else { } } $this->template->content = View::factory($template, $model); }
public function action_cart() { /* Добавление товара в корзину $data: $item_id* - id товара $item_count* - кол-во товара $order_id - id заказа */ $methods['add_item'] = function ($data) { PC::debug($data, 'add item data'); $model_orders = new Model_Orders(); $materials = new Model_Material('groups'); // Добавление товара к существующему заказу if (isset($data['order_id'])) { PC::debug(1, 1); $res = $model_orders->addGood(Arr::get($data, 'order_id'), Arr::get($data, 'item_id'), Arr::get($data, 'item_count')); } else { PC::debug(2, 1); $item_count = Arr::get($data, 'item_count'); $res = $model_orders->newOrder(Arr::get($data, 'item_id'), $item_count); $new_count = $item_count; } $material = $materials->getMaterial(Arr::get($data, 'item_id')); $fields = $materials->getFields2(Arr::get($data, 'item_id'), TRUE); $catalog = new Model_Category('tree'); $categoryId = $materials->getTreeIdByMid(Arr::get($data, 'item_id')); $parents = $catalog->getParents($categoryId); $node = ''; foreach ($parents as $parent) { if ($parent['level'] > 1 && $parent['url'] != 'glavnaya') { $node .= $parent['url'] . '/'; } } $itemdata = $model_orders->getOrderCount(Arr::get($data, 'order_id'), Arr::get($data, 'item_id')); $item[Arr::get($data, 'item_id')] = array_merge($material, $fields); if (isset($new_count)) { $item[Arr::get($data, 'item_id')]['cnt'] = $new_count; } else { $item[Arr::get($data, 'item_id')]['cnt'] = $itemdata['cnt']; } $item[Arr::get($data, 'item_id')]['node'] = $node; return array('order_id' => $res, 'item' => $item); }; /* Удаление товара из корзины $data: $order_id* - id заказа $item_id* - id товара $item_count* - кол-во товара */ $methods['del_item'] = function ($data) { $model_orders = new Model_Orders(); extract($data); // Удаление товара из корзины $res = $model_orders->deleteItem(Arr::get($data, 'order_id'), Arr::get($data, 'item_id'), Arr::get($data, 'item_count')); return $res; }; /* Получение информации о заказе $data: $order_id* - id заказа */ $mathods['get_order'] = function ($data) { $model_orders = new Model_Orders(); $order_data = $model_orders->getOrder($data['order_id']); return $order_data; }; /* Удаление заказа $data: $order_id* - id заказа */ $mathods['del_order'] = function ($data) { PC::debug($data, 'del_order'); $model_orders = new Model_Orders(); $res = $model_orders->deleteOrder($data['order_id']); return $res; }; /* Получение информации о заказе $data: $order_id* - id заказа */ $methods['get_items'] = function ($data) { $model_orders = new Model_Orders(); //extract($data); $res = $model_orders->getOrder(Arr::get($data, 'order_id', '')); return $res; }; $data = Arr::get($_POST, 'data', ''); if ($data == '') { $data = Arr::get($_GET, 'data', ''); } extract(json_decode($data, true)); $res = false; if (isset($methods[$method])) { $res = $methods[$method]($data); PC::debug($res, 'Ajax: "' . $method . '"'); } exit(json_encode($res)); }
public function action_index() { $all_price = 0; $model = array('items' => array()); if (isset($_COOKIE["order_id"])) { $order_id = $_COOKIE["order_id"]; $orders = new Model_Orders(); $order_data = $orders->getOrder($order_id); // Есть товары if (isset($order_data['items'])) { foreach ($order_data['items'] as $item_id => $item) { $item_arr = array('id' => $item_id, 'name' => $item['name'], 'count' => $item['cnt'], 'price' => number_format($item['price'], 0, '', ' ') . ' руб.'); $item_arr["img"] = "/images3/img/noimg.png"; if (isset($item['photos'])) { if (count($item['photos'])) { $item_arr["img"] = $item['photos'][0]['value']; } } array_push($model['items'], $item_arr); $all_price += $item['price'] * $item['cnt']; } $model['visible_items_header'] = 'block'; $model['visible_fixed_panel'] = 'block'; $model['visible_empty_basket'] = 'none'; $model['col_size'] = 'col-sm-9'; $model['all_price'] = number_format($all_price, 0, '', ' '); // Нет товаров } else { $model['visible_items_header'] = 'none'; $model['visible_fixed_panel'] = 'none'; $model['visible_empty_basket'] = 'block'; $model['col_size'] = 'col-sm-12'; } // Нет активного заказа } else { $model['visible_items_header'] = 'none'; $model['visible_fixed_panel'] = 'none'; $model['visible_empty_basket'] = 'block'; $model['col_size'] = 'col-sm-12'; } // Подключение шаблона $this->set_template('widgets/w_cartpage.php')->render($model)->body(); }