From f51cc2029c273a0fc2ca6352476cd49f1836151b Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:03:47 -0500 Subject: [PATCH] Update lugar.php --- modules/turnero/views/lugar.php | 108 +++++++++++--------------------- 1 file changed, 35 insertions(+), 73 deletions(-) diff --git a/modules/turnero/views/lugar.php b/modules/turnero/views/lugar.php index e22ae0b..2f7c895 100644 --- a/modules/turnero/views/lugar.php +++ b/modules/turnero/views/lugar.php @@ -78,7 +78,6 @@ $adminNombre = $_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user'][' .cola-card.activo { border-color: #6366f1; box-shadow: 0 0 0 2px #c7d2fe; } .cola-card.en-servicio-card { border-color: #16a34a; background: #f0fdf4; } .cola-card.en-servicio-card.activo { border-color: #16a34a; box-shadow: 0 0 0 2px #bbf7d0; } - .cola-card.nav-selected { border-color: #3b82f6; background: #eff6ff; box-shadow: 0 0 0 2px #bfdbfe; } .prio-dot { width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; @@ -242,20 +241,6 @@ require_once __DIR__ . '/../../../shared/components/sidebar.php'; - -
@@ -489,7 +474,6 @@ function renderCola(snap) { const items = snap.cola || []; const espera = items.filter(t => t.estado === 'en_espera_lugar'); document.getElementById('badge-count').textContent = espera.length; - _actualizarNavCola(items); const lista = document.getElementById('cola-items'); if (!items.length) { @@ -500,74 +484,52 @@ function renderCola(snap) { lista.innerHTML = items.map(t => { const enServicio = t.estado === 'en_servicio'; const esActivo = turnoActivo?.id == t.id; - const onclick = enServicio - ? `enfocarFicha()` - : `llamarTurnoEspecifico(${t.id})`; - const badge = enServicio - ? `En servicio` - : ``; + if (enServicio) { + return ` +
+
${t.prioridad_codigo}
+
+
${escHtml(t.codigo)}
+
${escHtml(t.paciente_nombre || 'Paciente')}
+
+
+ + RE-LLAMAR +
+
`; + } return ` -
+
${t.prioridad_codigo}
${escHtml(t.codigo)}
${escHtml(t.paciente_nombre || 'Paciente')}
- ${badge} +
+ + LLAMAR +
`; }).join(''); } -function enfocarFicha() { - document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); -} - -// ── Navegación entre turnos en espera ───────────────────────── -let _navItems = []; // lista de turnos en_espera_lugar actual -let _navIdx = -1; // índice seleccionado - -function _actualizarNavCola(items) { - _navItems = items.filter(t => t.estado === 'en_espera_lugar'); - // Mantener idx si el turno seleccionado sigue en lista - if (_navIdx >= _navItems.length) _navIdx = _navItems.length - 1; - const nav = document.getElementById('nav-cola'); - if (_navItems.length > 0) { - nav.style.removeProperty('display'); - if (_navIdx < 0) _navIdx = 0; - _renderNavPreview(); - } else { - nav.style.display = 'none'; - _navIdx = -1; - document.getElementById('nav-preview').innerHTML = - `— ninguno seleccionado —`; +async function rellamarDesdeCard(turnoId) { + // Enfocar la ficha si es el activo + if (turnoActivo?.id == turnoId) { + document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } -} - -function _renderNavPreview() { - const t = _navItems[_navIdx]; - if (!t) return; - document.getElementById('nav-preview').innerHTML = - `${t.prioridad_codigo} - ${escHtml(t.codigo)} - ${escHtml(t.paciente_nombre || '')} - `; - // Resaltar la card en la lista - document.querySelectorAll('.cola-card').forEach(el => el.classList.remove('nav-selected')); - const cards = document.querySelectorAll('#cola-items .cola-card'); - if (cards[_navIdx]) cards[_navIdx].classList.add('nav-selected'); -} - -function navCola(dir) { - if (!_navItems.length) return; - _navIdx = (_navIdx + dir + _navItems.length) % _navItems.length; - _renderNavPreview(); -} - -async function llamarNavActual() { - if (_navIdx < 0 || !_navItems[_navIdx]) return; - await llamarTurnoEspecifico(_navItems[_navIdx].id); + // Re-llamar via API para actualizar llamado_at y notificar display + const res = await fetch(API + 'llamar_turno.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ area: 'lugar', lugar_id: lugarId, turno_id: turnoId }), + }); + const json = await res.json(); + if (json.ok && json.turno) anunciarTurno(json.turno.codigo); } // ── Llamar siguiente ──────────────────────────────────────────