Blame view

controllers/OrderController.php 18.9 KB
e0906f08   Alexey Boroda   -Fixing existing ...
1
2
3
4
  <?php
      
      namespace artweb\artbox\ecommerce\controllers;
      
db3040d3   Alexey Boroda   -Order module alm...
5
      use artweb\artbox\components\SmsSender;
3bee3445   Alexey Boroda   -Order history ready
6
      use artweb\artbox\ecommerce\models\OrderLabelHistory;
e0906f08   Alexey Boroda   -Fixing existing ...
7
      use artweb\artbox\ecommerce\models\OrderSearch;
1f2fdc61   Alexey Boroda   -Product carousel...
8
      use common\models\User;
e0906f08   Alexey Boroda   -Fixing existing ...
9
      use Yii;
41f0c492   Yarik   Print and email
10
      use yii\data\ArrayDataProvider;
3bee3445   Alexey Boroda   -Order history ready
11
      use yii\db\ActiveQuery;
7520dc0e   Alexey Boroda   -Grid with input ...
12
      use yii\helpers\Json;
622a985a   Alexey Boroda   -Feed in process
13
      use yii\helpers\VarDumper;
e0906f08   Alexey Boroda   -Fixing existing ...
14
15
16
      use yii\web\Controller;
      use yii\filters\VerbFilter;
      use yii\data\ActiveDataProvider;
d57c8c00   Alexey Boroda   -Blocking in process
17
      use yii\web\ForbiddenHttpException;
e0906f08   Alexey Boroda   -Fixing existing ...
18
19
20
21
22
      use artweb\artbox\ecommerce\models\Order;
      use artweb\artbox\ecommerce\models\OrderProduct;
      use artweb\artbox\ecommerce\models\ProductVariant;
      use yii\web\NotFoundHttpException;
      use developeruz\db_rbac\behaviors\AccessBehavior;
d57c8c00   Alexey Boroda   -Blocking in process
23
      use yii\web\Response;
e0906f08   Alexey Boroda   -Fixing existing ...
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
      
      class OrderController extends Controller
      {
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  'access' => [
                      'class' => AccessBehavior::className(),
                      'rules' => [
                          'site' => [
                              [
                                  'actions' => [
                                      'login',
                                      'error',
                                  ],
                                  'allow'   => true,
                              ],
                          ],
                      ],
                  ],
                  'verbs'  => [
                      'class'   => VerbFilter::className(),
                      'actions' => [
                          'delete' => [ 'POST' ],
                      ],
                  ],
              ];
          }
          
          public function actionIndex()
          {
              $searchModel = new OrderSearch();
              $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
              
              return $this->render(
                  'index',
                  [
                      'dataProvider' => $dataProvider,
                      'searchModel'  => $searchModel,
                  ]
              );
          }
          
          public function actionShow($id)
          {
              
              $model = $this->findModel((int) $id);
              $dataProvider = new ActiveDataProvider(
                  [
                      'query'      => OrderProduct::find()
                                                  ->where([ 'order_id' => (int) $id ]),
                      'pagination' => [
                          'pageSize' => 20,
                      ],
                  ]
              );
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
                  return $this->redirect([ 'index' ]);
              } else {
                  $model_orderproduct = new OrderProduct();
                  
                  return $this->renderAjax(
                      'show',
                      [
                          'model'              => $model,
                          'model_orderproduct' => $model_orderproduct,
                          'dataProvider'       => $dataProvider,
                      ]
                  );
              }
          }
          
          public function actionLabelUpdate()
          {
              $model = Order::findOne($_POST[ 'order_id' ]);
              $model->label = $_POST[ 'label_id' ];
              $model->save();
          }
          
db3040d3   Alexey Boroda   -Order module alm...
106
107
108
          public function actionView($id)
          {
              $model = $this->findModel($id);
3bee3445   Alexey Boroda   -Order history ready
109
110
111
112
113
  
              $historyData = new ActiveDataProvider([
                  'query' => $model->getLabelsHistory()->with('order', 'label', 'user'),
              ]);
              
d57c8c00   Alexey Boroda   -Blocking in process
114
115
116
117
118
              $dataProvider = new ActiveDataProvider(
                  [
                      'query' => $model->getProducts(),
                  ]
              );
db3040d3   Alexey Boroda   -Order module alm...
119
120
121
122
123
              return $this->render(
                  'view',
                  [
                      'model'    => $model,
                      'products' => $dataProvider,
3bee3445   Alexey Boroda   -Order history ready
124
                      'historyData' => $historyData,
db3040d3   Alexey Boroda   -Order module alm...
125
126
127
128
                  ]
              );
          }
          
