24 ⏱️ Restricción de Cancelación de Ticket tras 10 Minutos | Sistema de Parqueo Laravel 12 FullStack
Duración: 29 minDescripción
24 ⏱️ Índice de Lección: Restricción de Cancelación de Ticket (Laravel 12 FullStack)
La lección 24 aborda la implementación de una restricción por tiempo para deshabilitar el botón de cancelación de tickets después de un periodo determinado, mejorando el control y evitando pérdidas de ingresos.
1. Requerimiento y Contexto de la Seguridad
- Problema a Resolver: Un usuario sugiere que, si el botón de "Cancelar Ticket" permanece habilitado, un cliente podría anular un ticket después de muchas horas o días de parqueo, perdiendo el ingreso correspondiente [00:53].
- Solución Propuesta: Implementar una lógica para que el botón de cancelación se deshabilite automáticamente después de un tiempo prudencial (se define 10 minutos) desde el registro del ticket [02:33].
2. Lógica de Restricción de Tiempo (JavaScript)
El cálculo y la restricción se realizan en el script de JavaScript asociado al dashboard principal, dentro de la función que gestiona el botón de "Ocupado".
- Captura de Fechas:
- Cálculo de Diferencia:
- Regla de Deshabilitación:
- Se establece una condición: si la diferencia en minutos es mayor a 10, se deshabilita el botón de cancelar [10:32].
- Implementación: Se utiliza jQuery para acceder a la propiedad (prop) del botón y establecerla como disabled: true (deshabilitado) o disabled: false (habilitado), según la condición [14:08].
3. Mejora en la Visualización de Tarifas
Se realiza una optimización en la presentación del dropdown de tarifas al registrar un nuevo ticket para mejorar la usabilidad.
- Problema de Visualización: Inicialmente, el dropdown mostraba todas las tarifas, incluyendo diferentes costos para la misma modalidad (ej. Por Hora), lo que generaba confusión [16:52].
- Consulta Optimizada: En el controlador de tickets, se modifica la consulta a la tabla tarifas utilizando DB::raw y la función MIN(id).
- Ajuste en la Vista: El dropdown ahora solo muestra el nombre y el tipo de la tarifa (ej. Tarifa Regular Por Día o Tarifa Regular Por Hora), eliminando la cantidad [21:19].
4. Mostrar Datos de Tarifa en Modal Ocupado
Se mejora la información mostrada al hacer clic en un ticket ocupado.
- Envío de Datos: Desde la lógica que carga la información del ticket activo, se envían a la vista:
- Visualización en Modal: Estos datos se muestran en el modal de "Ocupado" bajo la sección "Datos de la Tarifa", indicando claramente si el cálculo es Por Hora o Por Día [27:12].