Renamed TintoreriaProcesoResource, model, and migration to Tintoreria, updating all related references and page classes. Added preload to Select fields for better performance in forms. This change standardizes naming and improves resource management for tintoreria processes.
53 lines
1.2 KiB
PHP
53 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Tintoreria extends Model
|
|
{
|
|
protected $fillable = [
|
|
'proveedor_id',
|
|
'orden_produccion_id',
|
|
'tipo_proceso',
|
|
'fecha_envio',
|
|
'cantidad_enviada',
|
|
'fecha_recepcion',
|
|
'cantidad_recibida',
|
|
'perdidas',
|
|
'observaciones',
|
|
];
|
|
|
|
/* Relaciones */
|
|
public function proveedor()
|
|
{
|
|
return $this->belongsTo(Proveedor::class);
|
|
}
|
|
|
|
public function ordenProduccion()
|
|
{
|
|
return $this->belongsTo(OrdenProduccion::class);
|
|
}
|
|
|
|
/* Lógica de negocio */
|
|
protected static function booted()
|
|
{
|
|
static::saving(function ($tintoreria) {
|
|
if ($tintoreria->cantidad_recibida !== null) {
|
|
$tintoreria->perdidas =
|
|
$tintoreria->cantidad_enviada - $tintoreria->cantidad_recibida;
|
|
}
|
|
});
|
|
|
|
// Cuando vuelve de tintorería → avanzar OP
|
|
static::updated(function ($tintoreria) {
|
|
if (
|
|
$tintoreria->fecha_recepcion &&
|
|
$tintoreria->cantidad_recibida !== null
|
|
) {
|
|
$tintoreria->ordenProduccion?->avanzarEstado();
|
|
}
|
|
});
|
|
}
|
|
}
|