59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
# diag_webform.py — Compara WEB_FORMULARIO enero: datos_unificados vs cartera_junta (local xlsx).
|
|
# Usa el export local para cartera (rapido) y baja solo enero de datos_unificados.
|
|
import os, requests
|
|
from datetime import datetime
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
SUP_URL = os.getenv("SUPABASE_URL"); SUP_KEY = os.getenv("SUPABASE_KEY")
|
|
|
|
def _norm_tel(v):
|
|
s = str(v or "")
|
|
for x in ("+51","+"," ","-","(",")"): s=s.replace(x,"")
|
|
s=s.strip()
|
|
if not s or set(s)=={"0"}: return ""
|
|
if s.isdigit() and len(s)<=6: return ""
|
|
return s
|
|
|
|
def _ene(v):
|
|
for fmt in ("%d/%m/%Y","%Y-%m-%d"):
|
|
try:
|
|
d=datetime.strptime(str(v)[:10],fmt).date()
|
|
return d.year==2026 and d.month==1
|
|
except: pass
|
|
return False
|
|
|
|
# datos_unificados WEB_FORMULARIO enero
|
|
h={"apikey":SUP_KEY,"Authorization":f"Bearer {SUP_KEY}"}
|
|
out=[]; desde=0
|
|
while True:
|
|
r=requests.get(f"{SUP_URL}/rest/v1/datos_unificados",
|
|
params={"select":"Telefono,Canal,Fechacreada","offset":str(desde),"limit":"1000"},headers=h,timeout=60)
|
|
r.raise_for_status(); d=r.json()
|
|
if not d: break
|
|
out.extend(d)
|
|
if len(d)<1000: break
|
|
desde+=1000
|
|
du=[_norm_tel(r["Telefono"]) for r in out if str(r.get("Canal","")).upper()=="WEB_FORMULARIO" and _ene(r.get("Fechacreada"))]
|
|
du=set(t for t in du if t)
|
|
print("datos_unificados WEB_FORMULARIO enero (tel unicos):", len(du))
|
|
|
|
# cartera desde el excel local
|
|
import openpyxl, glob
|
|
xf=max(glob.glob("cartera_junta_export.xlsx"), default=None)
|
|
wb=openpyxl.load_workbook("cartera_junta_export.xlsx", read_only=True); ws=wb.active
|
|
rows=list(ws.iter_rows(values_only=True)); hdr=rows[0]; ci={h:i for i,h in enumerate(hdr)}
|
|
tel_all=set(str(r[ci["telefono"]]).strip() for r in rows[1:]) # todos los tel de cartera
|
|
tel_web_ene=set()
|
|
for r in rows[1:]:
|
|
if str(r[ci["canal"]]).strip().upper()=="WEB_FORMULARIO" and str(r[ci["fecha_creada"]])[:7]=="2026-01":
|
|
tel_web_ene.add(str(r[ci["telefono"]]).strip())
|
|
print("cartera WEB_FORMULARIO enero (tel):", len(tel_web_ene))
|
|
|
|
falt_total=[t for t in du if t not in tel_all]
|
|
falt_web=[t for t in du if t not in tel_web_ene]
|
|
print(f"\nDe {len(du)} tel de datos_unificados enero:")
|
|
print(f" NO estan en cartera por NINGUN canal: {len(falt_total)}")
|
|
print(f" estan en cartera pero NO como WEB_FORMULARIO enero: {len(falt_web)-len(falt_total)}")
|
|
print(" ejemplos NO en cartera:", falt_total[:10])
|