*/ protected $fillable = [ 'user_id', 'customer_id', 'address_id', 'delivery_id', 'invoice_number', 'type', 'status', 'sum', 'tax', ]; /** * The attributes that are appended with attribute getters. * * @var string[] */ protected $appends = [ 'created', 'number' ]; /** * Get the invoice number formatted */ public function getNumberAttribute(): string { return $this->created_at->format('Y') . '-' . str_pad($this->invoice_number, 5, '0', STR_PAD_LEFT); } /** * Get the created_at attribute in local time format. * * @return string */ public function getCreatedAttribute(): string { return $this->created_at->format('d.m.Y'); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } public function address(): BelongsTo { return $this->belongsTo(Address::class)->withTrashed(); } public function delivery(): BelongsTo { return $this->belongsTo(Address::class)->withTrashed(); } public function items(): HasMany { return $this->hasMany(Invoiceitem::class); } }