diff --git a/AyaNovaQBI/util.cs b/AyaNovaQBI/util.cs index b7a6955..534d0fb 100644 --- a/AyaNovaQBI/util.cs +++ b/AyaNovaQBI/util.cs @@ -3956,7 +3956,7 @@ namespace AyaNovaQBI { var r = await GetAsync($"customer/{id}"); var c = r.ObjectResponse["data"].ToObject(); - RefreshQBClientFromAyaNova(c); + await RefreshQBClientFromAyaNova(c); } catch { }; } @@ -3967,7 +3967,7 @@ namespace AyaNovaQBI /// Refresh the indicated AyaNova client /// to it's linked QuickBooks customer record /// - public static async void RefreshQBClientFromAyaNova(Customer c) + public static async Task RefreshQBClientFromAyaNova(Customer c) { IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.ObjectId == c.Id && z.AType == AyaType.Customer); @@ -4274,7 +4274,7 @@ namespace AyaNovaQBI public static async Task ImportAyaCustomer(long CustomerId, ArrayList alErrors) { - if (AyaClientList.Any(z => z.Id == CustomerId)) + if (!AyaClientList.Any(z => z.Id == CustomerId)) { alErrors.Add("ImportAyaClient: Client not found in AyaNova (deleted recently?) (" + CustomerId.ToString() + ")"); return; @@ -4548,18 +4548,17 @@ namespace AyaNovaQBI /// /// /// An arraylist to hold strings indicating errors on fail - public static void ImportAyaVendor(Guid VendorID, ArrayList alErrors) + public static async Task ImportAyaVendor(long VendorID, ArrayList alErrors) { - if (!Vendor.Exists(VendorID, "")) + if (!AyaVendorList.Any(z => z.Id == VendorID)) { alErrors.Add("ImportAyaVendor: Vendor not found in AyaNova (deleted recently?) (" + VendorID.ToString() + ")"); return; } - Vendor c = Vendor.GetItem(VendorID); - - + var r = await GetAsync($"vendor/{VendorID}"); + var c = r.ObjectResponse["data"].ToObject(); string sName = c.Name; @@ -4573,7 +4572,6 @@ namespace AyaNovaQBI } - //Connect to QB and fill // IY: Create the session manager object using QBFC QBSessionManager sessionManager = new QBSessionManager(); @@ -4625,11 +4623,11 @@ namespace AyaNovaQBI ca.Phone.SetValue(""); ca.Fax.SetValue(T(21, c.Phone2)); ca.AltPhone.SetValue(T(21, c.Phone3)); - ca.Email.SetValue(T(99, c.Email)); + ca.Email.SetValue(T(99, c.EmailAddress)); - if (c.MailToAddress.DeliveryAddress != "") + if (!string.IsNullOrWhiteSpace(c.PostAddress)) { - string[] sad = c.MailToAddress.DeliveryAddress.Replace("\r\n", "\n").Split('\n'); + string[] sad = c.PostAddress.Replace("\r\n", "\n").Split('\n'); if (sad.GetLength(0) > 0) ca.VendorAddress.Addr1.SetValue(T(21, sad[0].TrimEnd())); if (sad.GetLength(0) > 1) @@ -4640,25 +4638,10 @@ namespace AyaNovaQBI ca.VendorAddress.Addr4.SetValue(T(21, sad[3].TrimEnd())); } - ca.VendorAddress.City.SetValue(T(31, c.MailToAddress.City)); - ca.VendorAddress.Country.SetValue(T(31, c.MailToAddress.Country)); - ca.VendorAddress.PostalCode.SetValue(T(13, c.MailToAddress.Postal)); - - //QBFC7 - unifies county and province to "State" - ca.VendorAddress.State.SetValue(T(21, c.MailToAddress.StateProv)); - //switch(QCountry) - //{ - // case "CA": - // ca.VendorAddress.Province.SetValue(T(21,c.MailToAddress.StateProv)); - // break; - // case "UK": - // ca.VendorAddress.County.SetValue(T(21,c.MailToAddress.StateProv)); - // break; - // default: - // ca.VendorAddress.State.SetValue(T(21,c.MailToAddress.StateProv)); - // break; - - //} + ca.VendorAddress.City.SetValue(T(31, c.PostCity)); + ca.VendorAddress.Country.SetValue(T(31, c.PostCountry)); + ca.VendorAddress.PostalCode.SetValue(T(13, c.PostCode)); + ca.VendorAddress.State.SetValue(T(21, c.PostRegion)); ca.AccountNumber.SetValue(T(99, c.AccountNumber)); @@ -4706,13 +4689,16 @@ namespace AyaNovaQBI _dtQBVendors.Rows.Add(dr); //Link - IntegrationMap m = QBI.Maps.Add(QBI); - m.Name = sName; - m.RootObjectID = c.ID; - m.RootObjectType = RootObjectTypes.Vendor; - m.LastSync = DateTime.Now; - m.ForeignID = sNewCustID; - QBI = (Integration)QBI.Save(); + var m = new IntegrationItem { AType = AyaType.Vendor, IntegrationItemName = sName, IntegrationItemId = sNewCustID, 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.Vendor; + //m.LastSync = DateTime.Now; + //m.ForeignID = sNewCustID; + //QBI = (Integration)QBI.Save(); } catch (Exception ex) { @@ -4739,14 +4725,15 @@ namespace AyaNovaQBI /// Refresh the list of AyaNova parts to their linked QuickBooks item records /// /// - public static void RefreshQBPartFromAyaNova(List objectIDList) + public static async Task RefreshQBPartFromAyaNova(List objectIDList) { - foreach (Guid g in objectIDList) + foreach (long id in objectIDList) { try { - Part c = Part.GetItem(g); - RefreshQBPartFromAyaNova(c); + var r = await GetAsync($"part/{id}"); + var c = r.ObjectResponse["data"].ToObject(); + await RefreshQBPartFromAyaNova(c); } catch { }; @@ -4758,7 +4745,7 @@ namespace AyaNovaQBI /// Refresh the indicated AyaNova part /// to it's linked QuickBooks item record /// - public static void RefreshQBPartFromAyaNova(Part c) + public static async Task RefreshQBPartFromAyaNova(Part c) { IntegrationMap im = QBI.Maps[c.ID];