From 1aa8d539d743bc875c043820ae18308879054b6b Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 22 Dec 2021 23:36:12 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 42 +++++++++++++++++++++++++----- server/AyaNova/util/VizCache.cs | 7 +++++ 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 117d616c..b5037869 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -4098,7 +4098,7 @@ namespace AyaNova.Biz o.PartNameViz = part.Name; o.UpcViz = part.UPC; - + TaxCode Tax = null; if (o.TaxPartSaleId != null) { @@ -4802,10 +4802,22 @@ namespace AyaNova.Biz private async Task PartRequestPopulateVizFields(WorkOrderItemPartRequest o) { if (o.PartWarehouseId != 0) - o.PartWarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == o.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(); + { + if (!vc.Has("partwarehouse", o.PartWarehouseId)) + vc.Add(await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == o.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(), "partwarehouse", o.PartWarehouseId); + o.PartWarehouseViz = vc.Get("partwarehouse", o.PartWarehouseId); + } Part part = null; if (o.PartId != 0) - part = await ct.Part.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.PartId); + { + if (!oc.Has("part", o.PartId)) + { + part = await ct.Part.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.PartId); + oc.Add(part, "part", o.PartId); + } + else + part = (Part)oc.Get("part", o.PartId); + } o.PartNameViz = part.Name; o.PartDescriptionViz = part.Description; o.UpcViz = part.UPC; @@ -4813,9 +4825,21 @@ namespace AyaNova.Biz PurchaseOrder po = null; if (o.PurchaseOrderItemId != null) { - var poid = await ct.PurchaseOrderItem.AsNoTracking().Where(x => x.Id == o.PurchaseOrderItemId).Select(x => x.PurchaseOrderId).FirstOrDefaultAsync(); - if (poid != 0) - po = await ct.PurchaseOrder.AsNoTracking().Where(x => x.Id == poid).FirstOrDefaultAsync(); + if (!vc.Has("poitempoid", o.PurchaseOrderItemId)) + { + vc.Add(await ct.PurchaseOrderItem.AsNoTracking().Where(x => x.Id == o.PurchaseOrderItemId).Select(x => x.PurchaseOrderId.ToString()).FirstOrDefaultAsync(), "poitempoid", o.PurchaseOrderItemId); + } + var poid = vc.GetAsLong("poitempoid", o.PurchaseOrderItemId); + if (poid != null && poid != 0) + { + if (!oc.Has("po", poid)) + { + po = await ct.PurchaseOrder.AsNoTracking().Where(x => x.Id == poid).FirstOrDefaultAsync(); + oc.Add(po, "po", poid); + } + else + po = (PurchaseOrder)oc.Get("po", poid); + } } if (po != null) { @@ -4826,7 +4850,11 @@ namespace AyaNova.Biz if (o.RequestedByUserId != null) { - o.RequestedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(); + if (!vc.Has("user", o.RequestedByUserId)) + { + vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.RequestedByUserId); + } + o.RequestedByUserViz = vc.Get("user", o.RequestedByUserId); } } } diff --git a/server/AyaNova/util/VizCache.cs b/server/AyaNova/util/VizCache.cs index 76bdd957..94a4a627 100644 --- a/server/AyaNova/util/VizCache.cs +++ b/server/AyaNova/util/VizCache.cs @@ -52,6 +52,13 @@ namespace AyaNova.Util return decimal.Parse(s); } + internal long? GetAsLong(string key, long? id = 0) + { + var s = Get(key, id); + if (string.IsNullOrWhiteSpace(s)) return null; + return long.Parse(s); + } + }//eoc }//eons \ No newline at end of file