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_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(); // --- /Отправка уведомлений --------------------------------------------------------------- }