From 0d17328fc31f0d47c075c0d4e92976d7352da0af Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sun, 19 Apr 2026 21:11:22 -0500 Subject: [PATCH] Update configuracion.php --- modules/turnero/views/configuracion.php | 111 +++++++++++++++--------- 1 file changed, 70 insertions(+), 41 deletions(-) diff --git a/modules/turnero/views/configuracion.php b/modules/turnero/views/configuracion.php index 6a3100a..6497c71 100644 --- a/modules/turnero/views/configuracion.php +++ b/modules/turnero/views/configuracion.php @@ -14,53 +14,72 @@ if (!isUserLoggedIn()) { header('Location: ' . BASE_URL . 'login.php'); exit; } $db = Database::getInstance(); $pdo = $db->getConnection(); -// ── Cargar datos para los tabs ──────────────────────────────── -$lugares = $pdo->query( - 'SELECT * FROM turnero_lugares ORDER BY sort_order ASC, id ASC' -)->fetchAll(PDO::FETCH_ASSOC); +// ── Cargar datos para los tabs (con fallback para tablas aún no migradas) ── +$lugares = []; +$prioridades = []; +$examTipos = []; +$formulariosCons= []; +$sesiones = []; +$sesionHoy = false; +$cfg = []; +$_loadErrors = []; -$prioridades = $pdo->query( - 'SELECT * FROM turnero_prioridades ORDER BY orden_peso ASC' -)->fetchAll(PDO::FETCH_ASSOC); +try { + $lugares = $pdo->query( + 'SELECT * FROM turnero_lugares ORDER BY sort_order ASC, id ASC' + )->fetchAll(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'turnero_lugares: ' . $e->getMessage(); } -$examTipos = $pdo->query( - 'SELECT et.*, GROUP_CONCAT(etc.formulario_id) AS form_ids - FROM exam_tipos et - LEFT JOIN exam_tipo_consentimientos etc ON etc.exam_tipo_id = et.id - GROUP BY et.id - ORDER BY et.categoria ASC, et.nombre ASC' -)->fetchAll(PDO::FETCH_ASSOC); +try { + $prioridades = $pdo->query( + 'SELECT * FROM turnero_prioridades ORDER BY orden_peso ASC' + )->fetchAll(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'turnero_prioridades: ' . $e->getMessage(); } -$formulariosCons = $pdo->query( - "SELECT id, nombre FROM lab_formularios WHERE tipo='consentimiento' AND activo=1 ORDER BY nombre ASC" -)->fetchAll(PDO::FETCH_ASSOC); +try { + $examTipos = $pdo->query( + 'SELECT et.*, GROUP_CONCAT(etc.formulario_id) AS form_ids + FROM exam_tipos et + LEFT JOIN exam_tipo_consentimientos etc ON etc.exam_tipo_id = et.id + GROUP BY et.id + ORDER BY et.categoria ASC, et.nombre ASC' + )->fetchAll(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'exam_tipos: ' . $e->getMessage(); } -// Historial de sesiones (últimas 30) -$sesiones = $pdo->query( - 'SELECT s.*, - a1.full_name AS abierto_nombre, - a2.full_name AS cerrado_nombre - FROM turnero_sesiones s - LEFT JOIN admin_users a1 ON a1.id = s.abierto_por - LEFT JOIN admin_users a2 ON a2.id = s.cerrado_por - ORDER BY s.fecha DESC - LIMIT 30' -)->fetchAll(PDO::FETCH_ASSOC); +try { + $formulariosCons = $pdo->query( + "SELECT id, nombre FROM lab_formularios WHERE tipo='consentimiento' AND activo=1 ORDER BY nombre ASC" + )->fetchAll(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'lab_formularios: ' . $e->getMessage(); } -// Sesión abierta hoy -$sesionHoy = $pdo->prepare( - "SELECT s.*, - (SELECT COUNT(*) FROM turnero_turnos WHERE sesion_id = s.id) AS total_turnos - FROM turnero_sesiones s - WHERE s.fecha = CURDATE()" -); -$sesionHoy->execute(); -$sesionHoy = $sesionHoy->fetch(PDO::FETCH_ASSOC); +try { + $sesiones = $pdo->query( + 'SELECT s.*, + a1.full_name AS abierto_nombre, + a2.full_name AS cerrado_nombre + FROM turnero_sesiones s + LEFT JOIN admin_users a1 ON a1.id = s.abierto_por + LEFT JOIN admin_users a2 ON a2.id = s.cerrado_por + ORDER BY s.fecha DESC + LIMIT 30' + )->fetchAll(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'turnero_sesiones: ' . $e->getMessage(); } -// Config WhatsApp del turnero -$cfgRows = $pdo->query("SELECT clave, valor FROM lab_config WHERE clave LIKE 'turnero_%'")->fetchAll(PDO::FETCH_ASSOC); -$cfg = []; -foreach ($cfgRows as $r) { $cfg[$r['clave']] = $r['valor']; } +try { + $stmtHoy = $pdo->prepare( + "SELECT s.*, + (SELECT COUNT(*) FROM turnero_turnos WHERE sesion_id = s.id) AS total_turnos + FROM turnero_sesiones s + WHERE s.fecha = CURDATE()" + ); + $stmtHoy->execute(); + $sesionHoy = $stmtHoy->fetch(PDO::FETCH_ASSOC); +} catch (\Throwable $e) { $_loadErrors[] = 'sesion_hoy: ' . $e->getMessage(); } + +try { + $cfgRows = $pdo->query("SELECT clave, valor FROM lab_config WHERE clave LIKE 'turnero_%'")->fetchAll(PDO::FETCH_ASSOC); + foreach ($cfgRows as $r) { $cfg[$r['clave']] = $r['valor']; } +} catch (\Throwable $e) { $_loadErrors[] = 'lab_config: ' . $e->getMessage(); } $tab = $_GET['tab'] ?? 'lugares'; ?> @@ -109,6 +128,16 @@ $tab = $_GET['tab'] ?? 'lugares';
= htmlspecialchars($le) ?>