diff --git a/app/Filament/Resources/OjalPresillaResource.php b/app/Filament/Resources/OjalPresillaResource.php index 030c0ba..7c313b6 100644 --- a/app/Filament/Resources/OjalPresillaResource.php +++ b/app/Filament/Resources/OjalPresillaResource.php @@ -36,9 +36,22 @@ class OjalPresillaResource extends Resource return \App\Models\OrdenProduccion::whereHas('confecciones', function ($q) { $q->where('cantidad_recibida', '>', 0); })->get()->mapWithKeys(function ($op) { - $recibido = $op->confecciones->sum('cantidad_recibida'); - return [$op->id => "{$op->numero_orden} ({$recibido} prendas recibidas)"]; - }); + // Calcular cantidad total de confecciones recibidas + $cantidadConfecciones = $op->confecciones->sum('cantidad_recibida'); + + // Calcular cantidad ya enviada en ojales + $cantidadEnOjales = \App\Models\Ojal::where('orden_produccion_id', $op->id) + ->sum('cantidad_enviada'); + + // Calcular saldo disponible + $saldoDisponible = $cantidadConfecciones - $cantidadEnOjales; + + // Solo incluir si hay saldo disponible + if ($saldoDisponible > 0) { + return [$op->id => "{$op->numero_orden} (Disponible: {$saldoDisponible})"]; + } + return []; + })->filter(); // Eliminar valores vacíos }) ->searchable() ->required() @@ -47,11 +60,17 @@ class OjalPresillaResource extends Resource if ($state) { $op = \App\Models\OrdenProduccion::find($state); if ($op) { - $recibido = $op->confecciones->sum('cantidad_recibida'); - $set('cantidad_enviada', $recibido); + // Calcular cantidad disponible (confecciones - ojales ya enviados) + $cantidadConfecciones = $op->confecciones->sum('cantidad_recibida'); + $cantidadEnOjales = \App\Models\Ojal::where('orden_produccion_id', $state) + ->sum('cantidad_enviada'); + $cantidadDisponible = $cantidadConfecciones - $cantidadEnOjales; + + $set('cantidad_enviada', $cantidadDisponible); } } - }), + }) + ->helperText('Solo se muestran órdenes con prendas disponibles para enviar'), TextInput::make('tipo') ->label('Tipo')