From ea356ba7649052b5b22cd1925220422a96efc9d4 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 16 Feb 2021 17:49:16 +0000 Subject: [PATCH] --- server/AyaNova/biz/PurchaseOrderBiz.cs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/server/AyaNova/biz/PurchaseOrderBiz.cs b/server/AyaNova/biz/PurchaseOrderBiz.cs index e9694734..3ac81d35 100644 --- a/server/AyaNova/biz/PurchaseOrderBiz.cs +++ b/server/AyaNova/biz/PurchaseOrderBiz.cs @@ -411,26 +411,38 @@ namespace AyaNova.Biz //CREATED / MODIFIED if (ayaEvent == AyaEvent.Created || ayaEvent == AyaEvent.Modified) { + var p = (PurchaseOrder)proposedObj; + var c = (PurchaseOrder)currentObj; //PartRequestReceived event? { - var subs = await ct.NotifySubscription.Where(z => z.EventType == NotifyEventType.PartRequestReceived).ToListAsync(); - if (subs.Count > 0) + //get a list of all items with part requests and received inventory + var proposedRequestItems = p.Items.Where(z => z.WorkorderItemPartRequestId != null && z.QuantityReceived != 0); + //are there any potential notify items? + if (proposedRequestItems.Count() > 0) { - var p = (PurchaseOrder)proposedObj; - var c = (PurchaseOrder)currentObj; + List subs = null; + //are any of them new, or a change from before? + + // var subs = await ct.NotifySubscription.Where(z => z.EventType == NotifyEventType.PartRequestReceived).ToListAsync(); + + + //Look for new receipts of requested parts - foreach (var proposedpoitem in p.Items.Where(z => z.WorkorderItemPartRequestId != null && z.QuantityReceived != 0)) + foreach (var proposedRequestItem in proposedRequestItems) { //Get the matching item from db collection - var currentpoitem = c.Items.FirstOrDefault(z => z.Id == proposedpoitem.Id); + var currentMatchingRequestItem = c.Items.FirstOrDefault(z => z.Id == proposedRequestItem.Id); //if it doesn't exist or received less than the proposed item then we have actionable notification - if (currentpoitem == null || currentpoitem.QuantityReceived < proposedpoitem.QuantityReceived) + if (currentMatchingRequestItem == null || currentMatchingRequestItem.QuantityReceived < proposedRequestItem.QuantityReceived) { + //is there a subscriber for this user id and event? + var sub = await ct.NotifySubscription.FirstOrDefaultAsync(z => z.EventType == NotifyEventType.PartRequestReceived && z.UserId == proposedRequestItem.PartRequestedById); } } + } }