From 8b51227c3245ac59ce0800e69fdcbcfc05898ac6 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sun, 18 Jan 2026 12:22:45 -0500 Subject: [PATCH] up --- app/Filament/Resources/ConfeccionResource.php | 27 ++++++++++++++++--- app/Models/Confeccion.php | 9 +++---- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/Filament/Resources/ConfeccionResource.php b/app/Filament/Resources/ConfeccionResource.php index 158384a..92e74ef 100644 --- a/app/Filament/Resources/ConfeccionResource.php +++ b/app/Filament/Resources/ConfeccionResource.php @@ -74,12 +74,23 @@ class ConfeccionResource extends Resource ->minValue(1) ->maxValue(fn ($get) => $get('orden_produccion_id') ? \App\Models\OrdenProduccion::find($get('orden_produccion_id'))->cantidad_total : null) ->helperText(fn ($get) => $get('orden_produccion_id') ? 'Máximo: ' . \App\Models\OrdenProduccion::find($get('orden_produccion_id'))->cantidad_total : 'Selecciona una Orden de Producción') - ->reactive(), + ->reactive() + ->afterStateUpdated(function ($state, $set, $get) { + $valor = $get('valor_por_prenda') ?? 0; + $cantidad = $get('cantidad_recibida') ?? $state; + $set('total_pagar', $cantidad && $valor ? $cantidad * $valor : 0); + }), DatePicker::make('fecha_recepcion'), TextInput::make('cantidad_recibida') - ->numeric(), + ->numeric() + ->reactive() + ->afterStateUpdated(function ($state, $set, $get) { + $valor = $get('valor_por_prenda') ?? 0; + $cantidad = $state ?? $get('cantidad_enviada'); + $set('total_pagar', $cantidad && $valor ? $cantidad * $valor : 0); + }), TextInput::make('prendas_defectuosas') ->numeric() @@ -88,10 +99,18 @@ class ConfeccionResource extends Resource TextInput::make('valor_por_prenda') ->numeric() ->prefix('$') - ->required(), + ->required() + ->reactive() + ->afterStateUpdated(function ($state, $set, $get) { + $cantidad = $get('cantidad_recibida') ?? $get('cantidad_enviada'); + $set('total_pagar', $cantidad && $state ? $cantidad * $state : 0); + }), TextInput::make('total_pagar') - ->prefix('$'), + ->prefix('$') + ->numeric() + ->readOnly() + ->default(0), ]) ->columns(2), ]); diff --git a/app/Models/Confeccion.php b/app/Models/Confeccion.php index 0877d6a..5743f68 100644 --- a/app/Models/Confeccion.php +++ b/app/Models/Confeccion.php @@ -49,11 +49,10 @@ class Confeccion extends Model } } - // Total a pagar - if ($confeccion->cantidad_recibida !== null) { - $confeccion->total_pagar = - $confeccion->cantidad_recibida * $confeccion->valor_por_prenda; - } + // Total a pagar: usa cantidad_recibida si existe, sino cantidad_enviada + $cantidadBase = $confeccion->cantidad_recibida ?? $confeccion->cantidad_enviada ?? 0; + $valorUnitario = $confeccion->valor_por_prenda ?? 0; + $confeccion->total_pagar = $cantidadBase * $valorUnitario; // Estado automático if (! $confeccion->cantidad_recibida) {