95 lines
2.0 KiB
PHP
95 lines
2.0 KiB
PHP
<?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');
|
|
}
|
|
}
|