Inspecting Database and MTS Sites

Inspecting Database and MTS Sites
  1db = impact.active_database
  2
  3
  4def describe_values(values):
  5    for i in range(1, values.field_count  + 1):
  6        impact.gui.output_toolbox.add("Column: " + str(values.field_name(i)) + " Value:'" + str(values.load(values.field_name(i))) + "'")
  7
  8# -------------------------------------------------------------------------------
  9def describe_site(site):
 10    if site is None:
 11        return
 12
 13    impact.gui.output_toolbox.add("**** Site ****")
 14    impact.gui.output_toolbox.add("Key: " + str(site.key) + ", full_name: " + site.full_name + ", description: " + str(site.description))
 15
 16    describe_values(site.values)
 17
 18    addresses = site.addresses
 19
 20    if addresses.count > 0:
 21        impact.gui.output_toolbox.add("Address Count: " + str(addresses.count))
 22
 23        for i in range(1, addresses.count  + 1):
 24            impact.gui.output_toolbox.add("**** Address " + str(i) + " ****")
 25
 26            describe_values(addresses.item(i).values)
 27
 28# -------------------------------------------------------------------------------
 29def test_user_site():
 30    impact.gui.output_toolbox.add("**** User site ****")
 31    user = db.users.item("ADMIN")
 32
 33    if not user.isNone():
 34        describe_site(user.site)
 35
 36# -------------------------------------------------------------------------------
 37def find_database_site():
 38    impact.gui.output_toolbox.add("**** Find By full_name ****")
 39
 40    if not db.sites.isNone():
 41        describe_site(db.sites.item("MANCHESTER"))
 42
 43# -------------------------------------------------------------------------------
 44def test_database_sites():
 45    impact.gui.output_toolbox.add("**** All Sites ****")
 46
 47    if not db.sites.isNone():
 48        impact.gui.output_toolbox.add("Site Count: " + str(db.sites.count))
 49        for i in range(1, db.sites.count  + 1):
 50            describe_site(db.sites.item(i))
 51
 52        # Alternative syntax
 53        # for each site in db.sites
 54        # DescribeSite site
 55        # next
 56# -------------------------------------------------------------------------------
 57def test_mts_sites():
 58    impact.gui.output_toolbox.add("**** Mts Sites ****")
 59    ms = db.find_master_tool_setting("3D-DXF", ipMasterSettingType.mstImportExport)
 60
 61    if ms is not None:
 62        if ms.sites is not None:
 63            impact.gui.output_toolbox.add("Site Count: " + str(ms.sites.count))
 64            for i in range(1, ms.sites.count  + 1):
 65                impact.gui.output_toolbox.add(ms.sites.item(i).full_name)
 66
 67# -------------------------------------------------------------------------------
 68def test_customer_sites():
 69    impact.gui.output_toolbox.add("**** customer Sites ****")
 70    cust = db.customers.find_by_code("(DEFAULT CUSTOMER)")
 71
 72    if cust is not None:
 73        if cust.sites is not None:
 74            impact.gui.output_toolbox.add("Site Count: " + str(cust.sites.count))
 75            for i in range(1, cust.sites.count  + 1):
 76                impact.gui.output_toolbox.add(cust.sites.item(i).full_name)
 77
 78    impact.gui.output_toolbox.add("**** Site Customers ****")
 79    impact.gui.output_toolbox.add("Total Customers: " + str(db.customers.count))
 80    for site in db.sites:
 81        if site.customers is not None:
 82            impact.gui.output_toolbox.add("Site '" + site.full_name + "' customer Count: " + str(site.customers.count))
 83
 84# -------------------------------------------------------------------------------
 85def space_out():
 86    for i in range(1, 2  + 1):
 87        impact.gui.output_toolbox.add(" ")
 88
 89# -------------------------------------------------------------------------------
 90
 91impact.gui.output_toolbox.clear()
 92
 93if not db.settings.db_sites:
 94    impact.gui.output_toolbox.add("Database Sites are not enabled")
 95else:
 96    TestUserSite()
 97    SpaceOut()
 98    FindDatabaseSite()
 99    SpaceOut()
100    TestDatabaseSites()
101    SpaceOut()
102
103    if not db.settings.mts_sites:
104        impact.gui.output_toolbox.add("MTS Sites are not enabled")
105    else:
106        TestMtsSites()
107        SpaceOut()
108
109    if not db.settings.customer_sites:
110        impact.gui.output_toolbox.add("customer Sites are not enabled")
111    else:
112        TestCustomerSites()
113        SpaceOut()