89 Validación de Fecha y Hora de Reserva de Citas Medicas de Sistema con LARAVEL(PHP-MySql)FullStack
Duración: 10 min
Módulo: 🗓️ Reserva de Citas y FullCalendar
Lección 4 de
14
Descripción
🛡️ ⏱️ Lección 89: Validación de Fecha y Hora de Reserva de Citas
Esta lección aborda la implementación de validaciones en el lado del cliente (frontend) utilizando JavaScript para evitar que los usuarios registren citas con fechas y horas no válidas o "basura", un problema identificado en el capítulo anterior.
1. 📅 Validación de Fechas Pasadas (JavaScript)
Se implementa una validación para asegurar que los usuarios solo puedan reservar citas para la fecha actual o futuras.
- Identificación del Campo: Se añade el ID fecha_reserva al input de fecha [01:05].
- Lógica de Validación: Se utiliza un script de JavaScript que compara la fecha seleccionada con la fecha actual del sistema. Si la fecha seleccionada es anterior (< new Date()), se lanza una alerta y se limpia el campo [01:21]:
- Si se intenta seleccionar una fecha pasada, aparece el mensaje: "No se puede reservar en una fecha pasada" [02:21].
- Valor por Defecto: Para mejorar la experiencia, se configura el campo para que muestre la fecha actual por defecto al abrir el modal [03:09].
2. ⏰ Validación de Horario Mínimo y Máximo (JavaScript)
Se valida que la hora de reserva esté dentro de los límites de atención establecidos por la clínica (de 8:00 AM a 8:00 PM).
- Identificación del Campo: Se añade el ID hora_reserva al input de hora [04:52].
- Lógica de Redondeo: El script de JavaScript redondea automáticamente los minutos a cero (ej. 12:09 se convierte en 12:00) para manejar intervalos de reserva exactos de una hora [05:35].
- Validación de Rango: El código verifica que la hora seleccionada esté entre las 08:00 y las 20:00 horas. Si se intenta seleccionar una hora fuera de este rango (ej. 3:00 AM), se muestra un mensaje: "Por favor seleccione una hora que esté entre las 8 hasta las 8 de la noche" [06:40].
3. ⚠️ Tarea Pendiente: Prevención de Duplicidad
Aunque las validaciones de frontend funcionan, el sistema aún presenta una vulnerabilidad crítica que debe resolverse en el backend (controlador):
- El Problema: El sistema permite registrar dos o más citas con el mismo doctor, en la misma fecha y a la misma hora [09:22].
- Solución Futura: La validación para evitar la duplicidad de citas debe realizarse en el EventController (función store), donde se debe consultar la base de datos para confirmar que el slot de tiempo elegido ya no esté reservado antes de guardar [10:00].
Lecciones
⚙️ Inicio y Estructura Base
👤 CRUD de Usuarios y UX Avanzada
Lección 2. 10 Listado de usuarios del controllador a la vista en el SISTEMA (PHP y MySql)FullStack
9 min
Lección 3. 11 Diseño de tabla con BOOTSTRAP en la vista en el SISTEMA (PHP y MySql) FullStack
12 min
Lección 6. 14 Registro y validación de datos para USUARIOS en el SISTEMA (PHP y MySql)FullStack
16 min
👩💼 Módulo de Secretarias
🤒 Gestión de Pacientes
Lección 4. 38 Como llamar desde un seeder a un factory de pacientes en LARAVEL(PHP-MySql) FullStack
14 min
Lección 8. 42 Show Pacientes en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack
12 min
Lección 9. 43 EDIT Pacientes en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack
14 min
🏥 Infraestructura: Consultorios y Doctores
⏰ Horarios y Lógica de Disponibilidad
Lección 1. 60 Calendario de Atención de Doctores en el sistema con LARAVEL(PHP-MySql) FullStack
14 min
Lección 10. 69 Plantilla Web para el sistema de reserva de citas con LARAVEL(PHP-MySql) FullStack
13 min
🔑 Seguridad, Roles y Permisos
Lección 6. 76 Identificando el ROL de cada Usuario en el Sistema con LARAVEL(PHP-MySql) FullStack
11 min
Lección 8. 78 Mostrar el Menú según los Roles y Permisos en Sistema con LARAVEL(PHP-MySql) FullStack
7 min
Lección 9. 79 Acceso No Autorizado con Roles y Permisos en Sistema con LARAVEL(PHP-MySql) FullStack
14 min
Lección 12. 82 Cargar Horario en la página principal en Sistema con LARAVEL(PHP-MySql) FullStack
16 min
Lección 13. 83 Redirigir a ADMIN desde Login y Register en Sistema con LARAVEL(PHP-MySql) FullStack
12 min
🗓️ Reserva de Citas y FullCalendar
Lección 2. 87 Formulario para Registrar Citas Medicas del Sistema con LARAVEL(PHP-MySql) FullStack
18 min
Lección 3. 88 Guardar Cita Medica en la Base de Datos de Sistema con LARAVEL(PHP-MySql) FullStack
15 min
Lección 9. 94 Cargar Reservas de Citas Medicas con AJAX del Sistema con LARAVEL(PHP-MySql) FullStack
20 min
📝 Historial Clínico, Configuraciones y Reportes
Lección 17. 116 Modificación del Historial Clínico del Sistema con LARAVEL(PHP-MySql) FullStack
15 min
Lección 19. 118 Reporte Impreso del Historial Clínico del Sistema con LARAVEL(PHP-MySql) FullStack
17 min
Lección 20. 119 Buscar Pacientes del Historial Clínico del Sistema con LARAVEL(PHP-MySql) FullStack
17 min
Lección 21. 120 Buscar Pacientes del Historial Clínico del Sistema con LARAVEL(PHP-MySql) FullStack
12 min
💵 Pagos, Impresión y Cierre
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️