108 Reporte de Reservas de Citas Medicas en PDF del Sistema con LARAVEL(PHP-MySql) FullStack

Duración: 18 min
Módulo: 📝 Historial Clínico, Configuraciones y Reportes Lección 9 de 23

Descripción

📅 Lección 108: Preparación de Reportes de Reservas por Rango de Fechas

Esta lección se enfoca en establecer la infraestructura necesaria para generar reportes de citas médicas (Reservas o Eventos) que puedan ser filtrados por un rango de fechas específico. Además, se añade un toque profesional a los reportes PDF existentes mediante la inclusión de un pie de página dinámico.

1. 📄 Mejora Profesional del PDF (Pie de Página)

Se añade un pie de página consistente a todos los reportes PDF generados con Dompdf, utilizando la funcionalidad de canvas para inyectar contenido dinámico [02:17].

  • Propósito: Mostrar información clave para la auditoría y control de documentos.
  • Contenido:
    • Usuario Impresor: Muestra el correo electrónico del usuario que ha generado el reporte, utilizando la helper de autenticación (Auth::user()->email) [03:41].
    • Paginación: Indica el número de página actual y el total de páginas (Ej: "Página 1 de 5") [02:43].
    • Fecha y Hora: Muestra la fecha y hora exactas de generación del reporte, formateadas con la librería Carbon [04:42].
    • Mecanismo: Se utiliza la variable $pdf después de cargar la vista, aplicando el método setOption('default-canvas-font', 'Arial') y manipulando el canvas de Dompdf para dibujar el texto en las coordenadas deseadas.

2. 🏥 Integración del Módulo de Reservas

Dado que el módulo de Reservas (Citas Médicas) es el que contiene los datos de los eventos, se integran las rutas y el menú para acceder a sus reportes [07:00].

  • Menú: Se añade un nuevo ítem en el sidebar llamado "Reservas" con un submenú para "Reportes".
  • Controlador: Se confirma que la gestión de reservas está enlazada al EventController (Controlador de Eventos) [09:53].
  • Rutas y Permisos: Se definen las nuevas rutas (admin/reservas/reportes) y se otorgan permisos de acceso solo al rol de Administrador [11:04].

3. 🗓️ Diseño de la Interfaz de Reportes por Fecha

Se crea la vista reportes.blade.php dentro del directorio admin/reservas para ofrecer las opciones de filtrado [13:35].

La interfaz incluye dos opciones principales para generar reportes de citas médicas:

Opción A: Listado de Todas las Reservas

Un botón de acceso directo para generar un reporte que incluya todas las citas registradas en el sistema.

Opción B: Generar Reporte por Fechas

Se implementa un formulario para el filtrado, que se procesará en la próxima lección:

  1. Fecha de Inicio: Un campo input type="date" con label para seleccionar la fecha inicial del rango [15:14].
  2. Fecha de Fin: Un campo input type="date" con label para seleccionar la fecha final del rango [15:55].
  3. Botón: "Generar Reporte" (btn-success), que enviará las fechas seleccionadas al controlador para realizar la consulta filtrada [16:13].

➡️ Próximo Paso [18:01]

En la siguiente lección, se implementará la lógica en el controlador (EventController) para recibir las fechas del formulario, ejecutar la consulta a la base de datos, y generar el reporte PDF con el listado de citas médicas que caen dentro de ese rango de fechas seleccionado.