From 9a07c05401a2cf3e42e2b0f032e256cb1a81dc2f Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 5 Jul 2022 21:20:40 +0000 Subject: [PATCH] --- AyaNovaQBI/util.cs | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/AyaNovaQBI/util.cs b/AyaNovaQBI/util.cs index f2d1ffe..1d665dd 100644 --- a/AyaNovaQBI/util.cs +++ b/AyaNovaQBI/util.cs @@ -3170,7 +3170,7 @@ namespace AyaNovaQBI } //----Get the edit sequence----- - string sEditSequence = GetInventoryItemEditSequence(QBListID); + string sEditSequence = await GetInventoryItemEditSequenceAsync(QBListID); //Connect to QB and fill // IY: Create the session manager object using QBFC @@ -3529,30 +3529,33 @@ namespace AyaNovaQBI #region Import / refresh to AyaNova - public static void RefreshAyaNovaClientFromQB(List objectIDList) + public static async Task RefreshAyaNovaClientFromQB(List objectIDList) { - PopulateQBClientCache(); - foreach (Guid g in objectIDList) + await PopulateQBClientCacheAsync(); + foreach (long id in objectIDList) { try { - Client c = Client.GetItemNoMRU(g); + var r = await GetAsync($"customer/{id}"); + var c = r.ObjectResponse["data"].ToObject(); RefreshAyaNovaClientFromQB(c); - if (c.IsSavable) - c.Save(); + r=await PostAsync($"customer/{id}", Newtonsoft.Json.JsonConvert.SerializeObject(c)); + + //if (c.IsSavable) + // c.Save(); } catch { }; } } - public static async void RefreshAyaNovaClientFromQB(Client c) + public static async void RefreshAyaNovaClientFromQB(Customer c) { await PopulateQBClientCacheAsync(); - IntegrationMap im = QBI.Maps[c.ID]; + IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.ObjectId == c.Id && z.AType == AyaType.Customer); if (im == null) return;//this client is not linked - DataRow dr = _dtQBClients.Rows.Find(im.ForeignID); + DataRow dr = _dtQBClients.Rows.Find(im.IntegrationItemId); if (dr == null) return; //QBListID not found in client list? CopyQBCustomerInfoToAyaNovaClient(dr, c); @@ -3658,15 +3661,20 @@ namespace AyaNovaQBI //Case 518 if (string.IsNullOrWhiteSpace(c.Address)) c.Address = c.PostAddress; if (string.IsNullOrWhiteSpace(c.PostAddress)) c.PostAddress = c.Address; - CopyToEmptyString(c.Address, c.PostAddress); - CopyToEmptyString(c.City, c.PostCity); - CopyToEmptyString(c.Region, c.PostRegion); - CopyToEmptyString(c.Country, c.PostCountry); + + if (string.IsNullOrWhiteSpace(c.City)) c.City = c.PostCity; + if (string.IsNullOrWhiteSpace(c.PostCity)) c.PostCity = c.City; + + if (string.IsNullOrWhiteSpace(c.Region)) c.Region = c.PostRegion; + if (string.IsNullOrWhiteSpace(c.PostRegion)) c.PostRegion = c.Region; + + if (string.IsNullOrWhiteSpace(c.Country)) c.Country = c.PostCountry; + if (string.IsNullOrWhiteSpace(c.PostCountry)) c.PostCountry = c.Country; //Contact cn=c.Contacts.Add(RootObjectTypes.Client,c.ID); - c.Notes = $"QB Contact - {dr["Contact"].ToString()}"; + c.Notes = $"QB Contact - {dr["Contact"]}"; //Phone field