59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
"""
|
|
Diagnostico ROAS: conjuntos del Meta CSV (enero) que NO se suman en la matriz
|
|
por sede, porque no tienen pauta ligada o su pauta no tiene sede en campanias.
|
|
"""
|
|
import services as S
|
|
import leads_logic as L
|
|
|
|
ANO, MES = "2026", "1" # enero 2026
|
|
SEDES = {"LIMA", "PIURA", "AREQUIPA", "TRUJILLO"}
|
|
|
|
conj_pauta = S._conjunto_pauta() # {pauta: [conjunto,...]}
|
|
camp = S._campanias_sede_cargo() # {pauta: {sede, cargo}}
|
|
|
|
conj_sede = {}
|
|
conj_pauta_map = {}
|
|
for pauta, conjuntos in conj_pauta.items():
|
|
sp = camp.get(str(pauta).strip())
|
|
sede = " ".join(str((sp or {}).get("sede") or "").upper().split())
|
|
for co in conjuntos:
|
|
k = " ".join(str(co).split()).upper()
|
|
conj_pauta_map[k] = str(pauta).strip()
|
|
if sp and sede in SEDES:
|
|
conj_sede[k] = sede
|
|
|
|
sin_sumar = {}
|
|
suma_ok = 0.0
|
|
suma_falta = 0.0
|
|
for f in S._meta_filas():
|
|
fx = L._to_date(f.get("inicio"))
|
|
if not L._en_periodo(fx, ANO, MES, "TODOS"):
|
|
continue
|
|
k = " ".join(str(f.get("conjunto")).split()).upper()
|
|
imp = float(f.get("importe") or 0.0)
|
|
res = int(float(f.get("resultados") or 0.0))
|
|
if k in conj_sede:
|
|
suma_ok += imp
|
|
continue
|
|
if k not in conj_pauta_map:
|
|
motivo = "SIN PAUTA"
|
|
else:
|
|
p = conj_pauta_map[k]
|
|
sp = camp.get(p)
|
|
motivo = (f"pauta '{p}' SIN campania" if not sp
|
|
else f"pauta '{p}' sede='{sp.get('sede')}' (fuera de las 4)")
|
|
d = sin_sumar.setdefault(k, {"importe": 0.0, "resultados": 0, "motivo": motivo})
|
|
d["importe"] += imp
|
|
d["resultados"] += res
|
|
suma_falta += imp
|
|
|
|
print("=== ENERO 2026 — conjuntos que NO se suman en ROAS ===\n")
|
|
print(f"{'CONJUNTO':45} {'IMPORTE':>12} {'RESULTADOS':>12} MOTIVO")
|
|
print("-"*100)
|
|
for k, d in sorted(sin_sumar.items(), key=lambda x: -x[1]["importe"]):
|
|
print(f"{k[:45]:45} {('$'+format(d['importe'],',.2f')):>12} {d['resultados']:>12,} {d['motivo']}")
|
|
print("-"*100)
|
|
print(f"{'IMPORTE QUE SÍ SUMA (4 sedes)':45} {('$'+format(suma_ok,',.2f')):>12}")
|
|
print(f"{'IMPORTE QUE NO SUMA (faltante)':45} {('$'+format(suma_falta,',.2f')):>12}")
|
|
print(f"Conjuntos distintos sin sumar: {len(sin_sumar)}")
|