38 🧾 Reimpresión de Facturas Emitidas | Sistema de Parqueo Laravel 12 FullStack

Duración: 13 min
Módulo: 👤 Gestión de Perfil y Mantenimiento Lección 3 de 3

Descripción

38 🧾 Índice de Lección: Reimpresión de Facturas Emitidas (Laravel 12 FullStack)

La lección 38 responde a un requerimiento de última hora del cliente: la necesidad de reimprimir facturas que ya han sido emitidas. Para ello, se implementa un nuevo módulo de Facturación que lista todas las facturas y habilita la función de reimpresión.

1. Preparación y Corrección de Errores Iniciales

Antes de implementar la nueva funcionalidad, se aborda un error de permisos descubierto en el proceso de facturación.

  • Error de Acceso Denegado (403): Se detecta que el Super Administrador no puede acceder a la ruta de facturación (facturar) debido a un error de tipeo en el nombre del permiso de la ruta (factuación en lugar de facturación) [01:41].
  • Corrección de Permisos: Se corrige el typo en el archivo de rutas (web.php) y en la semilla de roles (RoleSeeder) [03:02].
  • Optimizaciones: Se realiza un fresh y optimización para aplicar el nuevo permiso y permitir la emisión de facturas [03:43].

2. Creación del Módulo de Facturación

Se crea la nueva vista y ruta para el listado de facturas emitidas.

  • Creación de la Ruta: Se añade una nueva ruta (/admin/facturacion) con el método index para listar todas las facturas [08:28].
  • Creación del Permiso: Se añade el permiso facturacion.index al RoleSeeder y se optimiza el sistema para que aparezca en el menú [08:54].
  • Implementación del Menú (Sidebar): Se añade el nuevo ítem "Facturación" en el sidebar de la aplicación, después de Tickets, con un ícono de factura [06:03].
  • Lógica del Controlador (FacturacionController): En el método index, se consulta a la base de datos para obtener todas las facturas (Facturacion::orderBy('id', 'desc')->get()) y se envían a la vista [09:50].

3. Diseño de la Vista de Listado (facturacion/index.blade.php)

Se configura la tabla que mostrará el historial de todas las facturas emitidas.

  • Datos Mostrados en la Tabla: Se listan los campos esenciales de la factura [11:23]:
    • Número de Factura
    • Cliente (nombre)
    • Documento (C.I. / NIT)
    • Placa (del vehículo)
    • Detalle (descripción del servicio de parqueo)
    • Monto (monto total, ajustado con la divisa)
    • Fecha y Hora de Registro (created_at)
  • Divisa (Moneda): Se recupera la configuración de divisa del sistema para mostrar el monto facturado correctamente (ej., Bs 15) [16:16].

4. Implementación de la Funcionalidad de Reimpresión

Se habilita la acción de reimprimir utilizando una ruta existente.

  • Acción de la Tabla: En la tabla de listado, la única acción permitida es "Reimprimir" [13:39].
  • Enlace de Reimpresión: El botón de Reimprimir utiliza la ruta ya existente para la impresión de facturas (admin.factura.imprimir) y le pasa el ID de la factura [13:48].
  • Verificación Final: Se demuestra que al dar clic en el botón, se abre la vista de la factura en formato imprimible, cumpliendo el requerimiento del cliente [17:15].

Fin del Proyecto: Con este ajuste, el proyecto del Sistema de Gestión de Parqueo queda completamente terminado en cuanto a sus módulos y funcionalidades principales. La próxima lección se centrará en el respaldo del código [17:29].