e0906f08   Alexey Boroda   -Fixing existing ...
129
130
131
132
133
134
135
          public function actionPayUpdate()
          {
              $model = Order::findOne($_POST[ 'order_id' ]);
              $model->pay = $_POST[ 'pay_id' ];
              $model->save();
          }
          
2ad65823   Alexey Boroda   -Added date range...
136
          public function actionDelete($id)
e0906f08   Alexey Boroda   -Fixing existing ...
137
          {
3e703aac   Alexey Boroda   -Order form fixes
138
139
140
141
142
143
144
145
              if (\Yii::$app->user->identity->isAdmin()) {
                  $this->findModel($id)
                       ->delete();
              }
              
              return $this->redirect([ 'index' ]);
          }
          
42883b83   Alexey Boroda   -Order form beta ...
146
147
148
149
150
151
152
153
154
155
          //        public function actionDeleteProduct($id)
          //        {
          //            $model = OrderProduct::findOne($id);
          //            $model->removed = true;
          //            $orderId = $model->order_id;
          //            if ($model->save()) {
          //                $model->order->totalRecount();
          //                return $this->actionUpdate($orderId);
          //            }
          //        }
e0906f08   Alexey Boroda   -Fixing existing ...
156
157
158
          
          public function actionAdd()
          {
3bee3445   Alexey Boroda   -Order history ready
159
              if (!empty(\Yii::$app->request->post())) {
2ad65823   Alexey Boroda   -Added date range...
160
161
                  $id = \Yii::$app->request->post('OrderProduct')[ 'id' ];
                  $order_id = \Yii::$app->request->post('OrderProduct')[ 'order_id' ];
3bee3445   Alexey Boroda   -Order history ready
162
                  if (!empty(\Yii::$app->request->post('OrderProduct')[ 'count' ])) {
2ad65823   Alexey Boroda   -Added date range...
163
                      $count = \Yii::$app->request->post('OrderProduct')[ 'count' ];
0893579c   Alexey Boroda   -Bug fixed
164
                  } else {
2ad65823   Alexey Boroda   -Added date range...
165
166
167
                      $count = 1;
                  }
                  $productVariant = ProductVariant::findOne($id);
eb190b1f   Alexey Boroda   -Order form add p...
168
                  
2ad65823   Alexey Boroda   -Added date range...
169
170
171
172
173
174
175
176
177
178
179
180
181
                  $model = OrderProduct::find()
                                       ->where(
                                           [
                                               'order_id' => $order_id,
                                           ]
                                       )
                                       ->andWhere(
                                           [
                                               'product_variant_id' => $id,
                                           ]
                                       )
                                       ->one();
                  
3bee3445   Alexey Boroda   -Order history ready
182
                  if (!empty($model)) {
2ad65823   Alexey Boroda   -Added date range...
183
184
185
186
187
188
189
190
191
192
193
                      $model->count += $count;
                  } else {
                      $model = new OrderProduct();
                      
                      $model->order_id = $order_id;
                      $model->product_variant_id = $productVariant->id;
                      $model->product_name = $productVariant->product->lang->title;
                      $model->name = $productVariant->lang->title;
                      $model->sku = $productVariant->sku;
                      $model->price = $productVariant->price;
                      $model->count = $count;
e0906f08   Alexey Boroda   -Fixing existing ...
194
                  }
2ad65823   Alexey Boroda   -Added date range...
195
196
197
                  \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                  
                  if ($model->save()) {
28b51b30   Alexey Boroda   -Order module bug...
198
                      $model->order->totalRecount();
2ad65823   Alexey Boroda   -Added date range...
199
200
201
202
203
204
205
                      return [ 'status' => 'success' ];
                  } else {
                      return [ 'status' => 'fail' ];
                  }
                  
              } else {
                  throw new NotFoundHttpException();
e0906f08   Alexey Boroda   -Fixing existing ...
206
              }
e0906f08   Alexey Boroda   -Fixing existing ...
207
208
209
210
          }
          
          public function actionCreate()
          {
2ad65823   Alexey Boroda   -Added date range...
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
              if (\Yii::$app->request->post('hasEditable')) {
                  $orderProductId = \Yii::$app->request->post('editableKey');
                  $orderProduct = OrderProduct::findOne($orderProductId);
                  $out = Json::encode(
                      [
                          'output'  => '',
                          'message' => '',
                      ]
                  );
                  
                  $posted = current(\Yii::$app->request->post('OrderProduct'));
                  $post = [ 'OrderProduct' => $posted ];
                  
                  if ($orderProduct->load($post)) {
                      $orderProduct->save();
                      $output = '';
3bee3445   Alexey Boroda   -Order history ready
227
                      if (isset($posted[ 'count' ])) {
2ad65823   Alexey Boroda   -Added date range...
228
229
230
231
232
233
234
235
236
237
238
239
240
                          $output = Yii::$app->formatter->asDecimal($orderProduct->count, 0);
                      }
                      $out = Json::encode(
                          [
                              'output'  => $output,
                              'message' => '',
                          ]
                      );
                  }
                  
                  return $out;
              }
              
e0906f08   Alexey Boroda   -Fixing existing ...
241
              $model = new Order();
b0c7d586   Alexey Boroda   -Bykov fixes
242
243
              $model->phone = '+38(000)000-00-00';
              $model->name = \Yii::t('app', 'Новый заказ');
eb190b1f   Alexey Boroda   -Order form add p...
244
              $model->published = false;
b0c7d586   Alexey Boroda   -Bykov fixes
245
              $model->save();
e0906f08   Alexey Boroda   -Fixing existing ...
246
              
7c536875   Yarik   Sms send
247
248
249
250
251
252
              return $this->redirect(
                  [
                      'update',
                      'id' => $model->id,
                  ]
              );
4ee1bc37   Alexey Boroda   -Before dev
253
              
7520dc0e   Alexey Boroda   -Grid with input ...
254
255
              $dataProvider = new ActiveDataProvider(
                  [
0893579c   Alexey Boroda   -Bug fixed
256
257
                      'query' => $model->getProducts()
                                       ->joinWith('productVariant'),
7520dc0e   Alexey Boroda   -Grid with input ...
258
259
260
                  ]
              );
              
e0906f08   Alexey Boroda   -Fixing existing ...
261
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
eb190b1f   Alexey Boroda   -Order form add p...
262
263
                  $model->published = true;
                  $model->save();
e0906f08   Alexey Boroda   -Fixing existing ...
264
265
266
267
268
                  return $this->redirect([ 'index' ]);
              } else {
                  return $this->render(
                      'create',
                      [
7520dc0e   Alexey Boroda   -Grid with input ...
269
270
                          'model'        => $model,
                          'dataProvider' => $dataProvider,
e0906f08   Alexey Boroda   -Fixing existing ...
271
272
273
274
                      ]
                  );
              }
          }
