09 🕐 Tarifas por Tiempo - Regular + Nocturna + Fin de Semana | Sistema Parqueo
Duración: 61 minDescripción
🕐 Lección 09: Tarifas por Tiempo - Regular + Nocturna + Fin de Semana | Sistema Parqueo
Esta lección aborda la creación y gestión del Módulo de Tarifas para establecer costos variables basados en tiempo (horas/días) y tipo de jornada (regular, nocturna, fin de semana), incluyendo la implementación de un campo de minutos de gracia.
1. Preparación y Migración del Módulo de Tarifas 🛠️
- 1.1. Creación de Componentes: Se utiliza el comando Artisan para generar el Modelo (Tarifa), el Controlador con recursos y la Migración [01:12].
- 1.2. Estructura de la Tabla tarifas: Se define la estructura en la migración [06:26] y el modelo [35:13]:
- nombre (ENUM): Tipo de tarifa, con opciones: regular, nocturna, fin de semana, y feriados [06:34].
- tipo (ENUM): Define la unidad de tiempo, con opciones: por hora y por día [07:31].
- cantidad (Integer): Número de unidades de tiempo (ej. 1, 2, 4 horas o días) [32:09].
- costo (Decimal): Precio a cobrar por la cantidad de tiempo [08:04].
- minutos_de_gracia (Integer): Tiempo adicional (en minutos) que no se cobra antes de aplicar la tarifa de la siguiente unidad [03:02].
- 1.3. Configuración de Entorno:
- Activación de Menús (Active): Se añade la lógica para que los ítems del menú (roles, usuarios, tarifas, etc.) permanezcan resaltados (active) al navegar dentro de sus submódulos [11:13].
- Traducción de Mensajes de Validación: Se añaden los archivos de idioma en español (es) a la carpeta lang del proyecto para que los mensajes de error de validación de Laravel aparezcan en español [00:15:32 - 00:18:57].
2. Funcionalidad de Creación (create y store) y Listado (index) 📝
- 2.1. Configuración de Rutas y Vista:
- 2.2. Diseño del Formulario de Creación: El formulario se estructura para capturar los 5 campos principales (nombre, tipo, cantidad, costo, minutos_de_gracia) [00:26:50 - 00:29:13].
- 2.3. Lógica de Guardado (store):
- 2.4. Listado y Presentación de Datos:
- Estructura de la Vista: El listado se divide en dos tablas separadas: "Tarifas registradas por hora" y "Tarifas registradas por día" para una mejor organización [00:44:17 - 00:46:16].
- Inclusión de Divisa: Se consulta el valor de la divisa (moneda) desde el Módulo de Ajustes y se muestra junto al campo costo en la tabla de listado [00:40:50 - 00:42:11].
- Contadores de Fila: Se implementan contadores de fila independientes para cada tabla para evitar errores de numeración [47:59].
3. Funcionalidad de Edición y Eliminación (CRUD) 🔄
- 3.1. Rutas de Edición y Eliminación: Se definen las rutas edit, update (método PUT) y destroy (método DELETE) para la gestión completa de tarifas [50:09].
- 3.2. Edición (edit y update):
- La función edit recupera la Tarifa por su ID y la pasa a la vista edit.blade.php [52:19].
- La vista de edición reutiliza la estructura del formulario de creación y precarga los datos existentes de la tarifa [54:03].
- La función update recibe los nuevos datos y actualiza los campos de la tarifa [00:55:55 - 00:56:42].
- 3.3. Eliminación (destroy):