descripción
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Investigacion read-only: opp de Marca hNPaauyuqM1Epycwj0wj (ERIKA RUBI CONCHA).
|
||||
Imprime CF resueltos, contactId, link a sucursal y busca el contacto en sucursales."""
|
||||
import os, sys
|
||||
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
if ROOT_DIR not in sys.path:
|
||||
sys.path.insert(0, ROOT_DIR)
|
||||
import sync_engine
|
||||
from scripts import common
|
||||
|
||||
gc = sync_engine.ghl_client
|
||||
BRAND = common.BRAND_LOCATION_ID
|
||||
OPP_ID = "hNPaauyuqM1Epycwj0wj"
|
||||
|
||||
accounts = {a["location_id"]: a for a in common.load_accounts()}
|
||||
brand_token = accounts[BRAND]["token"]
|
||||
|
||||
|
||||
def keymap(token, loc, obj):
|
||||
fields = gc.get_object_schema_fields(token, loc, obj)
|
||||
return {f["id"]: f.get("fieldKey") for f in fields if f.get("id")}
|
||||
|
||||
|
||||
def cfval(cf):
|
||||
for k in ("fieldValue", "fieldValueString", "value"):
|
||||
if cf.get(k) is not None:
|
||||
return cf[k]
|
||||
return None
|
||||
|
||||
|
||||
opp = (gc.get_opportunity(brand_token, OPP_ID) or {}).get("opportunity") or {}
|
||||
print("=== OPP MARCA ===")
|
||||
print("name:", opp.get("name"))
|
||||
print("status:", opp.get("status"), "value:", opp.get("monetaryValue"))
|
||||
print("contactId:", opp.get("contactId") or (opp.get("contact") or {}).get("id"))
|
||||
id2key = keymap(brand_token, BRAND, "opportunity")
|
||||
print("--- customFields (opp Marca) ---")
|
||||
link = None
|
||||
for cf in opp.get("customFields") or []:
|
||||
k = id2key.get(cf.get("id"))
|
||||
v = cfval(cf)
|
||||
print(f" {k} = {v!r}")
|
||||
if k == "opportunity.id_oportunidad_sucursal":
|
||||
link = v
|
||||
print("LINK id_oportunidad_sucursal:", link)
|
||||
|
||||
# contacto de Marca
|
||||
cid = opp.get("contactId") or (opp.get("contact") or {}).get("id")
|
||||
if cid:
|
||||
c = (gc._request("GET", f"/contacts/{cid}", brand_token) or {}).get("contact") or {}
|
||||
print("\n=== CONTACTO MARCA ===")
|
||||
print("name:", c.get("contactName") or f"{c.get('firstName')} {c.get('lastName')}")
|
||||
print("phone:", c.get("phone"), "email:", c.get("email"))
|
||||
ck = keymap(brand_token, BRAND, "contact")
|
||||
for cf in c.get("customFields") or []:
|
||||
k = ck.get(cf.get("id"))
|
||||
if k in ("contact.id_contacto_sucursal", "contact.sucursal", "contact.tienda",
|
||||
"contact.fuente_de_posible_cliente", "contact.fuente_de_prospecto"):
|
||||
print(f" {k} = {cf.get('value')!r}")
|
||||
|
||||
# buscar la opp link en cada sucursal para identificar la sucursal de origen
|
||||
if link:
|
||||
print("\n=== BUSCANDO opp", link, "EN SUCURSALES ===")
|
||||
for loc, acc in accounts.items():
|
||||
if loc == BRAND or acc.get("type") == "brand":
|
||||
continue
|
||||
try:
|
||||
bo = (gc.get_opportunity(acc["token"], link) or {}).get("opportunity") or {}
|
||||
except Exception:
|
||||
bo = {}
|
||||
if bo:
|
||||
print(f" ENCONTRADA en {acc['nombre']} ({loc})")
|
||||
bk = keymap(acc["token"], loc, "opportunity")
|
||||
for cf in bo.get("customFields") or []:
|
||||
k = bk.get(cf.get("id"))
|
||||
if k in ("opportunity.sucursal", "opportunity.tienda",
|
||||
"opportunity.fuente_de_posible_cliente", "opportunity.fuente_de_prospecto"):
|
||||
print(f" {k} = {cfval(cf)!r}")
|
||||
break
|
||||
else:
|
||||
print(" No encontrada por GET directo en ninguna sucursal.")
|
||||
Reference in New Issue
Block a user