Commit b0c7d586b418ad6eff3ded868e1ea9b5b9082175
1 parent
f9ff89a8
-Bykov fixes
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> |