diff --git a/app/Filament/Resources/ConfeccionResource/Pages/EditConfeccion.php b/app/Filament/Resources/ConfeccionResource/Pages/EditConfeccion.php index 972bab6..c6e5299 100644 --- a/app/Filament/Resources/ConfeccionResource/Pages/EditConfeccion.php +++ b/app/Filament/Resources/ConfeccionResource/Pages/EditConfeccion.php @@ -29,6 +29,12 @@ class EditConfeccion extends EditRecord ->maxValue(fn () => $this->getRecord()->faltantes ?? 0) ->helperText(fn () => 'Máximo: ' . ($this->getRecord()->faltantes ?? 0)) ->default(fn () => $this->getRecord()->faltantes ?? 0), + + Forms\Components\TextInput::make('prendas_defectuosas') + ->numeric() + ->minValue(0) + ->maxValue(fn ($get) => (int) ($get('cantidad') ?? 0)) + ->helperText('Opcional. Se restará del total recibido.'), Forms\Components\Textarea::make('notas'), ]) ->action(function (array $data): void { diff --git a/app/Filament/Resources/ConfeccionResource/RelationManagers/RecepcionesRelationManager.php b/app/Filament/Resources/ConfeccionResource/RelationManagers/RecepcionesRelationManager.php index dd12bfc..1300812 100644 --- a/app/Filament/Resources/ConfeccionResource/RelationManagers/RecepcionesRelationManager.php +++ b/app/Filament/Resources/ConfeccionResource/RelationManagers/RecepcionesRelationManager.php @@ -29,6 +29,13 @@ class RecepcionesRelationManager extends RelationManager ->minValue(1) ->maxValue(fn () => $this->getOwnerRecord()?->faltantes ?? 0) ->helperText(fn () => 'Máximo: ' . ($this->getOwnerRecord()?->faltantes ?? 0)), + + TextInput::make('prendas_defectuosas') + ->numeric() + ->minValue(0) + ->maxValue(fn ($get) => (int) ($get('cantidad') ?? 0)) + ->helperText('Opcional. Se restará del total recibido.'), + Textarea::make('notas'), ]); } diff --git a/app/Filament/Resources/TintoreriaResource/RelationManagers/RecepcionesRelationManager.php b/app/Filament/Resources/TintoreriaResource/RelationManagers/RecepcionesRelationManager.php index 9991cea..5550228 100644 --- a/app/Filament/Resources/TintoreriaResource/RelationManagers/RecepcionesRelationManager.php +++ b/app/Filament/Resources/TintoreriaResource/RelationManagers/RecepcionesRelationManager.php @@ -29,6 +29,13 @@ class RecepcionesRelationManager extends RelationManager ->minValue(1) ->maxValue(fn () => $this->getOwnerRecord()?->faltantes ?? 0) ->helperText(fn () => 'Máximo: ' . ($this->getOwnerRecord()?->faltantes ?? 0)), + + TextInput::make('prendas_defectuosas') + ->numeric() + ->minValue(0) + ->maxValue(fn ($get) => (int) ($get('cantidad') ?? 0)) + ->helperText('Opcional. Se restará del total recibido.'), + Textarea::make('notas'), ]); } diff --git a/database/migrations/2026_01_20_000000_add_prendas_defectuosas_to_recepciones_table.php b/database/migrations/2026_01_20_000000_add_prendas_defectuosas_to_recepciones_table.php new file mode 100644 index 0000000..41b93a3 --- /dev/null +++ b/database/migrations/2026_01_20_000000_add_prendas_defectuosas_to_recepciones_table.php @@ -0,0 +1,22 @@ +integer('prendas_defectuosas')->default(0)->after('cantidad'); + }); + } + + public function down(): void + { + Schema::table('recepciones', function (Blueprint $table) { + $table->dropColumn('prendas_defectuosas'); + }); + } +}; diff --git a/tests/Feature/RecepcionFlowTest.php b/tests/Feature/RecepcionFlowTest.php index 8895e12..b3da054 100644 --- a/tests/Feature/RecepcionFlowTest.php +++ b/tests/Feature/RecepcionFlowTest.php @@ -56,6 +56,24 @@ class RecepcionFlowTest extends TestCase ->count(); $this->assertEquals(2, $count); + + // Crear recepción con defectos y comprobar traslado creado + Recepcion::create([ + 'referencia_type' => Confeccion::class, + 'referencia_id' => $conf->id, + 'cantidad' => 50, + 'prendas_defectuosas' => 5, + 'fecha_recepcion' => now(), + ]); + + $ultimoTraslado = TrasladoPrenda::where('referencia_type', Confeccion::class) + ->where('referencia_id', $conf->id) + ->latest('id') + ->first(); + + $this->assertNotNull($ultimoTraslado); + $this->assertEquals(45, $ultimoTraslado->cantidad_recibida); + $this->assertEquals(5, $ultimoTraslado->prendas_defectuosas); } /** @test */