예제 #1
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);
 }
예제 #2
0
 public function action_finish()
 {
     $email_config = Kohana::$config->load("email");
     $owner_emails = array("*****@*****.**");
     $owner_pushall_ids = array(8189);
     $owner_icq_uins = array(673151743);
     $model_base = new Model_Base();
     $options = $model_base->getOptions();
     $url = URL::base() . 'admin/orders/' . $_POST["order_id"];
     // Ссылка на заказ
     $sitename = $options['sitename'];
     // Название сайта
     $icon_url = URL::base() . '/img/pushall_icon.jpg';
     $title = "Вам поступил заказ в интернет-магазине \"{$sitename}\"!";
     $text = "Кликните для выяснения деталей.";
     PC::debug($sitename);
     $pushall_options = array("type" => 'unicast', "title" => $title, "text" => $text, "url" => $url, "icon" => $icon_url, "priority" => 1);
     // --- Обновление БД -----------------------------------------------------------------------
     // Регистрация пользователя
     $model_user = new Model_User();
     $email = Arr::get($_POST, 'email');
     $user = $model_user->getUser($email);
     // Пользователь не зарегистрирован
     if (!$user) {
         $user_data["username"] = $email;
         $user_data["pass"] = $model_user->generate_pass();
         $user_data["role"] = 4;
         $user_data["name"] = Arr::get($_POST, 'name');
         $user_data["phone"] = Arr::get($_POST, 'phone');
         $add_user_id = $model_user->addUser($user_data);
         $user = $model_user->getUser($email);
     }
     // Регистрация заказа
     $order_params = array("name", "phone", "email", "order_id", "delivery_type", "street", "house", "apartment", "access", "floor", "date", "delivery_time", "delivery_point", "comment", "payment_type", "payment_comment", "user_id");
     $order_data = array();
     foreach ($order_params as $param) {
         $order_data[$param] = Arr::get($_POST, $param);
     }
     $order_data["user_id"] = $user['id'];
     $model_orders = new Model_Orders();
     $model_orders->finishOrder($order_data);
     $model_email = new Model_Email();
     $model_email->addSubscriber($order_data["email"], $order_data["name"]);
     // --- /Обновление БД ----------------------------------------------------------------------
     // --- Отправка уведомлений ----------------------------------------------------------------
     include APPPATH . '/classes/Pushes.class.php';
     $pushes = new Pushes();
     // Уведомление в браузер
     foreach ($owner_pushall_ids as $owner_pushall_id) {
         $pushes->pushall_send(array_merge($pushall_options, array("uid" => $owner_pushall_id)), 'get');
     }
     // Уведомление в аську
     foreach ($owner_icq_uins as $owner_icq_uin) {
         $pushes->icq_send($owner_icq_uin, "Вам поступил заказ в интернет-магазине!\n\tПодробнее: " . $url);
     }
     // Отправка почты
     //$subject = 'Поступила заявка с сайта ' . $sitename . ' от ' .$order_data['name'];
     $subject = 'Поступила заявка с сайта ' . '"' . $sitename . '"';
     $from = $email_config['options']['username'];
     $message = '<h2>Новая заявка</h2>';
     $message .= 'Отправитель: <b>' . $order_data['name'] . ', </b><br>';
     $message .= 'Тел: <b>' . $order_data['phone'] . ', </b><br>';
     $message .= '<em>Отправлено: ' . date("d.m.Y H:i:s") . '</em>';
     $message .= '<p><a href="' . $url . '">Подробнее</a></p>';
     foreach ($owner_emails as $owner_email) {
         $pushes->mail_send($owner_email, $from, $subject, $message);
     }
     $model = array("order_id" => $order_data["order_id"]);
     // Подключение шаблона
     $this->set_template('widgets/w_success_ordering.php')->render($model)->body();
     // --- /Отправка уведомлений ---------------------------------------------------------------
 }