diff --git a/server/AyaNova/DataList/PartDataList.cs b/server/AyaNova/DataList/PartDataList.cs index 02c18bb2..9e5b1c57 100644 --- a/server/AyaNova/DataList/PartDataList.cs +++ b/server/AyaNova/DataList/PartDataList.cs @@ -7,11 +7,7 @@ namespace AyaNova.DataList public PartDataList() { DefaultListAType = AyaType.Part; - SQLFrom = "from apart " - + "left join avendor as aman on (apart.manufacturerid=aman.id) " - + "left join avendor as awhole on (apart.wholesalerid=awhole.id) " - + "left join avendor as aaltwhole on (apart.alternativewholesalerid=aaltwhole.id) "; - //+ "left join apartserial on apartserial.partid=apart.id"; + SQLFrom = "from viewpartsdatalist "; var RoleSet = BizRoles.GetRoleSet(DefaultListAType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; DefaultColumns = new List() { "PartPartNumber", "PartName", "PartManufacturerID", "PartWholesalerID", "Tags" }; @@ -152,7 +148,7 @@ namespace AyaNova.DataList TKey = "PartSerialNumbersAvailable", FieldKey = "PartSerialNumbersAvailable", UiFieldDataType = (int)UiFieldDataType.Text, - SqlValueColumnName = "(select array_agg(serial) from apartserial where partid=apart.id group by partid) as sub_serials" + SqlValueColumnName = "(select array_to_string(array_agg(serial),', ') from apartserial where partid=apart.id group by partid) as sub_serials" }); FieldDefinitions.Add(new DataListFieldDefinition { TKey = "PartCustom1", FieldKey = "partcustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apart.customfields" }); diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index c7669f0b..6ef72498 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -1196,9 +1196,29 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await SetSchemaLevelAsync(++currentSchema); +//PART DATA LIST VIEW +/* +CREATE OR REPLACE VIEW viewpartsdatalist AS SELECT APART.*, + AMAN.NAME AS MANNAME, + AMAN.ID AS MANID, + AWHOLE.NAME AS WHOLENAME, + AWHOLE.ID AS WHOLEID, + AALTWHOLE.NAME AS ALTWHOLENAME, + AALTWHOLE.ID AS ALTWHOLEID, + (SELECT ARRAY_TO_STRING(ARRAY_AGG(serial),', ') + FROM APARTSERIAL + WHERE PARTID = APART.ID + GROUP BY PARTID) AS PARTSERIALS +FROM APART +LEFT JOIN AVENDOR AS AMAN ON (APART.MANUFACTURERID = AMAN.ID) +LEFT JOIN AVENDOR AS AWHOLE ON (APART.WHOLESALERID = AWHOLE.ID) +LEFT JOIN AVENDOR AS AALTWHOLE ON (APART.ALTERNATIVEWHOLESALERID = AALTWHOLE.ID) +*/ + + //SCHEDULE VIEWS //PERSONAL WORKORDERS - await ExecQueryAsync("CREATE VIEW VIEWSCHEDULEPERSONALWORKORDER AS SELECT " + await ExecQueryAsync("CREATE VIEW VIEWSCHEDULEPERSONALWORKORDER AS SELECT " + "AWORKORDERITEMSCHEDULEDUSER.ID AS WOITEMSCHEDUSERID, " + "AWORKORDERITEMSCHEDULEDUSER.USERID AS SCHEDUSERID, " + "AWORKORDERITEMSCHEDULEDUSER.STARTDATE, "