diff --git a/source/Plugins/AyaNova.Plugin.V8/V8.cs b/source/Plugins/AyaNova.Plugin.V8/V8.cs index a4b7af3..d738739 100644 --- a/source/Plugins/AyaNova.Plugin.V8/V8.cs +++ b/source/Plugins/AyaNova.Plugin.V8/V8.cs @@ -3482,9 +3482,9 @@ namespace AyaNova.PlugIn.V8 foreach (WorkorderItem wi in c.WorkorderItems) { List witags = new List(); - progress.SubOp("WorkorderItem " + wi.ID.ToString()); + progress.SubOp("QuoteItem " + wi.ID.ToString()); dynamic dwi = new JObject(); - dwi.workOrderId = RavenId; + dwi.quoteId = RavenId; dwi.sequence = ++nSequence; if (!string.IsNullOrWhiteSpace(wi.Summary))//in v8 summary is reqd. dwi.notes = wi.Summary; @@ -3505,7 +3505,7 @@ namespace AyaNova.PlugIn.V8 dwi.customFields = CustomFieldData(wi, DateCustomFields); - var ravenwoitemid = util.IdFromResponse(await util.PostAsync("workorder/items", dwi.ToString())); + var ravenwoitemid = util.IdFromResponse(await util.PostAsync("quote/items", dwi.ToString())); await util.EventLog(util.AyaType.WorkOrderItem, ravenwoitemid, SafeGetUserMap(wi.Creator), SafeGetUserMap(wi.Modifier), wi.Created, wi.Modified); //##### WORKORDER ITEM UNIT @@ -3517,15 +3517,15 @@ namespace AyaNova.PlugIn.V8 if (ravUnitId != null) { //we have a legit unit record, make it for v8 - progress.SubOp("WorkorderItemUnit " + wi.UnitID.ToString()); + progress.SubOp("QuoteItemUnit " + wi.UnitID.ToString()); dynamic dwiu = new JObject(); - dwiu.workOrderId = RavenId; - dwiu.workorderItemId = ravenwoitemid; + dwiu.quoteId = RavenId; + dwiu.quoteItemId = ravenwoitemid; dwiu.unitId = ravUnitId; List wiutags = new List(); TagFromv7Guid(wi.WorkorderItemUnitServiceTypeID, wiutags); SetTags(dwiu, wiutags); - await util.PostAsync("workorder/items/units", dwiu.ToString()); + await util.PostAsync("quote/items/units", dwiu.ToString()); } } @@ -3533,26 +3533,26 @@ namespace AyaNova.PlugIn.V8 //##### WORKORDER ITEM SCHEDULED USER foreach (WorkorderItemScheduledUser wisu in wi.ScheduledUsers) { - progress.SubOp("WorkorderItemScheduledUser " + wisu.ID.ToString()); + progress.SubOp("QuoteItemScheduledUser " + wisu.ID.ToString()); dynamic dwisu = new JObject(); - dwisu.workOrderId = RavenId; - dwisu.workorderItemId = ravenwoitemid; + dwisu.quoteId = RavenId; + dwisu.quoteItemId = ravenwoitemid; //null is ok here for a sched user dwisu.userId = Getv7v8IdMapNullOk(wisu.UserID); dwisu.startDate = util.DateToV8(wisu.StartDate); dwisu.stopDate = util.DateToV8(wisu.StopDate); dwisu.estimatedQuantity = wisu.EstimatedQuantity; dwisu.serviceRateId = Getv7v8IdMapNullOk(wisu.ServiceRateID); - await util.PostAsync("workorder/items/scheduled-users", dwisu.ToString()); + await util.PostAsync("quote/items/scheduled-users", dwisu.ToString()); } //##### WORKORDER ITEM PART foreach (WorkorderItemPart wip in wi.Parts) { - progress.SubOp("WorkorderItemPart " + wip.ID.ToString()); + progress.SubOp("QuoteItemPart " + wip.ID.ToString()); dynamic dwip = new JObject(); - dwip.workOrderId = RavenId; - dwip.workorderItemId = ravenwoitemid; + dwip.quoteId = RavenId; + dwip.quoteItemId = ravenwoitemid; dwip.quantity = wip.Quantity; var tryPartId = Getv7v8IdMapNullOk(wip.PartID); if (tryPartId == null) @@ -3574,122 +3574,18 @@ namespace AyaNova.PlugIn.V8 dwip.description = wip.Description; if (wip.PartSerialID != Guid.Empty) dwip.serials = PartSerial.GetSerialNumberFromPartSerialID(wip.PartSerialID); - await util.PostAsync("workorder/items/parts", dwip.ToString()); - } - - //##### WORKORDER ITEM PARTREQUEST - foreach (WorkorderItemPartRequest wipr in wi.PartRequests) - { - progress.SubOp("WorkorderItemPartRequest " + wipr.ID.ToString()); - if (wipr.Quantity == 0) continue; - - JObject dPO = null; - JObject v8poitemtoupdate = null; - dynamic dwipr = new JObject(); - dwipr.workOrderId = RavenId; - dwipr.workorderItemId = ravenwoitemid; - dwipr.quantity = wipr.Quantity; - var tryPartId = Getv7v8IdMapNullOk(wipr.PartID); - if (tryPartId == null) - { - dwipr.partId = UnknownV7PartId; - } - else - dwipr.partId = tryPartId; - dwipr.partWarehouseId = Getv7v8IdMap(wipr.PartWarehouseID, "warehouse"); - - poitemtowoitempartrequest pto = PoItemPartRequestMap.FirstOrDefault(z => z.v7woitempartrequestid == wipr.ID); - if (pto != null) - { - //tag this part request with the v8 poitem id that matches - //get v8 po id - //fetch po - //iterate po and look for item with the vendorpartnumber set to this woitempartid by guid string - //update the po item with the raven partrequestid - //save po - long? v8poid = Getv7v8IdMapNullOk(pto.v7poid); - if (v8poid != null) - { - var a = await util.GetAsync("purchase-order/" + v8poid.ToString()); - dPO = (JObject)a.ObjectResponse["data"]; - if (dPO != null) - { - v8poitemtoupdate = (JObject)dPO["items"].FirstOrDefault(z => (string)z["vendorPartNumber"] == wipr.ID.ToString()); - if (v8poitemtoupdate != null) - { - //update the woitempart request purchase order item id - dwipr.purchaseOrderItemId = (long)v8poitemtoupdate["id"]; - - } - } - } - } - - //TODO: if migrate purchase orders this is reqd - // dwipr.purchaseOrderItemId = Getv7v8IdMapNullOk(wipr.PurchaseOrderItemID); - long v8partrequestid = util.IdFromResponse(await util.PostAsync("workorder/items/part-requests", dwipr.ToString())); - - //SAVE PO if fetched and updated here - if (dPO != null && v8poitemtoupdate != null) - { - //save the PO - v8poitemtoupdate["workorderItemPartRequestId"] = v8partrequestid; - v8poitemtoupdate["vendorPartNumber"] = null; - await util.PutAsync("purchase-order", dPO.ToString()); - } - - } - - //##### WORKORDER ITEM LOANERS - foreach (WorkorderItemLoan wil in wi.Loans) - { - progress.SubOp("WorkorderItemLoan " + wil.ID.ToString()); - dynamic dwil = new JObject(); - dwil.workOrderId = RavenId; - dwil.workorderItemId = ravenwoitemid; - - dwil.loanUnitId = Getv7v8IdMap(wil.LoanItemID, "loan unit for workorder"); - dwil.outDate = util.DateToV8(wil.OutDate); - dwil.dueDate = util.DateToV8(wil.DueDate); - dwil.returnDate = util.DateToV8(wil.ReturnDate); - dwil.taxCodeId = Getv7v8IdMapNullOk(wil.TaxCodeID); - dwil.quantity = wil.Quantity; - switch (wil.Rate) - { - case LoanItemRates.Days: - dwil.rate = 3; - break; - case LoanItemRates.HalfDays: - dwil.rate = 2; - break; - case LoanItemRates.Hours: - dwil.rate = 1; - break; - case LoanItemRates.Months: - dwil.rate = 5; - break; - case LoanItemRates.None: - dwil.rate = 0; - break; - case LoanItemRates.Weeks: - dwil.rate = 4; - break; - case LoanItemRates.Years: - dwil.rate = 6; - break; - } - dwil.priceOverride = wil.Charges; - dwil.notes = wil.Notes; - await util.PostAsync("workorder/items/loans", dwil.ToString()); + await util.PostAsync("quote/items/parts", dwip.ToString()); } + + //##### WORKORDER ITEM LABOR foreach (WorkorderItemLabor wl in wi.Labors) { - progress.SubOp("WorkorderItemLabor " + wl.ID.ToString()); + progress.SubOp("QuoteItemLabor " + wl.ID.ToString()); dynamic dwl = new JObject(); - dwl.workOrderId = RavenId; - dwl.workorderItemId = ravenwoitemid; + dwl.quoteId = RavenId; + dwl.quoteItemId = ravenwoitemid; //null is ok here for user dwl.userId = Getv7v8IdMapNullOk(wl.UserID); dwl.serviceStartDate = util.DateToV8(wl.ServiceStartDate); @@ -3700,16 +3596,16 @@ namespace AyaNova.PlugIn.V8 dwl.serviceRateId = Getv7v8IdMapNullOk(wl.ServiceRateID); dwl.serviceDetails = wl.ServiceDetails; - await util.PostAsync("workorder/items/labors", dwl.ToString()); + await util.PostAsync("quote/items/labors", dwl.ToString()); } //##### WORKORDER ITEM TRAVEL foreach (WorkorderItemTravel wt in wi.Travels) { - progress.SubOp("WorkorderItemTravel " + wt.ID.ToString()); + progress.SubOp("QuoteItemTravel " + wt.ID.ToString()); dynamic dwt = new JObject(); - dwt.workOrderId = RavenId; - dwt.workorderItemId = ravenwoitemid; + dwt.quoteId = RavenId; + dwt.quoteItemId = ravenwoitemid; //null is ok here for user dwt.userId = Getv7v8IdMapNullOk(wt.UserID); dwt.travelStartDate = util.DateToV8(wt.TravelStartDate); @@ -3720,18 +3616,18 @@ namespace AyaNova.PlugIn.V8 dwt.travelRateId = Getv7v8IdMapNullOk(wt.TravelRateID); dwt.travelDetails = wt.TravelDetails; dwt.distance = wt.Distance; - await util.PostAsync("workorder/items/travels", dwt.ToString()); + await util.PostAsync("quote/items/travels", dwt.ToString()); } //##### WORKORDER ITEM TASKS int nTaskSequence = 0; foreach (WorkorderItemTask wt in wi.Tasks) { - progress.SubOp("WorkorderItemTask " + wt.ID.ToString()); + progress.SubOp("QuoteItemTask " + wt.ID.ToString()); //var tg = TaskGroup.GetItem(wt.TaskGroupID); dynamic dwt = new JObject(); - dwt.workOrderId = RavenId; - dwt.workorderItemId = ravenwoitemid; + dwt.quoteId = RavenId; + dwt.quoteItemId = ravenwoitemid; dwt.sequence = ++nTaskSequence; var task = AllTasks[wt.TaskID]; dwt.task = task.Name; @@ -3740,59 +3636,10 @@ namespace AyaNova.PlugIn.V8 //but could wing it if necessary for some reason //dwt.completedByUserId = Getv7v8IdMapNullOk(wt.Modifier); //dwt.completedDate= - await util.PostAsync("workorder/items/tasks", dwt.ToString()); + await util.PostAsync("quote/items/tasks", dwt.ToString()); } - //##### WORKORDER ITEM EXPENSES - foreach (WorkorderItemMiscExpense we in wi.Expenses) - { - progress.SubOp("WorkorderItemExpense " + we.ID.ToString()); - dynamic dwe = new JObject(); - dwe.workOrderId = RavenId; - dwe.workorderItemId = ravenwoitemid; - dwe.description = we.Description; - dwe.name = we.Name; - dwe.totalCost = we.TotalCost; - dwe.chargeAmount = we.ChargeAmount; - dwe.taxPaid = we.TaxPaid; - dwe.chargeTaxCodeId = Getv7v8IdMapNullOk(we.ChargeTaxCodeID); - dwe.reimburseUser = we.ReimburseUser; - dwe.userId = Getv7v8IdMapNullOk(we.UserID); - dwe.chargeToCustomer = we.ChargeToClient; - await util.PostAsync("workorder/items/expenses", dwe.ToString()); - } - - //##### WORKORDER ITEM OUTSIDE SERVICE - if (wi.HasOutsideService) - { - - //make sure we have a matching unit already - var ravUnitId = Getv7v8IdMapNullOk(wi.UnitID); - if (ravUnitId != null) - { - //we have a legit unit record, make it for v8 - progress.SubOp("WorkorderItemOutsideService"); - dynamic dwio = new JObject(); - dwio.workOrderId = RavenId; - dwio.workorderItemId = ravenwoitemid; - dwio.unitId = ravUnitId; - dwio.notes = wi.OutsideService.Notes; - dwio.vendorSentToId = Getv7v8IdMapNullOk(wi.OutsideService.VendorSentToID); - dwio.vendorSentViaId = Getv7v8IdMapNullOk(wi.OutsideService.VendorSentViaID); - dwio.rMANumber = wi.OutsideService.RMANumber; - dwio.trackingNumber = wi.OutsideService.TrackingNumber; - dwio.repairCost = wi.OutsideService.RepairCost; - dwio.repairPrice = wi.OutsideService.RepairPrice; - dwio.shippingCost = wi.OutsideService.ShippingCost; - dwio.shippingPrice = wi.OutsideService.ShippingPrice; - dwio.sentDate = util.DateToV8(wi.OutsideService.DateSent); - dwio.eTADate = util.DateToV8(wi.OutsideService.DateETA); - dwio.returnDate = util.DateToV8(wi.OutsideService.DateReturned); - await util.PostAsync("workorder/items/outside-services", dwio.ToString()); - } - } - - + }//items loop }//wo loop