Esempio n. 1
0
 public function actionDeleteproduct($id)
 {
     $model = BasketItems::model()->findByPk($id);
     $modelOrder = $this->loadModel($model->basket_order_id);
     $model->delete();
     //Проверяем есть ли еще товары в заказе - если нет, удаляем заказ
     $model = BasketItems::model()->find('basket_order_id=' . $modelOrder->id);
     if (!$model) {
         $modelOrder->delete();
         $this->redirect('/admin/basket/basket/orders');
     }
     $this->redirect('/admin/basket/basket/update?id=' . $model->id);
 }
 public function actionAjaxfastorder($id)
 {
     $ret = array();
     $ret['error'] = '';
     $id = intval($id);
     if (!$id) {
         $ret['error'] = 'Неверный ID товара';
         echo json_encode($ret);
         exit;
     }
     $model_catalog_element = CatalogElements::model()->find("id=" . $id);
     if (!$model_catalog_element) {
         $ret['error'] = 'Товар ' . $id . ' не существует';
         echo json_encode($ret);
         exit;
     }
     $_name = isset($_POST['name']) ? $_POST['name'] : '';
     $_phone = isset($_POST['phone']) ? $_POST['phone'] : '';
     $_email = isset($_POST['email']) ? $_POST['email'] : '';
     if (strlen($_name) < 3) {
         $ret['error'] = 'Имя не может бть короче 3 символов';
         echo json_encode($ret);
         exit;
     }
     if (strlen($_phone) < 6) {
         $ret['error'] = 'Телефон не может быть короче 6 символов';
         echo json_encode($ret);
         exit;
     }
     if (strlen($_email) < 6) {
         $ret['error'] = 'Email не может быть короче 6 символов';
         echo json_encode($ret);
         exit;
     }
     $comment = "На сайте " . $_SERVER['HTTP_HOST'] . " сделан заказ с помощью формы быстрого заказа" . "\r\n" . "Имя: " . $_name . "\r\n" . "Email: " . $_email . "\r\n" . "Телефон: " . $_phone . "\r\n" . "Товар: " . $model_catalog_element->name . "\r\n" . "Цена товара: " . $model_catalog_element->price . "\r\n" . "Страница товара: http://" . $_SERVER['HTTP_HOST'] . '/catalog/' . $model_catalog_element->id . "\r\n" . "Свяжитесь с клиентом для уточнения деталей заказа.";
     $message = $comment;
     $sms = SiteModuleSettings::model()->find('site_module_id = 4');
     if ($sms) {
         $email = $sms->email;
         mail($email, 'Cделан быстрый заказ на сайте ' . $_SERVER['HTTP_HOST'], $message);
         $ret['confirm'] = 'OK';
         if (Yii::app()->user->isGuest) {
             //Регистрируем пользователя, если он не был зарегистрирован
             if (!($model = User::model()->find('email LIKE "' . $_email . '"'))) {
                 $password = Yii::app()->helper->random(6, '0123456789');
                 $model = new User();
                 $model->email = $_email;
                 $model->password = $password;
                 $model->password_repeat = $model->password;
                 $model->role_id = 'user';
                 $model->username = $model->email;
                 $model->state = 1;
                 //Сразу активируем аккаунт
                 if ($model->save()) {
                     //отправляем заказчику письмо с новым паролем
                     $message = "На сайте " . $_SERVER['HTTP_HOST'] . " был создан Ваш профиль:" . "\r\n" . "Логин: " . $model->email . "\r\n" . "Пароль: " . $password . "\r\n";
                     mail($_email, 'Вы были зарегистрированы на сайте ' . $_SERVER['HTTP_HOST'], $message);
                 }
             }
         } else {
             $model = User::model()->findByPk(Yii::app()->user->id);
         }
         $message = "Данные о Вашем заказе:" . "\r\n" . "Имя: " . $_name . "\r\n" . "Email: " . $_email . "\r\n" . "Телефон: " . $_phone . "\r\n" . "Товар: " . $model_catalog_element->name . "\r\n" . "Цена товара: " . $model_catalog_element->price . "\r\n" . "Страница товара: http://" . $_SERVER['HTTP_HOST'] . '/catalog/' . $model_catalog_element->id . "\r\n" . "Мы свяжемся с Вами в ближайшее время!";
         mail($_email, 'Данные о Вашем заказе на  сайте ' . $_SERVER['HTTP_HOST'], $message);
         //Фиксируем заказ в БД
         $modelOrder = new BasketOrder();
         $modelOrder->user_id = $model->id;
         $modelOrder->phone = $_phone;
         $modelOrder->comments = $comment;
         $modelOrder->status_at = date('Y-m-d H:i:s');
         if ($modelOrder->save()) {
             $modelItem = new BasketItems();
             $modelItem->basket_order_id = $modelOrder->id;
             $modelItem->module = 'catalog';
             $modelItem->url = '/catalog/' . $model_catalog_element->id;
             $modelItem->quantity = 1;
             $modelItem->price = $model_catalog_element->price;
             $modelItem->save();
         }
         echo json_encode($ret);
         exit;
     } else {
         $ret['confirm'] = 'Error';
         echo json_encode($ret);
         exit;
     }
 }
