Commit 1cd398eaec5d4d6cc0ff7bf39d1a5e4b55b0237b

Authored by Administrator
2 parents 9695c55c 6041d68e

Merge remote-tracking branch 'origin/master'

controllers/OrderController.php
... ... @@ -229,6 +229,9 @@
229 229 }
230 230  
231 231 $model = new Order();
  232 + $model->phone = '+38(000)000-00-00';
  233 + $model->name = \Yii::t('app', 'Новый заказ');
  234 + $model->save();
232 235  
233 236 $dataProvider = new ActiveDataProvider(
234 237 [
... ... @@ -324,7 +327,13 @@
324 327  
325 328 if ($model->load(Yii::$app->request->post()) && $model->save()) {
326 329 $this->unblockOrder($model->id);
327   - return $this->redirect([ 'index' ]);
  330 + return $this->render(
  331 + 'update',
  332 + [
  333 + 'model' => $model,
  334 + 'dataProvider' => $dataProvider,
  335 + ]
  336 + );
328 337 } else {
329 338 return $this->render(
330 339 'update',
... ... @@ -401,7 +410,10 @@
401 410  
402 411 public function actionExitOrder($id)
403 412 {
404   - $this->unblockOrder($id);
  413 + $model = $this->findModel($id);
  414 + if ($model->edit_id == \Yii::$app->user->id) {
  415 + $this->unblockOrder($id);
  416 + }
405 417 return $this->redirect('index');
406 418 }
407 419  
... ... @@ -412,6 +424,9 @@
412 424  
413 425 $model = $this->findModel(\Yii::$app->request->post('id'));
414 426  
  427 + $user = User::find()
  428 + ->where([ 'id' => $model->edit_id ])
  429 + ->one();
415 430 $model->edit_time = time();
416 431 $model->edit_id = \Yii::$app->user->id;
417 432  
... ... @@ -421,6 +436,7 @@
421 436 if ($model->save()) {
422 437 return [
423 438 'time' => $date,
  439 + 'user' => !empty( $user ) ? $user->username : '',
424 440 ];
425 441 } else {
426 442 return [
... ...
models/Order.php
... ... @@ -293,7 +293,7 @@
293 293 */
294 294 public function getManager()
295 295 {
296   - $this->hasOne(User::className(), [ 'id' => 'manager_id' ]);
  296 + return $this->hasOne(User::className(), [ 'id' => 'manager_id' ]);
297 297 }
298 298  
299 299 public function isBlocked()
... ...
models/OrderSearch.php
... ... @@ -75,6 +75,7 @@
75 75 $dataProvider = new ActiveDataProvider(
76 76 [
77 77 'query' => $query,
  78 + 'sort' => [ 'defaultOrder' => [ 'id' => SORT_DESC ] ],
78 79 ]
79 80 );
80 81  
... ... @@ -155,7 +156,7 @@
155 156 $query->andFilterWhere(
156 157 [
157 158 'manager_id' => $this->manager_id,
158   -
  159 +
159 160 ]
160 161 );
161 162 $query->andFilterWhere(
... ...
views/order/_form.php
... ... @@ -63,9 +63,14 @@ $(document).on('change', '#sms-template-selector', function(event) {
63 63 });
64 64  
65 65 $(document).on('click', '#send-sms-action', function(event) {
66   - console.log('click');
67   - var content = $('#sms-text-area').val()
68   - var phone = $('input#order-phone').val();
  66 + var variant = $('input[name=send-phone]:checked').val();
  67 + var content = $('#sms-text-area').val();
  68 + if (variant == 1) {
  69 + var phone = $('input#order-phone').val();
  70 + } else if (variant == 2) {
  71 + var phone = $('input#order-phone2').val();
  72 + }
  73 + console.log(phone);
69 74 $.ajax({
70 75 url: "/admin/ecommerce/order/send-sms",
71 76 method: "POST",
... ... @@ -87,9 +92,18 @@ $(document).on('click', '#send-sms-action', function(event) {
87 92 JS;
88 93  
89 94 $this->registerJs($js, View::POS_READY);
  95 +
  96 + $js = <<< JS
  97 +$(document).on('click', '#page-submit', function() {
  98 + $('#main-form').trigger('submit');
  99 +});
  100 +JS;
  101 +
  102 + $this->registerJs($js, View::POS_READY);
  103 +
90 104 ?>
91 105  
92   -<?php $form = ActiveForm::begin(); ?>
  106 +<?php $form = ActiveForm::begin([ 'id' => 'main-form' ]); ?>
93 107 <div class="container">
94 108 <div class="form-group">
95 109 <br>
... ... @@ -215,24 +229,40 @@ JS;
215 229 );
216 230 ?>
217 231 <br>
218   - <?php
219   - if ($model->isNewRecord) {
220   - echo Html::button(
221   - \Yii::t('app', 'Отправить'),
222   - [
223   - 'class' => 'btn btn-warning disabled',
224   - ]
225   - );
226   - } else {
227   - echo Html::button(
228   - \Yii::t('app', 'Отправить'),
229   - [
230   - 'class' => 'btn btn-warning',
231   - 'id' => 'send-sms-action',
232   - ]
233   - );
234   - }
235   - ?>
  232 + <div class="row">
  233 + <div class="col-md-6">
  234 + <?php
  235 + if ($model->isNewRecord) {
  236 + echo Html::button(
  237 + \Yii::t('app', 'Отправить'),
  238 + [
  239 + 'class' => 'btn btn-warning disabled',
  240 + ]
  241 + );
  242 + } else {
  243 + echo Html::button(
  244 + \Yii::t('app', 'Отправить'),
  245 + [
  246 + 'class' => 'btn btn-warning',
  247 + 'id' => 'send-sms-action',
  248 + ]
  249 + );
  250 + }
  251 + ?>
  252 + </div>
  253 + <div class="col-md-6">
  254 + <?php
  255 + echo Html::radioList(
  256 + 'send-phone',
  257 + '1',
  258 + [
  259 + '1' => 'Первый номер',
  260 + '2' => 'Второй номер',
  261 + ]
  262 + );
  263 + ?>
  264 + </div>
  265 + </div>
236 266  
237 267 </div>
238 268 <div class="col-sm-6">
... ... @@ -280,38 +310,6 @@ JS;
280 310 </div>
281 311 </div>
282 312 </div>
283   - <br>
284   - <div class="row">
285   - <?= Html::submitButton(
286   - $model->isNewRecord ? \Yii::t('app', 'Создать') : \Yii::t('app', 'Обновить'),
287   - [ 'class' => $model->isNewRecord ? 'btn btn-success btn-lg' : 'btn btn-primary btn-lg' ]
288   - ) ?>
289   - <?= Html::a(
290   - \Yii::t('app', 'Печать'),
291   - yii\helpers\Url::to(
292   - [
293   - 'order/print',
294   - 'order_id' => $model->id,
295   - ]
296   - ),
297   - [
298   - 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg',
299   - 'target' => '_blank',
300   - ]
301   - ) ?>
302   - <?= Html::a(
303   - \Yii::t('app', 'Выйти'),
304   - yii\helpers\Url::to(
305   - [
306   - 'exit-order',
307   - 'id' => $model->id,
308   - ]
309   - ),
310   - [
311   - 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg',
312   - ]
313   - ) ?>
314   - </div>
315 313 </div>
316 314  
317 315 <?php ActiveForm::end(); ?>
... ... @@ -377,8 +375,12 @@ JS;
377 375 'attribute' => 'status',
378 376 'editableOptions' => [
379 377 'header' => \Yii::t('app', 'Статус'),
380   - 'inputType' => kartik\editable\Editable::INPUT_TEXT,
  378 + 'inputType' => kartik\editable\Editable::INPUT_SELECT2,
381 379 'options' => [
  380 + 'data' => [
  381 + 0 => 'adsas',
  382 + 2 => 'dSSSSasda',
  383 + ],
382 384 'pluginOptions' => [
383 385 'min' => 0,
384 386 'max' => 20,
... ... @@ -516,6 +518,43 @@ JS;
516 518 ->label(false) ?>
517 519 <?php ActiveForm::end(); ?>
518 520 </div>
  521 +
  522 + <br>
  523 + <div class="row">
  524 + <?= Html::button(
  525 + $model->isNewRecord ? \Yii::t('app', 'Создать') : \Yii::t('app', 'Сохранить'),
  526 + [
  527 + 'class' => $model->isNewRecord ? 'btn btn-success btn-lg' : 'btn btn-primary btn-lg',
  528 + 'id' => 'page-submit',
  529 + ]
  530 + ) ?>
  531 + <?= Html::a(
  532 + \Yii::t('app', 'Печать'),
  533 + yii\helpers\Url::to(
  534 + [
  535 + 'order/print',
  536 + 'order_id' => $model->id,
  537 + ]
  538 + ),
  539 + [
  540 + 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg',
  541 + 'target' => '_blank',
  542 + ]
  543 + ) ?>
  544 + <?= Html::a(
  545 + \Yii::t('app', 'Выйти'),
  546 + yii\helpers\Url::to(
  547 + [
  548 + 'exit-order',
  549 + 'id' => $model->id,
  550 + ]
  551 + ),
  552 + [
  553 + 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg',
  554 + ]
  555 + ) ?>
  556 + </div>
  557 +
519 558 </div>
520 559 <br>
521 560 <br>
... ...
views/order/index.php
... ... @@ -189,6 +189,14 @@ JS;
189 189 'attribute' => 'id',
190 190 'filter' => $searchForm->field($searchModel, 'id')
191 191 ->textInput(),
  192 + 'content' => function($model) {
  193 + $manager = $model->manager;
  194 + if (empty($manager)) {
  195 + return $model->id;
  196 + } else {
  197 + return $model->id . ' ' . $manager->username;
  198 + }
  199 + }
192 200 ],
193 201 [
194 202 'attribute' => 'created_at',
... ...
views/order/update.php
... ... @@ -25,8 +25,12 @@ $.ajax({
25 25 id: ' . $model->id . '
26 26 },
27 27 success: function(data) {
  28 + var message = data.time;
  29 + if (data.user != "") {
  30 + message += " " + data.user;
  31 + }
28 32 $.notify({
29   - message: data.time
  33 + message: message
30 34 },{
31 35 type: "info"
32 36 });
... ... @@ -35,6 +39,23 @@ $.ajax({
35 39  
36 40 $this->registerJs($js, View::POS_READY);
37 41  
  42 + $js = '
  43 + window.onbeforeunload = function(e) {
  44 + $.ajax({
  45 + type: "GET",
  46 + url: "/admin/ecommerce/order/exit-order",
  47 + data: {
  48 + id: ' . $model->id . ',
  49 + },
  50 + success: function() {
  51 + console.log("Exit order");
  52 + }
  53 + });
  54 +};
  55 +';
  56 +
  57 + $this->registerJs($js, View::POS_READY);
  58 +
38 59 ?>
39 60 <div class="order-update">
40 61 <div class="container"><h1><?php echo Html::encode($this->title) ?></h1></div>
... ...