Blame view

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