Files
compras/app/Models/PurchaseOrder.php
T
nala 4d42f083ce
tests / ci (push) Canceled after 0s
commit
2026-10-28 12:06:05 +02:00

43 lines
1.1 KiB
PHP

<?php
namespace App\Models;
use App\Models\Concerns\BelongsToTenant;
use App\Models\Concerns\ImmutablePurchaseRecord;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
/**
* @property int $id
* @property int $tenant_id
* @property int $requisition_id
* @property string $number
* @property array<string, mixed> $snapshot
*/
class PurchaseOrder extends Model
{
use BelongsToTenant, ImmutablePurchaseRecord;
public $timestamps = false;
protected $guarded = ['id'];
protected function casts(): array
{
return ['snapshot' => 'array', 'issued_at' => 'datetime'];
}
/** @return HasMany<PurchaseOrderItem, $this> */
public function items(): HasMany
{
return $this->hasMany(PurchaseOrderItem::class);
}
/** @param Builder<PurchaseOrder> $query */
public function scopeVisibleTo(Builder $query, User $user): void
{
$query->whereIn('requisition_id', Requisition::query()->visibleTo($user)->select('id'));
}
}