diff --git a/source/Plugins/AyaNova.Plugin.V8/V8.cs b/source/Plugins/AyaNova.Plugin.V8/V8.cs index 42bcc12..17df502 100644 --- a/source/Plugins/AyaNova.Plugin.V8/V8.cs +++ b/source/Plugins/AyaNova.Plugin.V8/V8.cs @@ -190,6 +190,14 @@ namespace AyaNova.PlugIn.V8 else V7ToV8IdMap.Add(v7id, v8id); } + private Dictionary V7ToV8WorkOrderItemStatusIdMap = new Dictionary(); + private void Addv7v8WorkOrderItemStatusIdMap(Guid v7id, long v8id) + { + if (V7ToV8WorkOrderItemStatusIdMap.ContainsKey(v7id)) + throw new Exception("Error: V7ToV8WorkOrderItemStatusIdMap - v7id already mapped previously, id is " + v7id.ToString()); + else V7ToV8WorkOrderItemStatusIdMap.Add(v7id, v8id); + } + private bool IsDuplicatev7v8IdMapItem(Guid v7id, string name, ProgressForm progress) { if (V7ToV8IdMap.ContainsKey(v7id)) @@ -2256,36 +2264,54 @@ namespace AyaNova.PlugIn.V8 //await ExportWorkOrderItemPriorities(progress); #region WorkorderStatus private async System.Threading.Tasks.Task ExportWorkorderStatus(ProgressForm progress) - { + { if (!progress.KeepGoing) return; progress.Op("Start WorkOrder/Item Status export"); progress.SubOp(""); - var ObjectTypeName = "WorkorderStatus"; + var ObjectTypeName = "Workorder/Item Status"; progress.Append("Exporting all " + " " + ObjectTypeName + "s"); List tags = new List(); AddImportTag(tags); - WorkorderStatusPickList pl = WorkorderStatusPickList.GetList(); + WorkorderStatuses w = WorkorderStatuses.GetItems(); + //in v8 workorderstatus and workorderitemstatus are split apart but in v7 same, so split here... - foreach (WorkorderStatusPickList.WorkorderStatusPickListInfo pli in pl) + //First export for workorders + ResetUniqueNames(); + foreach (WorkorderStatus s in w) { if (!progress.KeepGoing) return; - - - if (!progress.KeepGoing) return; - dynamic d = new JObject(); - - + d.name = GetUniqueName(s.Name); + progress.Op("WorkOrder status " + d.name); + d.active = s.Active; + d.locked = false; + d.completed = false; + d.selectRoles = 1290;//biz-admin, service full, service tech, subcontractor + d.removeRoles = 1290; + d.color = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(s.ARGB)); SetTags(d, tags); - - - progress.Op(ObjectTypeName + " " + pli.ID.ToString()); - var rMainObject = await util.PostAsync("work-order-status", d.ToString()); long RavenId = util.IdFromResponse(rMainObject); + Addv7v8IdMap(s.ID, RavenId); //Event log fixup - await util.EventLog(util.AyaType, RavenId, RavenFromId, RavenFromId, mem.Created, mem.Modified); + await util.EventLog(util.AyaType.WorkOrderStatus, RavenId, SafeGetUserMap(s.Creator), SafeGetUserMap(s.Modifier), s.Created, s.Modified); + } + //Second export for workorder items + ResetUniqueNames(); + foreach (WorkorderStatus s in w) + { + if (!progress.KeepGoing) return; + dynamic d = new JObject(); + d.name = GetUniqueName(s.Name); + progress.Op("WorkOrder ITEM status " + d.name); + d.active = s.Active; + d.color = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(s.ARGB)); + SetTags(d, tags); + var rMainObject = await util.PostAsync("work-order-item-status", d.ToString()); + long RavenId = util.IdFromResponse(rMainObject); + Addv7v8WorkOrderItemStatusIdMap(s.ID, RavenId); + await util.EventLog(util.AyaType.WorkOrderItemStatus, RavenId, SafeGetUserMap(s.Creator), SafeGetUserMap(s.Modifier), s.Created, s.Modified); }