From 8aa2f355858ce045757fe3c7a9a08fefe0823a97 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 8 Jul 2026 08:56:57 -0500 Subject: [PATCH] =?UTF-8?q?fix(turnero/chat):=20recepcionista=20siempre=20?= =?UTF-8?q?vuelve=20a=20recepci=C3=B3n,=20no=20a=20dashboard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IP registrada → su desk; sin IP registrada → primer desk activo de recepción. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/views/chat.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/turnero/views/chat.php b/modules/turnero/views/chat.php index ffb80d9..92c7eb9 100644 --- a/modules/turnero/views/chat.php +++ b/modules/turnero/views/chat.php @@ -10,19 +10,29 @@ if (!isUserLoggedIn()) { header('Location: ' . BASE_URL . 'login.php'); exit; } $turneroPhoneId = getConfigFromDB('whatsapp_phone_number_id_turnero', ''); -// URL de regreso: recepcionista con IP registrada → su desk; resto → dashboard +// URL de regreso: recepcionista → su desk por IP o primer desk; resto → dashboard $_chatBackUrl = BASE_URL . 'erp.php?m=turnero&v=dashboard'; if (($_SESSION['admin_user']['role'] ?? '') === 'recepcionista') { try { $pdo = Database::getInstance()->getConnection(); $chatIp = trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR'] ?? '')[0]); - $st = $pdo->prepare( + + // 1. Buscar desk por IP + $st = $pdo->prepare( "SELECT d.lugar_id FROM turnero_dispositivos d JOIN turnero_lugares l ON l.id = d.lugar_id WHERE d.ip = ? AND d.activo = 1 AND l.tipo = 'recepcion' LIMIT 1" ); $st->execute([$chatIp]); $lugId = $st->fetchColumn(); + + // 2. Fallback: primer desk de recepción activo + if (!$lugId) { + $lugId = $pdo->query( + "SELECT id FROM turnero_lugares WHERE activo=1 AND tipo='recepcion' ORDER BY sort_order LIMIT 1" + )->fetchColumn(); + } + if ($lugId) { $_chatBackUrl = BASE_URL . 'erp.php?m=turnero&v=recepcion&desk_id=' . (int)$lugId; }