diff --git a/AyaNovaQBI/AyaNovaQBI.csproj b/AyaNovaQBI/AyaNovaQBI.csproj
index 46d4f11..4ae4dbd 100644
--- a/AyaNovaQBI/AyaNovaQBI.csproj
+++ b/AyaNovaQBI/AyaNovaQBI.csproj
@@ -128,6 +128,8 @@
+
+
diff --git a/AyaNovaQBI/Map.cs b/AyaNovaQBI/Map.cs
index 69a1c7b..09b1bc6 100644
--- a/AyaNovaQBI/Map.cs
+++ b/AyaNovaQBI/Map.cs
@@ -131,7 +131,7 @@ namespace AyaNovaQBI
break;
case AyaType.ServiceRate:
- await util.ImportQBServiceRate(QBItemId, alErrors);
+ await util.ImportQBServiceRate(QBItemId, alErrors);
break;
case AyaType.TravelRate:
@@ -199,7 +199,7 @@ namespace AyaNovaQBI
switch (_Type)
{
case AyaType.Customer:
- util.ImportAyaCustomer(AyaId, alErrors);
+ await util.ImportAyaCustomer(AyaId, alErrors);
break;
case AyaType.Vendor:
await util.ImportAyaVendor(AyaId, alErrors);
@@ -207,7 +207,7 @@ namespace AyaNovaQBI
case AyaType.ServiceRate:
{
if (firstPass)
- {
+ {
SetQBImportServiceRateAccounts s = new SetQBImportServiceRateAccounts();
if (s.ShowDialog() != DialogResult.OK)
{
@@ -217,7 +217,7 @@ namespace AyaNovaQBI
s.Dispose();
firstPass = false;
}
- await util.ImportAyaServiceRate(AyaId, alErrors);
+ await util.ImportAyaServiceRate(AyaId, alErrors);
}
break;
case AyaType.TravelRate:
diff --git a/AyaNovaQBI/PartInventory.cs b/AyaNovaQBI/PartInventory.cs
index 06dfb7a..0bacbc3 100644
--- a/AyaNovaQBI/PartInventory.cs
+++ b/AyaNovaQBI/PartInventory.cs
@@ -6,7 +6,37 @@ using System.Threading.Tasks;
namespace AyaNovaQBI
{
- internal class PartInventory
+ public class PartInventory
{
- }
+ public long Id { get; set; }
+ public uint Concurrency { get; set; }
+ public string Description { get; set; }
+ public DateTime EntryDate { get; set; }
+ public DateTime? LastEntryDate { get; set; }
+ public long PartId { get; set; }
+ public string PartNameViz { get; set; }
+ public string PartDescriptionViz { get; set; }
+ public string PartUpcViz { get; set; }
+ public long PartWarehouseId { get; set; }
+ public string PartWarehouseViz { get; set; }
+
+ public long? SourceId { get; set; }
+ public string SourceViz { get; set; }
+ public AyaType? SourceType { get; set; }
+ public string SourceTypeViz { get; set; }
+
+ public decimal Quantity { get; set; }
+ public decimal Balance { get; set; }
+ public decimal? LastBalance { get; set; }
+
+
+
+ public PartInventory()
+ {
+ EntryDate = DateTime.UtcNow;
+ }
+
+
+
+ }//eoc
}
diff --git a/AyaNovaQBI/PartStockLevel.cs b/AyaNovaQBI/PartStockLevel.cs
index daaa344..c4288b6 100644
--- a/AyaNovaQBI/PartStockLevel.cs
+++ b/AyaNovaQBI/PartStockLevel.cs
@@ -6,7 +6,14 @@ using System.Threading.Tasks;
namespace AyaNovaQBI
{
- internal class PartStockLevel
+ public class PartStockLevel
{
- }
+ public long Id { get; set; }
+ public uint Concurrency { get; set; }
+ public long PartWarehouseId { get; set; }
+ public long PartId { get; set; }
+ public decimal MinimumQuantity { get; set; }
+ public string PartWarehouseDisplay { get; set; }//to display name in UI, not relevant to db or biz object
+
+ }//eoc
}
diff --git a/AyaNovaQBI/util.cs b/AyaNovaQBI/util.cs
index a7e7292..7444c79 100644
--- a/AyaNovaQBI/util.cs
+++ b/AyaNovaQBI/util.cs
@@ -5219,9 +5219,13 @@ namespace AyaNovaQBI
if (USE_INVENTORY)
{
- PartInventoryValuesFetcher pbw = PartInventoryValuesFetcher.GetItem(c.ID);
- ca.QuantityOnHand.SetValue((double)pbw.QuantityOnHand);
- ca.ReorderPoint.SetValue((double)pbw.MinStockLevel);
+ var rstocklevel = await GetAsync($"part/stock-levels/{c.Id}");
+ var partstocklevel= rstocklevel.ObjectResponse["data"].ToObject();
+ var rinventorylevel = await GetAsync($"part/latest-inventory/{c.Id}");
+ var partinventories = rstocklevel.ObjectResponse["data"].ToObject< List>();
+
+ ca.QuantityOnHand.SetValue((double)partinventories.Sum(z => z.Balance));
+ ca.ReorderPoint.SetValue((double)partstocklevel.MinimumQuantity);
}
//------------------------
@@ -5270,13 +5274,16 @@ namespace AyaNovaQBI
_dtQBItems.Rows.Add(dr);
//Link
- IntegrationMap m = QBI.Maps.Add(QBI);
- m.Name = sName;
- m.RootObjectID = c.ID;
- m.RootObjectType = RootObjectTypes.Part;
- m.LastSync = DateTime.Now;
- m.ForeignID = sNewID;
- QBI = (Integration)QBI.Save();
+ var m = new IntegrationItem { AType = AyaType.Part, IntegrationItemName = sName, IntegrationItemId = sNewID, LastSync = DateTime.Now, ObjectId = c.Id };
+ QBIntegration.Items.Add(m);
+ await util.SaveIntegrationObject();
+ //IntegrationMap m = QBI.Maps.Add(QBI);
+ //m.Name = sName;
+ //m.RootObjectID = c.ID;
+ //m.RootObjectType = RootObjectTypes.Part;
+ //m.LastSync = DateTime.Now;
+ //m.ForeignID = sNewID;
+ //QBI = (Integration)QBI.Save();
}
catch (Exception ex)
{
@@ -5306,19 +5313,20 @@ namespace AyaNovaQBI
///
///
/// An arraylist to hold strings indicating errors on fail
- public static void ImportAyaRate(Guid RateID, RatePickList ratelist, ArrayList alErrors)
+ public static async Task ImportAyaServiceRate(long RateID, ArrayList alErrors)
{
- if (!ratelist.Contains(RateID))
+ if (!AyaServiceRateList.Any(z => z.Id == RateID))
{
alErrors.Add("ImportAyaRate: Rate not found in AyaNova (deleted recently?) (" + RateID.ToString() + ")");
return;
}
- RatePickList.RatePickListInfo c = ratelist[RateID];
-
-
+ // RatePickList.RatePickListInfo c = ratelist[RateID];
+ var r = await GetAsync($"service-rate/{RateID}");
+ var c = r.ObjectResponse["data"].ToObject();
+ HERE
string sName = c.Name;
if (sName.Length > 31)