0893579c   Alexey Boroda   -Bug fixed
275
          
41f0c492   Yarik   Print and email
276
          public function actionPrint($order_id)
0893579c   Alexey Boroda   -Bug fixed
277
          {
41f0c492   Yarik   Print and email
278
279
280
281
282
283
284
285
286
287
288
              $order = $this->findModel($order_id);
              $dataProvider = new ArrayDataProvider(
                  [
                      'allModels'  => $order->products,
                      'pagination' => false,
                      'sort'       => false,
                  ]
              );
              return $this->renderPartial(
                  'print',
                  [
3bee3445   Alexey Boroda   -Order history ready
289
                      'order'        => $order,
41f0c492   Yarik   Print and email
290
291
292
                      'dataProvider' => $dataProvider,
                  ]
              );
0893579c   Alexey Boroda   -Bug fixed
293
              
54e2e678   Administrator   slider
294
          }
0893579c   Alexey Boroda   -Bug fixed
295
          
6f14188b   Alexey Boroda   -Product card fixed
296
297
          public function actionUpdate($id)
          {
2ad65823   Alexey Boroda   -Added date range...
298
              if (\Yii::$app->request->post('hasEditable')) {
7520dc0e   Alexey Boroda   -Grid with input ...
299
300
                  $orderProductId = \Yii::$app->request->post('editableKey');
                  $orderProduct = OrderProduct::findOne($orderProductId);
2ad65823   Alexey Boroda   -Added date range...
301
302
303
304
305
306
307
                  $out = Json::encode(
                      [
                          'output'  => '',
                          'message' => '',
                      ]
                  );
                  
7520dc0e   Alexey Boroda   -Grid with input ...
308
                  $posted = current(\Yii::$app->request->post('OrderProduct'));
2ad65823   Alexey Boroda   -Added date range...
309
                  $post = [ 'OrderProduct' => $posted ];
7520dc0e   Alexey Boroda   -Grid with input ...
310
                  
2ad65823   Alexey Boroda   -Added date range...
311
                  if ($orderProduct->load($post)) {
7520dc0e   Alexey Boroda   -Grid with input ...
312
                      $orderProduct->save();
793ad526   Alexey Boroda   -Brain fuck! with...
313
                      $orderProduct->order->totalRecount();
7520dc0e   Alexey Boroda   -Grid with input ...
314
                      $output = '';
3bee3445   Alexey Boroda   -Order history ready
315
                      if (isset($posted[ 'count' ])) {
7520dc0e   Alexey Boroda   -Grid with input ...
316
317
                          $output = Yii::$app->formatter->asDecimal($orderProduct->count, 0);
                      }
2ad65823   Alexey Boroda   -Added date range...
318
319
320
321
322
323
                      $out = Json::encode(
                          [
                              'output'  => $output,
                              'message' => '',
                          ]
                      );
7520dc0e   Alexey Boroda   -Grid with input ...
324
                  }
2ad65823   Alexey Boroda   -Added date range...
325
                  
7520dc0e   Alexey Boroda   -Grid with input ...
326
327
328
329
                  return $out;
              }
              
              $model = $this->findModel($id);
e861ae92   Alexey Boroda   -Add column to pa...
330
              
1f2fdc61   Alexey Boroda   -Product carousel...
331
332
333
334
              /**
               * @var User $user
               */
              $user = \Yii::$app->user->identity;
d57c8c00   Alexey Boroda   -Blocking in process
335
              if ($model->isBlocked() && $model->edit_id !== \Yii::$app->user->id) {
1f2fdc61   Alexey Boroda   -Product carousel...
336
                  if (!$user->isAdmin()) {
99de237f   Alexey Boroda   -Order block core...
337
338
                      throw new ForbiddenHttpException();
                  }
d57c8c00   Alexey Boroda   -Blocking in process
339
340
              }
              
7520dc0e   Alexey Boroda   -Grid with input ...
341
342
              $dataProvider = new ActiveDataProvider(
                  [
0893579c   Alexey Boroda   -Bug fixed
343
                      'query' => $model->getProducts()
42883b83   Alexey Boroda   -Order form beta ...
344
345
                                       ->joinWith('productVariant.product.brand')
                                       ->with('productVariant.variantStocks'),
52c27888   Alexey Boroda   -Order module tas...
346
                      'sort'  => [ 'defaultOrder' => [ 'id' => SORT_ASC ] ],
7520dc0e   Alexey Boroda   -Grid with input ...
347
348
349
                  ]
              );
              
3bee3445   Alexey Boroda   -Order history ready
350
              if (empty($model->manager_id)) {
d57c8c00   Alexey Boroda   -Blocking in process
351
352
353
                  $model->manager_id = \Yii::$app->user->id;
              }
              
793ad526   Alexey Boroda   -Brain fuck! with...
354
355
              $headers = \Yii::$app->response->headers;
              $headers->set('Access-Control-Allow-Origin', '*');
41f0c492   Yarik   Print and email
356
              
6f14188b   Alexey Boroda   -Product card fixed
357
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
d57c8c00   Alexey Boroda   -Blocking in process
358
                  $this->unblockOrder($model->id);
b0c7d586   Alexey Boroda   -Bykov fixes
359
360
361
362
363
364
365
                  return $this->render(
                      'update',
                      [
                          'model'        => $model,
                          'dataProvider' => $dataProvider,
                      ]
                  );
6f14188b   Alexey Boroda   -Product card fixed
366
367
368
369
              } else {
                  return $this->render(
                      'update',
                      [
7520dc0e   Alexey Boroda   -Grid with input ...
370
371
                          'model'        => $model,
                          'dataProvider' => $dataProvider,
6f14188b   Alexey Boroda   -Product card fixed
372
373
374
375
376
                      ]
                  );
              }
          }
          
