95 lines
2.0 KiB
PHP
Raw Normal View History

2025-03-05 20:44:45 -06:00
<?php
namespace Koneko\VuexyWarehouse\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Koneko\VuexyAdmin\Models\User;
use Koneko\VuexyStoreManager\Models\Store;
use Koneko\VuexyStoreManager\Models\StoreWorkCenter;
class Warehouse extends Model
{
use HasFactory;
protected $fillable = [
'store_id',
'work_center_id',
'code',
'name',
'description',
'manager_id',
'tel',
'tel2',
'priority',
'status',
];
protected $casts = [
'priority' => 'integer',
'status' => 'boolean',
];
/**
* Nombre de la etiqueta para generar Componentes
*
* @var string
*/
public $tagName = 'Warehouse';
/**
* Nombre de la columna que contiee el nombre del registro
*
* @var string
*/
public $columnNameLabel = 'name';
/**
* Nombre singular del registro.
*
* @var string
*/
public $singularName = 'almacén';
/**
* Nombre plural del registro.
*
* @var string
*/
public $pluralName = 'almacenes';
/**
* Relación con la sucursal a la que pertenece el almacén.
*/
public function store(): BelongsTo
{
return $this->belongsTo(Store::class, 'store_id');
}
/**
* Relación con el usuario que gestiona el centro de trabajo.
*/
public function manager(): BelongsTo
{
return $this->belongsTo(User::class, 'manager_id');
}
/**
* Relación con la sucursal a la que pertenece el almacén.
*/
public function workcenter(): BelongsTo
{
return $this->belongsTo(StoreWorkCenter::class, 'work_center_id');
}
/**
* Relación con los movimientos de inventario del almacén.
*/
public function movements(): HasMany
{
return $this->hasMany(WarehouseMovement::class, 'warehouse_id');
}
}