setTaxIds(); }); } public function bill() { return $this->belongsTo('App\Models\Purchase\Bill'); } public function item() { return $this->belongsTo('App\Models\Common\Item')->withDefault(['name' => trans('general.na')]); } public function taxes() { return $this->hasMany('App\Models\Purchase\BillItemTax', 'bill_item_id', 'id'); } /** * Convert price to double. * * @param string $value * @return void */ public function setPriceAttribute($value) { $this->attributes['price'] = (double) $value; } /** * Convert total to double. * * @param string $value * @return void */ public function setTotalAttribute($value) { $this->attributes['total'] = (double) $value; } /** * Convert tax to double. * * @param string $value * @return void */ public function setTaxAttribute($value) { $this->attributes['tax'] = (double) $value; } /** * Get the formatted discount. * * @return string */ public function getDiscountAttribute() { if (setting('localisation.percent_position', 'after') === 'after') { $text = ($this->discount_type === 'normal') ? $this->discount_rate . '%' : $this->discount_rate; } else { $text = ($this->discount_type === 'normal') ? '%' . $this->discount_rate : $this->discount_rate; } return $text; } /** * Convert tax to Array. * * @return void */ public function setTaxIds() { $tax_ids = []; foreach ($this->taxes as $tax) { $tax_ids[] = (string) $tax->tax_id; } $this->setAttribute('tax_id', $tax_ids); } public function onCloning($src, $child = null) { unset($this->tax_id); } }