INFORMES INSTITUCIONALES Y AUDITORÍA POR EVENTO - 21/OCT/2026 Archivos incorporados: functions/reports_dataset_functions.php - dataset compartido entre UI y archivos. functions/reports_export_functions.php - genera XLSX/PDF en PHP. procs/reports_export.php - descarga bajo sesión y permiso reports_access. admin/images/report_uprrp_logo.jpg - recurso de cabecera PDF. Modificados: procs/reports_event_data.php, procs/participant_qr_reissue.php, admin/js/reports.js, admin/main.php. Formato: Excel (.xlsx) y PDF A4 apaisado, ambos con evento, fecha, estado, resumen ejecutivo y detalle de pestaña. No requiere instalar nuevas bibliotecas Composer: utiliza el ZIP incluido en vendor/splitbrain/php-archive. Auditoría: - Eventos: registro referenciado directamente al evento. - Importaciones/confirmaciones/sustituciones: asociación por ID de importación. - Alta/desactivación/reactivación individual: asociación por ID de participante. - Reemisión QR: asociación por ID de participante. - Para eventos con más de 2000 acciones, la vista actual limita a las 2000 operaciones más recientes. No se incluyen acciones sin un vínculo verificable a un evento (evita cruces de identificadores). - Sustituciones de listas guardan un resumen agregado de cambios, no una entrada por cada participante. Para auditoría individual completa de altas/bajas masivas hará falta tabla de detalles específica. Verificaciones realizadas en entorno local: - Sintaxis PHP/JS. - Estructura ZIP XLSX legible con el paquete zipfile. - PDF válido con pdfinfo, página A4 horizontal. - Sin pruebas de base de datos ni navegador en servidor institucional. PRUEBAS RECOMENDADAS ANTES DE PRODUCCIÓN: - Descarga con sesión autorizada y denegación a usuario sin permiso. - Verificar acentos/nombres extensos en Excel/PDF. - Verificar filtros y varias páginas (100+ filas). - Confirmar conteos para evento EN_PROCESO y FINALIZADO. - Validar auditoría de sustitución de lista, alta individual, reactivación, desactivación y reemisión QR.