From cef40a7a4388bddd5eaf2d19647da409a57b5595 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 16 Jun 2026 08:53:28 -0500 Subject: [PATCH] up --- modules/turnero/api/_helpers.php | 2 ++ modules/turnero/api/cambiar_estado.php | 9 +++++- modules/turnero/api/get_cola.php | 1 + modules/turnero/views/recepcion.php | 44 ++++++++++++++++++++++++-- 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/modules/turnero/api/_helpers.php b/modules/turnero/api/_helpers.php index 4c06d88..1c38e28 100644 --- a/modules/turnero/api/_helpers.php +++ b/modules/turnero/api/_helpers.php @@ -210,6 +210,7 @@ function siguienteTurnoEnCola(string $estado, ?int $lugarId = null): ?array AND t.lugar_destino_id = ? ORDER BY p.orden_peso ASC, t.creado_at ASC LIMIT 1 + FOR UPDATE '; $stmt = $pdo->prepare($sql); $stmt->execute([$estado, $lugarId]); @@ -221,6 +222,7 @@ function siguienteTurnoEnCola(string $estado, ?int $lugarId = null): ?array WHERE t.estado = ? ORDER BY p.orden_peso ASC, t.creado_at ASC LIMIT 1 + FOR UPDATE '; $stmt = $pdo->prepare($sql); $stmt->execute([$estado]); diff --git a/modules/turnero/api/cambiar_estado.php b/modules/turnero/api/cambiar_estado.php index 25caaa6..2f78efb 100644 --- a/modules/turnero/api/cambiar_estado.php +++ b/modules/turnero/api/cambiar_estado.php @@ -37,7 +37,7 @@ if ($nuevoEstado === '') jsonError('nuevo_estado es requerido.'); // Mapa de transiciones válidas [estado_actual => [estados_destino_permitidos]] const TRANSICIONES = [ 'espera' => ['en_recepcion', 'ausente', 'cancelado'], - 'en_recepcion' => ['en_espera_lugar', 'ausente', 'cancelado'], + 'en_recepcion' => ['en_espera_lugar', 'espera', 'ausente', 'cancelado'], 'en_espera_lugar' => ['en_servicio', 'ausente', 'cancelado'], 'en_servicio' => ['finalizado', 'ausente', 'cancelado', 'en_espera_lugar'], ]; @@ -139,6 +139,13 @@ try { $binds[] = adminId(); break; + case 'espera': + // Soltar: liberar el turno para que otro escritorio lo llame + $sets[] = 'recepcion_desk_id = NULL'; + $sets[] = 'inicio_recepcion_at = NULL'; + $sets[] = 'atendido_recepcion_por = NULL'; + break; + case 'ausente': case 'cancelado': // Sin timestamps adicionales; simplemente cambio de estado diff --git a/modules/turnero/api/get_cola.php b/modules/turnero/api/get_cola.php index a41030d..3b6f523 100644 --- a/modules/turnero/api/get_cola.php +++ b/modules/turnero/api/get_cola.php @@ -66,6 +66,7 @@ $stmt = $pdo->prepare( t.numero, t.estado, t.paciente_nombre, + t.recepcion_desk_id, t.creado_at, t.llamado_recepcion_at, t.llamado_lugar_at, diff --git a/modules/turnero/views/recepcion.php b/modules/turnero/views/recepcion.php index ae348d1..cf6ca6b 100644 --- a/modules/turnero/views/recepcion.php +++ b/modules/turnero/views/recepcion.php @@ -300,10 +300,14 @@ require_once __DIR__ . '/../../../shared/components/sidebar.php'; justify-content:center;font-size:1.6rem;font-weight:900;color:#fff;background:#3b82f6"> — -