Blame view

common/modules/rubrication/models/TaxGroup.php 4.78 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
29
       * @property string         $ownerKey

       * @property string         $langKey

       * @method string           getOwnerKey()

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

d55d2fe0   Yarik   Multilanguage
31
       * @method string           getLangKey()

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

d55d2fe0   Yarik   Multilanguage
33
34
35
       * @method ActiveQuery      getLangs()

       * @method ActiveQuery      getLang( integer $language_id )

       * @method TaxGroupLang[]    generateLangs()

93c267f7   Yarik   Multilanguage big...
36
37
38
       * @method void             loadLangs( Request $request, ActiveRecord[] $model_langs )

       * @method bool             linkLangs( ActiveRecord[] $model_langs )

       * @method bool             saveLangs( ActiveRecord[] $model_langs )

d55d2fe0   Yarik   Multilanguage
39
       * * End language behavior *

d8c1a2e0   Yarik   Big commit artbox
40
       */

36d1807a   Yarik   Big commit.
41
      class TaxGroup extends \yii\db\ActiveRecord

d8c1a2e0   Yarik   Big commit artbox
42
      {

93c267f7   Yarik   Multilanguage big...
43
          

cc658b4c   Yarik   Big commit
44
45
46
          /**

           * @var TaxOption[] $_options

           */

36d1807a   Yarik   Big commit.
47
48
49
50
51
52
53
54
          public $_options = [];

          

          /**

           * @inheritdoc

           */

          public function behaviors()

          {

              return [

d55d2fe0   Yarik   Multilanguage
55
56
57
                  'language' => [

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

                  ],

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

          }

          

          /**

           * @inheritdoc

           */

          public static function tableName()

          {

              return 'tax_group';

          }

          

          /**

           * @inheritdoc

           */

          public function rules()

          {

              return [

                  [

                      [

36d1807a   Yarik   Big commit.
77
78
79
80
81
82
83
84
85
86
87
88
89
90
                          'is_filter',

                          'display',

                          'is_menu',

                      ],

                      'boolean',

                  ],

                  [

                      [

                          'level',

                          'sort',

                      ],

                      'integer',

                  ],

                  [

36d1807a   Yarik   Big commit.
91
92
93
94
95
96
97
98
99
100
101
102
103
                      [ 'categories' ],

                      'safe',

                  ],

              ];

          }

          

          /**

           * @inheritdoc

           */

          public function attributeLabels()

          {

              return [

                  'tax_group_id' => 'Tax Group ID',

36d1807a   Yarik   Big commit.
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
                  '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)

          {

              $this->unlinkAll('categories', true);

              $categories = [];

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

36d1807a   Yarik   Big commit.
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
                  $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
146
          }

96410438   Yarik   Project admin com...
147
148
149
150
151
152
153
154
155
          

          public function getAlias() {

              $default_lang = Language::getDefaultLanguage();

              /**

               * @var TaxGroupLang $lang

               */

              $lang = $this->getLang($default_lang->language_id)->one();

              return $lang->alias;

          }

d8c1a2e0   Yarik   Big commit artbox
156
      }