Blame view

common/modules/rubrication/controllers/TaxGroupController.php 5.13 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php

d55d2fe0   Yarik   Multilanguage
2
3
4
5
6
7
8
9
10
11
12
      

      namespace common\modules\rubrication\controllers;

      

      use common\modules\rubrication\models\TaxOption;

      use Yii;

      use common\modules\rubrication\models\TaxGroup;

      use yii\data\ActiveDataProvider;

      use yii\web\Controller;

      use yii\web\NotFoundHttpException;

      use yii\filters\VerbFilter;

      

d8c1a2e0   Yarik   Big commit artbox
13
      /**

d55d2fe0   Yarik   Multilanguage
14
       * TaxGroupController implements the CRUD actions for TaxGroup model.

d8c1a2e0   Yarik   Big commit artbox
15
       */

d55d2fe0   Yarik   Multilanguage
16
      class TaxGroupController extends Controller

d8c1a2e0   Yarik   Big commit artbox
17
      {

d55d2fe0   Yarik   Multilanguage
18
19
20
21
22
23
24
25
26
27
28
29
          

          /**

           * @inheritdoc

           */

          public function behaviors()

          {

              return [

                  'verbs' => [

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

                      'actions' => [

                          'delete' => [ 'POST' ],

                      ],

d8c1a2e0   Yarik   Big commit artbox
30
                  ],

d55d2fe0   Yarik   Multilanguage
31
32
33
34
35
36
37
38
39
40
41
42
43
44
              ];

          }

          

          /**

           * Lists all TaxGroup models.

           *

           * @param $level integer

           *

           * @return mixed

           */

          public function actionIndex($level)

          {

              $dataProvider = new ActiveDataProvider([

                  'query' => TaxGroup::find()

b7d40aed   Yarik   Another one admin...
45
46
47
                                     ->with('lang')

                                     ->with('options')

                                     ->with('categories')

d55d2fe0   Yarik   Multilanguage
48
49
50
51
52
53
54
55
56
57
                                     ->where([ 'level' => $level ]),

              ]);

              

              return $this->render('index', [

                  'dataProvider' => $dataProvider,

                  'level'        => $level,

              ]);

          }

          

          /**

d55d2fe0   Yarik   Multilanguage
58
59
60
61
62
63
64
65
66
67
           * Creates a new TaxGroup model.

           * If creation is successful, the browser will be redirected to the 'view' page.

           *

           * @param $level integer

           *

           * @return mixed

           */

          public function actionCreate($level)

          {

              $model = new TaxGroup();

72a992f5   Yarik   Import browser v1.0
68
              $model->generateLangs();

d55d2fe0   Yarik   Multilanguage
69
              if($model->load(Yii::$app->request->post()) && $model->validate()) {

72a992f5   Yarik   Import browser v1.0
70
                  $model->loadLangs(\Yii::$app->request);

d55d2fe0   Yarik   Multilanguage
71
                  $model->level = $level;

72a992f5   Yarik   Import browser v1.0
72
                  if($model->save() && $model->transactionStatus) {

d55d2fe0   Yarik   Multilanguage
73
74
75
76
77
78
                      return $this->redirect([

                          'index',

                          'level' => $level,

                      ]);

                  }

              }

d8c1a2e0   Yarik   Big commit artbox
79
              return $this->render('create', [

d55d2fe0   Yarik   Multilanguage
80
                  'model'       => $model,

72a992f5   Yarik   Import browser v1.0
81
                  'model_langs' => $model->model_langs,

d8c1a2e0   Yarik   Big commit artbox
82
83
              ]);

          }

d55d2fe0   Yarik   Multilanguage
84
85
86
87
88
89
90
91
92
93
94
95
96
          

          /**

           * Updates an existing TaxGroup model.

           * If update is successful, the browser will be redirected to the 'view' page.

           *

           * @param         $level integer

           * @param integer $id

           *

           * @return mixed

           */

          public function actionUpdate($level, $id)

          {

              $model = $this->findModel($id);

72a992f5   Yarik   Import browser v1.0
97
              $model->generateLangs();

d55d2fe0   Yarik   Multilanguage
98
              if($model->load(Yii::$app->request->post())) {

72a992f5   Yarik   Import browser v1.0
99
100
                  $model->loadLangs(\Yii::$app->request);

                  if($model->save() && $model->transactionStatus) {

d55d2fe0   Yarik   Multilanguage
101
102
103
104
105
106
                      return $this->redirect([

                          'index',

                          'level' => $level,

                      ]);

                  }

              }

d8c1a2e0   Yarik   Big commit artbox
107
              return $this->render('update', [

d55d2fe0   Yarik   Multilanguage
108
                  'model'       => $model,

72a992f5   Yarik   Import browser v1.0
109
                  'model_langs' => $model->model_langs,

b7d40aed   Yarik   Another one admin...
110
                  'level'       => $level,

d8c1a2e0   Yarik   Big commit artbox
111
112
              ]);

          }

d55d2fe0   Yarik   Multilanguage
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
          

          /**

           * Deletes an existing TaxGroup model.

           * If deletion is successful, the browser will be redirected to the 'index' page.

           *

           * @param         $level integer

           * @param integer $id

           *

           * @return mixed

           */

          public function actionDelete($level, $id)

          {

              $this->findModel($id)

                   ->delete();

              return $this->redirect([

                  'index',

                  'level' => $level,

              ]);

          }

          

          /*

           * Rebuilp MP-params for group options

           */

          public function actionRebuild($id)

          {

              TaxOption::find()

                       ->rebuildMP($id);

d55d2fe0   Yarik   Multilanguage
140
141
142
143
144
145
146
147
148
149
150
151
152
153
              return $this->redirect([ 'index' ]);

          }

          

          /**

           * Finds the TaxGroup model based on its primary key value.

           * If the model is not found, a 404 HTTP exception will be thrown.

           *

           * @param integer $id

           *

           * @return TaxGroup the loaded model

           * @throws NotFoundHttpException if the model cannot be found

           */

          protected function findModel($id)

          {

b7d40aed   Yarik   Another one admin...
154
155
156
157
158
              if(( $model = TaxGroup::find()

                                    ->with('lang')

                                    ->where([ 'tax_group_id' => $id ])

                                    ->one() ) !== NULL

              ) {

d55d2fe0   Yarik   Multilanguage
159
160
161
162
                  return $model;

              } else {

                  throw new NotFoundHttpException('The requested page does not exist.');

              }

d8c1a2e0   Yarik   Big commit artbox
163
164
          }

      }