Add parent company, billing account, and linked companies to customer account card

This commit is contained in:
2026-07-28 23:18:23 -04:00
parent b9350943f5
commit b1b64501c4
2 changed files with 36 additions and 18 deletions
+33 -18
View File
@@ -1365,31 +1365,46 @@ def get_asset(asset_id: int):
if asset_company:
# Try exact match first, then LIKE
cur_ext.execute("""
SELECT name, address1_line1, address1_city, address1_stateorprovince,
address1_postalcode, address1_country, telephone1, emailaddress1,
websiteurl, fax, address1_latitude, address1_longitude,
"hsl_managementcompany!name" AS management_company,
"hsl_csm!name" AS csm
FROM account
WHERE name = ?
""", (asset_company,))
acct = cur_ext.fetchone()
if not acct:
# Try fuzzy match
cur_ext.execute("""
SELECT name, address1_line1, address1_city, address1_stateorprovince,
address1_postalcode, address1_country, telephone1, emailaddress1,
websiteurl, fax, address1_latitude, address1_longitude,
"hsl_managementcompany!name" AS management_company,
"hsl_csm!name" AS csm
"hsl_csm!name" AS csm,
"parentaccountid!name" AS parent_company,
"msdyn_billingaccount!name" AS billing_account
FROM account
WHERE name LIKE ? LIMIT 1
""", (f"%{asset_company[:30]}%",))
WHERE name = ?
""", (asset_company,))
acct = cur_ext.fetchone()
if acct:
ca = dict(acct)
# Clean None values
result["customer_account"] = {k: v for k, v in ca.items() if v is not None}
if not acct:
cur_ext.execute("""
SELECT name, address1_line1, address1_city, address1_stateorprovince,
address1_postalcode, address1_country, telephone1, emailaddress1,
websiteurl, fax, address1_latitude, address1_longitude,
"hsl_managementcompany!name" AS management_company,
"hsl_csm!name" AS csm,
"parentaccountid!name" AS parent_company,
"msdyn_billingaccount!name" AS billing_account
FROM account
WHERE name LIKE ? LIMIT 1
""", (f"%{asset_company[:30]}%",))
acct = cur_ext.fetchone()
if acct:
ca = dict(acct)
# Get linked companies (sibling accounts under same parent)
parent_name = ca.get("parent_company")
if parent_name:
cur_ext.execute("""
SELECT name FROM account
WHERE "parentaccountid!name" = ? AND name != ?
ORDER BY name LIMIT 20
""", (parent_name, ca.get("name", "")))
siblings = [r["name"] for r in cur_ext.fetchall()]
if siblings:
ca["linked_companies"] = siblings
# Clean None values
result["customer_account"] = {k: v for k, v in ca.items() if v is not None}
ext.close()
except Exception:
pass