Esempio n. 3
0
 public function sendEmailAdmin($id)
 {
     $email = "*****@*****.**";
     $subject = "Новый заказ товаров";
     $model = $this->loadModel((int) $id);
     $bayerName = User::model()->findByPk((int) Yii::app()->user->id);
     $body = "<b>Заказ товара покупателем: " . (!empty($bayerName->first_name) ? $bayerName->first_name : 'не указан') . "</b><BR>";
     $body_address = 'Адрес доставки заказа: ' . $model->address . '<BR>
             Телефон: ' . $model->phone . '<BR>
             Примечания: ' . $model->comments . '<BR>
             ';
     $body .= '<table style="border: 1px solid #000000">';
     $body .= '<thead><tr><th>Название</th><th>Ссылка на товар</th><th>Заказаное количество</th></tr></thead>';
     $body .= '<tbody>';
     foreach (BasketItems::model()->findAll('basket_order_id = ' . $model->id) as $data) {
         $productModel = Yii::app()->db->createCommand()->select('name')->from('{{' . $data->module . '_elements}}')->where('id=' . (int) $data->item)->queryRow();
         $body .= '
             <tr>
                 <td>' . $productModel['name'] . '</td>
                 <td>' . SITE_NAME_FULL . '/' . $data->url . '</td>
                 <td>' . $data->quantity . '</td>
             </tr>
             ';
     }
     $body .= '
         </tbody>
         </table>';
     $body .= '<b>Указаные при заказе данные о доставки товара:</b><BR>';
     $body .= $body_address;
     $body .= '<b>Информация о пользователе:</b><BR>';
     $body .= "\n                            Покупатель: " . (!empty($bayerName->first_name) ? $bayerName->first_name : 'не указан') . "<BR>\n                            Организация: " . (!empty($bayerName->organization) ? $bayerName->organization : 'не указана') . "<BR>\n                            Юр. адрес: " . (!empty($bayerName->ur_addres) ? $bayerName->ur_addres : 'не указан') . "<BR>\n                            Физ. адрес: " . (!empty($bayerName->fiz_addres) ? $bayerName->fiz_addres : 'не указан') . "<BR>\n                            ИНН: " . (!empty($bayerName->inn) ? $bayerName->inn : 'не указан') . "<BR>\n                            КПП: " . (!empty($bayerName->kpp) ? $bayerName->kpp : 'не указан') . "<BR>\n                            ОКПО: " . (!empty($bayerName->okpo) ? $bayerName->okpo : 'не указан') . "<BR>\n                            Email: " . $bayerName->email . "<BR>\n                            ";
     Yii::app()->mailer->send(array('email' => $email, 'subject' => $subject, 'body' => $body));
     return true;
 }
