private function setRatio(Organizations $organization) { //Если ратио установлено на товар и оно больше минимального if ($this->product_rate && $this->product_rate >= $organization->ratio) { return; } //Если ратио установлено на товар и оно меньше минимального if ($this->product_rate && $this->product_rate < $organization->ratio) { $this->product_rate = $organization->ratio; return; } //Если ратио на товар НЕ установлено if (!$this->product_rate) { //Получаем категорию товара и ищем ратио категории $category = OrganizationsCategories::findOne($this->category_id); if ($category) { if ($category->bonus_rate >= $organization->ratio) { $this->product_rate = $category->bonus_rate; } else { $this->product_rate = $organization->ratio; } } else { $this->product_rate = $organization->ratio; } } }
/** * @return \yii\db\ActiveQuery */ public function getCategory() { return $this->hasOne(OrganizationsCategories::className(), ['id' => 'category_id']); }