case 4610

This commit is contained in:
2024-08-28 23:00:00 +00:00
parent e0f57fb1ee
commit 2548ba53d3
4 changed files with 48 additions and 41 deletions

2
.vscode/launch.json vendored
View File

@@ -63,7 +63,7 @@
"AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=raven;Database=AyaNova;CommandTimeout=300;", "AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=raven;Database=AyaNova;CommandTimeout=300;",
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata", "AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
"AYANOVA_USE_URLS": "http://*:7575;", "AYANOVA_USE_URLS": "http://*:7575;",
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", "AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
//"AYANOVA_REMOVE_LICENSE_FROM_DB":"true", //"AYANOVA_REMOVE_LICENSE_FROM_DB":"true",
"AYANOVA_REPORT_RENDERING_TIMEOUT":"60", "AYANOVA_REPORT_RENDERING_TIMEOUT":"60",
//"AYANOVA_REPORT_RENDER_API_URL_OVERRIDE": "http://localhost:7575", //"AYANOVA_REPORT_RENDER_API_URL_OVERRIDE": "http://localhost:7575",

View File

@@ -10,7 +10,15 @@ See the [upgrade instructions](ops-upgrade.md) section of this manual for detail
### AyaNova 8.2.1 ### 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 ### AyaNova 8.2.0

View File

@@ -8,7 +8,7 @@ site_name: AyaNova manual
site_dir: "../../../server/AyaNova/wwwroot/docs" site_dir: "../../../server/AyaNova/wwwroot/docs"
site_url: https://ayanova.com/docs/ site_url: https://ayanova.com/docs/
strict: true 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: extra:
generator: false generator: false
# Extensions # Extensions

View File

@@ -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 acustomernotifysubscription ALTER COLUMN decvalue SET DATA TYPE DECIMAL(28,8);");
await ExecQueryAsync("ALTER TABLE acustomernotifyevent 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, " 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 " + "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)"); + "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(@"
await ExecQueryAsync(@" CREATE OR REPLACE VIEW public.viewpartinventorylist
CREATE OR REPLACE VIEW public.viewpartinventorylist AS
AS SELECT apart.id AS partid,
SELECT apart.id AS partid, apart.name AS partname,
apart.name AS partname, apart.description AS partdescription,
apart.description AS partdescription, apart.active AS partactive,
apart.active AS partactive, apart.cost AS partcost,
apart.cost AS partcost, apart.retail AS partretail,
apart.retail AS partretail, apart.tags AS parttags,
apart.tags AS parttags, apartwarehouse.id AS partwarehouseid,
apartwarehouse.id AS partwarehouseid, apartwarehouse.name AS partwarehousename,
apartwarehouse.name AS partwarehousename, awholesaler.name AS wholesalername,
awholesaler.name AS wholesalername, awholesaler.id AS wholesalerid,
awholesaler.id AS wholesalerid, aaltwholesaler.id AS altwholesalerid,
aaltwholesaler.id AS altwholesalerid, aaltwholesaler.name AS altwholesalername,
aaltwholesaler.name AS altwholesalername, vpartinventorynow.balance AS onhandqty,
vpartinventorynow.balance AS onhandqty, COALESCE(vpartsonorder.quantityonorder, 0::numeric) AS onorderqty,
COALESCE(vpartsonorder.quantityonorder, 0::numeric) AS onorderqty, COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric) AS onordercommittedqty,
COALESCE(vpartsonordercommitted.quantityonordercommitted, 0::numeric) AS onordercommittedqty, COALESCE(apartstocklevel.minimumquantity, 0::numeric) AS restockminqty,
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,
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.id AS partinventoryid, vpartinventorynow.description AS partinventorydescription,
vpartinventorynow.description AS partinventorydescription, amanufacturer.name AS manufacturername,
amanufacturer.name AS manufacturername, amanufacturer.id AS manufacturerid
amanufacturer.id AS manufacturerid FROM vpartinventorynow
FROM vpartinventorynow LEFT JOIN vpartsonordercommitted ON vpartinventorynow.partid = vpartsonordercommitted.partid AND vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid
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 vpartsonorder ON vpartinventorynow.partid = vpartsonorder.partid AND vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid LEFT JOIN apart ON vpartinventorynow.partid = apart.id
LEFT JOIN apart ON vpartinventorynow.partid = apart.id LEFT JOIN apartwarehouse ON vpartinventorynow.partwarehouseid = apartwarehouse.id
LEFT JOIN apartwarehouse ON vpartinventorynow.partwarehouseid = apartwarehouse.id LEFT JOIN avendor awholesaler ON apart.wholesalerid = awholesaler.id
LEFT JOIN avendor awholesaler ON apart.wholesalerid = awholesaler.id LEFT JOIN avendor aaltwholesaler ON apart.alternativewholesalerid = aaltwholesaler.id
LEFT JOIN avendor aaltwholesaler ON apart.alternativewholesalerid = aaltwholesaler.id LEFT JOIN avendor amanufacturer ON apart.manufacturerid = amanufacturer.id
LEFT JOIN avendor amanufacturer ON apart.manufacturerid = amanufacturer.id LEFT JOIN apartstocklevel ON apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid;
LEFT JOIN apartstocklevel ON apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid; ");
");
await SetSchemaLevelAsync(++currentSchema); await SetSchemaLevelAsync(++currentSchema);
} }