hasOne(ProductAttrValue::class,'unique','unique'); } public function presell() { return $this->hasOne(ProductPresell::class,'product_presell_id','product_presell_id'); } public function searchUniqueAttr($query,$value) { $query->where('unique',$value); } public function searchProductIdAttr($query,$value) { $query->where('product_id',$value); } public function searchProductPresellIdAttr($query,$value) { $query->where('product_presell_id',$value); } public function getBcExtensionOneAttr() { if (!intval(systemConfig('extension_status'))) return 0; if ($this->sku->extension_one > 0) return $this->sku->extension_one; return floatval(round(bcmul(systemConfig('extension_one_rate'), $this->presell_price, 3), 2)); } public function getBcExtensionTwoAttr() { if (!intval(systemConfig('extension_status'))) return 0; if ($this->sku->extension_two > 0) return $this->sku->extension_two; return floatval(round(bcmul(systemConfig('extension_two_rate'), $this->presell_price, 3), 2)); } }