Commit e0906f08ec8110dfcfd48f12928d90b2111f4a59

Authored by Alexey Boroda
1 parent 8d168e89

-Fixing existing order form bugs

controllers/OrderController.php 0 → 100755
  1 +<?php
  2 +
  3 + namespace artweb\artbox\ecommerce\controllers;
  4 +
  5 + use artweb\artbox\ecommerce\models\OrderSearch;
  6 + use Yii;
  7 + use yii\web\Controller;
  8 + use yii\filters\VerbFilter;
  9 + use yii\data\ActiveDataProvider;
  10 + use yii\web\HttpException;
  11 + use artweb\artbox\ecommerce\models\Order;
  12 + use artweb\artbox\ecommerce\models\OrderProduct;
  13 + use artweb\artbox\ecommerce\models\ProductVariant;
  14 + use yii\web\NotFoundHttpException;
  15 + use developeruz\db_rbac\behaviors\AccessBehavior;
  16 +
  17 + class OrderController extends Controller
  18 + {
  19 + /**
  20 + * @inheritdoc
  21 + */
  22 + public function behaviors()
  23 + {
  24 + return [
  25 + 'access' => [
  26 + 'class' => AccessBehavior::className(),
  27 + 'rules' => [
  28 + 'site' => [
  29 + [
  30 + 'actions' => [
  31 + 'login',
  32 + 'error',
  33 + ],
  34 + 'allow' => true,
  35 + ],
  36 + ],
  37 + ],
  38 + ],
  39 + 'verbs' => [
  40 + 'class' => VerbFilter::className(),
  41 + 'actions' => [
  42 + 'delete' => [ 'POST' ],
  43 + ],
  44 + ],
  45 + ];
  46 + }
  47 +
  48 + public function actionIndex()
  49 + {
  50 + $searchModel = new OrderSearch();
  51 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  52 +
  53 + return $this->render(
  54 + 'index',
  55 + [
  56 + 'dataProvider' => $dataProvider,
  57 + 'searchModel' => $searchModel,
  58 + ]
  59 + );
  60 + }
  61 +
  62 + public function actionShow($id)
  63 + {
  64 +
  65 + $model = $this->findModel((int) $id);
  66 + $dataProvider = new ActiveDataProvider(
  67 + [
  68 + 'query' => OrderProduct::find()
  69 + ->where([ 'order_id' => (int) $id ]),
  70 + 'pagination' => [
  71 + 'pageSize' => 20,
  72 + ],
  73 + ]
  74 + );
  75 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  76 + return $this->redirect([ 'index' ]);
  77 + } else {
  78 + $model_orderproduct = new OrderProduct();
  79 +
  80 + return $this->renderAjax(
  81 + 'show',
  82 + [
  83 + 'model' => $model,
  84 + 'model_orderproduct' => $model_orderproduct,
  85 + 'dataProvider' => $dataProvider,
  86 + ]
  87 + );
  88 + }
  89 + }
  90 +
  91 + public function actionLabelUpdate()
  92 + {
  93 + $model = Order::findOne($_POST[ 'order_id' ]);
  94 + $model->label = $_POST[ 'label_id' ];
  95 + $model->save();
  96 + }
  97 +
  98 + public function actionPayUpdate()
  99 + {
  100 + $model = Order::findOne($_POST[ 'order_id' ]);
  101 + $model->pay = $_POST[ 'pay_id' ];
  102 + $model->save();
  103 + }
  104 +
  105 + public function actionDelete()
  106 + {
  107 + $model = Order::findOne($_GET[ 'id' ]);
  108 + $model->delete();
  109 + return Yii::$app->response->redirect([ '/order/index' ]);
  110 + }
  111 +
  112 + public function actionAdd()
  113 + {
  114 + $model = new OrderProduct();
  115 + if ($model->load(Yii::$app->request->post())) {
  116 + /**
  117 + * @var ProductVariant $modelMod
  118 + */
  119 + if (!$modelMod = ProductVariant::find()
  120 + ->with('product.lang')
  121 + ->with('lang')
  122 + ->where([ 'sku' => $model->sku ])
  123 + ->one()
  124 + ) {
  125 + throw new HttpException(404, 'Данного артикля не существует!');
  126 + }
  127 + $model->product_name = $modelMod->product->lang->title;
  128 + $model->name = $modelMod->lang->title;
  129 + $model->sku = $modelMod->sku;
  130 + $model->price = $modelMod->price;
  131 + $model->sum_cost = $model->count * $modelMod->price;
  132 + $model->product_variant_id = $modelMod->id;
  133 + $model->save();
  134 + //return Yii::$app->response->redirect(['/admin/order/show','id'=>$_GET['order_id']]);
  135 + }
  136 +
  137 + //return $this->render('add',['model'=>$model]);
  138 + }
  139 +
  140 + public function actionCreate()
  141 + {
  142 + $model = new Order();
  143 +
  144 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  145 + return $this->redirect([ 'index' ]);
  146 + } else {
  147 + return $this->render(
  148 + 'create',
  149 + [
  150 + 'model' => $model,
  151 + ]
  152 + );
  153 + }
  154 + }
  155 +
  156 + public function actionDeleteProduct($id)
  157 + {
  158 + $model = OrderProduct::findOne($id);
  159 + $model->delete();
  160 + return Yii::$app->response->redirect(
  161 + [
  162 + 'ecommerce/order',
  163 + ]
  164 + );
  165 + }
  166 +
  167 + protected function findModel($id)
  168 + {
  169 + if (( $model = Order::findOne($id) ) !== null) {
  170 + return $model;
  171 + } else {
  172 + throw new NotFoundHttpException('The requested page does not exist.');
  173 + }
  174 + }
  175 + }