3bee3445   Alexey Boroda   -Order history ready
377
          public function actionFindProduct($q = NULL, $id = NULL)
e0906f08   Alexey Boroda   -Fixing existing ...
378
          {
6f14188b   Alexey Boroda   -Product card fixed
379
              \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
2ad65823   Alexey Boroda   -Added date range...
380
381
              $out = [
                  'results' => [
0893579c   Alexey Boroda   -Bug fixed
382
383
                      'id'  => '',
                      'sku' => '',
2ad65823   Alexey Boroda   -Added date range...
384
                  ],
6f14188b   Alexey Boroda   -Product card fixed
385
              ];
2ad65823   Alexey Boroda   -Added date range...
386
              if (!is_null($q)) {
db3040d3   Alexey Boroda   -Order module alm...
387
                  $result = ProductVariant::find()//                                        ->select(
d57c8c00   Alexey Boroda   -Blocking in process
388
389
390
391
392
393
                  //                                            [
                  //                                                'id',
                  //                                                'sku',
                  //                                                'product_lang.title AS name'
                  //                                            ]
                  //                                        )
0893579c   Alexey Boroda   -Bug fixed
394
                                          ->joinWith('product.lang')
2ad65823   Alexey Boroda   -Added date range...
395
396
397
398
399
400
401
402
403
404
405
406
407
                                          ->where(
                                              [
                                                  'like',
                                                  'sku',
                                                  $q,
                                              ]
                                          )
                                          ->limit(20)
                                          ->asArray()
                                          ->all();
                  
                  $out[ 'results' ] = $result;
              }
2ad65823   Alexey Boroda   -Added date range...
408
              return $out;
e0906f08   Alexey Boroda   -Fixing existing ...
409
410
          }
          
