From 78c19405d37403a279fc888f80b8e156d50de052 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 24 Feb 2021 18:57:49 +0000 Subject: [PATCH] --- server/AyaNova/biz/PurchaseOrderBiz.cs | 44 +++++++++++++++++++------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/server/AyaNova/biz/PurchaseOrderBiz.cs b/server/AyaNova/biz/PurchaseOrderBiz.cs index 3f91b858..6af80d00 100644 --- a/server/AyaNova/biz/PurchaseOrderBiz.cs +++ b/server/AyaNova/biz/PurchaseOrderBiz.cs @@ -377,9 +377,6 @@ namespace AyaNova.Biz //BUT *only* if the woitempartrequest still exists and isn't completed already - //todo: BizActionsAsync - VendorPartNumber automatically set this if teh vendorid has changed from the list of parts there is - //todo: if vendorid has changed, need to update all part values into poitems - //Get inventory object for updating PartInventoryBiz pib = new PartInventoryBiz(ct, UserId, UserTranslationId, CurrentUserRoles); @@ -391,14 +388,14 @@ namespace AyaNova.Biz var inventoryAffectingItems = oldObj.Items.Where(z => z.QuantityReceived > 0).ToList(); foreach (var poItem in inventoryAffectingItems) { - //make reversing inventory adjustment here + //make reversing inventory adjustment dtPOPartInventory i = new dtPOPartInventory(); i.PartId = poItem.PartId; i.PartWarehouseId = poItem.PartWarehouseId; i.Quantity = poItem.QuantityReceived *= -1; i.SourceType = AyaType.PurchaseOrder; - i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.SourceId = oldObj.Id; + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventDeleted"); await pib.CreateAsync(i); //MIGRATE_OUTSTANDING - update workorderitempart here if applicable @@ -425,7 +422,7 @@ namespace AyaNova.Biz i.Quantity = poItem.QuantityReceived; i.SourceType = AyaType.PurchaseOrder; i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventCreated"); await pib.CreateAsync(i); //MIGRATE_OUTSTANDING - update workorderitempart here if applicable @@ -440,6 +437,29 @@ namespace AyaNova.Biz //MODIFIED if (ayaEvent == AyaEvent.Modified) { + //any old po items deleted? + foreach (var oldItem in oldObj.Items) + { + //get the matching new item + var newItem = newObj.Items.FirstOrDefault(z => z.Id == oldItem.Id); + if (newItem == null) + { + //an old item with received stock was deleted, fixup inventory + if (oldItem.QuantityReceived > 0) + { + //make reversing inventory adjustment + dtPOPartInventory i = new dtPOPartInventory(); + i.PartId = oldItem.PartId; + i.PartWarehouseId = oldItem.PartWarehouseId; + i.Quantity = oldItem.QuantityReceived *= -1; + i.SourceType = AyaType.PurchaseOrder; + i.SourceId = oldObj.Id; + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventDeleted"); + await pib.CreateAsync(i); + } + } + } + foreach (var newItem in newObj.Items) { //get the matching currentPoItem @@ -457,7 +477,7 @@ namespace AyaNova.Biz i.Quantity = newItem.QuantityReceived; i.SourceType = AyaType.PurchaseOrder; i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventCreated"); await pib.CreateAsync(i); } @@ -479,8 +499,8 @@ namespace AyaNova.Biz i.PartWarehouseId = oldItem.PartWarehouseId; i.Quantity = oldItem.QuantityReceived *= -1; i.SourceType = AyaType.PurchaseOrder; - i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.SourceId = oldObj.Id; + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventModified") + ":" + await Translate("Part") + "/" + await Translate("PartWarehouse"); await pib.CreateAsync(i); } @@ -493,7 +513,7 @@ namespace AyaNova.Biz i.Quantity = newItem.QuantityReceived; i.SourceType = AyaType.PurchaseOrder; i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventModified") + ":" + await Translate("Part") + "/" + await Translate("PartWarehouse"); await pib.CreateAsync(i); } @@ -520,7 +540,7 @@ namespace AyaNova.Biz i.Quantity = netChange; i.SourceType = AyaType.PurchaseOrder; i.SourceId = newObj.Id; - i.Description = await Translate("PurchaseOrderEdit"); + i.Description = await Translate("PurchaseOrderEdit") + ":" + await Translate("EventModified"); await pib.CreateAsync(i); //MIGRATE_OUTSTANDING - update workorderitempart here if applicable