public function setPrice($price, $type = null) { if ($priceModel = $this->getPriceModel($type)) { $priceModel->price = $price; return $priceModel->save(false); } else { if ($typeModel = PriceType::findOne($type)) { $priceModel = new Price(); $priceModel->product_id = $this->id; $priceModel->price = $price; $priceModel->type_id = $type; $priceModel->name = $typeModel->name; return $priceModel->save(); } } return false; }