From d4eff64fabfc0f9b11c7f320901f8c734759c6a8 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 22 Dec 2021 23:53:48 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 82 +++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 14 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index b5037869..4f883349 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -761,7 +761,7 @@ namespace AyaNova.Biz foreach (WorkOrderItemLabor o in wi.Labors) await LaborPopulateVizFields(o, true); foreach (WorkOrderItemLoan o in wi.Loans) - await LoanPopulateVizFields(o, null, true); + await LoanPopulateVizFields(o, true); foreach (WorkOrderItemPart o in wi.Parts) await PartPopulateVizFields(o, true); foreach (WorkOrderItemTravel o in wi.Travels) @@ -2775,17 +2775,39 @@ namespace AyaNova.Biz if (calculateTotalsOnly == false) { if (o.UserId != null) - o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(); + { + if (!vc.Has("user", o.UserId)) + { + vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.UserId); + } + o.UserViz = vc.Get("user", o.UserId); + } } ServiceRate Rate = null; if (o.ServiceRateId != null) { - Rate = await ct.ServiceRate.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.ServiceRateId); + if (!oc.Has("servicerate", o.ServiceRateId)) + { + Rate = await ct.ServiceRate.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.ServiceRateId); + oc.Add(Rate, "servicerate", o.ServiceRateId); + } + else + Rate = (ServiceRate)oc.Get("servicerate", o.ServiceRateId); o.ServiceRateViz = Rate.Name; } + + TaxCode Tax = null; if (o.TaxCodeSaleId != null) - Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeSaleId); + { + if (!oc.Has("tax", o.TaxCodeSaleId)) + { + Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeSaleId); + oc.Add(Tax, "tax", o.TaxCodeSaleId); + } + else + Tax = (TaxCode)oc.Get("tax", o.TaxCodeSaleId); + } if (Tax != null) o.TaxCodeViz = Tax.Name; @@ -3185,7 +3207,7 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// //VIZ POPULATE // - private async Task LoanPopulateVizFields(WorkOrderItemLoan o, List loanUnitRateEnumList = null, bool calculateTotalsOnly = false) + private async Task LoanPopulateVizFields(WorkOrderItemLoan o, bool calculateTotalsOnly = false) { if (calculateTotalsOnly == false) { @@ -3197,16 +3219,25 @@ namespace AyaNova.Biz o.UnitOfMeasureViz = loanUnitRateEnumList.Where(x => x.Id == (long)o.Rate).Select(x => x.Name).First(); } - LoanUnit loanUnit = await ct.LoanUnit.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.LoanUnitId); - o.LoanUnitViz = loanUnit.Name; + if (!vc.Has("loanunit", o.LoanUnitId)) + vc.Add(await ct.LoanUnit.AsNoTracking().Where(x => x.Id == o.LoanUnitId).Select(x => x.Name).FirstOrDefaultAsync(), "loanunit", o.LoanUnitId); + o.LoanUnitViz = vc.Get("loanunit", o.LoanUnitId); + TaxCode Tax = null; if (o.TaxCodeId != null) - Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeId); + { + if (!oc.Has("tax", o.TaxCodeId)) + { + Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeId); + oc.Add(Tax, "tax", o.TaxCodeId); + } + else + Tax = (TaxCode)oc.Get("tax", o.TaxCodeId); + } if (Tax != null) o.TaxCodeViz = Tax.Name; - //manual price overrides anything o.PriceViz = o.ListPrice; if (o.PriceOverride != null) @@ -3243,8 +3274,8 @@ namespace AyaNova.Biz //RESTRICTED COST FIELD?? if (!UserCanViewLoanerCosts) o.Cost = 0;//cost already used in calcs and will not be updated on any update operation so this ensures the cost isn't sent over the wire - } + private List loanUnitRateEnumList = null; //////////////////////////////////////////////////////////////////////////////////////////////// //BIZ ACTIONS @@ -3583,16 +3614,39 @@ namespace AyaNova.Biz if (calculateTotalsOnly == false) { if (o.UnitId != 0) - o.UnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync(); + { + if (!vc.Has("unitserial", o.UnitId)) + vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.UnitId); + o.UnitViz = vc.Get("unitserial", o.UnitId); + } + if (o.VendorSentToId != null) - o.VendorSentToViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorSentToId).Select(x => x.Name).FirstOrDefaultAsync(); + { + if (!vc.Has("vendorname", o.VendorSentToId)) + vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorSentToId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.VendorSentToId); + o.VendorSentToViz = vc.Get("vendorname", o.VendorSentToId); + } + if (o.VendorSentViaId != null) - o.VendorSentViaViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorSentViaId).Select(x => x.Name).FirstOrDefaultAsync(); + { + if (!vc.Has("vendorname", o.VendorSentViaId)) + vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorSentViaId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.VendorSentViaId); + o.VendorSentViaViz = vc.Get("vendorname", o.VendorSentViaId); + } } TaxCode Tax = null; if (o.TaxCodeId != null) - Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeId); + { + if (!oc.Has("tax", o.TaxCodeId)) + { + Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeId); + oc.Add(Tax, "tax", o.TaxCodeId); + } + else + Tax = (TaxCode)oc.Get("tax", o.TaxCodeId); + } + if (Tax != null) o.TaxCodeViz = Tax.Name;