This commit is contained in:
Lizandro Guarnizo
2026-02-09 15:16:27 -05:00
parent 7763de0d70
commit 9de6ba17a1
2 changed files with 20 additions and 19 deletions
@@ -39,25 +39,27 @@ class InventarioPrendaResource extends Resource
Select::make('orden_produccion_id') Select::make('orden_produccion_id')
->label('Orden de Producción') ->label('Orden de Producción')
->options(function () { ->options(function () {
// Obtener todas las OPs con procesos terminados // Obtener todas las OPs con procesos de acabados
$ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado', function ($q) { $ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado')->get();
$q->where('terminada', true);
})->get();
// Filtrar solo las que tienen saldo disponible > 0 // Filtrar solo las que tienen saldo disponible > 0
$opsConSaldo = []; $opsConSaldo = [];
foreach ($ops as $op) { foreach ($ops as $op) {
$total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $op->id) // Calcular total desde recepciones de acabados
->where('terminada', true) $totalRecibido = 0;
->sum('cantidad_enviada'); $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) $usado = \App\Models\InventarioPrenda::where('orden_produccion_id', $op->id)
->sum('cantidad_terminada'); ->sum('cantidad_terminada');
$disponible = max(0, (int) $total - (int) $usado); $disponible = max(0, (int) $totalRecibido - (int) $usado);
if ($disponible > 0) { 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; $remaining = 0;
if ($state) { if ($state) {
// Total de cantidad enviada desde procesos de acabados terminados // Total desde recepciones de acabados
$total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state) $totalRecibido = 0;
->where('terminada', true) $procesosAcabados = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state)->get();
->sum('cantidad_enviada');
foreach ($procesosAcabados as $proceso) {
$totalRecibido += $proceso->recibido_total ?? 0;
}
// Ya asignado en otros inventarios // Ya asignado en otros inventarios
$used = \App\Models\InventarioPrenda::where('orden_produccion_id', $state)->sum('cantidad_terminada'); $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 // Colocar valores en formulario
$set('cantidad_terminada', $remaining); $set('cantidad_terminada', $remaining);
@@ -90,7 +95,7 @@ class InventarioPrendaResource extends Resource
$set('producto_id', $op->producto_id); $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') TextInput::make('cantidad_terminada')
->numeric() ->numeric()
@@ -229,10 +229,6 @@ class ProcesoAcabadoResource extends Resource
}) })
->visible(fn ($record) => $record !== null), ->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') Textarea::make('observaciones')
->label('Observaciones') ->label('Observaciones')
->rows(3) ->rows(3)