diff --git a/app/Filament/Resources/InventarioPrendaResource.php b/app/Filament/Resources/InventarioPrendaResource.php index 034f50e..5572af4 100644 --- a/app/Filament/Resources/InventarioPrendaResource.php +++ b/app/Filament/Resources/InventarioPrendaResource.php @@ -39,25 +39,27 @@ class InventarioPrendaResource extends Resource Select::make('orden_produccion_id') ->label('Orden de Producción') ->options(function () { - // Obtener todas las OPs con procesos terminados - $ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado', function ($q) { - $q->where('terminada', true); - })->get(); + // Obtener todas las OPs con procesos de acabados + $ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado')->get(); // Filtrar solo las que tienen saldo disponible > 0 $opsConSaldo = []; foreach ($ops as $op) { - $total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $op->id) - ->where('terminada', true) - ->sum('cantidad_enviada'); + // Calcular total desde recepciones de acabados + $totalRecibido = 0; + $procesosAcabados = \App\Models\ProcesoAcabado::where('orden_produccion_id', $op->id)->get(); + + foreach ($procesosAcabados as $proceso) { + $totalRecibido += $proceso->recibido_total ?? 0; + } $usado = \App\Models\InventarioPrenda::where('orden_produccion_id', $op->id) ->sum('cantidad_terminada'); - $disponible = max(0, (int) $total - (int) $usado); + $disponible = max(0, (int) $totalRecibido - (int) $usado); if ($disponible > 0) { - $opsConSaldo[$op->id] = $op->numero_orden . ' (Disponible: ' . $disponible . ')'; + $opsConSaldo[$op->id] = $op->numero_orden . ' - ' . ($op->referencia ?? $op->prenda_modelo ?? '') . ' (Disponible: ' . $disponible . ')'; } } @@ -70,15 +72,18 @@ class InventarioPrendaResource extends Resource $remaining = 0; if ($state) { - // Total de cantidad enviada desde procesos de acabados terminados - $total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state) - ->where('terminada', true) - ->sum('cantidad_enviada'); + // Total desde recepciones de acabados + $totalRecibido = 0; + $procesosAcabados = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state)->get(); + + foreach ($procesosAcabados as $proceso) { + $totalRecibido += $proceso->recibido_total ?? 0; + } // Ya asignado en otros inventarios $used = \App\Models\InventarioPrenda::where('orden_produccion_id', $state)->sum('cantidad_terminada'); - $remaining = max(0, (int) $total - (int) $used); + $remaining = max(0, (int) $totalRecibido - (int) $used); // Colocar valores en formulario $set('cantidad_terminada', $remaining); @@ -90,7 +95,7 @@ class InventarioPrendaResource extends Resource $set('producto_id', $op->producto_id); } } - })->helperText('Solo se muestran órdenes con procesos terminados y saldo disponible mayor a cero.'), + })->helperText('Solo se muestran órdenes con recepciones de acabados y saldo disponible mayor a cero.'), TextInput::make('cantidad_terminada') ->numeric() diff --git a/app/Filament/Resources/ProcesoAcabadoResource.php b/app/Filament/Resources/ProcesoAcabadoResource.php index a926cd6..ea73c1a 100644 --- a/app/Filament/Resources/ProcesoAcabadoResource.php +++ b/app/Filament/Resources/ProcesoAcabadoResource.php @@ -229,10 +229,6 @@ class ProcesoAcabadoResource extends Resource }) ->visible(fn ($record) => $record !== null), - Forms\Components\Checkbox::make('terminada') - ->label('Marcar como terminada') - ->helperText('Marca esta casilla cuando el proceso haya finalizado'), - Textarea::make('observaciones') ->label('Observaciones') ->rows(3)