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 | 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
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> | ... | ... |