From 759bb5158c80fdd80742ec54ef533b541c6000a3 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 14 Oct 2021 22:04:11 +0000 Subject: [PATCH] --- server/AyaNova/DataList/CustomerDataList.cs | 5 ++--- server/AyaNova/DataList/UnitDataList.cs | 4 +--- server/AyaNova/util/AySchema.cs | 6 ++++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/server/AyaNova/DataList/CustomerDataList.cs b/server/AyaNova/DataList/CustomerDataList.cs index 558bd408..dddd057b 100644 --- a/server/AyaNova/DataList/CustomerDataList.cs +++ b/server/AyaNova/DataList/CustomerDataList.cs @@ -19,9 +19,8 @@ LEFT JOIN LATERAL AWORKORDER.ID AS LASTWORKORDERID FROM AWORKORDER LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID - WHERE AWORKORDERSTATUS.COMPLETED = TRUE - AND AWORKORDER.CUSTOMERID = ACUSTOMER.ID - ORDER BY AWORKORDER.ID DESC + WHERE AWORKORDER.CUSTOMERID = ACUSTOMER.ID + ORDER BY AWORKORDER.SERVICEDATE DESC LIMIT 1) AS LWO ON TRUE"; var RoleSet = BizRoles.GetRoleSet(DefaultListAType); diff --git a/server/AyaNova/DataList/UnitDataList.cs b/server/AyaNova/DataList/UnitDataList.cs index 73999480..b31139b2 100644 --- a/server/AyaNova/DataList/UnitDataList.cs +++ b/server/AyaNova/DataList/UnitDataList.cs @@ -23,11 +23,9 @@ LEFT JOIN LATERAL AWORKORDERITEMUNIT.ID AS LASTWORKORDERITEMUNITID FROM AWORKORDER LEFT JOIN AWORKORDERITEM ON AWORKORDER.ID = AWORKORDERITEM.WORKORDERID - LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID LEFT JOIN AWORKORDERITEMUNIT ON AWORKORDERITEM.ID = AWORKORDERITEMUNIT.WORKORDERITEMID WHERE AWORKORDERITEMUNIT.ID = AMAINUNIT.ID - AND AWORKORDERSTATUS.COMPLETED = TRUE - ORDER BY AWORKORDER.ID DESC + ORDER BY AWORKORDER.SERVICEDATE DESC LIMIT 1) AS LWO ON TRUE"; diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index bcdb259d..7ba0ab7f 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -799,6 +799,9 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); + "postaddress TEXT, postcity TEXT, postregion TEXT, postcountry TEXT, postcode TEXT, address TEXT, city TEXT, region TEXT, country TEXT, latitude DECIMAL(9,6), longitude DECIMAL(9,6) " + ")");//note deliberately not referencing contract here as it's not tied to it, just needs to keep track of it in case user selects alternate then triggers recalc + //This index is *critical* for performance on customer list fetching last workorder id in lateral join + await ExecQueryAsync("CREATE INDEX idx_aworkorder_customerid ON aworkorder (customerid)"); + await ExecQueryAsync("CREATE TABLE aworkorderstate (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderid BIGINT NOT NULL REFERENCES aworkorder (id), " + "workorderstatusid BIGINT NOT NULL REFERENCES aworkorderstatus (id), created TIMESTAMP NOT NULL, userid BIGINT NOT NULL REFERENCES auser (id)" + ")"); @@ -864,6 +867,9 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); + "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, unitid BIGINT NOT NULL REFERENCES aunit" + ")"); + //This index is *critical* for performance on Unit list fetching last workorder id in lateral join + await ExecQueryAsync("CREATE INDEX idx_aworkorderitemunit_unitidid ON aworkorderitemunit (unitid)"); + //WORKORDERITEM OUTSIDE SERVICE await ExecQueryAsync("CREATE TABLE aworkorderitemoutsideservice (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), " + "notes TEXT, unitid BIGINT NOT NULL REFERENCES aunit, vendorsenttoid BIGINT REFERENCES avendor, vendorsentviaid BIGINT REFERENCES avendor, rmanumber text, trackingnumber text, "