From f533891c5e4c848f8e3450ab321fdee8a65b45ac Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 24 Jun 2026 01:36:36 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20transici=C3=B3n=20no=20permitida=20al=20?= =?UTF-8?q?pasar=20a=20lugar=20desde=20turno=20en=20espera?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cuando la recepcionista seleccionaba un turno de la cola sin llamarlo formalmente (via seleccionarTurno), el turno quedaba en estado espera en BD. Al intentar pasar a lugar, espera→en_espera_lugar no es válido. Fix: en create_solicitud.php, si el turno está en espera al guardar la solicitud, se promueve a en_recepcion en el mismo transaction, preservando timestamps existentes con COALESCE. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/api/create_solicitud.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/turnero/api/create_solicitud.php b/modules/turnero/api/create_solicitud.php index 61a20ab..b6264ab 100644 --- a/modules/turnero/api/create_solicitud.php +++ b/modules/turnero/api/create_solicitud.php @@ -62,6 +62,17 @@ try { $pdo->rollBack(); jsonError("El turno está en estado '{$turno['estado']}' y no se puede editar su solicitud.", 422); } + // Si el turno fue seleccionado sin llamarlo formalmente, promoverlo a en_recepcion ahora + if ($turno['estado'] === 'espera') { + $pdo->prepare( + "UPDATE turnero_turnos + SET estado = 'en_recepcion', + llamado_recepcion_at = COALESCE(llamado_recepcion_at, NOW()), + inicio_recepcion_at = COALESCE(inicio_recepcion_at, NOW()), + atendido_recepcion_por = COALESCE(atendido_recepcion_por, ?) + WHERE id = ?" + )->execute([adminId(), $turnoId]); + } // Verificar que el lugar existe $stmt = $pdo->prepare("SELECT id FROM turnero_lugares WHERE id = ? AND activo = 1");