Esempio n. 4
0
 public function getProductInOrder($id)
 {
     $result = array();
     $i = 0;
     foreach (BasketItems::model()->findAll('basket_order_id=' . (int) $id) as $data) {
         $result[$i]['module'] = $data->module;
         $result[$i]['url'] = $data->url;
         $result[$i]['item'] = $data->item;
         $result[$i]['quantity'] = $data->quantity;
         $result[$i]['comments'] = $data->comments;
         ++$i;
     }
     return $result;
 }
Esempio n. 5
0
 public function actionIndex()
 {
     //echo 123; exit;
     //Сравнение товаров
     if (isset($_GET['e']) && isset($_GET['m']) && $_GET['m'] == '47' && isset($_GET['u'])) {
         //Пишу в ссесию
         if (empty(Yii::app()->session['compare_selection'])) {
             Yii::app()->session->add('compare_selection', array());
         }
         $compare_selection = Yii::app()->session['compare_selection'];
         $add_compare_selection = array($_GET);
         Yii::app()->session->add('compare_selection', array_merge($compare_selection, $add_compare_selection));
     }
     //Удаление из сравнения товаров
     if (isset($_GET['id']) && isset($_GET['type']) && $_GET['type'] == "delete") {
         //Пишу в ссесию
         if (empty(Yii::app()->session['compare_selection'])) {
             Yii::app()->session->add('compare_selection', array());
         }
         $compare_selection = Yii::app()->session['compare_selection'];
         $add_compare_selection = array();
         if (!empty($compare_selection)) {
             foreach ($compare_selection as $key => $value) {
                 if ($value['e'] == (int) $_GET['id']) {
                     continue;
                 }
                 $add_compare_selection[] = $value;
             }
         }
         Yii::app()->session->add('compare_selection', $add_compare_selection);
         echo 'ok';
     }
     //Количество не оформленых товаров в корзине
     if (isset($_GET['basket']) && $_GET['basket'] == "getcount") {
         $result = 0;
         $cookies = Yii::app()->request->cookies;
         if (!empty($cookies['basket']) && ($basket = $cookies['basket']->value)) {
             $basket = unserialize($basket);
             foreach ($basket as $key => $value) {
                 $result = (int) $result + (int) $value['quantity'];
             }
         }
         /*
         if (!Yii::app()->user->isGuest){
             $basketCount = 0;
             $arr_id = null;
             foreach( Yii::app()->db->createCommand()
                 ->select('id')
                 ->from('{{basket_order}}')
                 ->where('status=0 AND user_id='.(int)Yii::app()->user->id)
                 ->queryAll() as $val){
                 $arr_id[] = $val['id'];
             }
             if (!empty($arr_id)){
                 $arr_id = implode(",", $arr_id);
                 $basketCount = Yii::app()->db->createCommand()
                     ->select('sum(quantity) as count')
                     ->from('{{basket_items}}')
                     ->where('basket_order_id in ('.$arr_id.')')
                     ->queryRow();
                 $result = (int)((current($basketCount)));
             }
         }
         */
         echo $result;
     }
     //Добавление товара в корзину
     if (isset($_POST['m']) && $_POST['m'] == "31" && isset($_POST['path']) && isset($_POST['module']) && isset($_POST['parent_id'])) {
         $quantity = 1;
         $k = $_POST['path'];
         //Пишем в куки заказаные товары
         $cookies = Yii::app()->request->cookies;
         $basket = array();
         //Получаем заказаные ранее товары из куки
         if (isset($cookies['basket'])) {
             $basket = $cookies['basket']->value;
             $basket = unserialize($basket);
         }
         //Если есть заказаный ранее такой товар - увеличиваем кол-во на 1
         $basket[$k]['quantity'] = isset($basket[$k]) ? (int) $basket[$k]['quantity'] + $quantity : $quantity;
         $basket[$k]['module'] = $_POST['module'];
         $basket[$k]['url'] = $_POST['path'];
         $basket[$k]['item'] = $_POST['parent_id'];
         $basket[$k]['price'] = BasketItems::model()->returnPrice((int) $_POST['parent_id'], $basket[$k]['quantity']);
         $basket = new CHttpCookie('basket', serialize($basket));
         $cookies['basket'] = $basket;
         echo 'ok';
     }
     Yii::app()->end();
 }