diff --git a/source/Plugins/AyaNova.Plugin.V8/V8.cs b/source/Plugins/AyaNova.Plugin.V8/V8.cs
index dc3cce2..966e3ee 100644
--- a/source/Plugins/AyaNova.Plugin.V8/V8.cs
+++ b/source/Plugins/AyaNova.Plugin.V8/V8.cs
@@ -35,7 +35,7 @@ namespace AyaNova.PlugIn.V8
public string PluginVersion
{
- get { return "7.6.1-alpha.134"; }
+ get { return "7.6.1-alpha.135"; }
}
public string About
@@ -501,6 +501,7 @@ namespace AyaNova.PlugIn.V8
await ExportPartAssemblies(progress);
await ExportProjects(progress);
await ExportPurchaseOrders(progress);
+ await ExportInventoryAdjustments(progress);
await ExportUnitModels(progress);
await ExportUnits(progress);
await ExportExternalUsers(progress);//needs vendors, clients and headoffices already exported so needs to be here late
@@ -510,7 +511,7 @@ namespace AyaNova.PlugIn.V8
await ExportWorkOrderItemPriorities(progress);
await ExportQuotes(progress);
await ExportPMs(progress);
- await SynchronizeSerials(progress);
+ //await SynchronizeSerials(progress);
await ExportServiceWorkorders(progress);
await ExportUnitMeterReadings(progress);
@@ -2293,6 +2294,76 @@ namespace AyaNova.PlugIn.V8
}
#endregion PurchaseOrders
+ #region Inventory adjustments
+ private async System.Threading.Tasks.Task ExportInventoryAdjustments(ProgressForm progress)
+ {
+ if (!progress.KeepGoing) return;
+
+
+ progress.Op("Start inventory adjustments");
+ progress.SubOp("");
+
+ //Step 2: export the objects
+ PartInventoryAdjustmentList pil = PartInventoryAdjustmentList.GetList(
+ " ");
+ progress.Append("Exporting " + pil.Count.ToString()+" inventory adjustments");
+ foreach (PartInventoryAdjustmentList.PartInventoryAdjustmentListInfo i in pil)
+ {
+ if (!progress.KeepGoing) return;
+
+ PartInventoryAdjustment c = PartInventoryAdjustment.GetItem(i.LT_PartInventoryAdjustment_Label_AdjustmentNumber.Value);
+ foreach (PartInventoryAdjustmentItem pi in c.Items)
+ {
+ progress.Op("Adjustment " + c.AdjustmentNumber.ToString());
+ dynamic d = new JObject();
+ d.description = "v7Adjustment " + c.AdjustmentNumber.ToString() + " " + c.ReasonForAdjustment + " on " + c.DateAdjusted.ToString();
+ d.partId = await Getv7v8IdMap(pi.PartID, RootObjectTypes.Part);
+ d.partWarehouseId = await Getv7v8IdMap(pi.PartWarehouseID, RootObjectTypes.PartWarehouse);
+ d.quantity = pi.QuantityAdjustment;
+ await util.PostAsync("part-inventory", d);
+
+ //post to part-inventory route
+
+ //now, separately, do serial numbers if any
+ if (pi.SerialNumbers.Count > 0)
+ {
+ //get the part serial record
+ var a = await util.GetAsync("part/serials/" + d.partId.ToString());
+ dynamic f = a.ObjectResponse["data"];
+ //turn the v8 serials into a string list
+ var v = (JArray)f;
+ List v8Serials = new List();
+ foreach (JValue j in v)
+ v8Serials.Add(j.Value());
+
+ if (pi.QuantityAdjustment < 0)
+ {
+ //remove serials
+ foreach (PartSerial ps in pi.SerialNumbers)
+ v8Serials.Remove(ps.SerialNumber);
+ }
+ else
+ {
+ //append serials
+ foreach (PartSerial ps in pi.SerialNumbers)
+ v8Serials.Add(ps.SerialNumber);
+ }
+
+ foreach (PartSerial ps in pi.SerialNumbers)
+ {
+ dynamic dItem = new JObject();
+ dItem = ps.SerialNumber;
+ f.Add(dItem);
+ }
+ await util.PutAsync("part/serials/" + d.partId.ToString(), new JArray(v8Serials));
+ }
+ }
+
+
+ }//end of inventory item loop
+ }
+ #endregion inventory adjustments
+
#region Synchronize serials
private async System.Threading.Tasks.Task SynchronizeSerials(ProgressForm progress)
{
@@ -5884,7 +5955,7 @@ namespace AyaNova.PlugIn.V8
//can we see it?
if (!File.Exists(doc.URL))
{
- NonFileUrls += ( "v8Migrate - Assigned doc. file not found: " + doc.Description + " " + doc.URL + "\n");
+ NonFileUrls += ("v8Migrate - Assigned doc. file not found: " + doc.Description + " " + doc.URL + "\n");
continue;
}