Update TintoreriaResource.php
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user