Blame view

common/modules/rubrication/models/TaxGroup.php 4.93 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php

36d1807a   Yarik   Big commit.
2
3
4
      

      namespace common\modules\rubrication\models;

      

d55d2fe0   Yarik   Multilanguage
5
      use common\modules\language\behaviors\LanguageBehavior;

96410438   Yarik   Project admin com...
6
      use common\modules\language\models\Language;

36d1807a   Yarik   Big commit.
7
      use common\modules\product\models\Category;

d55d2fe0   Yarik   Multilanguage
8
9
10
      use yii\db\ActiveQuery;

      use yii\db\ActiveRecord;

      use yii\web\Request;

93c267f7   Yarik   Multilanguage big...
11
      

d8c1a2e0   Yarik   Big commit artbox
12
      /**

36d1807a   Yarik   Big commit.
13
       * This is the model class for table "{{%tax_group}}".

93c267f7   Yarik   Multilanguage big...
14
15
16
17
18
19
20
21
22
       * @property integer        $tax_group_id

       * @property boolean        $is_filter

       * @property integer        $level

       * @property integer        $sort

       * @property boolean        $display

       * @property boolean        $is_menu

       * @property TaxOption[]    $taxOptions

       * @property Category[]     $categories

       * @property TaxOption[]    $options

d55d2fe0   Yarik   Multilanguage
23
       * * From language behavior *

93c267f7   Yarik   Multilanguage big...
24
25
26
       * @property TaxGroupLang   $lang

       * @property TaxGroupLang[] $langs

       * @property TaxGroupLang   $object_lang

d55d2fe0   Yarik   Multilanguage
27
28
       * @property string         $ownerKey

       * @property string         $langKey

72a992f5   Yarik   Import browser v1.0
29
30
       * @property TaxGroupLang[] $model_langs

       * @property bool           $transactionStatus

d55d2fe0   Yarik   Multilanguage
31
       * @method string           getOwnerKey()

93c267f7   Yarik   Multilanguage big...
32
       * @method void             setOwnerKey( string $value )

d55d2fe0   Yarik   Multilanguage
33
       * @method string           getLangKey()

93c267f7   Yarik   Multilanguage big...
34
       * @method void             setLangKey( string $value )

d55d2fe0   Yarik   Multilanguage
35
36
37
       * @method ActiveQuery      getLangs()

       * @method ActiveQuery      getLang( integer $language_id )

       * @method TaxGroupLang[]    generateLangs()

72a992f5   Yarik   Import browser v1.0
38
39
40
41
       * @method void             loadLangs( Request $request )

       * @method bool             linkLangs()

       * @method bool             saveLangs()

       * @method bool             getTransactionStatus()

d55d2fe0   Yarik   Multilanguage
42
       * * End language behavior *

d8c1a2e0   Yarik   Big commit artbox
43
       */

72a992f5   Yarik   Import browser v1.0
44
      class TaxGroup extends ActiveRecord

d8c1a2e0   Yarik   Big commit artbox
45
      {

93c267f7   Yarik   Multilanguage big...
46
          

cc658b4c   Yarik   Big commit
47
48
49
          /**

           * @var TaxOption[] $_options

           */

36d1807a   Yarik   Big commit.
50
51
52
53
54
55
56
57
          public $_options = [];

          

          /**

           * @inheritdoc

           */

          public function behaviors()

          {

              return [

d55d2fe0   Yarik   Multilanguage
58
59
60
                  'language' => [

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

                  ],

36d1807a   Yarik   Big commit.
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
              ];

          }

          

          /**

           * @inheritdoc

           */

          public static function tableName()

          {

              return 'tax_group';

          }

          

          /**

           * @inheritdoc

           */

          public function rules()

          {

              return [

                  [

                      [

36d1807a   Yarik   Big commit.
80
81
82
83
84
85
86
87
88
89
90
91
92
93
                          'is_filter',

                          'display',

                          'is_menu',

                      ],

                      'boolean',

                  ],

                  [

                      [

                          'level',

                          'sort',

                      ],

                      'integer',

                  ],

                  [

36d1807a   Yarik   Big commit.
94
95
96
97
98
99
100
101
102
103
104
105
106
                      [ 'categories' ],

                      'safe',

                  ],

              ];

          }

          

          /**

           * @inheritdoc

           */

          public function attributeLabels()

          {

              return [

                  'tax_group_id' => 'Tax Group ID',

36d1807a   Yarik   Big commit.
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
                  'is_filter'    => 'Use in filter',

                  'sort'         => 'Sort',

                  'display'      => 'Display',

                  'is_menu'      => 'Отображать в меню',

              ];

          }

          

          public function getCategories()

          {

              return $this->hasMany(Category::className(), [ 'category_id' => 'category_id' ])

                          ->viaTable('tax_group_to_category', [ 'tax_group_id' => 'tax_group_id' ]);

          }

          

          public function setCategories($values)

          {

              $this->categories = $values;

          }

          

          public function afterSave($insert, $changedAttributes)

          {

424ec7e0   Yarik   Import browser be...
127
              parent::afterSave($insert, $changedAttributes);

36d1807a   Yarik   Big commit.
128
129
              $this->unlinkAll('categories', true);

              $categories = [];

cc658b4c   Yarik   Big commit
130
              if(!empty( $this->categories )) {

36d1807a   Yarik   Big commit.
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
                  $categories = Category::findAll($this->categories);

              }

              foreach($categories as $category) {

                  $this->link('categories', $category);

              }

          }

          

          /**

           * @return \yii\db\ActiveQuery

           */

          public function getOptions()

          {

              return $this->getTaxOptions();

          }

          

          public function getTaxOptions()

          {

              return $this->hasMany(TaxOption::className(), [ 'tax_group_id' => 'tax_group_id' ])

                          ->inverseOf('taxGroup');

d8c1a2e0   Yarik   Big commit artbox
150
          }

96410438   Yarik   Project admin com...
151
          

72a992f5   Yarik   Import browser v1.0
152
153
          public function getAlias()

          {

96410438   Yarik   Project admin com...
154
155
156
157
              $default_lang = Language::getDefaultLanguage();

              /**

               * @var TaxGroupLang $lang

               */

72a992f5   Yarik   Import browser v1.0
158
159
              $lang = $this->getLang($default_lang->language_id)

                           ->one();

96410438   Yarik   Project admin com...
160
161
              return $lang->alias;

          }

d8c1a2e0   Yarik   Big commit artbox
162
      }