ProductVariant.php
3.83 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
namespace common\modules\product\models;
use Yii;
/**
* This is the model class for table "product_variant".
*
* @property integer $product_variant_id
* @property integer $product_id
* @property string $name
* @property string $remote_id
* @property string $sku
* @property double $price
* @property double $price_old
* @property double $stock
* @property integer $product_unit_id
* @property integer $product_variant_type_id
* @property ProductImage $image
* @property array $images
*
* @property ProductUnit $productUnit
*/
class ProductVariant extends \yii\db\ActiveRecord
{
/** @var array $_images */
public $imagesUpload = [];
/**
* @inheritdoc
*/
public static function tableName()
{
return 'product_variant';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['product_id', 'sku', 'product_unit_id'], 'required'],
[['product_id', 'product_unit_id', 'product_variant_type_id'], 'integer'],
[['price', 'price_old', 'stock'], 'number'],
[['name', 'sku'], 'string', 'max' => 255],
[['remote_id'], 'string', 'max' => 20],
[['imagesUpload'], 'safe'],
[['imagesUpload'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg, gif', 'maxFiles' => 50],
[['product_unit_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProductUnit::className(), 'targetAttribute' => ['product_unit_id' => 'product_unit_id']],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'product_variant_id' => Yii::t('product', 'Product Variant ID'),
'product_id' => Yii::t('product', 'Product ID'),
'name' => Yii::t('product', 'Name'),
'sku' => Yii::t('product', 'Sku'),
'price' => Yii::t('product', 'Price'),
'price_old' => Yii::t('product', 'Price Old'),
'stock' => Yii::t('product', 'Stock'),
'product_unit_id' => Yii::t('product', 'Product Unit ID'),
'product_variant_type_id' => Yii::t('product', 'Product Variant Type ID'),
'stock_caption' => Yii::t('product', 'Stock'),
'image' => Yii::t('product', 'Image'),
'images' => Yii::t('product', 'Images'),
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getProductUnit()
{
return $this->hasOne(ProductUnit::className(), ['product_unit_id' => 'product_unit_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getProductVariantType()
{
return $this->hasOne(ProductVariantType::className(), ['product_variant_type_id' => 'product_variant_type_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getProduct()
{
return $this->hasOne(Product::className(), ['product_id' => 'product_id']);
}
public function getEnabled() {
return $this->stock !== 0;
}
public function getStock_caption() {
return is_null($this->stock) ? '∞' : intval($this->stock);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getImage()
{
return $this->hasOne(ProductImage::className(), ['product_variant_id' => 'product_variant_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getImages()
{
return $this->hasMany(ProductImage::className(), ['product_variant_id' => 'product_variant_id']);
}
/**
* @inheritdoc
* @return ProductVariantQuery the active query used by this AR class.
*/
public static function find()
{
return new ProductVariantQuery(get_called_class());
}
}