diff --git a/modules/turnero/api/get_resumen_muestras.php b/modules/turnero/api/get_resumen_muestras.php index 85ea197..33fd42b 100644 --- a/modules/turnero/api/get_resumen_muestras.php +++ b/modules/turnero/api/get_resumen_muestras.php @@ -46,8 +46,26 @@ $s2 = $pdo->prepare( $s2->execute([$sesionId]); $enEsperaMuestra = (int)$s2->fetchColumn(); +// Último turno atendido en muestras por prioridad (letra) +$sp = $pdo->prepare( + "SELECT p.codigo, p.color, + (SELECT t.codigo FROM turnero_turnos t + WHERE t.sesion_id = ? AND t.prioridad_id = p.id + AND t.lugar_destino_id IN (SELECT id FROM turnero_lugares WHERE tipo='muestras' AND activo=1) + AND t.inicio_lugar_at IS NOT NULL + ORDER BY t.numero DESC LIMIT 1) AS ultimo_codigo + FROM turnero_prioridades p + ORDER BY p.orden_peso ASC" +); +$sp->execute([$sesionId]); +$porPrioridad = array_values(array_filter( + $sp->fetchAll(PDO::FETCH_ASSOC), + fn($r) => $r['ultimo_codigo'] !== null +)); + jsonOk([ 'estaciones' => $estaciones, 'en_espera' => $enEspera, 'en_espera_muestra' => $enEsperaMuestra, + 'por_prioridad' => $porPrioridad, ]); diff --git a/modules/turnero/views/recepcion.php b/modules/turnero/views/recepcion.php index 4610182..aaf6a65 100644 --- a/modules/turnero/views/recepcion.php +++ b/modules/turnero/views/recepcion.php @@ -3096,12 +3096,13 @@ async function _cargarResumenMuestras() { if (!j.ok) return; const cont = document.getElementById('muestras-estaciones'); if (!cont) return; - cont.innerHTML = j.estaciones.map(e => { - const libre = !e.turno_id; - return ` - ${escHtml(e.nombre)}: ${libre ? '—' : escHtml(e.codigo)} - `; - }).join(''); + cont.innerHTML = (j.por_prioridad || []).map(p => + ` + ${escHtml(p.codigo)}: ${escHtml(p.ultimo_codigo)} + ` + ).join(''); const cb = document.getElementById('muestras-cola-badge'); cb.textContent = `${j.en_espera} en espera`; cb.classList.toggle('d-none', j.en_espera === 0);