Blame view

backend/controllers/OrderController.php 5.73 KB
8af13427   Yarik   For leha commit.
1
2
3
4
  <?php
      
      namespace backend\controllers;
      
c70f24ea   Yarik   For Leha commit.
5
      use backend\models\OrderSearch;
8af13427   Yarik   For leha commit.
6
7
8
9
10
      use Yii;
      use yii\web\Controller;
      use yii\filters\VerbFilter;
      use yii\data\ActiveDataProvider;
      use yii\web\HttpException;
c70f24ea   Yarik   For Leha commit.
11
12
      use common\models\Order;
      use backend\models\OrderProduct;
8af13427   Yarik   For leha commit.
13
14
15
16
      use common\modules\product\models\ProductVariant;
      use yii\web\NotFoundHttpException;
      use developeruz\db_rbac\behaviors\AccessBehavior;
      
c70f24ea   Yarik   For Leha commit.
17
      class OrderController extends Controller
8af13427   Yarik   For leha commit.
18
19
20
21
22
23
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
      {
          /**
           * @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()
          {
c70f24ea   Yarik   For Leha commit.
50
              $searchModel = new OrderSearch();
8af13427   Yarik   For leha commit.
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
              $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(
                  [
c70f24ea   Yarik   For Leha commit.
68
                      'query'      => OrderProduct::find()
8af13427   Yarik   For leha commit.
69
70
71
72
73
74
75
76
77
                                                  ->where([ 'order_id' => (int) $id ]),
                      'pagination' => [
                          'pageSize' => 20,
                      ],
                  ]
              );
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
                  return $this->redirect([ 'index' ]);
              } else {
c70f24ea   Yarik   For Leha commit.
78
                  $model_orderproduct = new OrderProduct();
8af13427   Yarik   For leha commit.
79
80
81
82
83
84
85
86
87
88
89
90
                  
                  return $this->renderAjax(
                      'show',
                      [
                          'model'              => $model,
                          'model_orderproduct' => $model_orderproduct,
                          'dataProvider'       => $dataProvider,
                      ]
                  );
              }
          }
          
c70f24ea   Yarik   For Leha commit.
91
          public function actionLabelUpdate()
8af13427   Yarik   For leha commit.
92
          {
c70f24ea   Yarik   For Leha commit.
93
              $model = Order::findOne($_POST[ 'order_id' ]);
8af13427   Yarik   For leha commit.
94
95
96
97
              $model->label = $_POST[ 'label_id' ];
              $model->save();
          }
          
c70f24ea   Yarik   For Leha commit.
98
          public function actionPayUpdate()
8af13427   Yarik   For leha commit.
99
          {
c70f24ea   Yarik   For Leha commit.
100
              $model = Order::findOne($_POST[ 'order_id' ]);
8af13427   Yarik   For leha commit.
101
102
103
104
105
106
              $model->pay = $_POST[ 'pay_id' ];
              $model->save();
          }
          
          public function actionDelete()
          {
c70f24ea   Yarik   For Leha commit.
107
              $model = Order::findOne($_GET[ 'id' ]);
8af13427   Yarik   For leha commit.
108
109
110
111
112
113
              $model->delete();
              return Yii::$app->response->redirect([ '/order/index' ]);
          }
          
          public function actionAdd()
          {
c70f24ea   Yarik   For Leha commit.
114
              $model = new OrderProduct();
8af13427   Yarik   For leha commit.
115
              if ($model->load(Yii::$app->request->post())) {
4428da8c   Yarik   Almost all databa...
116
117
118
                  /**
                   * @var ProductVariant $modelMod
                   */
8af13427   Yarik   For leha commit.
119
                  if (!$modelMod = ProductVariant::find()
c70f24ea   Yarik   For Leha commit.
120
121
                                                 ->with('product.lang')
                                                 ->with('lang')
8af13427   Yarik   For leha commit.
122
123
124
125
126
                                                 ->where([ 'sku' => $model->sku ])
                                                 ->one()
                  ) {
                      throw new HttpException(404, 'Данного артикля не существует!');
                  }
c70f24ea   Yarik   For Leha commit.
127
128
                  $model->product_name = $modelMod->product->lang->title;
                  $model->name = $modelMod->lang->title;
8af13427   Yarik   For leha commit.
129
130
131
132
133
134
135
136
137
138
139
140
141
                  $model->sku = $modelMod->sku;
                  $model->price = $modelMod->price;
                  $model->sum_cost = $model->count * $modelMod->price;
                  $model->product_variant_id = $modelMod->id;
                  $model->save();
                  //return Yii::$app->response->redirect(['/admin/order/show','id'=>$_GET['order_id']]);
              }
              
              //return $this->render('add',['model'=>$model]);
          }
          
          public function actionCreate()
          {
c70f24ea   Yarik   For Leha commit.
142
              $model = new Order();
8af13427   Yarik   For leha commit.
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
              
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
                  return $this->redirect([ 'index' ]);
              } else {
                  return $this->render(
                      'create',
                      [
                          'model' => $model,
                      ]
                  );
              }
          }
          
          public function actionDeleteProduct()
          {
c70f24ea   Yarik   For Leha commit.
158
              $model = OrderProduct::findOne($_GET[ 'id' ]);
8af13427   Yarik   For leha commit.
159
160
161
162
163
164
165
166
167
168
169
              $model->delete();
              return Yii::$app->response->redirect(
                  [
                      '/admin/order/show',
                      'id' => $_GET[ 'order_id' ],
                  ]
              );
          }
          
          protected function findModel($id)
          {
c70f24ea   Yarik   For Leha commit.
170
              if (( $model = Order::findOne($id) ) !== null) {
8af13427   Yarik   For leha commit.
171
172
173
174
175
176
                  return $model;
              } else {
                  throw new NotFoundHttpException('The requested page does not exist.');
              }
          }
      }