Skip to content

feat: Implement Report Visualization Module (Data Retrieval and Nodrik Formatting) #23

@josemora090525

Description

@josemora090525

📊 Feature: Implementación del Módulo de Visualización y Exportación de Reportes de Venta/Inventario

Este Issue Principal abarca la implementación del MÓDULO: Visualización de Reportes, el cual es esencial para generar inteligencia de negocio mediante la consolidación de datos de Ventas e Inventario. El enfoque principal es la capacidad de filtrar por rango de fechas y exportar automáticamente el resultado en formato PDF.

🎯 Objetivo

Implementar la capa de persistencia, servicios de procesamiento y el servicio NodrikService para consolidar datos transaccionales de Ventas. La implementación del controlador debe permitir al usuario establecer un rango de fechas para la consulta, visualizar el resultado automáticamente en la interfaz y exportar el reporte final a PDF con interacción directa con el explorador de archivos del sistema operativo.

🔗 Puntos Clave de Interconexión

  • Ventas e Inventario: El reporte debe consolidar los ingresos/totales de Ventas y las salidas de productos del Inventario (basadas en LineaVenta) dentro del rango de tiempo seleccionado.
  • Exportación PDF: El sistema debe usar el NodrikService para generar un documento PDF y facilitar la descarga mediante el explorador de archivos.

📋 Tareas Pendientes (Sub-Issues y dependencias)

A continuación, se detalla el trabajo a realizar, manteniendo un seguimiento a través de los task lists, enfocado únicamente en la lógica de Ventas.

1. Repositorio de Reportes de Venta

  • Issue 1: Crear ReporteVentaRepository
    • Implementar ReporteVentaRepository para consultas exclusivas de ventas.
    • Desarrollar consultas optimizadas (filtrado por rango de fechas, agrupaciones) utilizando la base de datos (Supabase) para obtener las ventas y sus líneas.
    • Depende de: Modelos de transacciones (Venta, LineaVenta, Producto).

2. Servicio de Procesamiento y Consolidación

  • Issue 2: Crear ReporteVentaService
    • Implementar la lógica de negocio para procesar los datos de ventas (cálculos de totales, ganancias, etc.).
    • (Clave) Implementar un método de consolidación que combine el total de Ventas y el impacto en el Inventario (cantidad de productos vendidos/salidas) dentro del rango de fechas.
    • Conectar este servicio al NodrikService para la generación final del reporte.
    • Depende de: ReporteVentaRepository, NodrikService.

3. Servicio de Formato y Presentación (Exportación PDF)

  • Issue 3: Crear NodrikService
    • Implementar la lógica central de NodrikService.
    • Desarrollar los métodos para generar los reportes finales en formato PDF a partir de los datos consolidados.
    • (Clave) Implementar la funcionalidad de exportación que interactúe con el sistema operativo para abrir el explorador de archivos y permitir al usuario guardar el archivo PDF.
    • Asegurar que este servicio pueda ser reutilizado por otros módulos que requieran exportación de datos.
    • Depende de: Modelos Nodrik, Alerta.
    • Vinculado con: ReporteVentaService.

4. Controladores

  • Issue 4: Implementar la lógica básica del ReportesViewController
    • Crear e implementar el ReportesViewController (controlador principal del módulo).
    • Implementar campos de entrada para fecha de inicio y fecha de fin de la estimación.
    • (Clave) Implementar el método asociado al botón "Generar Reporte" que llama al servicio, procesa la data y muestra el resultado (texto/tablas) automáticamente en la interfaz del módulo.
    • (Exportar) Implementar la lógica del botón "Visualizar/Exportar Reporte" que invoca al NodrikService para generar el PDF y abrir el diálogo de guardar archivo.
    • Implementar la lógica para gestionar la interacción del usuario (filtros, etc.) y mostrar el resultado en la vista.
    • Depende de: ReporteVentaService.
    • Vinculado con: Vistas del módulo de reportes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthigh-priorityMust be addressed urgently or blocks critical functionality

    Projects

    Status
    🔖 TODO

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions