public function loadModel($id) { $model = BasketOrder::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
<td>Номер заказа</td> <td>Ссылка но товар</td> <td>Количество</td> <td>Дата</td> <td>Адрес доставки</td> <td>Статус</td> </tr> <?php foreach ($model as $data) { $url = ''; $quantity = 0; foreach (BasketOrder::model()->getProductInOrder($data->id) as $value) { $url .= '<a href="' . $value["url"] . '">' . $value["url"] . '</a></BR>'; $quantity = $quantity + (int) $value['quantity']; } echo ' <tr> <td>Заказ № ' . $data->id . '</td> <td>' . $url . '</td> <td>' . $quantity . '</td> <td>' . date('d.m.Y', strtotime($data->created_at)) . '</td> <td>' . $data->address . '</td> <td>' . BasketOrder::model()->getDownliststatus($data->status) . '</td> </tr> '; } ?> </tbody> </table>
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; } }
) ), 'htmlOptions'=>array('style'=>'white-space: nowrap'), ), ), )); */ $this->widget('bootstrap.widgets.TbExtendedGridView', array('template' => "{items}\n{pager}", 'id' => 'product-grid', 'dataProvider' => $provider, 'filter' => $model, 'type' => 'bordered striped', 'bulkActions' => array('actionButtons' => $this->bulkRemoveButton(), 'checkBoxColumnConfig' => array('name' => 'id')), 'afterAjaxUpdate' => 'function (){ $("#BasketOrder_created_at").daterangepicker({"language":"ru"}, function(){ $(this.element).change(); }); }', 'columns' => array(array('header' => '#', 'name' => 'id', 'htmlOptions' => array('style' => 'min-width: 50px')), array('name' => 'user_id', 'type' => 'raw', 'filter' => User::getUsersArray(), 'value' => function ($data) { $model = User::model()->findByPk($data->user_id); $html = ''; if ($model) { $html = '<a href="mailto:' . $model->email . '">' . $model->email . '</a>'; if (!empty($model->first_name)) { $html .= '<BR><a href="/admin/user/list/update?id=' . $model->id . '">' . $model->last_name . ' ' . $model->first_name . ' ' . $model->middle_name . '</a>'; } } return $html; }), array('header' => 'Заказаные товары', 'type' => 'raw', 'value' => function ($data) { $html = ''; foreach (BasketOrder::model()->getProductInOrder($data->id) as $val) { $productName = Yii::app()->db->createCommand()->select('name')->from('{{' . $val['module'] . '_elements}}')->where('id=' . (int) $val['item'])->queryRow(); $html .= '<a href="/' . $val['url'] . '" target="_blank">' . $productName['name'] . '</a><BR>'; } return $html; }), array('name' => 'status', 'value' => 'BasketOrder::model()->getDownliststatus($data->status)', 'filter' => BasketOrder::model()->getStatus()), array('name' => "created_at", 'value' => 'date("d-m-Y",strtotime($data->created_at))', 'filter' => $this->widget('bootstrap.widgets.TbDateRangePicker', array('model' => $model, 'attribute' => 'created_at', 'options' => array('language' => 'ru'), 'callback' => 'js:function(){$(this.element).change();}'), true)), array('class' => 'bootstrap.widgets.TbButtonColumn', 'template' => '{update} {delete}', 'buttons' => array('update' => array('label' => 'Изменить', 'options' => array(), 'url' => function ($data) { return Yii::app()->controller->itemUrl('update', $data->id); }), 'delete' => array('label' => 'Удалить', 'options' => array())), 'htmlOptions' => array('style' => 'white-space: nowrap')))));
public function actionIndex() { $model = BasketOrder::model()->findAll('user_id = ' . $this->modelUser->id . ' ORDER BY created_at DESC'); $renderPartial = "order"; $this->render('index', array('modelUser' => $this->modelUser, 'model' => $model, 'renderPartial' => $renderPartial)); }
</table> <table class="content_table" border="0"> <thead> <tr> <th style="text-align: left;width:10px; padding-left: 15px;"> <b>Изменить данные о заказе</b> </th> </tr> </thead> <tbody> <tr> <td> <?php echo $form->DropDownListRow($model, 'status', BasketOrder::model()->getStatus(), array('class' => 'span3')); ?> <?php echo $form->textAreaRow($model, 'address', array('class' => 'span5', 'rows' => 6, 'cols' => 50)); ?> <?php echo $form->textFieldRow($model, 'phone', array('class' => 'span5', 'maxlength' => 150)); ?> <?php echo $form->textAreaRow($model, 'comments', array('class' => 'span5', 'rows' => 6, 'cols' => 50)); ?> </td> </tr> </tbody> </table>
$total = $total + $value['quantity']; } } ?> <form action="?" method="post"> <table class="content_table edit_table" width="100%" border="0"> <thead> <tr> <th style="text-align:left;" colspan="2"> Фильтр заказов </th> </tr> </thead> <tbody> <tr> <td> <?php foreach (BasketOrder::model()->getStatus() as $key => $val) { echo '<input type="checkbox" value="' . $key . '" name="Filter[status][' . $key . ']">' . $val . '<BR>'; } ?> <?php echo $this->widget('bootstrap.widgets.TbDateRangePicker', array('name' => 'Filter[period]', 'options' => array('language' => 'ru'), 'callback' => 'js:function(){$(this.element).change();}'), true); ?> </td> </tr> </tbody> </table> <input type="submit" value="Фильтровать" name="statselect"> </form> <p>Всего заказано <?php echo count($model);