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()ySumaEgresos()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:
PacientesServiciosProductosCotizacionesCitasOdontologia
Incluye un calendario cargado dinámicamente en #cargacalendario.
6.3 paciente
Muestra tarjetas y enlaces a:
CitasOdontologiaCotizacionesFacturas
Incluye calendario dinámico.
6.4 cajero
Muestra tarjetas y enlaces a:
EspecialistasPacientesServiciosProductosCotizacionesCitasIngresosEgresos
Incluye calendario dinámico y utiliza SumaIngresos() / SumaEgresos() para mostrar totales.
6.5 Otros roles (administradorS, secretaria, etc.)
Muestra tarjetas y enlaces a:
EspecialistasPacientesServiciosProductosComprasCotizacionesCitasOdontologiaIngresosEgresos
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=sidespué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