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