109 Reporte de Reservas de Citas Medicas en PDF del Sistema con LARAVEL(PHP-MySql) FullStack
Duración: 18 minDescripción
📅 Lección 109: Reporte de Reservas por Rango de Fechas (Parte I)
Esta lección se enfoca en implementar la lógica de generación del Listado Completo de Reservas (Citas Médicas) en formato PDF, lo cual sirve de base para la generación de reportes por rango de fechas que se verá en detalle más adelante. Se establecen las rutas, el controlador y se diseñan los elementos principales del listado.
1. ⚙️ Rutas y Funciones del Controlador
Se definen las rutas y las funciones en el EventController para manejar los dos tipos de reportes de reservas (listado completo y filtrado por fecha).
- Rutas Creadas: Se habilitan dos nuevas rutas de tipo GET dentro del módulo de Reservas [02:30]:
- admin/reservas/pdf: Para el listado completo de todas las reservas.
- admin/reservas/pdf-fechas: Para el reporte filtrado por rango de fechas.
- Vistas Preparadas: Se crean dos archivos Blade para el diseño de cada reporte [01:23]:
- pdf.blade.php: Para el listado general.
- pdf-fechas.blade.php: Para el listado filtrado.
- Función PDF (Listado Completo): Se implementa la función PDF en el EventController [04:31]:
- Consulta de Datos: Se obtienen todas las reservas del sistema (Event::all()) y la configuración de la clínica (Configuracion::latest()->first()).
- Renderización: Se cargan los datos en la vista reservas.pdf utilizando Dompdf [05:35].
2. 🎨 Diseño del Listado General de Reservas
Se reutiliza la estructura de encabezado implementada en la lección anterior y se diseña la tabla de datos para mostrar la información relevante de cada cita.
A. Título y Encabezado [08:41]
- Título: Se establece el encabezado del reporte como "Listado de todas las Reservas Médicas".
- Configuración: Se asegura que la tabla (pdf.blade.php) cargue correctamente la información de la clínica (logo, nombre, etc.), recordando que es necesario tener datos de configuración en la base de datos después de ejecutar un seeder [09:47].
B. Estructura de la Tabla de Reservas [12:35]
La tabla del reporte se organiza para mostrar la siguiente información:
| Columna | Fuente de la Información | Observaciones |
|---|---|---|
| N° | Contador. | Índice secuencial de las reservas. |
| Doctor | event->doctor->nombres y event->doctor->apellidos. | Se accede a los datos del doctor a través de la relación de la tabla events [13:06]. |
| Especialidad | event->doctor->especialidad. | Se trae la especialidad a través de la relación con el doctor [13:54]. |
| Fecha de Reserva | event->start. | Se aplica un formato PHP para mostrar solo la fecha (date('Y-m-d')) [14:28]. |
| Hora de Reserva | event->start. | Se aplica un formato PHP para mostrar solo la hora (date('H:i')) [15:02]. |
C. Activación del Pie de Página [17:09]
- Una vez que el reporte se genera correctamente, se descomenta el código del pie de página que se había añadido en la lección 108.
- Esto asegura que el listado de reservas incluya automáticamente el usuario impresor, la paginación y la fecha/hora de emisión [17:22].
➡️ Próximo Paso [17:38]
El próximo capítulo se dedicará completamente a implementar la lógica para recibir los parámetros de "Fecha de Inicio" y "Fecha de Fin" del formulario de reportes y ejecutar la consulta filtrada en la función PDF-fechas.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️