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; } }
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; }
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; }
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(); }