diff --git a/app/Filament/Resources/OjalPresillaResource.php b/app/Filament/Resources/OjalPresillaResource.php index 251212d..d913147 100644 --- a/app/Filament/Resources/OjalPresillaResource.php +++ b/app/Filament/Resources/OjalPresillaResource.php @@ -169,8 +169,20 @@ class OjalPresillaResource extends Resource ->icon('heroicon-o-check-circle') ->color('success') ->visible(fn ($record) => !$record->terminada) - ->action(function ($record) { + ->form([ + Select::make('proveedor_tintoreria_id') + ->label('Tintorería') + ->options(function () { + return \App\Models\Proveedor::where('categoria', 'tintoreria') + ->pluck('nombre', 'id'); + }) + ->searchable() + ->required() + ->helperText('Selecciona la tintorería a la que se enviará'), + ]) + ->action(function ($record, array $data) { $record->terminada = true; + $record->proveedor_tintoreria_id = $data['proveedor_tintoreria_id']; $record->save(); \Filament\Notifications\Notification::make() diff --git a/app/Models/Ojal.php b/app/Models/Ojal.php index af4f34c..bc639e3 100644 --- a/app/Models/Ojal.php +++ b/app/Models/Ojal.php @@ -18,6 +18,7 @@ class Ojal extends Model 'cantidad_recibida', 'perdidas', 'terminada', + 'proveedor_tintoreria_id', ]; protected $casts = [ @@ -52,6 +53,7 @@ class Ojal extends Model // Si se marca como terminada, crear traslado automático a tintororía if ($registro->terminada && !$registro->getOriginal('terminada')) { \App\Models\Tintoreria::create([ + 'proveedor_id' => $registro->proveedor_tintoreria_id, 'orden_produccion_id' => $registro->orden_produccion_id, 'fecha_envio' => now(), 'cantidad_enviada' => $registro->cantidad_enviada, diff --git a/app/Models/Prensilla.php b/app/Models/Prensilla.php index f4ba52f..2174ec6 100644 --- a/app/Models/Prensilla.php +++ b/app/Models/Prensilla.php @@ -16,6 +16,7 @@ class Prensilla extends Model 'cantidad_recibida', 'perdidas', 'terminada', + 'proveedor_tintoreria_id', ]; protected $casts = [ @@ -50,6 +51,7 @@ class Prensilla extends Model // Si se marca como terminada, crear traslado automático a tintororía if ($registro->terminada && !$registro->getOriginal('terminada')) { \App\Models\Tintoreria::create([ + 'proveedor_id' => $registro->proveedor_tintoreria_id, 'orden_produccion_id' => $registro->orden_produccion_id, 'fecha_envio' => now(), 'cantidad_enviada' => $registro->cantidad_enviada, diff --git a/database/migrations/2026_01_30_020414_add_proveedor_tintoreria_id_to_ojales_and_prensillas.php b/database/migrations/2026_01_30_020414_add_proveedor_tintoreria_id_to_ojales_and_prensillas.php new file mode 100644 index 0000000..67d6dcd --- /dev/null +++ b/database/migrations/2026_01_30_020414_add_proveedor_tintoreria_id_to_ojales_and_prensillas.php @@ -0,0 +1,38 @@ +foreignId('proveedor_tintoreria_id')->nullable()->constrained('proveedors')->nullOnDelete(); + }); + + Schema::table('prensillas', function (Blueprint $table) { + $table->foreignId('proveedor_tintoreria_id')->nullable()->constrained('proveedors')->nullOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('ojales', function (Blueprint $table) { + $table->dropForeign(['proveedor_tintoreria_id']); + $table->dropColumn('proveedor_tintoreria_id'); + }); + + Schema::table('prensillas', function (Blueprint $table) { + $table->dropForeign(['proveedor_tintoreria_id']); + $table->dropColumn('proveedor_tintoreria_id'); + }); + } +};