09 🕐 Tarifas por Tiempo - Regular + Nocturna + Fin de Semana | Sistema Parqueo

Duración: 61 min
Módulo: 🚗 Módulos Operacionales de Inventario Lección 2 de 4

Descripció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:
    • Se añade el ítem "Tarifas" al menú [09:55].
    • Se definen las rutas iniciales para listar y crear tarifas [00:19:17 - 00:20:09].
    • Se crea la vista index.blade.php para mostrar el listado [20:50].
  • 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):
    • Se implementa la validación para asegurar que todos los campos son requeridos [36:22].
    • Se guarda el nuevo objeto Tarifa en la base de datos [37:03].
  • 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):
    • La función destroy elimina la tarifa seleccionada por su ID [57:35].
    • Nota: Se justifica la eliminación directa de la tarifa (sin soft delete) en esta etapa, ya que la tabla aún no tiene relaciones críticas de integridad referencial [59:02].