This commit is contained in:
2022-07-04 00:37:58 +00:00
parent 29a0bc0bb5
commit 0aee758735
2 changed files with 244 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -15,11 +16,7 @@ namespace AyaNovaQBI
private AyaType _Type = AyaType.Customer;
private DataTable _aya;
private DataTable _qb;
//private VendorTypes _currentVendorType = 0;
private viewtypes _currentView = viewtypes.All;
//private RateTypes _currentRateType = 0;
//private long _MostLikelyRateUnitChargeDescriptionID = 0;
private enum viewtypes
{
@@ -62,10 +59,250 @@ namespace AyaNovaQBI
#region IMPORT
private void importSelectedItemsToolStripMenuItem_Click(object sender, EventArgs e)
private async void importSelectedItemsToolStripMenuItem_Click(object sender, EventArgs e)
{
bool IsAyaGrid = false;
if (gridAya.SelectedRows.Count == 0 && gridQB.SelectedRows.Count == 0) return;
IsAyaGrid = gridAya.SelectedRows.Count > 0;
if (IsAyaGrid)
{
if (MessageBox.Show(
"Import and link the selected AyaNova objects into QuickBooks.\r\n\r\n" +
"Are you sure?", "Import AyaNova objects", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
== DialogResult.No) return;
await ImportToQuickBooks();
}
else
{
if (MessageBox.Show(
"Import and link the selected QuickBooks objects into AyaNova.\r\n\r\n" +
"Are you sure?", "Import QuickBooks objects", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
== DialogResult.No) return;
await ImportToAyaNova();
switch (_Type)
{
case AyaType.Customer:
await util.PopulateAyaClientList();
break;
case AyaType.Vendor:
await util.PopulateAyaVendorList();
break;
case AyaType.ServiceRate:
await util.PopulateAyaServiceRateList();
break;
case AyaType.TravelRate:
await util.PopulateAyaTravelRateList();
break;
case AyaType.Part:
await util.PopulateAyaPartList();
break;
}
}
}
#region Import to AyaNova
private async Task ImportToAyaNova()
{
this.Refresh();
Cursor.Current = Cursors.WaitCursor;
ArrayList alErrors = new ArrayList();
Waiting w = new Waiting();
w.Show();
w.Ops = "Importing from QuickBooks...";
try
{
switch (_Type)
{
case AyaType.Customer:
foreach (object o in moveData.Rows)
{
w.Step = ((QBNameID)o).Name;
await util.ImportQBCustomer(((QBNameID)o).ID, alErrors);
}
break;
case AyaType.Vendor:
foreach (object o in moveData.Rows)
{
w.Step = ((QBNameID)o).Name;
Util.ImportQBVendor(((QBNameID)o).ID, this._currentVendorType, alErrors);
}
break;
case AyaType.Rate:
foreach (object o in moveData.Rows)
{
w.Step = ((QBNameID)o).Name;
Util.ImportQBRate(((QBNameID)o).ID, this._currentRateType, _MostLikelyRateUnitChargeDescriptionID, alErrors);
}
break;
case AyaType.Part:
foreach (object o in moveData.Rows)
{
w.Step = ((QBNameID)o).Name;
Util.ImportQBPart(((QBNameID)o).ID, alErrors);
}
break;
default:
throw new System.NotSupportedException("ImportToAyaNova: NOT SUPPORTED (STUB): " + _Type.ToString());
}
//display errors if any
if (alErrors.Count != 0)
{
w.Visible = false;
StringBuilder sb = new StringBuilder();
sb.Append("Import completed with some errors:\r\n\r\n");
foreach (object o in alErrors)
{
sb.Append((string)o);
sb.Append("\r\n************\r\n");
}
CopyableMessageBox cb = new CopyableMessageBox(sb.ToString());
cb.ShowDialog();
}
}
catch (Exception ex)
{
w.Visible = false;
Util.CrackDisplayAndIntegrationLogException(ex, "QBI:Map:ImportToAyaNova");//case 3717
//CopyableMessageBox cb = new CopyableMessageBox("ImportToAyaNova error: \r\n" + Util.CrackException(ex));
//cb.ShowDialog();
}
finally
{
w.Close();
}
}
#endregion Import to AyaNova
#region Import to QuickBooks
private async Task ImportToQuickBooks()
{
this.Refresh();
Cursor.Current = Cursors.WaitCursor;
ArrayList alErrors = new ArrayList();
Waiting w = new Waiting();
w.Show();
w.Ops = "Importing from AyaNova...";
try
{
switch (_Type)
{
case AyaType.Customer:
foreach (object o in moveData.Rows)
{
w.Step = ((AyaNameID)o).Name;
util.ImportAyaClient(((AyaNameID)o).ID, alErrors);
}
break;
case AyaType.Vendor:
foreach (object o in moveData.Rows)
{
w.Step = ((AyaNameID)o).Name;
Util.ImportAyaVendor(((AyaNameID)o).ID, alErrors);
}
break;
case AyaType.Rate:
{
SetQBImportServiceRateAccounts s = new SetQBImportServiceRateAccounts();
if (s.ShowDialog() != DialogResult.OK)
{
s.Dispose();
return;
}
s.Dispose();
RatePickList rpl = RatePickList.GetList(false);
foreach (object o in moveData.Rows)
{
w.Step = ((AyaNameID)o).Name;
Util.ImportAyaRate(((AyaNameID)o).ID, rpl, alErrors);
}
}
break;
case AyaType.Part:
{
SetQBImportInventoryAccounts s = new SetQBImportInventoryAccounts();
if (s.ShowDialog() != DialogResult.OK)
{
s.Dispose();
return;
}
s.Dispose();
foreach (object o in moveData.Rows)
{
w.Step = ((AyaNameID)o).Name;
Util.ImportAyaPart(((AyaNameID)o).ID, alErrors);
}
}
break;
default:
throw new System.NotSupportedException("ImportToQuickBooks: NOT SUPPORTED (STUB): " + _Type.ToString());
}
//display errors if any
if (alErrors.Count != 0)
{
w.Visible = false;
StringBuilder sb = new StringBuilder();
sb.Append("Import completed with some errors:\r\n\r\n");
foreach (object o in alErrors)
{
sb.Append((string)o);
sb.Append("\r\n************\r\n");
}
CopyableMessageBox cb = new CopyableMessageBox(sb.ToString());
cb.ShowDialog();
cb.Dispose();
}
}
catch (Exception ex)
{
//CopyableMessageBox cb=new CopyableMessageBox("ImportToQuickBooks error: " + ex.Message);
//cb.ShowDialog();
//cb.Dispose();
Util.CrackDisplayAndIntegrationLogException(ex, "QBI:Map:ImportToQuickBooks");//case 3717
}
finally
{
w.Close();
}
}
#endregion importtoqb
#endregion import
#region AUTOMATIC LINK