Ejemplo n.º 1
0
 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");
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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));
 }
Ejemplo n.º 5
0
 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();
 }