From 1b8929908d95e48a235672899a2061e01582d626 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 25 Aug 2021 18:11:20 +0000 Subject: [PATCH] --- .../AyaNova/DataList/PartInventoryDataList.cs | 48 +++++++++++-------- server/AyaNova/util/AySchema.cs | 45 ++++++----------- 2 files changed, 42 insertions(+), 51 deletions(-) diff --git a/server/AyaNova/DataList/PartInventoryDataList.cs b/server/AyaNova/DataList/PartInventoryDataList.cs index 1c69e0de..c446046f 100644 --- a/server/AyaNova/DataList/PartInventoryDataList.cs +++ b/server/AyaNova/DataList/PartInventoryDataList.cs @@ -11,26 +11,32 @@ namespace AyaNova.DataList { DefaultListAType = AyaType.PartInventory; - SQLFrom = "from vpartinventorylist " - + "LEFT JOIN apart ON (vpartinventorylist.partid = apart.id) " - + "LEFT JOIN apartwarehouse ON (vpartinventorylist.partwarehouseid = apartwarehouse.id) "; + SQLFrom = "from vpartinventorylist "; +/* +"CREATE VIEW vpartinventorylist AS select apart.partnumber,apartwarehouse.name as whsname,vpartinventorynow.*,vpartsonorder.quantityonorder," ++"vpartsonordercommitted.quantityonordercommitted,apart.name as prtname, apart.active, apart.cost, apartstocklevel.minimumquantity,apart.retail, aws.name AS whslrname, aaws.name AS altwhslrname, " ++"GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - " ++"COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderquantity 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 AS aws on (apart.wholesalerid = aws.id) left join avendor AS aaws on (apart.alternativewholesalerid = aaws.id) " ++"left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid);" -//TODO: make this a view and *it* should be named vpartinventorylist ideally -//so either incorporate or rename the existing vpartinventorylist to fit in here -// select apart.partnumber,apartwarehouse.name,vpartinventorylist.balance,vpartinventorylist.quantityonorder,vpartinventorylist.quantityonordercommitted,apart.name, -// apart.active, apart.cost, apartstocklevel.minimumquantity,apart.retail, aws.name, aaws.name, -// GREATEST( -// COALESCE(apartstocklevel.minimumquantity, 0) - -// (COALESCE(vpartinventorylist.balance, 0) + COALESCE(vpartinventorylist.quantityonorder, 0) - COALESCE(vpartinventorylist.quantityonordercommitted, 0)) -// ,0) -// AS reorderquantity -// from vpartinventorylist -// LEFT JOIN apart ON (vpartinventorylist.partid = apart.id) -// LEFT JOIN apartwarehouse ON (vpartinventorylist.partwarehouseid = apartwarehouse.id) -// left join avendor AS aws on (apart.wholesalerid = aws.id) -// left join avendor AS aaws on (apart.alternativewholesalerid = aaws.id) -// left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorylist.partwarehouseid) + + +await ExecQueryAsync("CREATE VIEW vpartinventorylist AS select vpartinventorynow.*, vpartsonordercommitted.quantityonordercommitted, vpartsonorder.quantityonorder 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)"); + +*/ + +//NEEDED COLUMNS +/* +partid, partnumber, partname, partactive, partcost, partretail, partwarehouseid, partwarehousename,wholesalername,wholesalerid,altwholesalername,altwholesalerid, +onhandqty, onorderqty, onordercommittedqty, restocklevel/minimumqty, reorderqty, vpartinventorynow.description, vpartinventorynow.id +*/ var RoleSet = BizRoles.GetRoleSet(DefaultListAType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; @@ -55,7 +61,7 @@ namespace AyaNova.DataList AType = (int)AyaType.Part, UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "apart.id", - SqlValueColumnName = "apart.name" + SqlValueColumnName = "vpartinventorylist.vpartinventorylist" }); FieldDefinitions.Add(new DataListFieldDefinition @@ -74,8 +80,8 @@ namespace AyaNova.DataList FieldKey = "PartInventoryTransactionDescription", AType = (int)AyaType.PartInventory, UiFieldDataType = (int)UiFieldDataType.Text, - SqlIdColumnName = "vpartinventorylist.id", - SqlValueColumnName = "vpartinventorylist.description", + SqlIdColumnName = "vpartinventorylist.id",//NEW: vpartinventorynow.id is actually apartinventory.id required for reporting purposes + SqlValueColumnName = "vpartinventorylist.description",//NEW: vpartinventorynow.description which is actually apartinventory.description IsMeta = true,//only so it doesn't show in the UI but is required for report IsRowId = true }); diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index c21e0a8e..19fce594 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,7 +22,7 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!! private const int DESIRED_SCHEMA_LEVEL = 1; - internal const long EXPECTED_COLUMN_COUNT = 1236; + internal const long EXPECTED_COLUMN_COUNT = 1231; internal const long EXPECTED_INDEX_COUNT = 146; internal const long EXPECTED_CHECK_CONSTRAINTS = 517; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 191; @@ -31,7 +31,7 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!! - ///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////// C1231:I146:CC517:FC191:V7:R2 @@ -901,38 +901,23 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); // + "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)"); - - - await ExecQueryAsync("CREATE VIEW vpartinventorylist AS select apart.partnumber,apartwarehouse.name as whsname,vpartinventorynow.*,vpartsonorder.quantityonorder," - +"vpartsonordercommitted.quantityonordercommitted,apart.name as prtname, apart.active, apart.cost, apartstocklevel.minimumquantity,apart.retail, aws.name AS whslrname, aaws.name AS altwhslrname, " - +"GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - " - +"COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderquantity FROM vpartinventorynow LEFT JOIN vpartsonordercommitted ON " + await ExecQueryAsync( + "CREATE VIEW vpartinventorylist AS select apart.id as partid, apart.partnumber, apart.name as partname, apart.active as partactive, apart.cost as partcost, apart.retail as partretail," + +"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,vpartsonorder.quantityonorder as onorderqty, " + +"vpartsonordercommitted.quantityonordercommitted as onordercommittedqty,apartstocklevel.minimumquantity as restockminqty, " + +"GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderqty," + +"vpartinventorynow.id as partinventoryid, vpartinventorynow.description as partinventorydescription " + +"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 AS aws on (apart.wholesalerid = aws.id) left join avendor AS aaws on (apart.alternativewholesalerid = aaws.id) " + +"left join avendor AS awholesaler on (apart.wholesalerid = awholesaler.id) left join avendor AS aaltwholesaler on (apart.alternativewholesalerid = aaltwholesaler.id) " +"left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid);"); - - -//TODO: make this a view and *it* should be named vpartinventorylist ideally -//so either incorporate or rename the existing vpartinventorylist to fit in here -//existing vpartinventorylist only used by partinventorydatalist so... :) - - -// select apart.partnumber,apartwarehouse.name,vpartinventorylist.balance,vpartinventorylist.quantityonorder,vpartinventorylist.quantityonordercommitted,apart.name, -// apart.active, apart.cost, apartstocklevel.minimumquantity,apart.retail, aws.name, aaws.name, -// GREATEST( -// COALESCE(apartstocklevel.minimumquantity, 0) - -// (COALESCE(vpartinventorylist.balance, 0) + COALESCE(vpartinventorylist.quantityonorder, 0) - COALESCE(vpartinventorylist.quantityonordercommitted, 0)) -// ,0) -// AS reorderquantity -// from vpartinventorylist -// LEFT JOIN apart ON (vpartinventorylist.partid = apart.id) -// LEFT JOIN apartwarehouse ON (vpartinventorylist.partwarehouseid = apartwarehouse.id) -// left join avendor AS aws on (apart.wholesalerid = aws.id) -// left join avendor AS aaws on (apart.alternativewholesalerid = aaws.id) -// left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorylist.partwarehouseid) - +/* +partid, partnumber, partname, partactive, partcost, partretail, partwarehouseid, partwarehousename,wholesalername,wholesalerid,altwholesalername,altwholesalerid, +onhandqty, onorderqty, onordercommittedqty, restocklevel/minimumqty, reorderqty, vpartinventorynow.description, vpartinventorynow.id +*/ //----------