case 4610

This commit is contained in:
2024-08-28 22:44:54 +00:00
parent b9a29a23bc
commit e0f57fb1ee

View File

@@ -1891,7 +1891,7 @@ CREATE OR REPLACE VIEW public.viewpartinventorylist
}
//////////////////////////////////////////////////
//////////////////////////////////////////////////
//
// case 4610
//
@@ -1900,7 +1900,9 @@ CREATE OR REPLACE VIEW public.viewpartinventorylist
LogUpdateMessage(log);
//todo drop all involved views first then recreate after all these mods same as before, stupid fuckery!!
//todo drop all involved views first then recreate after all these mods same as before, stupid fuckery!!
await ExecQueryAsync("DROP VIEW IF EXISTS viewpartsdatalist");
await ExecQueryAsync("DROP VIEW IF EXISTS viewpartinventorylist");
await ExecQueryAsync("ALTER TABLE aservicerate ALTER COLUMN cost SET DATA TYPE DECIMAL(28,8);");
await ExecQueryAsync("ALTER TABLE aservicerate ALTER COLUMN charge SET DATA TYPE DECIMAL(28,8);");
@@ -1973,8 +1975,48 @@ 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
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 SetSchemaLevelAsync(++currentSchema);
}