From 8074f33b32bb41a3bbb0e54c5c3e961310382210 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 2 Jul 2026 23:32:31 -0500 Subject: [PATCH] fix(turnero): eliminar duplicados en pantalla TV al llamar turno MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit callKey usaba id+llamado_at: si llamado_at llegaba null en el primer poll y con valor en el segundo, se generaban dos claves distintas para el mismo evento y el turno se anunciaba dos veces. Cambia callKey a String(id) — cada turno se anuncia una sola vez por sesión de pantalla, sin importar cambios en el timestamp. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/views/display_global.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/turnero/views/display_global.php b/modules/turnero/views/display_global.php index c58b354..87495e2 100644 --- a/modules/turnero/views/display_global.php +++ b/modules/turnero/views/display_global.php @@ -616,8 +616,7 @@ function renderSnapshot(snap) { let anuncioNuevo = false; allTurnos.forEach(t => { const key = t.codigo + '|' + t.destino + '|' + (t.llamado_at || ''); - // Clave única por evento de llamada (id+llamado_at), independiente del escritorio - const callKey = (t.id || t.codigo) + '|' + (t.llamado_at || ''); + const callKey = String(t.id || t.codigo); currentKeys.add(key); if (!lastSeenKeys.has(key)) { const c = t.prioridad_color || ''; @@ -643,7 +642,7 @@ function renderSnapshot(snap) { const t = sorted[0]; const c = t.prioridad_color || ''; const key = t.codigo + '|' + t.destino + '|' + (t.llamado_at || ''); - const callKey = (t.id || t.codigo) + '|' + (t.llamado_at || ''); + const callKey = String(t.id || t.codigo); const nomVoz = t.paciente_id ? t.paciente_nombre : null; announcedCalls.add(callKey); queueAnnouncement({ _key: key, codigo: t.codigo, destino: t.destino, paciente: nomVoz, color: c });