Blame view

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