Actualizar backend/services.py

This commit is contained in:
2026-09-10 11:28:16 -05:00
parent e01121a64d
commit 85ea808481

View File

@@ -1778,6 +1778,7 @@ def programa_dashboard(ano="TODOS", mes="TODOS", programa="TODOS"):
# de las pautas del programa. Telefonos unicos por etiqueta. # de las pautas del programa. Telefonos unicos por etiqueta.
from collections import defaultdict as _dd from collections import defaultdict as _dd
etiq_tels = _dd(set) etiq_tels = _dd(set)
etiq_ase_tels = _dd(lambda: _dd(set)) # estado -> asesor -> {telefonos}
cods_set0 = set(cods) cods_set0 = set(cods)
for l in _leads_crudos(): for l in _leads_crudos():
if not l.get("es_unico") or not l.get("asesor"): if not l.get("es_unico") or not l.get("asesor"):
@@ -1788,9 +1789,16 @@ def programa_dashboard(ano="TODOS", mes="TODOS", programa="TODOS"):
if not tel: if not tel:
continue continue
ult = l.get("ultima") or "NO TRABAJADO" ult = l.get("ultima") or "NO TRABAJADO"
ase = l.get("asesor") or "SIN ASESOR"
etiq_tels[ult].add(tel) etiq_tels[ult].add(tel)
etiq_ase_tels[ult][ase].add(tel)
matriz_etiq = sorted( matriz_etiq = sorted(
[{"estado": k, "cantidad": len(v)} for k, v in etiq_tels.items()], [{"estado": k, "cantidad": len(v),
"asesores": sorted(
[{"asesor": a, "cantidad": len(t), "telefonos": sorted(t)}
for a, t in etiq_ase_tels[k].items()],
key=lambda x: -x["cantidad"])}
for k, v in etiq_tels.items()],
key=lambda x: -x["cantidad"]) key=lambda x: -x["cantidad"])
# 3) CARTERA TOTAL: MISMA logica que 'Detalle por Curso'. Por cada curso, # 3) CARTERA TOTAL: MISMA logica que 'Detalle por Curso'. Por cada curso,
@@ -2713,10 +2721,13 @@ def ultima_actualizacion():
def refrescar_todo(): def refrescar_todo():
from cache_manager import cache_invalidate from cache_manager import set_forzar
from data_manager_v2 import invalidar_campanias_cache from data_manager_v2 import invalidar_campanias_cache
cache_invalidate() # vaciar y recargar TODO
invalidar_campanias_cache() # tambien las campañas (cache aparte) invalidar_campanias_cache() # tambien las campañas (cache aparte)
set_forzar(True) # recalcula y sobrescribe (no lee cache viejo)
try:
precargar_todo() # leads (mes actual/anterior) precargar_todo() # leads (mes actual/anterior)
precargar_otros_general() # cartera + Otros General (para que no quede vacia) precargar_otros_general() # cartera + Otros General
finally:
set_forzar(False)
_marcar_actualizacion() _marcar_actualizacion()