Commit 1cd398eaec5d4d6cc0ff7bf39d1a5e4b55b0237b
Merge remote-tracking branch 'origin/master'
Showing
6 changed files
with
145 additions
and
60 deletions
Show diff stats
controllers/OrderController.php
@@ -229,6 +229,9 @@ | @@ -229,6 +229,9 @@ | ||
229 | } | 229 | } |
230 | 230 | ||
231 | $model = new Order(); | 231 | $model = new Order(); |
232 | + $model->phone = '+38(000)000-00-00'; | ||
233 | + $model->name = \Yii::t('app', 'Новый заказ'); | ||
234 | + $model->save(); | ||
232 | 235 | ||
233 | $dataProvider = new ActiveDataProvider( | 236 | $dataProvider = new ActiveDataProvider( |
234 | [ | 237 | [ |
@@ -324,7 +327,13 @@ | @@ -324,7 +327,13 @@ | ||
324 | 327 | ||
325 | if ($model->load(Yii::$app->request->post()) && $model->save()) { | 328 | if ($model->load(Yii::$app->request->post()) && $model->save()) { |
326 | $this->unblockOrder($model->id); | 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 | } else { | 337 | } else { |
329 | return $this->render( | 338 | return $this->render( |
330 | 'update', | 339 | 'update', |
@@ -401,7 +410,10 @@ | @@ -401,7 +410,10 @@ | ||
401 | 410 | ||
402 | public function actionExitOrder($id) | 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 | return $this->redirect('index'); | 417 | return $this->redirect('index'); |
406 | } | 418 | } |
407 | 419 | ||
@@ -412,6 +424,9 @@ | @@ -412,6 +424,9 @@ | ||
412 | 424 | ||
413 | $model = $this->findModel(\Yii::$app->request->post('id')); | 425 | $model = $this->findModel(\Yii::$app->request->post('id')); |
414 | 426 | ||
427 | + $user = User::find() | ||
428 | + ->where([ 'id' => $model->edit_id ]) | ||
429 | + ->one(); | ||
415 | $model->edit_time = time(); | 430 | $model->edit_time = time(); |
416 | $model->edit_id = \Yii::$app->user->id; | 431 | $model->edit_id = \Yii::$app->user->id; |
417 | 432 | ||
@@ -421,6 +436,7 @@ | @@ -421,6 +436,7 @@ | ||
421 | if ($model->save()) { | 436 | if ($model->save()) { |
422 | return [ | 437 | return [ |
423 | 'time' => $date, | 438 | 'time' => $date, |
439 | + 'user' => !empty( $user ) ? $user->username : '', | ||
424 | ]; | 440 | ]; |
425 | } else { | 441 | } else { |
426 | return [ | 442 | return [ |
models/Order.php
@@ -293,7 +293,7 @@ | @@ -293,7 +293,7 @@ | ||
293 | */ | 293 | */ |
294 | public function getManager() | 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 | public function isBlocked() | 299 | public function isBlocked() |
models/OrderSearch.php
@@ -75,6 +75,7 @@ | @@ -75,6 +75,7 @@ | ||
75 | $dataProvider = new ActiveDataProvider( | 75 | $dataProvider = new ActiveDataProvider( |
76 | [ | 76 | [ |
77 | 'query' => $query, | 77 | 'query' => $query, |
78 | + 'sort' => [ 'defaultOrder' => [ 'id' => SORT_DESC ] ], | ||
78 | ] | 79 | ] |
79 | ); | 80 | ); |
80 | 81 | ||
@@ -155,7 +156,7 @@ | @@ -155,7 +156,7 @@ | ||
155 | $query->andFilterWhere( | 156 | $query->andFilterWhere( |
156 | [ | 157 | [ |
157 | 'manager_id' => $this->manager_id, | 158 | 'manager_id' => $this->manager_id, |
158 | - | 159 | + |
159 | ] | 160 | ] |
160 | ); | 161 | ); |
161 | $query->andFilterWhere( | 162 | $query->andFilterWhere( |
views/order/_form.php
@@ -63,9 +63,14 @@ $(document).on('change', '#sms-template-selector', function(event) { | @@ -63,9 +63,14 @@ $(document).on('change', '#sms-template-selector', function(event) { | ||
63 | }); | 63 | }); |
64 | 64 | ||
65 | $(document).on('click', '#send-sms-action', function(event) { | 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 | $.ajax({ | 74 | $.ajax({ |
70 | url: "/admin/ecommerce/order/send-sms", | 75 | url: "/admin/ecommerce/order/send-sms", |
71 | method: "POST", | 76 | method: "POST", |
@@ -87,9 +92,18 @@ $(document).on('click', '#send-sms-action', function(event) { | @@ -87,9 +92,18 @@ $(document).on('click', '#send-sms-action', function(event) { | ||
87 | JS; | 92 | JS; |
88 | 93 | ||
89 | $this->registerJs($js, View::POS_READY); | 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 | <div class="container"> | 107 | <div class="container"> |
94 | <div class="form-group"> | 108 | <div class="form-group"> |
95 | <br> | 109 | <br> |
@@ -215,24 +229,40 @@ JS; | @@ -215,24 +229,40 @@ JS; | ||
215 | ); | 229 | ); |
216 | ?> | 230 | ?> |
217 | <br> | 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 | </div> | 267 | </div> |
238 | <div class="col-sm-6"> | 268 | <div class="col-sm-6"> |
@@ -280,38 +310,6 @@ JS; | @@ -280,38 +310,6 @@ JS; | ||
280 | </div> | 310 | </div> |
281 | </div> | 311 | </div> |
282 | </div> | 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 | </div> | 313 | </div> |
316 | 314 | ||
317 | <?php ActiveForm::end(); ?> | 315 | <?php ActiveForm::end(); ?> |
@@ -377,8 +375,12 @@ JS; | @@ -377,8 +375,12 @@ JS; | ||
377 | 'attribute' => 'status', | 375 | 'attribute' => 'status', |
378 | 'editableOptions' => [ | 376 | 'editableOptions' => [ |
379 | 'header' => \Yii::t('app', 'Статус'), | 377 | 'header' => \Yii::t('app', 'Статус'), |
380 | - 'inputType' => kartik\editable\Editable::INPUT_TEXT, | 378 | + 'inputType' => kartik\editable\Editable::INPUT_SELECT2, |
381 | 'options' => [ | 379 | 'options' => [ |
380 | + 'data' => [ | ||
381 | + 0 => 'adsas', | ||
382 | + 2 => 'dSSSSasda', | ||
383 | + ], | ||
382 | 'pluginOptions' => [ | 384 | 'pluginOptions' => [ |
383 | 'min' => 0, | 385 | 'min' => 0, |
384 | 'max' => 20, | 386 | 'max' => 20, |
@@ -516,6 +518,43 @@ JS; | @@ -516,6 +518,43 @@ JS; | ||
516 | ->label(false) ?> | 518 | ->label(false) ?> |
517 | <?php ActiveForm::end(); ?> | 519 | <?php ActiveForm::end(); ?> |
518 | </div> | 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 | </div> | 558 | </div> |
520 | <br> | 559 | <br> |
521 | <br> | 560 | <br> |
views/order/index.php
@@ -189,6 +189,14 @@ JS; | @@ -189,6 +189,14 @@ JS; | ||
189 | 'attribute' => 'id', | 189 | 'attribute' => 'id', |
190 | 'filter' => $searchForm->field($searchModel, 'id') | 190 | 'filter' => $searchForm->field($searchModel, 'id') |
191 | ->textInput(), | 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 | 'attribute' => 'created_at', | 202 | 'attribute' => 'created_at', |
views/order/update.php
@@ -25,8 +25,12 @@ $.ajax({ | @@ -25,8 +25,12 @@ $.ajax({ | ||
25 | id: ' . $model->id . ' | 25 | id: ' . $model->id . ' |
26 | }, | 26 | }, |
27 | success: function(data) { | 27 | success: function(data) { |
28 | + var message = data.time; | ||
29 | + if (data.user != "") { | ||
30 | + message += " " + data.user; | ||
31 | + } | ||
28 | $.notify({ | 32 | $.notify({ |
29 | - message: data.time | 33 | + message: message |
30 | },{ | 34 | },{ |
31 | type: "info" | 35 | type: "info" |
32 | }); | 36 | }); |
@@ -35,6 +39,23 @@ $.ajax({ | @@ -35,6 +39,23 @@ $.ajax({ | ||
35 | 39 | ||
36 | $this->registerJs($js, View::POS_READY); | 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 | <div class="order-update"> | 60 | <div class="order-update"> |
40 | <div class="container"><h1><?php echo Html::encode($this->title) ?></h1></div> | 61 | <div class="container"><h1><?php echo Html::encode($this->title) ?></h1></div> |