Aplikasi Keuangan yang mengatur lalu lintas transaksi antara bank dan aplikasi internal Kampus
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.4 KiB

<?php
namespace App\Domains\Finance\Models;
use App\Domains\Finance\Casts\MoneyCurrency;
use App\Domains\Finance\Enums\InvoiceStatus;
use App\Domains\Finance\Enums\InvoiceType;
use App\Domains\Finance\Policies\InvoicePolicy;
use App\Domains\System\Traits\Model\HasPublicUlid;
use Database\Factories\Finance\InvoiceFactory;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\UsePolicy;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
#[Fillable([
'name',
'detail',
'client_ref_id',
'type',
'amount',
'status',
'client_id',
'chart_of_account_id',
])]
#[UsePolicy(InvoicePolicy::class)]
class Invoice extends Model
{
use HasFactory;
use HasPublicUlid;
protected $casts = [
'amount' => MoneyCurrency::class,
'type' => InvoiceType::class,
'status' => InvoiceStatus::class,
];
protected static function newFactory(): Factory
{
return InvoiceFactory::new();
}
public function chartOfAccount(): BelongsTo
{
return $this->belongsTo(ChartOfAccount::class);
}
public function payments(): HasMany
{
return $this->hasMany(Payment::class);
}
}