feat: Implementar mejoras de funcionalidad y UX del Sales Bot

Nuevas funcionalidades:
- /cancelar: Cancelar ventas propias con motivo opcional
- /deshacer: Deshacer última venta (dentro de 5 minutos)
- /editar: Editar monto y cliente de ventas propias
- /comisiones: Historial de comisiones de últimos 6 meses
- /racha: Sistema de bonos por días consecutivos cumpliendo meta
- /exportar: Exportar ventas a Excel o CSV

Sistema de confirmación obligatoria:
- Todas las ventas requieren confirmación explícita (si/no)
- Preview de venta antes de registrar
- Timeout de 2 minutos para ventas pendientes

Scheduler de notificaciones:
- Recordatorio de mediodía para vendedores sin meta
- Resumen diario automático al final del día
- Resumen semanal los lunes

Otras mejoras:
- Soporte para múltiples imágenes en una venta
- Autocompletado de clientes frecuentes
- Metas personalizadas por vendedor
- Bonos por racha: $20 (3 días), $50 (5 días), $150 (10 días)

Archivos nuevos:
- export_utils.py: Generación de Excel y CSV
- scheduler.py: Tareas programadas con APScheduler

Dependencias nuevas:
- APScheduler==3.10.4
- openpyxl==3.1.2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-19 02:57:27 +00:00
parent 5d9cbd4812
commit ed1658eb2b
8 changed files with 1808 additions and 148 deletions

View File

@@ -45,3 +45,40 @@ LOG_FILE=/app/logs/sales-bot.log
# === ZONA HORARIA ===
# México: -6, Cancún: -5, España: +1
TZ_OFFSET=-6
# === SCHEDULER (Notificaciones Automáticas) ===
# Habilitar/deshabilitar el scheduler de tareas programadas
SCHEDULER_ENABLED=True
# Hora del recordatorio de mediodía (0-23)
RECORDATORIO_MEDIODIA_HORA=12
# Hora del resumen diario (0-23)
RESUMEN_DIARIO_HORA=18
# Día de la semana para resumen semanal (mon, tue, wed, thu, fri, sat, sun)
RESUMEN_SEMANAL_DIA=mon
# Hora del resumen semanal (0-23)
RESUMEN_SEMANAL_HORA=9
# === BONOS POR RACHA ===
# Bonus en pesos por cumplir meta consecutivamente
BONUS_3_DIAS=20
BONUS_5_DIAS=50
BONUS_10_DIAS=150
# === CONFIRMACIÓN DE VENTAS ===
# Tiempo en minutos antes de que expire una venta pendiente de confirmación
CONFIRMACION_TIMEOUT_MINUTOS=2
# === METAS Y COMISIONES (Defaults) ===
# Meta diaria de tubos por vendedor (default)
META_DIARIA_TUBOS_DEFAULT=3
# Comisión por tubo vendido después de cumplir meta (default)
COMISION_POR_TUBO_DEFAULT=10
# === EXPORTACIÓN ===
# Formato por defecto para exportación (excel o csv)
EXPORTAR_FORMATO_DEFAULT=excel