pdv.backend/app/Models/InventorySerial.php

52 lines
1006 B
PHP

<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class InventorySerial extends Model
{
protected $fillable = [
'catalog_item_id',
'serial_number',
'status',
'sale_detail_id',
'notes',
];
protected $casts = [
'status' => 'string',
];
//RELACIONES
public function catalogItem()
{
return $this->belongsTo(CatalogItem::class);
}
public function saleDetail()
{
return $this->belongsTo(SaleDetail::class);
}
//HELPERS
public function isAvailable(): bool
{
return $this->status === 'disponible';
}
public function markAsSold(int $saleDetailId): void
{
$this->update([
'status' => 'vendido',
'sale_detail_id' => $saleDetailId,
]);
}
public function markAsAvailable(): void
{
$this->update([
'status' => 'disponible',
'sale_detail_id' => null,
]);
}
}