oldAttributes, $insert); // OrderProductLogger::saveData($data, $this->id, [ 'order_id' => $this->order_id ]); parent::afterSave($insert, $changedAttributes); } public function beforeSave($insert) { $this->price = $this->productVariant->price; $this->sum_cost = $this->price * $this->count; return parent::beforeSave($insert); } public function rules() { return [ [ [ 'order_id' ], 'required', ], [ [ 'return', 'removed', ], 'boolean', ], [ [ 'booking', 'status', ], 'string', ], [ [ 'product_name', 'name', 'price', 'count', 'sum_cost', 'product_variant_id', 'sku', ], 'safe', ], ]; } public function attributeLabels() { return [ 'product_name' => Yii::t('app', 'Наименование'), 'name' => Yii::t('app', 'op_name'), 'art' => Yii::t('app', 'art'), 'cost' => Yii::t('app', 'Сумма'), 'count' => Yii::t('app', 'Количество'), 'sum_cost' => Yii::t('app', 'Сумма'), 'status' => Yii::t('app', 'Статус'), 'booking' => Yii::t('app', 'Бронь'), 'return' => Yii::t('app', 'Возврат'), 'sku' => Yii::t('app', 'Артикул'), 'price' => Yii::t('app', 'Цена'), 'order_id' => Yii::t('app', 'Id заказа'), 'product_variant_id' => Yii::t('app', 'Id товара'), 'id' => Yii::t('app', 'Id'), 'removed' => Yii::t('app', 'Удален'), ]; } /** * @return \yii\db\ActiveQuery */ public function getOrder() { return $this->hasOne(Order::className(), [ 'id' => 'order_id' ]); } /** * @return \yii\db\ActiveQuery */ public function getProductVariant() { return $this->hasOne(ProductVariant::className(), [ 'id' => 'product_variant_id' ]); } /** * @return \yii\db\ActiveQuery */ public function getLogs() { return $this->hasMany(OrderProductLog::className(), [ 'order_product_id' => 'id' ]); } }