Blame view

app/modules/admin/controllers/OrdersController.php 4.16 KB
bf807468   Alex Savenko   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
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
109
110
111
112
  <?php

  

  namespace app\modules\admin\controllers;

  

  use Yii;

  use yii\web\Controller;

  use yii\filters\AccessControl;

  use yii\filters\VerbFilter;

  use yii\data\ActiveDataProvider;

  use yii\web\HttpException;

  use app\modules\admin\models\Orders;

  use app\modules\admin\models\OrdersProducts;

  use app\modules\admin\models\Mod;

  

  

  class OrdersController extends Controller

  {

      public function behaviors()

      {

          return [

              'access' => [

                  'class' => AccessControl::className(),

                  //'only' => ['logout','index'],

                  'rules' => [

                      [

                          'actions' => ['index','save','delete','show','add','delete_product'],

                          'allow' => true,

                          'roles' => ['admin'],

                      ],					

                  ],

              ],

              'verbs' => [

                  'class' => VerbFilter::className(),

                  'actions' => [

                      'logout' => ['post'],

                  ],

              ],

          ];

      }

  	

      public function actionIndex()

      {        

                  $searchModel = new Orders;

                  $searchModel->load(Yii::$app->request->queryParams);

                  $query = Orders::find();

  		if(!empty($searchModel->phone))$query->andFilterWhere(['like', 'phone', $searchModel->phone]);

                  if(!empty($searchModel->name))$query->andFilterWhere(['like', 'name', $searchModel->name]);

                  if(!empty($searchModel->surname))$query->andFilterWhere(['like', 'surname', $searchModel->surname]);

                  if(!empty($searchModel->total))$query->andFilterWhere(['like', 'total', $searchModel->total]);

                  if(!empty($searchModel->reserve))$query->andFilterWhere(['like', 'reserve', $searchModel->reserve]);

                  if(!empty($searchModel->status))$query->andFilterWhere(['like', 'status', $searchModel->status]);

                  $dataProvider = new ActiveDataProvider([

  			'query' =>$query,

                          'sort'=> ['defaultOrder' => ['id'=>SORT_DESC]],

  			'pagination' => [

  				'pageSize' => 20,

  			],

  		]);

                  

          return $this->render('index',['dataProvider'=>$dataProvider,'searchModel'=>$searchModel]);

      }

  	

      public function actionShow()

      {

  		$model = (!empty($_GET['id'])) ? Orders::findOne($_GET['id']) : new Orders;

                  

  

  		if ($model->load(Yii::$app->request->post()) && $model->save()) {

  		

  			return Yii::$app->response->redirect(['/admin/orders/show','id'=>$model->id,'success'=>1]);

  		}

                  

                  $dataProvider = new ActiveDataProvider([

  			'query' => OrdersProducts::find()->where(['order_id'=>$_GET['id']]),

  			'pagination' => [

  				'pageSize' => 20,

  			],

  		]);

          return $this->render('show',['model'=>$model,'dataProvider'=>$dataProvider]);

      }

  

  	public function actionDelete(){

  		$model = Orders::findOne($_GET['id']);

  		$model->delete();

  		return Yii::$app->response->redirect(['/admin/orders/index']);

  	}

          

          

          public function actionAdd(){

              $model = new OrdersProducts;

              

  		if ($model->load(Yii::$app->request->post())) {

                          if(!$modelMod = Mod::find()->with(['product'])->where(['art'=>$model->art])->one())

                                  throw new HttpException(404, 'Данного артикля не существует!');

                          $model->product_name = $modelMod->product->name;

                          $model->name = $modelMod->name;

                          $model->art = $modelMod->art;

                          $model->cost = $modelMod->cost;

                          $model->sum_cost = $model->count*$modelMod->cost;

                          $model->save();

  			return Yii::$app->response->redirect(['/admin/orders/show','id'=>$_GET['order_id']]);

  		}            

              

              return $this->render('add',['model'=>$model]);

          }

          

  	public function actionDelete_product(){

  		$model = OrdersProducts::findOne($_GET['id']);

  		$model->delete();

  		return Yii::$app->response->redirect(['/admin/orders/show','id'=>$_GET['order_id']]);

  	}        

  }