diff --git a/.vscode/launch.json b/.vscode/launch.json index 8fb140e2..850df52e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -63,7 +63,7 @@ "AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=raven;Database=AyaNova;CommandTimeout=300;", "AYANOVA_DATA_PATH": "c:\\temp\\ravendata", "AYANOVA_USE_URLS": "http://*:7575;", - //"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", + "AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", //"AYANOVA_REMOVE_LICENSE_FROM_DB":"true", "AYANOVA_REPORT_RENDERING_TIMEOUT":"60", //"AYANOVA_REPORT_RENDER_API_URL_OVERRIDE": "http://localhost:7575", diff --git a/docs/8.0/ayanova/docs/changelog.md b/docs/8.0/ayanova/docs/changelog.md index 0de9afa7..98d314bb 100644 --- a/docs/8.0/ayanova/docs/changelog.md +++ b/docs/8.0/ayanova/docs/changelog.md @@ -10,7 +10,15 @@ See the [upgrade instructions](ops-upgrade.md) section of this manual for detail ### AyaNova 8.2.1 -In progress.... +Released 2024-08-28 + +\*\*Changed + +- Server: updated internal 3rd party database related dependencies + +**Fixed** + +- Server: resolved issue which could result in an overflow exception error when opening an existing work order ### AyaNova 8.2.0 diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index e6488e69..f9573693 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -8,7 +8,7 @@ site_name: AyaNova manual site_dir: "../../../server/AyaNova/wwwroot/docs" site_url: https://ayanova.com/docs/ strict: true -copyright: Copyright © 2022-2024 Ground Zero Tech-Works Inc. REV-2024-06-03 +copyright: Copyright © 2022-2024 Ground Zero Tech-Works Inc. REV-2024-08-28 extra: generator: false # Extensions diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 0c95bcce..d8957994 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -1975,48 +1975,47 @@ CREATE OR REPLACE VIEW public.viewpartinventorylist await ExecQueryAsync("ALTER TABLE acustomernotifysubscription ALTER COLUMN decvalue SET DATA TYPE DECIMAL(28,8);"); await ExecQueryAsync("ALTER TABLE acustomernotifyevent ALTER COLUMN decvalue SET DATA TYPE DECIMAL(28,8);"); -//RECREATE VIEWS + //RECREATE VIEWS await ExecQueryAsync("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)"); - - await ExecQueryAsync(@" -CREATE OR REPLACE VIEW public.viewpartinventorylist - AS - SELECT apart.id AS partid, - apart.name AS partname, - apart.description AS partdescription, - apart.active AS partactive, - apart.cost AS partcost, - apart.retail AS partretail, - apart.tags AS parttags, - apartwarehouse.id AS partwarehouseid, - apartwarehouse.name AS partwarehousename, - awholesaler.name AS wholesalername, - awholesaler.id AS wholesalerid, - aaltwholesaler.id AS altwholesalerid, - aaltwholesaler.name AS altwholesalername, - vpartinventorynow.balance AS onhandqty, - COALESCE(vpartsonorder.quantityonorder, 0::numeric) AS onorderqty, - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric) AS onordercommittedqty, - COALESCE(apartstocklevel.minimumquantity, 0::numeric) AS restockminqty, - GREATEST(COALESCE(apartstocklevel.minimumquantity, 0::numeric) - (COALESCE(vpartinventorynow.balance, 0::numeric) + COALESCE(vpartsonorder.quantityonorder, 0::numeric) - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric)), 0::numeric) AS reorderqty, - vpartinventorynow.id AS partinventoryid, - vpartinventorynow.description AS partinventorydescription, - amanufacturer.name AS manufacturername, - amanufacturer.id AS manufacturerid - FROM vpartinventorynow - LEFT JOIN vpartsonordercommitted ON vpartinventorynow.partid = vpartsonordercommitted.partid AND vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid - LEFT JOIN vpartsonorder ON vpartinventorynow.partid = vpartsonorder.partid AND vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid - LEFT JOIN apart ON vpartinventorynow.partid = apart.id - LEFT JOIN apartwarehouse ON vpartinventorynow.partwarehouseid = apartwarehouse.id - LEFT JOIN avendor awholesaler ON apart.wholesalerid = awholesaler.id - LEFT JOIN avendor aaltwholesaler ON apart.alternativewholesalerid = aaltwholesaler.id - LEFT JOIN avendor amanufacturer ON apart.manufacturerid = amanufacturer.id - LEFT JOIN apartstocklevel ON apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid; -"); - + await ExecQueryAsync(@" + CREATE OR REPLACE VIEW public.viewpartinventorylist + AS + SELECT apart.id AS partid, + apart.name AS partname, + apart.description AS partdescription, + apart.active AS partactive, + apart.cost AS partcost, + apart.retail AS partretail, + apart.tags AS parttags, + apartwarehouse.id AS partwarehouseid, + apartwarehouse.name AS partwarehousename, + awholesaler.name AS wholesalername, + awholesaler.id AS wholesalerid, + aaltwholesaler.id AS altwholesalerid, + aaltwholesaler.name AS altwholesalername, + vpartinventorynow.balance AS onhandqty, + COALESCE(vpartsonorder.quantityonorder, 0::numeric) AS onorderqty, + COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric) AS onordercommittedqty, + COALESCE(apartstocklevel.minimumquantity, 0::numeric) AS restockminqty, + GREATEST(COALESCE(apartstocklevel.minimumquantity, 0::numeric) - (COALESCE(vpartinventorynow.balance, 0::numeric) + COALESCE(vpartsonorder.quantityonorder, 0::numeric) - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric)), 0::numeric) AS reorderqty, + vpartinventorynow.id AS partinventoryid, + vpartinventorynow.description AS partinventorydescription, + amanufacturer.name AS manufacturername, + amanufacturer.id AS manufacturerid + FROM vpartinventorynow + LEFT JOIN vpartsonordercommitted ON vpartinventorynow.partid = vpartsonordercommitted.partid AND vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid + LEFT JOIN vpartsonorder ON vpartinventorynow.partid = vpartsonorder.partid AND vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid + LEFT JOIN apart ON vpartinventorynow.partid = apart.id + LEFT JOIN apartwarehouse ON vpartinventorynow.partwarehouseid = apartwarehouse.id + LEFT JOIN avendor awholesaler ON apart.wholesalerid = awholesaler.id + LEFT JOIN avendor aaltwholesaler ON apart.alternativewholesalerid = aaltwholesaler.id + LEFT JOIN avendor amanufacturer ON apart.manufacturerid = amanufacturer.id + LEFT JOIN apartstocklevel ON apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid; + "); + await SetSchemaLevelAsync(++currentSchema); }