case 3740 - whups

This commit is contained in:
2020-04-02 22:13:29 +00:00
parent 0952f5043a
commit fca5b13e1f

View File

@@ -909,6 +909,7 @@ namespace GZTW.AyaNova.BLL
AyaBizUtils._SchemaUpdating = true;
DBUtil.DB.ClearPool();
int nSchemaLevelAtStart = int.MaxValue;
//There is nothing that can be done in here to handle errors other than to report them
//If this fails a restore from database is the only option
using (_cn = DBUtil.DB.GetConnection())
@@ -2623,6 +2624,18 @@ No message for error code 336397208 found.
#region Firebird Version 136 Case 3740
if (nSchemaLevel < 136)
{
//-- Delete 'closed none received' orphan poitems
DDL(@"DELETE FROM APURCHASEORDERITEM POI WHERE EXISTS (SELECT AID FROM APURCHASEORDER PO WHERE PO.AID=POI.APURCHASEORDERID AND PO.ASTATUS=6);");
//-- Fix 'Closed - partially received' po items with mismatching quantities
DDL(
@"MERGE INTO APURCHASEORDERITEM AS POI
USING APURCHASEORDER AS PO
ON PO.AID=POI.APURCHASEORDERID AND PO.ASTATUS=4
WHEN MATCHED THEN
UPDATE SET POI.AQUANTITYORDERED=POI.AQUANTITYRECEIVED, POI.ACLOSED=1;
");
//-- Reset all ON ORDER to zero
DDL(@"update APARTBYWAREHOUSEINVENTORY set AQUANTITYONORDER=0;");
@@ -2647,18 +2660,7 @@ WHEN MATCHED THEN
UPDATE SET B.AQTYONORDERCOMMITTED=A.AQUANTITYORDERED-A.AQUANTITYRECEIVED
");
//-- Delete 'closed none received' orphan poitems
DDL(@"DELETE FROM APURCHASEORDERITEM POI WHERE EXISTS (SELECT AID FROM APURCHASEORDER PO WHERE PO.AID=POI.APURCHASEORDERID AND PO.ASTATUS=4);");
//-- Fix 'Closed - partially received' po items with mismatching quantities
DDL(
@"MERGE INTO APURCHASEORDERITEM AS POI
USING APURCHASEORDER AS PO
ON PO.AID=POI.APURCHASEORDERID AND PO.ASTATUS=4
WHEN MATCHED THEN
UPDATE SET POI.AQUANTITYORDERED=POI.AQUANTITYRECEIVED, POI.ACLOSED=1;
");
nSchemaLevel = 136;
}
#endregion
@@ -4496,7 +4498,18 @@ UPDATE SET POI.AQUANTITYORDERED=POI.AQUANTITYRECEIVED, POI.ACLOSED=1;
if (nSchemaLevel < 136)
{
DDL(@"-- **** FIX INVENTORY ON ORDER ****
DDL(
@"-- Delete 'closed none received' orphan poitems
delete APURCHASEORDERITEM from APURCHASEORDERITEM
left outer join APURCHASEORDER on APURCHASEORDERITEM.APURCHASEORDERID = APURCHASEORDER.AID
where APURCHASEORDER.ASTATUS=6;
-- Fix 'Closed - partially received' po items with mismatching quantities
update APURCHASEORDERITEM set AQUANTITYORDERED=AQUANTITYRECEIVED, ACLOSED=1 from APURCHASEORDERITEM
left outer join APURCHASEORDER on APURCHASEORDERITEM.APURCHASEORDERID = APURCHASEORDER.AID
where APURCHASEORDER.ASTATUS=4;
-- **** FIX INVENTORY ON ORDER ****
-- Reset all ON ORDER to zero
update APARTBYWAREHOUSEINVENTORY set AQUANTITYONORDER=0;
-- Update on order to actual values in PO Items
@@ -4523,17 +4536,7 @@ where APURCHASEORDERITEM.ACLOSED=0 and APURCHASEORDERITEM.AWORKORDERITEMPARTREQU
) as zACTUAL
where
zACTUAL.APARTWAREHOUSEID= APARTBYWAREHOUSEINVENTORY.APARTWAREHOUSEID and
zACTUAL.APARTID=APARTBYWAREHOUSEINVENTORY.APARTID;
-- Delete 'closed none received' orphan poitems
delete APURCHASEORDERITEM from APURCHASEORDERITEM
left outer join APURCHASEORDER on APURCHASEORDERITEM.APURCHASEORDERID = APURCHASEORDER.AID
where APURCHASEORDER.ASTATUS=6;
-- Fix 'Closed - partially received' po items with mismatching quantities
update APURCHASEORDERITEM set AQUANTITYORDERED=AQUANTITYRECEIVED, ACLOSED=1 from APURCHASEORDERITEM
left outer join APURCHASEORDER on APURCHASEORDERITEM.APURCHASEORDERID = APURCHASEORDER.AID
where APURCHASEORDER.ASTATUS=4;");
zACTUAL.APARTID=APARTBYWAREHOUSEINVENTORY.APARTID;");