db3040d3   Alexey Boroda   -Order module alm...
411
412
413
414
415
416
417
418
419
          public function actionSendSms()
          {
              $phone = \Yii::$app->request->post('phone');
              $content = \Yii::$app->request->post('content');
              $sender = \Yii::$app->sender;
              $result = $sender->send($phone, $content);
              return $phone . $content . $result;
          }
          
42883b83   Alexey Boroda   -Order form beta ...
420
421
422
423
424
425
426
427
428
429
430
431
432
          public function actionDeleteProduct($id, $order_id)
          {
              $model = OrderProduct::findOne($id);
              $model->removed = true;
              $model->save();
              $order = Order::findOne($order_id);
              $order->totalRecount();
              \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
              return [
                  'status' => 'success',
                  'id'     => $id,
              ];
          }
2ad65823   Alexey Boroda   -Added date range...
433
          
e0906f08   Alexey Boroda   -Fixing existing ...
434
435
          protected function findModel($id)
          {
3bee3445   Alexey Boroda   -Order history ready
436
              if (( $model = Order::findOne($id) ) !== NULL) {
e0906f08   Alexey Boroda   -Fixing existing ...
437
438
439
440
441
                  return $model;
              } else {
                  throw new NotFoundHttpException('The requested page does not exist.');
              }
          }
e861ae92   Alexey Boroda   -Add column to pa...
442
          
793ad526   Alexey Boroda   -Brain fuck! with...
443
          public function actionExitOrder()
99de237f   Alexey Boroda   -Order block core...
444
          {
eb190b1f   Alexey Boroda   -Order form add p...
445
              try {
793ad526   Alexey Boroda   -Brain fuck! with...
446
                  $model = Order::findOne(\Yii::$app->request->post('id'));
eb190b1f   Alexey Boroda   -Order form add p...
447
448
449
              } catch (NotFoundHttpException $e) {
                  return $this->redirect('index');
              }
b0c7d586   Alexey Boroda   -Bykov fixes
450
              if ($model->edit_id == \Yii::$app->user->id) {
793ad526   Alexey Boroda   -Brain fuck! with...
451
                  $this->unblockOrder(\Yii::$app->request->post('id'));
b0c7d586   Alexey Boroda   -Bykov fixes
452
              }
eb190b1f   Alexey Boroda   -Order form add p...
453
454
455
456
              
              if (!$model->published) {
                  $model->deleteUnpublished();
              }
41f0c492   Yarik   Print and email
457
              //            return $this->redirect('index');
793ad526   Alexey Boroda   -Brain fuck! with...
458
          }
