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') Select::make('orden_produccion_id')
->label('Orden de Producción') ->label('Orden de Producción')
->options(fn () => \App\Models\OrdenProduccion::all()->mapWithKeys(function ($op) { ->options(function () {
// Calcular cantidad disponible (mínimo entre ojales y prensillas terminados - ya enviadas) // Buscar órdenes que tengan al menos un ojal Y una prensilla terminados
$disponible = $op->getCantidadDisponibleParaTintoreria(); return \App\Models\OrdenProduccion::whereHas('ojales', function ($q) {
$q->where('terminada', true);
if ($disponible > 0) { })
// Obtener información de procesos ->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'); $ojalesTerminados = $op->ojales()->where('terminada', true)->sum('cantidad_enviada');
$prensillasTerminadas = $op->prensillas()->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}]"]; if ($disponible > 0) {
} return [$op->id => "{$op->numero_orden} - {$op->referencia} (Disponible: {$disponible}) [O:{$ojalesTerminados} P:{$prensillasTerminadas}]"];
return []; }
})->filter()) return [];
})->filter();
})
->searchable() ->searchable()
->preload() ->preload()
->reactive() ->reactive()
@@ -81,7 +92,7 @@ class TintoreriaResource extends Resource
$set('prenda_nombre_info', $orden->prenda_modelo ?? 'Sin especificar'); $set('prenda_nombre_info', $orden->prenda_modelo ?? 'Sin especificar');
// Información adicional sobre los procesos // Información adicional sobre los procesos
$set('info_procesos', "Ojales: {$ojalesTerminados} | Prensillas: {$prensillasTerminadas}"); $set('info_procesos', "Ojales: {$ojalesTerminados} | Prensillas: {$prensillasTerminadas} | Disponible: {$disponible}");
} }
} else { } else {
$set('prenda_nombre_info', null); $set('prenda_nombre_info', null);