# diag_diff_asignados_diana13.py # Compara las 2 fuentes de "leads asignados" para DIANA el dia 13/08/2026: # A = traer_leads_asignados (la de la TARJETA) # B = traer_asignacion_respuesta (la del GRAFICO) # Muestra los telefonos de cada una y cuales difieren. from datetime import datetime from data_manager_v2 import DataManager ANO, MES, DIA = 2026, 8, 13 NOMBRE = "DIANA" dm = DataManager() def _d(v): return v.date() if isinstance(v, datetime) else None A = {} # telefono -> hora asignacion (TARJETA) for r in dm.traer_leads_asignados(): if NOMBRE not in (r.get("user_name") or "").upper(): continue f = r.get("created_at") if _d(f) and f.year==ANO and f.month==MES and f.day==DIA: A[str(r.get("telefono") or "").strip()] = f B = {} # telefono -> hora asignacion (GRAFICO) for r in dm.traer_asignacion_respuesta(): if NOMBRE not in (r.get("user_name") or "").upper(): continue f = r.get("created_at") if _d(f) and f.year==ANO and f.month==MES and f.day==DIA: B[str(r.get("telefono") or "").strip()] = f print(f"\n=== DIANA dia {DIA} — comparacion de fuentes ===\n") print(f"A) TARJETA (traer_leads_asignados): {len(A)} telefonos") print(f"B) GRAFICO (traer_asignacion_respuesta): {len(B)} telefonos\n") print("Telefonos en A (tarjeta):") for t in sorted(A): print(f" {t} asignado {A[t].strftime('%H:%M:%S')}") print("\nTelefonos en B (grafico):") for t in sorted(B): print(f" {t} asignado {B[t].strftime('%H:%M:%S')}") solo_A = set(A) - set(B) solo_B = set(B) - set(A) print("\n--- DIFERENCIAS ---") if solo_A: print(f" Solo en TARJETA (A), no en grafico: {sorted(solo_A)}") if solo_B: print(f" Solo en GRAFICO (B), no en tarjeta: {sorted(solo_B)}") if not solo_A and not solo_B: print(" Los telefonos son IDENTICOS. La diferencia debe ser cache (reinicia backend).")