views/order/_form.php 0 → 100755
  1 +<?php
  2 +
  3 + use artweb\artbox\ecommerce\models\Order;
  4 + use yii\helpers\Html;
  5 + use yii\bootstrap\ActiveForm;
  6 +
  7 + /* @var $this yii\web\View */
  8 + /* @var $model Order */
  9 + /* @var $form yii\widgets\ActiveForm */
  10 +?>
  11 +
  12 +<?php $form = ActiveForm::begin(); ?>
  13 +<div class="container" style="margin-left: 0;">
  14 + <div class="col-sm-6">
  15 +
  16 +
  17 + <?= $form->field($model, 'name') ?>
  18 +
  19 + <?= $form->field($model, 'phone') ?>
  20 +
  21 + <?= $form->field($model, 'phone2') ?>
  22 +
  23 + <?= $form->field($model, 'email') ?>
  24 +
  25 + <?= $form->field($model, 'numbercard') ?>
  26 +
  27 + <?= $form->field($model, 'body')
  28 + ->textarea([ 'rows' => '3' ]) ?>
  29 +
  30 + <?php /* $form->field($model, 'delivery')->dropDownList(ArrayHelper::map(Delivery::find()->asArray()->all(), 'id', 'title')) */ ?>
  31 +
  32 + <?= $form->field($model, 'declaration') ?>
  33 +
  34 + <?= $form->field($model, 'stock') ?>
  35 +
  36 + <?= $form->field($model, 'consignment') ?>
  37 + </div>
  38 + <div class="col-sm-6">
  39 +
  40 + <?= $form->field($model, 'payment')
  41 + ->dropDownList(
  42 + [
  43 + 'Оплатить наличными' => 'Оплатить наличными',
  44 + 'Оплатить на карту Приват Банка' => 'Оплатить на карту Приват Банка',
  45 + 'Оплатить по безналичному расчету' => 'Оплатить по безналичному расчету',
  46 + 'Оплатить Правекс-телеграф' => 'Оплатить Правекс-телеграф',
  47 + 'Наложенным платежом' => 'Наложенным платежом',
  48 + ],
  49 + [ 'prompt' => '...' ]
  50 + ); ?>
  51 +
  52 + <?= $form->field($model, 'insurance') ?>
  53 +
  54 + <?= $form->field($model, 'amount_imposed') ?>
  55 +
  56 + <?= $form->field($model, 'shipping_by') ?>
  57 +
  58 + <?= $form->field($model, 'city') ?>
  59 +
  60 + <?= $form->field($model, 'adress') ?>
  61 +
  62 +
  63 + <?= $form->field($model, 'total') ?>
  64 +
  65 + <?= $form->field($model, 'status')
  66 + ->dropDownList(
  67 + [
  68 + 'Нет' => 'Нет',
  69 + 'Обработан' => 'Обработан',
  70 + 'На комплектации' => 'На комплектации',
  71 + 'Укомплектован' => 'Укомплектован',
  72 + 'Доставка' => 'Доставка',
  73 + 'Выполнен' => 'Выполнен',
  74 + 'Резерв оплачен' => 'Резерв оплачен',
  75 + 'Резерв неоплачен' => 'Резерв неоплачен',
  76 + ],
  77 + [ 'prompt' => '...' ]
  78 + ); ?>
  79 +
  80 + <?= $form->field($model, 'comment')
  81 + ->textarea([ 'rows' => '3' ]) ?>
  82 + </div>
  83 +</div>
  84 +<div class="form-group">
  85 + <?= Html::submitButton(
  86 + $model->isNewRecord ? 'Create' : 'Update',
  87 + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]
  88 + ) ?>
  89 +</div>
  90 +<?php ActiveForm::end(); ?>
  91 +
