14 🎟️ Registro de Tickets en la Base de Datos | Sistema de Parqueo con Laravel FullStack
Duración: 52 minDescripción
🎟️ Lección 14: Registro de Tickets en la Base de Datos | Sistema de Parqueo con Laravel FullStack
Este video se enfoca en el desarrollo y la implementación del formulario para el registro de tickets de parqueo en la base de datos, asegurando que todos los campos requeridos se capturen y validen antes de guardar la información.
1. Preparación del Modal y Captura de IDs 💾
- Identificación del Espacio:
- Recuperación de la Tarifa:
- Campo de Observación: Se añade un textarea para registrar cualquier observación adicional del ticket [14:55].
- Enlace Rápido para Nuevo Cliente: Se añade un botón de "Nuevo Cliente" para permitir el registro rápido de un vehículo/cliente no encontrado sin cerrar el modal principal [17:02].
2. Configuración del Formulario y Validación Frontend 🛡️
- Estructura del Formulario: Todo el contenido de la información del ticket se envuelve en una etiqueta <form> con el método POST y se le añade el token @csrf [28:16].
- Envío por Submit y Prevención:
- Se cambia el botón "Registrar" a tipo submit [30:02].
- Se utiliza el evento submit de jQuery en el formulario para realizar la validación en frontend antes del envío [30:46].
- Se verifica que los campos espacio_ID, vehiculo_ID y tarifa_ID no estén vacíos. Si lo están, se detiene el envío con event.preventDefault() y se muestra una alerta [31:40].
3. Lógica de Guardado en el Controlador (Backend) ⚙️
- Validación Backend: Se definen reglas de required para los IDs esenciales en la función store del controlador, asegurando que los datos no se guarden si faltan [34:00].
- Obtención de IDs Relacionados:
- Generación del Código Correlativo del Ticket:
- Manejo de Fecha y Hora (Carbon):
- Se utiliza la librería Carbon para obtener la fecha y hora actual (Carbon::now()) [43:58].
- Ajuste de Zona Horaria: Se corrige la zona horaria del sistema modificando el archivo .env (o app.php) con la región adecuada (ej. America/La_Paz), lo cual requiere una optimización de rutas (php artisan config:clear) [45:22].
- Se extraen los campos de fecha (toDateString()) y hora (toTimeString()) por separado para el registro [47:44].
- Estado Inicial: El campo estado del ticket se establece como Activo por defecto [50:25].
- Registro Final: Se guardan todos los campos en la tabla tickets y se redirige al usuario con un mensaje de éxito [50:52].