Projectos Help

Implementación de exportables en segundo plano

Sección Frontend

  1. Crear vista copia de importables para exportables

    • Desarrollar nueva vista/component basada en la vista de importables, adaptada para mostrar y gestionar los exportables.

    • Deberá listar los registros de exportaciones realizadas, con información relevante (uuid, tipo, estado, fecha, botones de acción, etc.).

  2. Integrar nueva vista con endpoints de exportables

    • Conectar la vista de exportables con los endpoints REST nuevos:

      • Obtener listado de exportaciones (GET /exportables)

      • Consultar estado específico (GET /exportables/{uuid}/status)

      • Acceder a descarga del archivo (GET /exportables/{uuid}/download)

  3. Modificar vista de reporte para añadir opción de exportar en segundo plano

    • Añadir botón/acción en la pantalla de reportes para solicitar exportación en background con los filtros seleccionados.

    • Al activar, llamar al endpoint correspondiente (POST /exportables/sales) e informar al usuario que la exportación se está procesando.

    • Sugerir acceso a la nueva sección de “exportables” para hacer seguimiento.

Diagrama de flujo

N

Vista de reportes

Usuario hace click en 'Exportar en segundo plano'

Llama a POST /exportables/sales

Notifica: Exportación en proceso y sugiere revisar sección 'Exportables'

Vista/copía de importables (ahora exportables)

Llama a GET /exportables para listar y monitorear exportaciones

¿Estado FINISHED?

Habilitar descarga desde GET /exportables/{uuid}/download

Muestra progreso o error

Backend

  1. Copia de la tabla massive_imports para massive_exports

    • Crear una nueva tabla massive_exports con los fields detallados:

      • uuid, number, total, checksum, type, latest_status_id, latest_status, latest_reason, author_uuid, store_uuid, created_at, updated_at, deleted_at

  2. Cola dedicada (larga duración) para exportables

    • Configurar la cola de trabajos de exportables para procesamiento en segundo plano.

  3. Prueba de concepto usando copia del reporte de ventas

    • Implementar y probar el flujo completo utilizando el reporte de ventas como caso de prueba inicial.

  4. Nuevos endpoints para exportables

    • Implementar endpoints para:

      • Solicitar exportación (export de ventas)

      • Consultar estado de exportable

      • Descargar archivo exportable cuando esté listo

  5. Job para recopilar información y actualizar massive_exports

    • Crear un job específico que:

      • Extrae los datos requeridos desde la base de datos (enfrentando el cuello de botella de gran volumen)

      • Procesa los datos y construye el archivo exportable

      • Actualiza el estado y progreso (latest_status/latest_reason/total) en massive_exports en cada etapa

      • Maneja errores y finalización de exportación

Diagramas de flujo

No

Usuario solicita exportación

Llama a nuevo endpoint: POST /exportables/sales

Backend crea registro en massive_exports

Encola Job en cola exportables

Job toma tarea en segundo plano

Extrae y procesa datos de la DB

Actualiza progreso y estado en massive_exports

¿Finalizado correctamente?

Actualiza massive_exports status: FINISHED, almacena archivo y checksum

Actualiza massive_exports status: ERROR, actualiza latest_reason

14 July 2025