Blame view

common/models/Event.php 4.15 KB
4253cbec   root   first commit
1
2
3
  <?php
  
  namespace common\models;
1da76554   Administrator   big commti
4
5
  use common\behaviors\SaveImgBehavior;
  use common\modules\product\models\Product;
4253cbec   root   first commit
6
7
  use Yii;
  use yii\behaviors\TimestampBehavior;
9ec47b63   Administrator   big commti
8
9
  use yii\helpers\ArrayHelper;
  
4253cbec   root   first commit
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  /**
   * This is the model class for table "event".
   *
   * @property integer $event_id
   * @property string $name
   * @property string $alias
   * @property string $body
   * @property string $image
   * @property string $meta_title
   * @property string $description
   * @property string $h1
   * @property string $seo_text
   * @property integer $created_at
   * @property integer $updated_at
   * @property integer $end_at
1da76554   Administrator   big commti
25
26
   * @property integer $status
   * @property integer $banner
4253cbec   root   first commit
27
28
29
30
   */
  class Event extends \yii\db\ActiveRecord
  {
      public $imageUpload;
1da76554   Administrator   big commti
31
      public $products_file;
4253cbec   root   first commit
32
33
34
35
36
37
38
39
40
  
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'event';
      }
  
1da76554   Administrator   big commti
41
42
43
  
  
  
4253cbec   root   first commit
44
45
46
47
48
49
      /**
       * @inheritdoc
       */
      public function behaviors()
      {
          return [
b905419d   Administrator   big commti
50
              'img'=>[
1da76554   Administrator   big commti
51
                  'class'     => SaveImgBehavior::className(),
612a4ea1   Administrator   big commti
52
53
54
55
                  'fields' => [
                      ['name'=>'imageUpload','directory' => 'event' ],
                      ['name'=>'banner','directory' => 'event' ],
                  ]
1da76554   Administrator   big commti
56
              ],
4253cbec   root   first commit
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
              TimestampBehavior::className(),
              'slug' => [
                  'class' => 'common\behaviors\Slug',
                  'in_attribute' => 'name',
                  'out_attribute' => 'alias',
                  'translit' => true
              ],
              [
                  'class'              => 'common\behaviors\ShowImage',
              ],
          ];
      }
  
  
      public function beforeSave($insert)
      {
          if (parent::beforeSave($insert)) {
1da76554   Administrator   big commti
74
75
  
              $this->end_at = !empty($this->end_at) ? strtotime($this->end_at) : '';
4253cbec   root   first commit
76
77
78
79
80
81
82
              return true;
          } else {
              return false;
          }
      }
  
      public function afterFind(){
1da76554   Administrator   big commti
83
          $this->end_at = !empty($this->end_at) ? date("Y-m-d", $this->end_at) : '';
4253cbec   root   first commit
84
85
86
87
88
89
90
91
92
93
      }
  
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
              [['body', 'seo_text'], 'string'],
66285eca   Administrator   big commti
94
              [['created_at', 'updated_at','percent' ], 'integer'],
1da76554   Administrator   big commti
95
              [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255],
4253cbec   root   first commit
96
              [['name','body'], 'required'],
66285eca   Administrator   big commti
97
              [['imageUpload','sale','is_event'], 'safe'],
4253cbec   root   first commit
98
              [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'],
1da76554   Administrator   big commti
99
              [['products_file'], 'file'],
4253cbec   root   first commit
100
101
102
103
104
105
106
107
108
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
1da76554   Administrator   big commti
109
              'event_id' => Yii::t('app', 'ID акции'),
4253cbec   root   first commit
110
111
112
113
114
115
116
117
118
119
120
              'name' => Yii::t('app', 'name'),
              'alias' => Yii::t('app', 'alias'),
              'body' => Yii::t('app', 'body'),
              'image' => Yii::t('app', 'image'),
              'meta_title' => Yii::t('app', 'meta_title'),
              'description' => Yii::t('app', 'description'),
              'h1' => Yii::t('app', 'h1'),
              'seo_text' => Yii::t('app', 'seo_text'),
              'created_at' => Yii::t('app', 'created_at'),
              'updated_at' => Yii::t('app', 'updated_at'),
              'end_at' => Yii::t('app', 'end_at'),
1da76554   Administrator   big commti
121
122
              'status' => Yii::t('app', 'Статус акции'),
              'products_file' => Yii::t('app', 'Загрузка файла'),
9ec47b63   Administrator   big commti
123
124
              'sale' => Yii::t('app', 'Распродажа'),
              'percent' => Yii::t('app', 'Процент'),
c361f574   Administrator   big commti
125
              'is_event' => Yii::t('app', 'Акция'),
4253cbec   root   first commit
126
127
128
129
          ];
      }
  
  
1da76554   Administrator   big commti
130
131
132
133
134
135
136
137
138
139
140
141
      public function isActive(){
          if($this->status){
  
              if(!empty($this->end_at) && (strtotime($this->end_at) <= strtotime(date("Y-m-d")))){
                  return false;
              }
              return true;
          }
          return false;
      }
  
  
1da76554   Administrator   big commti
142
143
144
  
      public function getProducts(){
          return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']);
4253cbec   root   first commit
145
146
      }
  
9ec47b63   Administrator   big commti
147
      public static function getSaleEvents(){
8cfcee73   Administrator   big commti
148
          return ArrayHelper::toArray(self::find()->select('percent')->distinct('percent')->where('sale=true AND percent IS NOT NULL')->orderBy('percent')->all());
9ec47b63   Administrator   big commti
149
150
      }
  
612a4ea1   Administrator   big commti
151
  
4253cbec   root   first commit
152
  }