diff --git a/app/Filament/Resources/TrasladoPrendaResource.php b/app/Filament/Resources/TrasladoPrendaResource.php index a50e6d4..3923183 100644 --- a/app/Filament/Resources/TrasladoPrendaResource.php +++ b/app/Filament/Resources/TrasladoPrendaResource.php @@ -31,6 +31,7 @@ class TrasladoPrendaResource extends Resource ->schema([ Select::make('origen')->options([ 'confeccion' => 'Confección', + 'ojales_prensillas' => 'Ojales y Prensillas', 'tintoreria' => 'Tintorería', 'acabados' => 'Acabados', 'bodega' => 'Bodega', @@ -38,6 +39,7 @@ class TrasladoPrendaResource extends Resource Select::make('destino')->options([ 'confeccion' => 'Confección', + 'ojales_prensillas' => 'Ojales y Prensillas', 'tintoreria' => 'Tintorería', 'acabados' => 'Acabados', 'bodega' => 'Bodega', diff --git a/app/Models/Ojal.php b/app/Models/Ojal.php index 836b034..f95c29d 100644 --- a/app/Models/Ojal.php +++ b/app/Models/Ojal.php @@ -49,6 +49,40 @@ class Ojal extends Model } }); + // Crear traslado cuando se crea un Ojal/Prensilla (Confección → Ojales/Prensillas) + static::created(function ($ojal) { + if ($ojal->cantidad_enviada > 0) { + \App\Models\TrasladoPrenda::create([ + 'orden_produccion_id' => $ojal->orden_produccion_id, + 'referencia_type' => self::class, + 'referencia_id' => $ojal->id, + 'origen' => 'confeccion', + 'destino' => 'ojales_prensillas', + 'cantidad_enviada' => $ojal->cantidad_enviada, + 'cantidad_recibida' => null, + 'fecha_envio' => $ojal->fecha_envio ?? now(), + 'estado' => 'pendiente', + ]); + } + }); + // Crear traslado cuando se marca como terminada (Ojales/Prensillas → Tintorería) + static::updated(function ($ojal) { + if ($ojal->terminada && $ojal->getOriginal('terminada') == false) { + if ($ojal->cantidad_enviada > 0) { + \App\Models\TrasladoPrenda::create([ + 'orden_produccion_id' => $ojal->orden_produccion_id, + 'referencia_type' => self::class, + 'referencia_id' => $ojal->id, + 'origen' => 'ojales_prensillas', + 'destino' => 'tintoreria', + 'cantidad_enviada' => $ojal->cantidad_enviada, + 'cantidad_recibida' => null, + 'fecha_envio' => now(), + 'estado' => 'pendiente', + ]); + } + } + }); } } diff --git a/app/Models/Prensilla.php b/app/Models/Prensilla.php index 1eaf485..4b57e69 100644 --- a/app/Models/Prensilla.php +++ b/app/Models/Prensilla.php @@ -47,6 +47,40 @@ class Prensilla extends Model } }); + // Crear traslado cuando se crea una Prensilla (Confección → Ojales/Prensillas) + static::created(function ($prensilla) { + if ($prensilla->cantidad_enviada > 0) { + \App\Models\TrasladoPrenda::create([ + 'orden_produccion_id' => $prensilla->orden_produccion_id, + 'referencia_type' => self::class, + 'referencia_id' => $prensilla->id, + 'origen' => 'confeccion', + 'destino' => 'ojales_prensillas', + 'cantidad_enviada' => $prensilla->cantidad_enviada, + 'cantidad_recibida' => null, + 'fecha_envio' => $prensilla->fecha_envio ?? now(), + 'estado' => 'pendiente', + ]); + } + }); + // Crear traslado cuando se marca como terminada (Ojales/Prensillas → Tintorería) + static::updated(function ($prensilla) { + if ($prensilla->terminada && $prensilla->getOriginal('terminada') == false) { + if ($prensilla->cantidad_enviada > 0) { + \App\Models\TrasladoPrenda::create([ + 'orden_produccion_id' => $prensilla->orden_produccion_id, + 'referencia_type' => self::class, + 'referencia_id' => $prensilla->id, + 'origen' => 'ojales_prensillas', + 'destino' => 'tintoreria', + 'cantidad_enviada' => $prensilla->cantidad_enviada, + 'cantidad_recibida' => null, + 'fecha_envio' => now(), + 'estado' => 'pendiente', + ]); + } + } + }); } }