Update TintoreriaResource.php

This commit is contained in:
Lizandro Guarnizo
2026-02-04 20:02:58 -05:00
parent f0686d6b18
commit d7a0351c1e
+22 -11
View File
@@ -50,19 +50,30 @@ class TintoreriaResource extends Resource
Select::make('orden_produccion_id')
->label('Orden de Producción')
->options(fn () => \App\Models\OrdenProduccion::all()->mapWithKeys(function ($op) {
// Calcular cantidad disponible (mínimo entre ojales y prensillas terminados - ya enviadas)
$disponible = $op->getCantidadDisponibleParaTintoreria();
if ($disponible > 0) {
// Obtener información de procesos
->options(function () {
// Buscar órdenes que tengan al menos un ojal Y una prensilla terminados
return \App\Models\OrdenProduccion::whereHas('ojales', function ($q) {
$q->where('terminada', true);
})
->whereHas('prensillas', function ($q) {
$q->where('terminada', true);
})
->with(['ojales', 'prensillas', 'tintorerias'])
->get()
->mapWithKeys(function ($op) {
// Calcular cantidad disponible
$ojalesTerminados = $op->ojales()->where('terminada', true)->sum('cantidad_enviada');
$prensillasTerminadas = $op->prensillas()->where('terminada', true)->sum('cantidad_enviada');
$minimoCompleto = min($ojalesTerminados, $prensillasTerminadas);
$enviadasTintoreria = $op->tintorerias()->sum('cantidad_enviada');
$disponible = max(0, $minimoCompleto - $enviadasTintoreria);
return [$op->id => "{$op->numero_orden} - {$op->referencia} (Disponible: {$disponible}) [O:{$ojalesTerminados} P:{$prensillasTerminadas}]"];
}
return [];
})->filter())
if ($disponible > 0) {
return [$op->id => "{$op->numero_orden} - {$op->referencia} (Disponible: {$disponible}) [O:{$ojalesTerminados} P:{$prensillasTerminadas}]"];
}
return [];
})->filter();
})
->searchable()
->preload()
->reactive()
@@ -81,7 +92,7 @@ class TintoreriaResource extends Resource
$set('prenda_nombre_info', $orden->prenda_modelo ?? 'Sin especificar');
// Información adicional sobre los procesos
$set('info_procesos', "Ojales: {$ojalesTerminados} | Prensillas: {$prensillasTerminadas}");
$set('info_procesos', "Ojales: {$ojalesTerminados} | Prensillas: {$prensillasTerminadas} | Disponible: {$disponible}");
}
} else {
$set('prenda_nombre_info', null);