Panel de inicio

1. Propósito del archivo

panel.php es la página principal del sistema. Presenta un tablero de indicadores, accesos rápidos y widgets según el rol del usuario.

2. Validación de acceso

El archivo requiere sesión activa y valida el rol en $_SESSION['acceso'].

Roles permitidos:

  • administradorG
  • administradorS
  • secretaria
  • cajero
  • especialista
  • paciente

Si la sesión no existe o el usuario no tiene permiso válido, se muestra una alerta y redirige a logout.

3. Dependencias y clase principal

Requiere:

  • require_once("class/class.php")
  • include('menu.php')

Instancia de clase usada:

  • new Login()

Métodos llamados:

  • ExpiraSession() para validar expiración de sesión.
  • ContarRegistros() para obtener conteos de entidades.
  • SumaIngresos() y SumaEgresos() para valores financieros del cajero y otros roles.

4. Estructura general de la página

La página está construida como un dashboard con:

  • barra lateral y menú incluido desde menu.php
  • breadcrumb de navegación
  • contenido dinámico según rol
  • footer común
  • carga de scripts y estilos generales de la plantilla

5. Modal de detalle de cita

Incluye un modal de Bootstrap con id ModalAdd para mostrar datos de cita:

  • sucursal
  • paciente
  • especialista
  • motivo
  • fecha y hora

El modal no contiene lógica de envío; es un cuadro de detalle informativo.

6. Contenido según rol

6.1 administradorG

Muestra:

  • tarjetas con conteos de Sucursales, Usuarios, Pacientes, Proveedores
  • gráfico de sucursales del año actual (showGraphBarS())

6.2 especialista

Muestra tarjetas y enlaces a:

  • Pacientes
  • Servicios
  • Productos
  • Cotizaciones
  • Citas
  • Odontologia

Incluye un calendario cargado dinámicamente en #cargacalendario.

6.3 paciente

Muestra tarjetas y enlaces a:

  • Citas
  • Odontologia
  • Cotizaciones
  • Facturas

Incluye calendario dinámico.

6.4 cajero

Muestra tarjetas y enlaces a:

  • Especialistas
  • Pacientes
  • Servicios
  • Productos
  • Cotizaciones
  • Citas
  • Ingresos
  • Egresos

Incluye calendario dinámico y utiliza SumaIngresos() / SumaEgresos() para mostrar totales.

6.5 Otros roles (administradorS, secretaria, etc.)

Muestra tarjetas y enlaces a:

  • Especialistas
  • Pacientes
  • Servicios
  • Productos
  • Compras
  • Cotizaciones
  • Citas
  • Odontologia
  • Ingresos
  • Egresos

Incluye calendario dinámico.

7. Interacción con el calendario

El panel agrega contenido al contenedor #cargacalendario mediante JavaScript:

  • muestra un spinner de espera
  • carga calendario?Calendario_Principal=si después de 100 ms

8. Scripts y estilos utilizados

Se cargan recursos de la plantilla y del sistema:

  • CSS: sidebar-nav, timepicker, bootstrap-datepicker, toast, datatables, animate, style, default
  • JS: jquery.min.js, titulos.js, chart.min.js, graficos.js, bootstrap.js, app.min.js, app.init.horizontal-fullwidth.js, app-style-switcher.js, perfect-scrollbar.js, sparkline.js, waves.js, sidebarmenu.js, custom.js, moment.min.js, fullcalendar.min.js, es.js, validation.min.js, script.js, jscalendario.js, autocompleto.js, jquery.noty.packaged.min.js, jquery-ui-timepicker-addon.js

9. Elementos de diseño

  • La página usa tarjetas Bootstrap para indicadores y accesos rápidos.
  • Los iconos son de FontAwesome.
  • El diseño se adapta por rol para mostrar solo las secciones relevantes.

10. Uso esperado

panel.php funciona como el punto de entrada después del login:

  • muestra datos resumidos según el rol
  • provee acceso rápido a módulos del sistema
  • garantiza que solo usuarios autorizados vean el dashboard