예제 #1
0
 public function action_checkout()
 {
     $model = array("order_id" => $_COOKIE["order_id"]);
     $auth = Auth::instance();
     $user = $auth->get_user();
     // Пользователь авторизован
     if ($user) {
         //id пользователя
         $user_id = $user->id;
         //l;l;
         $model_orders = new Model_Orders();
         $orders = $model_orders->getOrders(array(array("user_id", "=", $user_id)));
         $streets = array();
         $houses = array();
         $floors = array();
         $apartments = array();
         $accesses = array();
         foreach ($orders as $order) {
             if (isset($streets[$order["street"]])) {
                 $streets[$order["street"]]++;
             } else {
                 $streets[$order["street"]] = 1;
             }
             if (isset($houses[$order["house"]])) {
                 $houses[$order["house"]]++;
             } else {
                 $houses[$order["house"]] = 1;
             }
             if (isset($floors[$order["floor"]])) {
                 $floors[$order["floor"]]++;
             } else {
                 $floors[$order["floor"]] = 1;
             }
             if (isset($apartments[$order["apartment"]])) {
                 $apartments[$order["apartment"]]++;
             } else {
                 $apartments[$order["apartment"]] = 1;
             }
             if (isset($accesses[$order["access"]])) {
                 $accesses[$order["access"]]++;
             } else {
                 $accesses[$order["access"]] = 1;
             }
         }
         $model["street"] = array_search(max($streets), $streets);
         $model["house"] = array_search(max($houses), $houses);
         $model["floor"] = array_search(max($floors), $floors);
         $model["apartment"] = array_search(max($apartments), $apartments);
         $model["access"] = array_search(max($accesses), $accesses);
         $model["email"] = $user->email;
         $model["name"] = $user->name;
         $model["phone"] = $user->phone;
         //var_dump($model);
     }
     // Подключение шаблона
     $this->set_template('widgets/w_ordering.php')->render($model)->body();
 }
예제 #2
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");
 }
예제 #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);
 }