25 💲 Actualización de la Tarifa del Ticket generado | Sistema de Parqueo Laravel 12 FullStack

Duración: 30 min
Módulo: 📊 Dashboard y Reportes Financieros Lección 6 de 10

Descripción

25 💲 Índice de Lección: Actualización de la Tarifa del Ticket Generado (Laravel 12 FullStack)

La lección 25 se centra en la implementación de una función clave para permitir la modificación de la tarifa de un ticket ya activo, junto con un ajuste de visualización para mejorar la experiencia del usuario antes de la facturación.

1. Ajuste de Visualización: Tiempo Transcurrido

Se añade la visualización del tiempo total que el vehículo ha permanecido en el parqueo al hacer clic en un cubículo ocupado.

  • Necesidad: Mostrar el tiempo total de estadía (días, horas, minutos) en el modal de "Ocupado" antes de facturar [01:20].
  • Cálculo en JavaScript: Se utiliza la diferencia en minutos ya calculada en el capítulo anterior para descomponer el tiempo en Días, Horas y Minutos exactos [02:11].
  • Implementación en la Interfaz: Se agrega una nueva sección con el ID tiempo_transcurrido para mostrar el resultado del cálculo en el modal de "Ocupado" [05:40].
  • Identificación de Problema: Se detecta que un ticket guardado como "Por Hora" puede generar cobros excesivos si la estadía es larga (más de un día) y la tarifa no está definida para ese rango, lo que justifica el siguiente ajuste [07:18].

2. Desarrollo del Módulo de Actualización de Tarifa (Hotfix)

Se implementa la capacidad de cambiar la tarifa de un ticket (ej. de Por Hora a Por Día) en cualquier momento mientras el ticket esté activo.

2.1. Interfaz de Modificación

  • Se agrega un mini-formulario con un select y un botón "Actualizar" dentro del modal de "Ocupado" [13:44].
  • El select se llena con la lista simplificada de tarifas (solo nombre y tipo) [15:51].
  • Se incluye un input oculto (hidden) para enviar el ID del ticket que se desea modificar [19:12].

2.2. Configuración de Ruta

  • Se define una nueva ruta de tipo POST para manejar la solicitud de actualización de la tarifa [17:54].
  • Ruta Definida: /ticket/actualizar-tarifa [18:11].
  • Se asegura el envío del token CSRF en el formulario [18:46].

2.3. Lógica del Controlador (actualizarTarifa)

  • Validación: Se valida que se reciban correctamente el ID del ticket y el ID de la nueva tarifa [26:10].
  • Búsqueda: Se localiza el ticket en la base de datos [26:39].
  • Actualización: Se realiza un update para modificar únicamente el campo tarifa_id del ticket con el valor seleccionado [27:04].
  • Confirmación: Se retorna a la vista anterior con un mensaje flash de éxito: "Tarifa actualizado correctamente" [27:41].

3. Próximo Paso

El siguiente capítulo se centrará en el módulo de Reportes y, fundamentalmente, en la visualización del monto a pagar en tiempo real dentro del modal de Ocupado, lo que permitirá al cliente ver el costo antes de facturar [29:05].