Sin turno activo
Haga clic en de un turno para llamarlo, o use "Llamar siguiente"getConnection(); // Para destino solo nos interesa recepción y toma de muestras $lugarRecepcion = $pdo->query( "SELECT id, nombre FROM turnero_lugares WHERE tipo='recepcion' AND activo=1 ORDER BY sort_order LIMIT 1" )->fetch(PDO::FETCH_ASSOC); $lugarMuestras = $pdo->query( "SELECT id, nombre FROM turnero_lugares WHERE tipo='muestras' AND activo=1 ORDER BY sort_order LIMIT 1" )->fetch(PDO::FETCH_ASSOC); $examenes = $pdo->query( "SELECT id, codigo, nombre, categoria FROM exam_tipos WHERE activo = 1 ORDER BY categoria, nombre" )->fetchAll(PDO::FETCH_ASSOC); // Agrupar exámenes por categoría $examenesAgrupados = []; foreach ($examenes as $ex) { $cat = $ex['categoria'] ?: 'General'; $examenesAgrupados[$cat][] = $ex; } // Escritorio de recepción (opcional, vía ?desk_id=X) $deskId = (int)($_GET['desk_id'] ?? 0); $desk = null; if ($deskId) { $stmtDesk = $pdo->prepare( "SELECT id, nombre FROM turnero_lugares WHERE id = ? AND tipo = 'recepcion' AND activo = 1" ); $stmtDesk->execute([$deskId]); $desk = $stmtDesk->fetch(PDO::FETCH_ASSOC) ?: null; if (!$desk) { $deskId = 0; } // ID inválido → sin desk } } catch (\Throwable $e) { $lugares = []; $examenesAgrupados = []; $deskId = 0; $desk = null; $lugarRecepcion = null; $lugarMuestras = null; } $deskNombre = $desk['nombre'] ?? null; // null = vista genérica $adminNombre = $_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user']['username'] ?? 'Operador'; ?>
Sin turno activo
Haga clic en de un turno para llamarlo, o use "Llamar siguiente"