Files
dashboard-leads/backend/diag_comparar_asignados_diana.py
2026-08-18 11:48:08 -05:00

54 lines
2.0 KiB
Python

# diag_comparar_asignados_diana.py
# Compara, para DIANA en un mes, los asignados por dia entre:
# FUENTE A = traer_leads_asignados (la de la TABLA de Otros General)
# FUENTE B = traer_asignacion_respuesta (la de la GRAFICA de Vendedores)
# Muestra el conteo por dia y que telefonos difieren.
from datetime import datetime
from data_manager_v2 import DataManager
ANO, MES = 2026, 8
NOMBRE = "DIANA"
dm = DataManager()
def _to_date(v):
if isinstance(v, datetime): return v.date()
return None
# FUENTE A: tabla Otros General
A = {} # dia -> set(telefonos)
for r in dm.traer_leads_asignados():
nom = (r.get("user_name") or "")
if NOMBRE not in nom.upper(): continue
f = _to_date(r.get("created_at"))
if not f or f.year!=ANO or f.month!=MES: continue
A.setdefault(f.day, set()).add(str(r.get("telefono") or "").strip())
# FUENTE B: grafica Vendedores
B = {} # dia -> set(telefonos)
for r in dm.traer_asignacion_respuesta():
nom = (r.get("user_name") or "")
if NOMBRE not in nom.upper(): continue
f = _to_date(r.get("created_at"))
if not f or f.year!=ANO or f.month!=MES: continue
B.setdefault(f.day, set()).add(str(r.get("telefono") or "").strip())
dias = sorted(set(list(A.keys())+list(B.keys())))
print(f"\n=== DIANA — asignados por dia: TABLA(A) vs GRAFICA(B) — {MES}/{ANO} ===\n")
print(f"{'DIA':>4} {'TABLA(A)':>9} {'GRAFICA(B)':>11} {'DIF':>5}")
print("-"*34)
for d in dias:
a=len(A.get(d,set())); b=len(B.get(d,set()))
marca = " <==" if a!=b else ""
print(f"{d:>4} {a:>9} {b:>11} {a-b:>5}{marca}")
print(f"\n=== Detalle de los dias que DIFIEREN ===")
for d in dias:
sa=A.get(d,set()); sb=B.get(d,set())
if sa==sb: continue
solo_A = sa - sb # estan en tabla pero NO en grafica
solo_B = sb - sa # estan en grafica pero NO en tabla
print(f"\n DIA {d}:")
if solo_A: print(f" solo en TABLA (A), no en grafica: {sorted(solo_A)}")
if solo_B: print(f" solo en GRAFICA (B), no en tabla: {sorted(solo_B)}")