41f0c492   Yarik   Print and email
459
          
793ad526   Alexey Boroda   -Brain fuck! with...
460
461
462
463
464
465
466
467
468
469
          public function actionCloseOrder($id)
          {
              try {
                  $model = Order::findOne($id);
              } catch (NotFoundHttpException $e) {
                  return $this->redirect('index');
              }
              if ($model->edit_id == \Yii::$app->user->id) {
                  $this->unblockOrder($id);
              }
41f0c492   Yarik   Print and email
470
              
793ad526   Alexey Boroda   -Brain fuck! with...
471
472
473
              if (!$model->published) {
                  $model->deleteUnpublished();
              }
41f0c492   Yarik   Print and email
474
              return $this->redirect('index');
99de237f   Alexey Boroda   -Order block core...
475
          }
d57c8c00   Alexey Boroda   -Blocking in process
476
477
478
          
          public function actionBlockOrder()
          {
3bee3445   Alexey Boroda   -Order history ready
479
              if (!empty(\Yii::$app->request->post())) {
d57c8c00   Alexey Boroda   -Blocking in process
480
481
482
483
                  \Yii::$app->response->format = Response::FORMAT_JSON;
                  
                  $model = $this->findModel(\Yii::$app->request->post('id'));
                  
b0c7d586   Alexey Boroda   -Bykov fixes
484
485
486
                  $user = User::find()
                              ->where([ 'id' => $model->edit_id ])
                              ->one();
d57c8c00   Alexey Boroda   -Blocking in process
487
488
489
                  $model->edit_time = time();
                  $model->edit_id = \Yii::$app->user->id;
                  
99de237f   Alexey Boroda   -Order block core...
490
491
492
                  //$date = new \DateTime("NOW"/*date('D, d M Y H:i:s', $model->edit_time)*/, new \DateTimeZone('Europe/Kiev'));
                  $date = \Yii::$app->formatter->asDatetime($model->edit_time + 7200, 'php:G : i');
                  
d57c8c00   Alexey Boroda   -Blocking in process
493
                  if ($model->save()) {
99de237f   Alexey Boroda   -Order block core...
494
495
                      return [
                          'time' => $date,
3bee3445   Alexey Boroda   -Order history ready
496
                          'user' => !empty($user) ? $user->username : '',
99de237f   Alexey Boroda   -Order block core...
497
                      ];
d57c8c00   Alexey Boroda   -Blocking in process
498
                  } else {
e861ae92   Alexey Boroda   -Add column to pa...
499
500
501
502
                      return [
                          'success' => false,
                          'errors'  => $model->errors,
                      ];
d57c8c00   Alexey Boroda   -Blocking in process
503
504
505
506
507
508
509
510
511
512
513
514
                  }
              }
          }
          
          protected function unblockOrder($id)
          {
              $model = $this->findModel($id);
              
              $model->edit_time = 0;
              $model->edit_id = 0;
              $model->save();
          }
f36d238b   Alexey Boroda   -Order publish fi...
515
          
7c536875   Yarik   Sms send
516
517
          public function actionPublishOrder($id)
          {
f36d238b   Alexey Boroda   -Order publish fi...
518
              $model = Order::findOne($id);
00a6457b   Alexey Boroda   -Sms bug fixed
519
520
521
              if ($model->published == true) {
                  exit;
              }
f36d238b   Alexey Boroda   -Order publish fi...
522
523
              $model->published = true;
              $model->save();
3bee3445   Alexey Boroda   -Order history ready
524
525
526
527
528
529
530
531
532
533
534
535
              
              /**
               * Add order to history
               */
              $history = new OrderLabelHistory();
              
              $history->label_id = (integer) $model->label;
              $history->order_id = (integer) $model->id;
              $history->user_id = (integer) \Yii::$app->user->identity->id;
              
              $history->save();
              
7c536875   Yarik   Sms send
536
537
538
539
540
541
542
543
544
545
546
547
548
              /**
               * @var SmsSender $sender
               */
              $sender = \Yii::$app->sender;
              $sender->send(
                  $model->phone,
                  $this->renderPartial(
                      '@common/mail/smsorder',
                      [
                          'order_id' => $model->id,
                      ]
                  )
              );
f36d238b   Alexey Boroda   -Order publish fi...
549
          }
e0906f08   Alexey Boroda   -Fixing existing ...
550
      }