From 113f5ee60d56ac4d38a9ec5552a21afc311eaece Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 13 Apr 2021 20:17:48 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 54 +++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e78a31f9..3d804e86 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -476,17 +476,29 @@ namespace AyaNova.Biz foreach (WorkOrder w in orderedList) { - //TODO: populate viz and hydrate custom fields will need to be done in entire graph - //so there should also be calls to items populate viz fields and on and on - //ideally here should only need to call itemPopulatevizFields one by one to do it which in turn will call - //grandchild *PopulatevizFields etc walking the graph - + //populate entire workorder graph await WorkOrderPopulateVizFields(w); - //TODO: this will need to be replicated at every level where custom fields are supported + var jo = JObject.FromObject(w); + + //WorkOrder header custom fields if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"])) jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]); + + //WorkOrderItem custom fields + foreach (JObject jItem in jo["Items"]) + { + if (!JsonUtil.JTokenIsNullOrEmpty(jItem["CustomFields"])) + jItem["CustomFields"] = JObject.Parse((string)jItem["CustomFields"]); + + //WorkOrderItemUnit custom fields + foreach (JObject jUnit in jItem["Units"]) + { + if (!JsonUtil.JTokenIsNullOrEmpty(jUnit["CustomFields"])) + jUnit["CustomFields"] = JObject.Parse((string)jUnit["CustomFields"]); + } + } ReportData.Add(jo); } } @@ -500,6 +512,10 @@ namespace AyaNova.Biz private async Task WorkOrderPopulateVizFields(WorkOrder o) { await Task.CompletedTask; + foreach (var v in o.States) + await StatePopulateVizFields(v); + foreach (var v in o.Items) + await ItemPopulateVizFields(v); // if (o.WorkOrderOverseerId != null) // o.WorkOrderOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.WorkOrderOverseerId).Select(x => x.Name).FirstOrDefaultAsync(); } @@ -1035,9 +1051,31 @@ namespace AyaNova.Biz // private async Task ItemPopulateVizFields(WorkOrderItem o) { - await Task.CompletedTask; // if (o.WorkOrderOverseerId != null) // o.WorkOrderOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.WorkOrderOverseerId).Select(x => x.Name).FirstOrDefaultAsync(); + + foreach (var v in o.Expenses) + await ExpensePopulateVizFields(v); + foreach (var v in o.Labors) + await LaborPopulateVizFields(v); + foreach (var v in o.Loans) + await LoanPopulateVizFields(v); + foreach (var v in o.OutsideServices) + await OutsideServicePopulateVizFields(v); + foreach (var v in o.PartRequests) + await PartRequestPopulateVizFields(v); + foreach (var v in o.Parts) + await PartPopulateVizFields(v); + foreach (var v in o.ScheduledUsers) + await ScheduledUserPopulateVizFields(v); + foreach (var v in o.Tasks) + await TaskPopulateVizFields(v); + foreach (var v in o.Travels) + await TravelPopulateVizFields(v); + foreach (var v in o.Units) + await UnitPopulateVizFields(v); + + } //////////////////////////////////////////////////////////////////////////////////////////////// @@ -1291,7 +1329,7 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// //VIZ POPULATE // - private async Task ItemPopulateVizFields(WorkOrderItemExpense o) + private async Task ExpensePopulateVizFields(WorkOrderItemExpense o) { await Task.CompletedTask; // if (o.WorkOrderOverseerId != null)