110 Reporte de Reservas de Citas Medicas entre 2 fechas del Sistema con LARAVEL(PHP-MySql) FullStack
Duración: 13 minDescripción
📅 Lección 110: Generación de Reportes de Reservas por Rango de Fechas
Esta lección finaliza el módulo de reportes implementando la funcionalidad para filtrar las reservas de citas médicas (Eventos) por un rango de fechas específico y generar el reporte PDF correspondiente.
1. 📡 Configuración del Formulario de Filtrado
El formulario de reportes de reservas es crucial para capturar las fechas que definen el rango de consulta.
- Método y Acción: El formulario en la vista reportes.blade.php utiliza el método GET para enviar los datos [02:32].
- Ruta de Destino: La acción del formulario se dirige a la ruta nombrada admin.reservas.pdf-fechas [02:16].
- Envío de Parámetros: Al usar el método GET, los campos de fecha se envían directamente en la URL como query parameters (parámetros de consulta):
2. 🗄️ Lógica del Controlador para el Filtro (pdfFechas)
Se implementa la función pdfFechas en el EventController para recibir los parámetros de la URL, ejecutar la consulta filtrada y renderizar la vista.
A. Recepción de Fechas [03:31]
- La función recibe los datos enviados por la URL utilizando el objeto Request de Laravel.
Las variables $fechaInicio y $fechaFin se extraen del request [05:48]:
PHP
$fechaInicio = $request->fecha_inicio; $fechaFin = $request->fecha_fin;
B. Consulta Filtrada con whereBetween [04:36]
- Para obtener solo las reservas que caen dentro del rango especificado, se utiliza el método whereBetween de Eloquent.
Este método consulta el campo start (fecha y hora de la cita) para verificar si se encuentra entre las fechas de inicio y fin proporcionadas [04:43].
PHP
$eventos = Event::whereBetween('start', [$fechaInicio, $fechaFin])->get();
C. Renderización del Reporte [06:41]
- Se genera el PDF cargando la vista reservas.pdf-fechas.
- Se pasan a la vista tres variables cruciales para su renderización y contextualización:
- $configuracion: Información del encabezado (logo, datos de la clínica).
- $eventos: El listado de citas médicas filtradas por la consulta whereBetween.
- $fechaInicio y $fechaFin: Las fechas usadas en el filtro para mostrarlas en el cuerpo del reporte como referencia [10:22].
3. 📝 Diseño del Reporte Filtrado (pdfFechas.blade.php)
La vista filtrada utiliza la misma estructura de listado general (Lección 109), con una adición clave.
Referencia de Rango: Se añade un párrafo en el cuerpo del documento para informar al usuario sobre el rango de fechas que se está visualizando [09:48]:
Reporte desde [Fecha de Inicio] hasta el [Fecha de Fin].
- Tabla de Datos: La tabla de resultados es idéntica a la del listado general (Doctor, Especialidad, Fecha y Hora de Reserva), pero solo muestra los registros devueltos por la consulta filtrada por fecha.
- Resultado Final: Al generar el reporte, se obtienen las citas médicas confirmadas para el rango seleccionado, incluyendo el pie de página automático con los datos del usuario impresor y la paginación [12:14].
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! ❤️