Update InventarioPrendaResource.php

This commit is contained in:
Lizandro Guarnizo
2026-01-29 22:17:58 -05:00
parent c7ca116e73
commit 1503e7f39a
@@ -38,19 +38,42 @@ class InventarioPrendaResource extends Resource
->schema([
Select::make('orden_produccion_id')
->label('Orden de Producción')
->relationship('ordenProduccion', 'numero_orden')
->options(function () {
// Obtener todas las OPs con procesos terminados
$ops = \App\Models\OrdenProduccion::whereHas('procesosAcabados', function ($q) {
$q->where('terminada', true);
})->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');
$usado = \App\Models\InventarioPrenda::where('orden_produccion_id', $op->id)
->sum('cantidad_terminada');
$disponible = max(0, (int) $total - (int) $usado);
if ($disponible > 0) {
$opsConSaldo[$op->id] = $op->numero_orden . ' (Disponible: ' . $disponible . ')';
}
}
return $opsConSaldo;
})
->searchable()
->preload()
->reactive()
->required()
->afterStateUpdated(function ($state, $set) {
$remaining = 0;
if ($state) {
// Total recibido desde procesos de acabados completados
// Total de cantidad enviada desde procesos de acabados terminados
$total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state)
->whereNotNull('fecha_recepcion')
->sum('cantidad_recibida');
->where('terminada', true)
->sum('cantidad_enviada');
// Ya asignado en otros inventarios
$used = \App\Models\InventarioPrenda::where('orden_produccion_id', $state)->sum('cantidad_terminada');
@@ -67,7 +90,7 @@ class InventarioPrendaResource extends Resource
$set('producto_id', $op->producto_id);
}
}
})->helperText('La Orden de Producción es la fuente de verdad para el producto; si la OP tiene producto asociado, se usará automáticamente.'),
})->helperText('Solo se muestran órdenes con procesos terminados y saldo disponible mayor a cero.'),
TextInput::make('cantidad_terminada')
->numeric()