diff --git a/AyaNovaQBI/AyaNovaQBI.csproj b/AyaNovaQBI/AyaNovaQBI.csproj
index d9a2ddd..5f34b78 100644
--- a/AyaNovaQBI/AyaNovaQBI.csproj
+++ b/AyaNovaQBI/AyaNovaQBI.csproj
@@ -93,6 +93,8 @@
MainForm.cs
+
+
diff --git a/AyaNovaQBI/NameIdActiveChargeCostItem.cs b/AyaNovaQBI/NameIdActiveChargeCostItem.cs
new file mode 100644
index 0000000..3db4e5c
--- /dev/null
+++ b/AyaNovaQBI/NameIdActiveChargeCostItem.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AyaNovaQBI
+{
+ public class NameIdActiveChargeCostItem
+ {
+ public long Id { get; set; }
+ public string Name { get; set; }
+ public bool Active { get; set; }
+ public decimal Cost { get; set; }
+
+ public decimal Charge { get; set; }
+ }
+}
diff --git a/AyaNovaQBI/NameIdActiveItem.cs b/AyaNovaQBI/NameIdActiveItem.cs
new file mode 100644
index 0000000..adf6094
--- /dev/null
+++ b/AyaNovaQBI/NameIdActiveItem.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AyaNovaQBI
+{
+ public class NameIdActiveItem
+ {
+ public long Id { get; set; }
+ public string Name { get; set; }
+ public bool Active { get; set; }
+
+ }
+}
diff --git a/AyaNovaQBI/util.cs b/AyaNovaQBI/util.cs
index a3929f8..394f536 100644
--- a/AyaNovaQBI/util.cs
+++ b/AyaNovaQBI/util.cs
@@ -563,7 +563,7 @@ namespace AyaNovaQBI
{
await IntegrationLog($"PFC: QB Company name= {QCompanyName}, QB Country version={QCountry}, QBVersion={QVersion}, Companyfile={QCompanyFile}");
await PopulateQBListCache();
- //PFC - PopulateAyaListCache()
+ await PopulateAyaListCache();
//PFC - Validate settings, create if necessary (Util.ValidateSettings()) and save
@@ -2448,6 +2448,134 @@ namespace AyaNovaQBI
#endregion
+ #region AyaNova cached lists
+ public async static Task PopulateAyaListCache()
+ {
+ //Get the cached QB data
+ Waiting w = new Waiting();
+ w.Show();
+ w.Ops = "Reading from AyaNova...";
+
+ w.Step = "Clients";
+ //todo: qBI requires id, name and active for matching only
+ await PopulateAyaClientList();
+
+ w.Step = "Vendors";
+ //TODO: QBI requires id, name and active status for vendors only, it used to need vendortype but they don't exist in v8, maybe tags sb fetched?
+ await PopulateAyaVendorList();
+
+ w.Step = "Rates";
+ await PopulateAyaServiceRateList();//todo: requires id, name, rate type (travel or service), charge amount, perhaps break into two??
+
+ w.Step = "Parts";
+ await PopulateAyaPartList();//todo: requires id, name, cost, retail/charge,
+
+ w.Close();
+ }
+
+ #region AyaNova clients
+
+ private static List _clientlist = null;
+ ///
+ /// AyaNova ClientPickList
+ ///
+ public static List AyaClientList
+ {
+ get
+ {
+ return _clientlist;
+ }
+ }
+
+ public static async Task PopulateAyaClientList()
+ {
+ _clientlist = ClientPickList.GetList();
+ }
+
+ #endregion ayanova clients
+
+ #region AyaNova Vendors
+
+ private static List _vendorlist = null;
+ ///
+ /// AyaNova vendor list
+ ///
+ public static List AyaVendorList
+ {
+ get
+ {
+ return _vendorlist;
+ }
+ }
+
+ public static async Task PopulateAyaVendorList()
+ {
+ _vendorlist = VendorPickList.GetList();
+ }
+
+ #endregion ayanova vendors
+
+ #region AyaNova Rates
+
+ private static List _ServiceRatelist = null;
+ ///
+ /// AyaNova service rate list
+ ///
+ public static List AyaServiceRateList
+ {
+ get
+ {
+ return _ServiceRatelist;
+ }
+ }
+
+ public static async Task PopulateAyaServiceRateList()
+ {
+ _ServiceRatelist = RatePickList.GetListAllActiveRates();
+ }
+
+
+ private static List _TravelRatelist = null;
+ ///
+ /// AyaNova Travel rate list
+ ///
+ public static List AyaTravelRateList
+ {
+ get
+ {
+ return _TravelRatelist;
+ }
+ }
+
+ public static async Task PopulateAyaTravelRateList()
+ {
+ _TravelRatelist = RatePickList.GetListAllActiveRates();
+ }
+ #endregion ayanova rates
+
+ #region AyaNova Parts
+
+ private static List _partlist = null;
+ ///
+ /// AyaNova part list
+ ///
+ public static List AyaPartList
+ {
+ get
+ {
+ return _partlist;
+ }
+ }
+
+ public static async Task PopulateAyaPartList()
+ {
+ _partlist = PartPickList.GetAllParts();
+ }
+
+ #endregion ayanova parts
+
+ #endregion
+
#endregion qb stuff