This commit is contained in:
2021-08-25 18:11:20 +00:00
parent a3c60078de
commit 1b8929908d
2 changed files with 42 additions and 51 deletions

View File

@@ -11,26 +11,32 @@ namespace AyaNova.DataList
{ {
DefaultListAType = AyaType.PartInventory; DefaultListAType = AyaType.PartInventory;
SQLFrom = "from vpartinventorylist " SQLFrom = "from vpartinventorylist ";
+ "LEFT JOIN apart ON (vpartinventorylist.partid = apart.id) " /*
+ "LEFT JOIN apartwarehouse ON (vpartinventorylist.partwarehouseid = apartwarehouse.id) "; "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( await ExecQueryAsync("CREATE VIEW vpartinventorylist AS select vpartinventorynow.*, vpartsonordercommitted.quantityonordercommitted, vpartsonorder.quantityonorder from vpartinventorynow "
// COALESCE(apartstocklevel.minimumquantity, 0) - + "left join vpartsonordercommitted on (vpartinventorynow.partid = vpartsonordercommitted.partid and vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid)"
// (COALESCE(vpartinventorylist.balance, 0) + COALESCE(vpartinventorylist.quantityonorder, 0) - COALESCE(vpartinventorylist.quantityonordercommitted, 0)) + "left join vpartsonorder on (vpartinventorynow.partid = vpartsonorder.partid and vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid)");
// ,0)
// AS reorderquantity */
// from vpartinventorylist
// LEFT JOIN apart ON (vpartinventorylist.partid = apart.id) //NEEDED COLUMNS
// LEFT JOIN apartwarehouse ON (vpartinventorylist.partwarehouseid = apartwarehouse.id) /*
// left join avendor AS aws on (apart.wholesalerid = aws.id) partid, partnumber, partname, partactive, partcost, partretail, partwarehouseid, partwarehousename,wholesalername,wholesalerid,altwholesalername,altwholesalerid,
// left join avendor AS aaws on (apart.alternativewholesalerid = aaws.id) onhandqty, onorderqty, onordercommittedqty, restocklevel/minimumqty, reorderqty, vpartinventorynow.description, vpartinventorynow.id
// left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorylist.partwarehouseid) */
var RoleSet = BizRoles.GetRoleSet(DefaultListAType); var RoleSet = BizRoles.GetRoleSet(DefaultListAType);
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
@@ -55,7 +61,7 @@ namespace AyaNova.DataList
AType = (int)AyaType.Part, AType = (int)AyaType.Part,
UiFieldDataType = (int)UiFieldDataType.Text, UiFieldDataType = (int)UiFieldDataType.Text,
SqlIdColumnName = "apart.id", SqlIdColumnName = "apart.id",
SqlValueColumnName = "apart.name" SqlValueColumnName = "vpartinventorylist.vpartinventorylist"
}); });
FieldDefinitions.Add(new DataListFieldDefinition FieldDefinitions.Add(new DataListFieldDefinition
@@ -74,8 +80,8 @@ namespace AyaNova.DataList
FieldKey = "PartInventoryTransactionDescription", FieldKey = "PartInventoryTransactionDescription",
AType = (int)AyaType.PartInventory, AType = (int)AyaType.PartInventory,
UiFieldDataType = (int)UiFieldDataType.Text, UiFieldDataType = (int)UiFieldDataType.Text,
SqlIdColumnName = "vpartinventorylist.id", SqlIdColumnName = "vpartinventorylist.id",//NEW: vpartinventorynow.id is actually apartinventory.id required for reporting purposes
SqlValueColumnName = "vpartinventorylist.description", 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 IsMeta = true,//only so it doesn't show in the UI but is required for report
IsRowId = true IsRowId = true
}); });

View File

@@ -22,7 +22,7 @@ namespace AyaNova.Util
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!! //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!!
private const int DESIRED_SCHEMA_LEVEL = 1; 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_INDEX_COUNT = 146;
internal const long EXPECTED_CHECK_CONSTRAINTS = 517; internal const long EXPECTED_CHECK_CONSTRAINTS = 517;
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 191; 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!!!! //!!!!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 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)");
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,"
await ExecQueryAsync("CREATE VIEW vpartinventorylist AS select apart.partnumber,apartwarehouse.name as whsname,vpartinventorynow.*,vpartsonorder.quantityonorder," +"apartwarehouse.id as partwarehouseid, apartwarehouse.name as partwarehousename, awholesaler.name as wholesalername, awholesaler.id as wholesalerid, "
+"vpartsonordercommitted.quantityonordercommitted,apart.name as prtname, apart.active, apart.cost, apartstocklevel.minimumquantity,apart.retail, aws.name AS whslrname, aaws.name AS altwhslrname, " +"aaltwholesaler.id as altwholesalerid, aaltwholesaler.name as altwholesalername, vpartinventorynow.balance as onhandqty,vpartsonorder.quantityonorder as onorderqty, "
+"GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - " +"vpartsonordercommitted.quantityonordercommitted as onordercommittedqty,apartstocklevel.minimumquantity as restockminqty, "
+"COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderquantity FROM vpartinventorynow LEFT JOIN vpartsonordercommitted ON " +"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 " +"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 apartwarehouse ON (vpartinventorynow.partwarehouseid = apartwarehouse.id) " +"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);"); +"left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid);");
/*
partid, partnumber, partname, partactive, partcost, partretail, partwarehouseid, partwarehousename,wholesalername,wholesalerid,altwholesalername,altwholesalerid,
//TODO: make this a view and *it* should be named vpartinventorylist ideally onhandqty, onorderqty, onordercommittedqty, restocklevel/minimumqty, reorderqty, vpartinventorynow.description, vpartinventorynow.id
//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)
//---------- //----------