This commit is contained in:
2022-07-06 21:41:18 +00:00
parent 6003ce8adb
commit 507b641d11
2 changed files with 122 additions and 104 deletions

View File

@@ -981,6 +981,8 @@ namespace AyaNovaQBI
//Rates are not offered - same as v7
if (gridAya.SelectedRows.Count == 0 && gridQB.SelectedRows.Count == 0) return;
bool IsAyaGrid = false;
IsAyaGrid = gridAya.SelectedRows.Count > 0;
@@ -1014,121 +1016,137 @@ namespace AyaNovaQBI
bool PricesOnly = s.PriceOnly;
s.Dispose();
bool SaveIntegration = false;
if (IsAyaGrid)
Waiting w = new Waiting();
w.Show();
w.Ops = $"Updating {sTo} {sType} from {sFrom}...";
try
{
#region AyaGrid so UPDATE AYANOVA FROM QB
switch (_Type)
{
case AyaType.Customer:
await util.PopulateQBClientCacheAsync();
break;
case AyaType.Vendor:
await util.PopulateQBVendorCacheAsync();
break;
case AyaType.Part:
await util.PopulateQBItemCacheAsync();
break;
}
bool SaveIntegration = false;
foreach (DataGridViewRow r in gridAya.SelectedRows)
if (IsAyaGrid)
{
string AyaName = r.Cells[0].Value.ToString();
long AyaId = (long)r.Cells[1].Value;
//only linked items can be updated
IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.ObjectId == AyaId && z.AType == _Type);
if (im != null)
#region AyaGrid so UPDATE AYANOVA FROM QB
switch (_Type)
{
switch (_Type)
{
case AyaType.Customer:
await util.RefreshAyaNovaCustomerFromQBAsync(im);
break;
case AyaType.Vendor:
await util.RefreshAyaNovaVendorFromQBAsync(im);
break;
case AyaType.Part:
await util.RefreshAyaNovaPartFromQBAsync(im, PricesOnly);
break;
}
SaveIntegration = true;
}
}
switch (_Type)
{
case AyaType.Customer:
await util.PopulateAyaClientList();
break;
case AyaType.Vendor:
await util.PopulateAyaVendorList();
break;
case AyaType.Part:
await util.PopulateAyaPartList();
break;
}
#endregion AyaGrid
}
else
{
#region QB GRID
foreach (DataGridViewRow r in gridQB.SelectedRows)
{
// var QBItemName = gridQB.SelectedRows[0].Cells[0].Value.ToString();
var QBItemId = gridQB.SelectedRows[0].Cells[1].Value.ToString();
//only linked items can be updated
IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.IntegrationItemId == QBItemId && z.AType == _Type);
if (im != null)
{
switch (_Type)
{
case AyaType.Customer:
await util.RefreshQBCustomerFromAyaNovaAsync(im);
break;
case AyaType.Vendor:
await util.RefreshQBVendorFromAyaNovaAsync(im);
break;
case AyaType.Part:
await util.RefreshQBPartFromAyaNova(im, PricesOnly);
break;
}
SaveIntegration = true;
case AyaType.Customer:
await util.PopulateQBClientCacheAsync();
break;
case AyaType.Vendor:
await util.PopulateQBVendorCacheAsync();
break;
case AyaType.Part:
await util.PopulateQBItemCacheAsync();
break;
}
}
switch (_Type)
foreach (DataGridViewRow r in gridAya.SelectedRows)
{
string AyaName = r.Cells[0].Value.ToString();
long AyaId = (long)r.Cells[1].Value;
w.Step = AyaName;
//only linked items can be updated
IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.ObjectId == AyaId && z.AType == _Type);
if (im != null)
{
switch (_Type)
{
case AyaType.Customer:
await util.RefreshAyaNovaCustomerFromQBAsync(im);
break;
case AyaType.Vendor:
await util.RefreshAyaNovaVendorFromQBAsync(im);
break;
case AyaType.Part:
await util.RefreshAyaNovaPartFromQBAsync(im, PricesOnly);
break;
}
SaveIntegration = true;
}
}
switch (_Type)
{
case AyaType.Customer:
await util.PopulateAyaClientList();
break;
case AyaType.Vendor:
await util.PopulateAyaVendorList();
break;
case AyaType.Part:
await util.PopulateAyaPartList();
break;
}
#endregion AyaGrid
}
else
{
case AyaType.Customer:
await util.PopulateQBClientCacheAsync();
break;
case AyaType.Vendor:
await util.PopulateQBVendorCacheAsync();
break;
case AyaType.ServiceRate:
case AyaType.TravelRate:
case AyaType.Part:
await util.PopulateQBItemCacheAsync();
break;
#region QB GRID
foreach (DataGridViewRow r in gridQB.SelectedRows)
{
var QBItemName = gridQB.SelectedRows[0].Cells[0].Value.ToString();
var QBItemId = r.Cells[1].Value.ToString();
w.Step = QBItemName;
//only linked items can be updated
IntegrationItem im = util.QBIntegration.Items.FirstOrDefault(z => z.IntegrationItemId == QBItemId && z.AType == _Type);
if (im != null)
{
switch (_Type)
{
case AyaType.Customer:
await util.RefreshQBCustomerFromAyaNovaAsync(im);
break;
case AyaType.Vendor:
await util.RefreshQBVendorFromAyaNovaAsync(im);
break;
case AyaType.Part:
await util.RefreshQBPartFromAyaNova(im, PricesOnly);
break;
}
SaveIntegration = true;
}
}
switch (_Type)
{
case AyaType.Customer:
await util.PopulateQBClientCacheAsync();
break;
case AyaType.Vendor:
await util.PopulateQBVendorCacheAsync();
break;
case AyaType.ServiceRate:
case AyaType.TravelRate:
case AyaType.Part:
await util.PopulateQBItemCacheAsync();
break;
}
#endregion qb grid
}
#endregion qb grid
if (SaveIntegration)
{
await util.SaveIntegrationObject();
Initialize();
}
}
if (SaveIntegration)
catch (Exception ex)
{
await util.SaveIntegrationObject();
Initialize();
w.Visible = false;
await util.CrackDisplayAndIntegrationLogException(ex, "QBI:Map:UpdateSelectedItems");
}
finally
{
w.Close();
}