views/order/add.php 0 → 100755
  1 +<?php
  2 +use yii\helpers\Html;
  3 +use yii\grid\GridView;
  4 +use yii\bootstrap\ActiveForm;
  5 +
  6 +
  7 +$this->title = 'Добавить товар в заказ';
  8 +$this->params['breadcrumbs'][] = $this->title;
  9 +?>
  10 +<h1>Добавить товар в заказ</h1>
  11 +
  12 + <?php $form = ActiveForm::begin([
  13 + 'id' => 'reg-form',
  14 + 'options' => ['class' => 'form-vertical','enctype' => 'multipart/form-data'],
  15 + 'fieldConfig' => [
  16 + //'template' => "{label}\n<div class=\"col-lg-5\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
  17 + //'labelOptions' => ['class' => 'col-lg-2 control-label'],
  18 + ],
  19 + ]); ?>
  20 +
  21 +<?= $form->field($model, 'art') ?>
  22 +
  23 +<?= $form->field($model, 'count') ?>
  24 +
  25 + <?= $form->field($model, 'order_id')->hiddenInput(['value'=>$_GET['order_id']])->label(false); ?>
  26 +
  27 +<div class="form-group">
  28 + <?= Html::submitButton(' Сохранить ', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
  29 +</div>
  30 + <?php ActiveForm::end(); ?>
0 \ No newline at end of file 31 \ No newline at end of file
views/order/create.php 0 → 100755
  1 +<?php
  2 +use yii\helpers\Html;
  3 +use yii\grid\GridView;
  4 +use yii\bootstrap\ActiveForm;
  5 +
  6 +
  7 +$this->title = 'Добавить товар в заказ';
  8 +$this->params['breadcrumbs'][] = ['label' => 'Pages', 'url' => ['index']];
  9 +$this->params['breadcrumbs'][] = $this->title;
  10 +?>
  11 +
  12 +<div class="order-create">
  13 + <h1><?= Html::encode($this->title) ?></h1>
  14 +
  15 + <?= $this->render('_form', [
  16 + 'model' => $model,
  17 + ]) ?>
  18 +</div>
  19 +
views/order/index.php 0 → 100755
  1 +<?php
  2 + use yii\helpers\Html;
  3 + use yii\grid\GridView;
  4 +
  5 + $this->title = 'Заказы';
  6 + $this->params[ 'breadcrumbs' ][] = $this->title;
  7 +?>
  8 + <h1>Заказы</h1>
  9 + <p>
  10 + <?= Html::a('Add order', [ 'create' ], [ 'class' => 'btn btn-success' ]) ?>
  11 + </p>
  12 +<?php \yii\widgets\Pjax::begin(
  13 + [
  14 +
  15 + ]
  16 +); ?>
  17 +<?= GridView::widget(
  18 + [
  19 + 'dataProvider' => $dataProvider,
  20 + 'filterModel' => $searchModel,
  21 + 'columns' => [
  22 +
  23 + [
  24 + 'attribute' => 'id',
  25 + 'format' => 'raw',
  26 + 'options' => [ 'class' => 'btn btn-warning' ],
  27 + 'value' => function ($model) {
  28 + return Html::button($model->id,
  29 + [
  30 + 'id' => $model->id,
  31 + 'class' => 'btn btn-warning',
  32 + ]
  33 + );
  34 +
  35 + },
  36 +
  37 + ],
  38 + [
  39 + 'attribute' => 'date_time',
  40 + 'value' => 'date_time',
  41 + ],
  42 +
  43 + [
  44 + 'attribute' => 'name',
  45 + 'value' => 'name',
  46 + 'format' => 'raw',
  47 + ],
  48 + [
  49 + 'attribute' => 'phone',
  50 + 'value' => 'phone',
  51 + ],
  52 + // [
  53 + // 'attribute' => 'total',
  54 + // 'value'=>'total',
  55 + // ],
  56 + // [
  57 + // 'filter' => yii\helpers\ArrayHelper::map(Label::find()->orderBy('id')->asArray()->all(), 'id', 'label'),
  58 + // 'attribute' => 'label',
  59 + // 'value' => function ($model, $key, $index, $column) {
  60 + // return Html::activeDropDownList($model, 'label',
  61 + // yii\helpers\ArrayHelper::map(Label::find()->orderBy('id')->asArray()->all(), 'id', 'label'),
  62 + // [
  63 + // 'prompt' => 'Нет',
  64 + // 'onchange' => "$.ajax({
  65 + // url: \"/admin/order/label-update\",
  66 + // type: \"post\",
  67 + // data: { order_id: $model->id, label_id : this.value},
  68 + // });"
  69 + // ]
  70 + //
  71 + // );
  72 + // },
  73 + // 'format' => 'raw',
  74 + // ],
  75 + // [
  76 + // 'attribute' => 'pay',
  77 + // 'filter' => [
  78 + // 0 => 'Нет',1=>'Да'
  79 + // ],
  80 + // 'value' => function ($model, $key, $index, $column) {
  81 + // return Html::activeDropDownList($model, 'pay',[0 => 'Нет',1=>'Да'],
  82 + // [
  83 + // 'onchange' => "$.ajax({
  84 + // url: \"/admin/order/pay-update\",
  85 + // type: \"post\",
  86 + // data: { order_id: $model->id, pay_id : this.value},
  87 + // });"
  88 + // ]
  89 + //
  90 + // );
  91 + // },
  92 + // 'format' => 'raw',
  93 + // ],
  94 + [
  95 + 'attribute' => 'status',
  96 + 'value' => 'status',
  97 + 'contentOptions' => [ 'style' => 'width: 5px;' ],
  98 + ],
  99 + [
  100 + 'class' => 'yii\grid\ActionColumn',
  101 + 'template' => '{delete}',
  102 + 'contentOptions' => [ 'style' => 'width: 70px;' ],
  103 + ],
  104 + ],
  105 + ]
  106 +) ?>
  107 +<?php \yii\widgets\Pjax::end(); ?>
0 \ No newline at end of file 108 \ No newline at end of file
views/order/show.php 0 → 100755
  1 +<?php
  2 +
  3 + /**
  4 + * @var Order $model
  5 + */
  6 + use artweb\artbox\ecommerce\models\Order;
  7 + use yii\helpers\Html;
  8 + use yii\grid\GridView;
  9 + use yii\bootstrap\ActiveForm;
  10 + use yii\helpers\ArrayHelper;
  11 + use artweb\artbox\ecommerce\models\Delivery;
  12 +
  13 + $this->title = 'Заказ №' . $model->id;
  14 + $this->params[ 'breadcrumbs' ][] = $this->title;
  15 +?>
  16 +<div class="show_style">
  17 +
  18 +
  19 + <?php if (!empty( $_GET[ 'success' ] )): ?>
  20 + <div class="alert alert-success">
  21 + Заказ успешно сохранен!
  22 + </div>
  23 + <?php endif; ?>
  24 +
  25 + <?php $form = ActiveForm::begin(
  26 + [
  27 + 'id' => 'reg-form',
  28 + 'layout' => 'horizontal',
  29 + 'options' => [ 'enctype' => 'multipart/form-data' ],
  30 + 'fieldConfig' => [
  31 + //'template' => "{label}\n<div class=\"col-lg-5\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
  32 + //'labelOptions' => ['class' => 'col-lg-2 control-label'],
  33 + ],
  34 + 'action' => [
  35 + 'order/show',
  36 + 'id' => $model->id,
  37 + ],
  38 + ]
  39 + ); ?>
  40 +
  41 + <div class="row">
  42 + <div class="row">
  43 + <div class="col-sm-12">
  44 + <h5>Заказ №<?= $model->id ?></h5>
  45 + <label class="control-label col-sm-3">Дата</label>
  46 + <?= $model->date_time ?>
  47 + </div>
  48 +
  49 + <?php /* echo $form->field($model, 'date_dedline')
  50 + ->widget(DatePicker::className(), [
  51 + 'pluginOptions' => [
  52 + 'format' => 'dd-mm-yyyy',
  53 + 'todayHighlight' => true
  54 + ]]); */ ?>
  55 + </div>
  56 + <div class="col-sm-6">
  57 + <?= $form->field($model, 'name') ?>
  58 +
  59 +
  60 + <?= $form->field($model, 'phone') ?>
  61 +
  62 + <?php echo $form->field($model, 'phone2'); ?>
  63 +
  64 + <?= $form->field($model, 'email') ?>
  65 +
  66 + <?php echo $form->field($model, 'numbercard'); ?>
  67 +
  68 + <?php echo $form->field($model, 'body')
  69 + ->textarea([ 'rows' => '3' ]); ?>
  70 + </div>
  71 + <div class="col-sm-6">
  72 + <?php echo $form->field($model, 'delivery')
  73 + ->dropDownList(
  74 + ArrayHelper::map(
  75 + Delivery::find()
  76 + ->joinWith('lang')
  77 + ->asArray()
  78 + ->all(),
  79 + 'id',
  80 + 'lang.title'
  81 + )
  82 + ); ?>
  83 +
  84 + <?php echo $form->field($model, 'declaration'); ?>
  85 +
  86 + <?php echo $form->field($model, 'stock'); ?>
  87 +
  88 + <?php echo $form->field($model, 'consignment'); ?>
  89 +
  90 + <?php echo $form->field($model, 'payment')
  91 + ->dropDownList(
  92 + [
  93 + 'Оплатить наличными' => 'Оплатить наличными',
  94 + 'Оплатить на карту Приват Банка' => 'Оплатить на карту Приват Банка',
  95 + 'Оплатить по безналичному расчету' => 'Оплатить по безналичному расчету',
  96 + 'Оплатить Правекс-телеграф' => 'Оплатить Правекс-телеграф',
  97 + 'Наложенным платежом' => 'Наложенным платежом',
  98 + ],
  99 + [ 'prompt' => '...' ]
  100 + ); ?>
  101 +
  102 + <?php echo $form->field($model, 'insurance'); ?>
  103 +
  104 + <?php echo $form->field($model, 'amount_imposed'); ?>
  105 +
  106 + <?php echo $form->field($model, 'shipping_by'); ?>
  107 +
  108 + <?php echo $form->field($model, 'city');
  109 +
  110 + echo $form->field($model, 'adress');
  111 +
  112 + echo $form->field($model, 'total');
  113 +
  114 + echo $form->field($model, 'status')
  115 + ->dropDownList(
  116 + [
  117 + 'Нет' => 'Нет',
  118 + 'Обработан' => 'Обработан',
  119 + 'На комплектации' => 'На комплектации',
  120 + 'Укомплектован' => 'Укомплектован',
  121 + 'Доставка' => 'Доставка',
  122 + 'Выполнен' => 'Выполнен',
  123 + 'Резерв оплачен' => 'Резерв оплачен',
  124 + 'Резерв неоплачен' => 'Резерв неоплачен',
  125 + ],
  126 + [ 'prompt' => '...' ]
  127 + ); ?>
  128 +
  129 + <?= $form->field($model, 'comment')
  130 + ->textarea([ 'rows' => '3' ]) ?>
  131 + </div>
  132 + </div>
  133 + <div class="both"></div>
  134 +
  135 + <hr/>
  136 + &nbsp;
  137 +
  138 +
  139 + <?= GridView::widget(
  140 + [
  141 + 'dataProvider' => $dataProvider,
  142 + 'columns' => [
  143 + [
  144 + 'attribute' => 'id',
  145 + 'value' => 'id',
  146 + ],
  147 + [
  148 + 'attribute' => 'sku',
  149 + 'value' => 'sku',
  150 + ],
  151 + [
  152 + 'attribute' => 'product_name',
  153 + 'value' => 'product_name',
  154 + ],
  155 + // [
  156 + // 'attribute' => 'size',
  157 + // 'value'=>'mod.size',
  158 + // 'contentOptions'=>['style'=>'width: 100px;']
  159 + // ],
  160 + // [
  161 + // 'attribute' => 'size',
  162 + // 'value'=>'mod.color',
  163 + // 'contentOptions'=>['style'=>'width: 100px;']
  164 + // ],
  165 + [
  166 + 'attribute' => 'price',
  167 + 'value' => 'price',
  168 + ],
  169 + [
  170 + 'attribute' => 'count',
  171 + 'value' => 'count',
  172 + ],
  173 + [
  174 + 'attribute' => 'sum_cost',
  175 + 'value' => 'sum_cost',
  176 + ],
  177 + [
  178 + 'class' => 'yii\grid\ActionColumn',
  179 + 'template' => '{delete}',
  180 + 'buttons' => [
  181 + 'delete' => function($url, $model) {
  182 + return Html::a(
  183 + '<span class="glyphicon glyphicon-trash"></span>',
  184 + [
  185 + 'order/delete-product',
  186 + 'id' => $model->id,
  187 + 'order_id' => (int)\Yii::$app->request->get('id'),
  188 + ],
  189 + [
  190 + 'class' => 'delete-ajax'
  191 + ]
  192 + );
  193 + },
  194 + ],
  195 + ],
  196 +
  197 + ],
  198 + ]
  199 + ) ?>
  200 + <div class="form-group">
  201 + <?= Html::submitButton(
  202 + ' Сохранить ',
  203 + [
  204 + 'class' => 'btn btn-primary btn-lg btn-block',
  205 + 'name' => 'login-button',
  206 + ]
  207 + ) ?>
  208 + </div>
  209 +
  210 + <?php ActiveForm::end(); ?>
  211 +
  212 + <div class="row">
  213 + <div class="col-sm-6">
  214 + <h1>Добавить товар в заказ</h1>
  215 +
  216 + <?php $form = ActiveForm::begin(
  217 + [
  218 + 'enableClientScript' => false,
  219 + 'id' => 'add_mod',
  220 + 'options' => [
  221 + 'class' => 'form-vertical',
  222 + 'enctype' => 'multipart/form-data',
  223 + ],
  224 + 'fieldConfig' => [
  225 + //'template' => "{label}\n<div class=\"col-lg-5\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
  226 + //'labelOptions' => ['class' => 'col-lg-2 control-label'],
  227 + ],
  228 + ]
  229 + ); ?>
  230 +
  231 + <?= $form->field($model_orderproduct, 'sku') ?>
  232 +
  233 + <?= $form->field($model_orderproduct, 'count') ?>
  234 +
  235 + <?= $form->field($model_orderproduct, 'order_id')
  236 + ->hiddenInput([ 'value' => $model->id ])
  237 + ->label(false); ?>
  238 +
  239 + <div class="form-group">
  240 + <?= Html::submitButton(
  241 + ' Добавить товар ',
  242 + [
  243 + 'class' => 'btn btn-primary',
  244 + 'name' => 'login-button',
  245 + ]
  246 + ) ?>
  247 + </div>
  248 + <?php ActiveForm::end(); ?>
  249 + </div>
  250 + </div>
  251 +
  252 +</div>
  253 +
  254 +
  255 +
views/order/update.php 0 → 100755
  1 +<?php
  2 + use yii\helpers\Html;
  3 + use yii\grid\GridView;
  4 + use yii\bootstrap\ActiveForm;
  5 + use yii\helpers\ArrayHelper;
  6 + use artweb\artbox\ecommerce\models\Delivery;
  7 +
  8 + $this->title = 'Заказ №' . $model->id;
  9 + $this->params[ 'breadcrumbs' ][] = $this->title;
  10 +?>
  11 +<h1>Заказ №<?= $model->id ?></h1>
  12 +
  13 +<?php if (!empty( $_GET[ 'success' ] )): ?>
  14 + <div class="alert alert-success">
  15 + Заказ успешно сохранен!
  16 + </div>
  17 +<?php endif; ?>
  18 +
  19 +<?php $form = ActiveForm::begin(
  20 + [
  21 + 'id' => 'reg-form',
  22 + 'layout' => 'horizontal',
  23 + 'options' => [ 'enctype' => 'multipart/form-data' ],
  24 + 'fieldConfig' => [
  25 + //'template' => "{label}\n<div class=\"col-lg-5\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
  26 + //'labelOptions' => ['class' => 'col-lg-2 control-label'],
  27 + ],
  28 + ]
  29 +); ?>
  30 +
  31 +
  32 +<div class="col-sm-6">
  33 + <div class="form-group">
  34 + <label class="control-label col-sm-3">Дата</label>
  35 + <?= $model->date_time ?>
  36 + </div>
  37 + <?= $form->field($model, 'date_dedline')
  38 + ->widget(
  39 + \yii\jui\DatePicker::className(),
  40 + [
  41 + 'clientOptions' => [],
  42 + 'options' => [
  43 + 'class' => 'form-control',
  44 + 'style' => 'width:150px;',
  45 + ],
  46 + 'dateFormat' => 'yyyy-MM-dd',
  47 + ]
  48 + ) ?>
  49 +
  50 + <?= $form->field($model, 'surname') ?>
  51 +
  52 + <?= $form->field($model, 'name') ?>
  53 +
  54 + <?= $form->field($model, 'patronymic') ?>
  55 +
  56 + <?= $form->field($model, 'phone') ?>
  57 +
  58 + <?= $form->field($model, 'phone2') ?>
  59 +
  60 + <?= $form->field($model, 'email') ?>
  61 +
  62 + <?= $form->field($model, 'numbercard') ?>
  63 +
  64 + <?= $form->field($model, 'delivery')
  65 + ->dropDownList(
  66 + ArrayHelper::map(
  67 + Delivery::find()
  68 + ->asArray()
  69 + ->all(),
  70 + 'id',
  71 + 'title'
  72 + )
  73 + ) ?>
  74 +
  75 + <?= $form->field($model, 'declaration') ?>
  76 +
  77 + <?= $form->field($model, 'stock') ?>
  78 +
  79 + <?= $form->field($model, 'consignment') ?>
  80 +</div>
  81 +<div class="col-sm-6">
  82 + <?= $form->field($model, 'payment')
  83 + ->dropDownList(
  84 + [
  85 + 'Оплатить наличными' => 'Оплатить наличными',
  86 + 'Оплатить на карту Приват Банка' => 'Оплатить на карту Приват Банка',
  87 + 'Оплатить по безналичному расчету' => 'Оплатить по безналичному расчету',
  88 + 'Оплатить Правекс-телеграф' => 'Оплатить Правекс-телеграф',
  89 + 'Наложенным платежом' => 'Наложенным платежом',
  90 + ],
  91 + [ 'prompt' => '...' ]
  92 + ); ?>
  93 +
  94 + <?= $form->field($model, 'insurance') ?>
  95 +
  96 + <?= $form->field($model, 'amount_imposed') ?>
  97 +
  98 + <?= $form->field($model, 'shipping_by') ?>
  99 +
  100 + <?= $form->field($model, 'city') ?>
  101 +
  102 + <?= $form->field($model, 'adress') ?>
  103 +
  104 + <?= $form->field($model, 'body')
  105 + ->textArea([ 'rows' => '6' ]) ?>
  106 +
  107 + <?= $form->field($model, 'total') ?>
  108 +
  109 + <?= $form->field($model, 'status')
  110 + ->dropDownList(
  111 + [
  112 + 'Нет' => 'Нет',
  113 + 'Обработан' => 'Обработан',
  114 + 'На комплектации' => 'На комплектации',
  115 + 'Укомплектован' => 'Укомплектован',
  116 + 'Доставка' => 'Доставка',
  117 + 'Выполнен' => 'Выполнен',
  118 + 'Резерв оплачен' => 'Резерв оплачен',
  119 + 'Резерв неоплачен' => 'Резерв неоплачен',
  120 + ],
  121 + [ 'prompt' => '...' ]
  122 + ); ?>
  123 +
  124 + <?= $form->field($model, 'comment')
  125 + ->textArea([ 'rows' => '6' ]) ?>
  126 +</div>
  127 +<div class="form-group">
  128 + <?= Html::submitButton(
  129 + ' Сохранить ',
  130 + [
  131 + 'class' => 'btn btn-primary btn-lg btn-block',
  132 + 'name' => 'login-button',
  133 + ]
  134 + ) ?>
  135 +</div>
  136 +
  137 +<?php ActiveForm::end(); ?>
  138 +<hr/>
  139 +<?= Html::a(
  140 + 'Добавить товар',
  141 + [
  142 + '/admin/order/add',
  143 + 'order_id' => $model->id,
  144 + ],
  145 + [ 'class' => 'btn btn-success' ]
  146 +) ?>
  147 +<?= GridView::widget(
  148 + [
  149 + 'dataProvider' => $dataProvider,
  150 + 'columns' => [
  151 + [
  152 + 'attribute' => 'id',
  153 + 'value' => 'id',
  154 + 'contentOptions' => [ 'style' => 'width: 70px;' ],
  155 + ],
  156 + [
  157 + 'attribute' => 'art',
  158 + 'value' => 'art',
  159 + 'contentOptions' => [ 'style' => 'width: 50px;' ],
  160 + ],
  161 + [
  162 + 'attribute' => 'product_name',
  163 + 'value' => 'product_name',
  164 + //'contentOptions'=>['style'=>'max-width: 300px;']
  165 + ],
  166 + [
  167 + 'attribute' => 'name',
  168 + 'value' => 'name',
  169 + //'contentOptions'=>['style'=>'max-width: 300px;']
  170 + ],
  171 + [
  172 + 'attribute' => 'cost',
  173 + 'value' => 'cost',
  174 + 'contentOptions' => [ 'style' => 'width: 100px;' ],
  175 + ],
  176 + [
  177 + 'attribute' => 'count',
  178 + 'value' => 'count',
  179 + 'contentOptions' => [ 'style' => 'width: 30px;' ],
  180 + ],
  181 + [
  182 + 'attribute' => 'sum_cost',
  183 + 'value' => 'sum_cost',
  184 + 'contentOptions' => [ 'style' => 'width: 100px;' ],
  185 + ],
  186 + [
  187 + 'class' => 'yii\grid\ActionColumn',
  188 + 'template' => '{delete}',
  189 + 'contentOptions' => [ 'style' => 'width: 20px;' ],
  190 + 'buttons' => [
  191 + 'delete' => function ($url, $model) {
  192 + return Html::a(
  193 + '<span class="glyphicon glyphicon-trash"></span>',
  194 + [
  195 + '/admin/order/delete_product',
  196 + 'id' => $model->id,
  197 + 'order_id' => $_GET[ 'id' ],
  198 + ],
  199 + [
  200 + 'title' => "Удалить",
  201 + 'data-confirm' => 'Удалить?',
  202 + ]
  203 + );
  204 + },
  205 + ],
  206 + ],
  207 +
  208 + ],
  209 + ]
  210 +) ?>
  211 +
  212 +
  213 +