This commit is contained in:
lizandrogd
2026-01-19 18:24:35 -05:00
parent edcd51e651
commit 084b644714
10 changed files with 412 additions and 66 deletions
+14 -33
View File
@@ -55,42 +55,23 @@ class Tintoreria extends Model
}
});
$createTrasladoFn = function ($tintoreria) {
if ($tintoreria->cantidad_recibida !== null) {
// Evitar duplicados
$exists = \App\Models\TrasladoPrenda::where('referencia_type', self::class)
->where('referencia_id', $tintoreria->id)
->exists();
/* Recepciones polimórficas */
public function recepciones()
{
return $this->morphMany(\App\Models\Recepcion::class, 'referencia');
}
if (! $exists) {
// Mapear "perdidas" a prendas_defectuosas en el traslado
$payload = [
'prendas_defectuosas' => $tintoreria->perdidas ?? 0,
];
// Cuantas faltan por recibir
public function getFaltantesAttribute()
{
return max(0, (int)($this->cantidad_enviada ?? 0) - (int)($this->cantidad_recibida ?? 0));
}
$destino = 'acabados';
\App\Models\TrasladoPrenda::crearDesdeReferencia(
$tintoreria,
'tintoreria',
$destino,
$payload
);
// Avanzar la OP al cerrar el paso
$tintoreria->ordenProduccion?->avanzarEstado();
}
}
if (
$tintoreria->fecha_recepcion &&
$tintoreria->cantidad_recibida !== null
) {
// Avanzar OP al cerrar el paso o cuando se complete
static::saved(function ($tintoreria) {
if ($tintoreria->fecha_recepcion && $tintoreria->cantidad_recibida !== null) {
$tintoreria->ordenProduccion?->avanzarEstado();
}
};
static::updated($createTrasladoFn);
static::saved($createTrasladoFn);
});
}
}