From 9afefcf3e7457ab74db45ece08a3c42f34a0c63f Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sat, 4 Jul 2026 12:15:05 -0500 Subject: [PATCH] fix(turnero): turno de recepcion 1 aparece en recepcion 2 en display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_display_global.php: la query de cada escritorio tenía la condición OR t.recepcion_desk_id IS NULL lo que hacía que un turno llamado sin desk_id (NULL) apareciera como activo en TODOS los escritorios simultáneamente, anunciando el destino incorrecto. Se eliminó esa condición para usar match exacto por escritorio. llamar_turno.php: cambiar COALESCE(?, recepcion_desk_id) por ? directo. El COALESCE era innecesario porque el UPDATE solo aplica sobre estado='espera' (primer llamado). Ahora siempre escribe el valor recibido. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/api/get_display_global.php | 2 +- modules/turnero/api/llamar_turno.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/turnero/api/get_display_global.php b/modules/turnero/api/get_display_global.php index ca6abc8..39602bc 100644 --- a/modules/turnero/api/get_display_global.php +++ b/modules/turnero/api/get_display_global.php @@ -44,7 +44,7 @@ foreach ($escritoriosRec as $desk) { JOIN turnero_prioridades p ON p.id = t.prioridad_id WHERE t.sesion_id = ? AND t.estado = 'en_recepcion' - AND (t.recepcion_desk_id = ? OR t.recepcion_desk_id IS NULL) + AND t.recepcion_desk_id = ? ORDER BY t.llamado_recepcion_at DESC LIMIT 1" ); diff --git a/modules/turnero/api/llamar_turno.php b/modules/turnero/api/llamar_turno.php index 81f86fb..f2cbab5 100644 --- a/modules/turnero/api/llamar_turno.php +++ b/modules/turnero/api/llamar_turno.php @@ -41,13 +41,16 @@ try { } // Actualizar estado + timestamp + // $deskId puede ser null si el recepcionista no seleccionó escritorio; + // se guarda igual (puede quedar NULL) pero la query del display ya no + // usa IS NULL para evitar que aparezca en todos los escritorios. $stmt = $pdo->prepare( 'UPDATE turnero_turnos SET estado = "en_recepcion", llamado_recepcion_at = NOW(), inicio_recepcion_at = NOW(), atendido_recepcion_por = ?, - recepcion_desk_id = COALESCE(?, recepcion_desk_id) + recepcion_desk_id = ? WHERE id = ? AND estado = "espera"' ); $stmt->execute([adminId(), $deskId, $turno['id']]);