Saltar a contenido

job-reporte-ventas-online

Reportes de venta online/retail enviados por correo. Piloto 2 de la estructura estándar. Los tres jobs comparten el mismo flujo; lo que cambia (vistas SQL, asunto, texto, destinatarios, auditoría) está en src/reporte_ventas_online/perfiles.py.

Job Catálogo Estado
reporte_venta_online_excel L01 ✅ Migrado
reporte_venta_online_retailtrans L02 ✅ Migrado
reporte_retail_dia_anterior L13 ✅ Migrado (ver nota de variante en job.yaml)

¿Qué hace cada job?

  • L02 reporte_venta_online_retailtrans: el mismo reporte con la vista RetailTransactions, asunto “… - RETAILTRX”, otra lista de destinatarios, y deja constancia en la tabla de control de procesos.
  • L13 reporte_retail_dia_anterior: reporte de ayer, 07:58 diario; incluye giftcards de venta física y el Ecommerce excluye envíos MELI. También deja constancia en la tabla de control.

reporte_venta_online_excel (L01)

Varias veces por la tarde (13:32, 15:32, 17:32, 19:32, 21:32 y 23:42) arma el Reporte de Venta Diaria: venta acumulada del mes y venta de la jornada, por canal, banner y sucursal. Lo envía por correo con el cuerpo en HTML, un PDF y un Excel adjuntos. Solo lee datos; no escribe en ninguna base.

¿Qué hacer si falla o no llega el reporte?

  1. Revisar en el panel si la ejecución terminó en error (EXIT_NONZERO) o no se ejecutó (RUN_MISSING) y abrir su log.
  2. Causas habituales: base de datos no disponible, vista sin filas de venta online (el job falla a propósito para no enviar un reporte vacío), o correo rechazado por Office 365.
  3. Un fallo no pisa el último reporte generado. Reejecutar es seguro. Detalle en RUNBOOK.md.

Para desarrolladores

python3.11 -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env && chmod 600 .env
pytest && ruff check .
# <job> = venta-online-excel | venta-online-retailtrans | retail-dia-anterior
python -m reporte_ventas_online <job> --dry-run   # genera en tmp/, no envía ni audita
python -m reporte_ventas_online <job> --prueba    # envía solo a los destinatarios de prueba

Comparación con el script original (no modifica la carpeta legacy):

python tools/verify_equivalence.py <ruta>/code/activo/1_Negocios

Dependencias del sistema (imagen Docker): wkhtmltopdf, unixodbc + msodbcsql18 y fuentes. Datos y logs viven fuera del repo (estructura_carpeta_job.md, sección 4).


Fuente: repositorio job-reporte-ventas-online, versión 926ecf2 (con cambios locales). Página generada con tools/publicar_docs.py.