'Necesară', 'ordered' => 'Comandată', 'delivered' => 'Sosită', 'installed' => 'Montată', ]; protected $fillable = [ 'company_id', 'work_order_id', 'name', 'article', 'brand', 'qty', 'unit', 'buy_price', 'sell_price', 'discount_pct', 'total', 'status', 'notes', ]; protected $casts = [ 'qty' => 'decimal:2', 'buy_price' => 'decimal:2', 'sell_price' => 'decimal:2', 'discount_pct' => 'decimal:2', 'total' => 'decimal:2', ]; public function workOrder(): BelongsTo { return $this->belongsTo(WorkOrder::class); } protected static function booted(): void { static::saving(function (self $row) { $sub = (float) $row->qty * (float) $row->sell_price; $disc = (float) $row->discount_pct; $row->total = round($sub * (1 - $disc / 100), 2); }); static::saved(fn (self $row) => $row->workOrder?->recalcTotal()); static::deleted(fn (self $row) => $row->workOrder?->recalcTotal()); } }