diff --git a/AyaNovaQBI/Map.cs b/AyaNovaQBI/Map.cs index 57d222e..d816b75 100644 --- a/AyaNovaQBI/Map.cs +++ b/AyaNovaQBI/Map.cs @@ -152,7 +152,7 @@ namespace AyaNovaQBI Initialize(); } - #region Import to AyaNova + #region Export to AyaNova private async Task ExportToAyaNova() { diff --git a/AyaNovaQBI/devinfo.txt b/AyaNovaQBI/devinfo.txt index 59cd39c..3fff208 100644 --- a/AyaNovaQBI/devinfo.txt +++ b/AyaNovaQBI/devinfo.txt @@ -1,10 +1,21 @@ TODO: -Screenshots before expires!!!! + + +change accounting integration status to be appropriate for viewing in workorder + Proper case and something like "Accounting integration edit". + +qbo object addresses are coming over with the name of the entity and also contact name prepended to address sb filtered out of AyaNova + (how was this handled in v7, should have been also a problem there?) + +Invoice showing this: Unit Serviced: ~AYAFORMAT~ + setup wizard all dialogs showing in taskbar wrong logo remove from tbar or fix logo Test persisted form settings for server url (ONCE POSTED NEW BUILD OF AYANOVA TO TEST SERVER) +Docs mention must be accoutning role user +docs mention status required for it to work don't fuck with it and if necessary how to fix it Docs should not refer to autoclose anymore, it's status driven now DOCS UI use "Link" and do not use "map" anywhere TEST auto-linking not tested due to import not coded yet so would be fuckery to do diff --git a/AyaNovaQBI/util.cs b/AyaNovaQBI/util.cs index 12b1d70..702dac7 100644 --- a/AyaNovaQBI/util.cs +++ b/AyaNovaQBI/util.cs @@ -741,6 +741,19 @@ namespace AyaNovaQBI hasError = true; initErrors.AppendLine($"Work order Status \"{AccountingStatus.Name}\" must be set to Active=true"); } + + if (AccountingStatus.Locked) + { + hasError = true; + initErrors.AppendLine($"Work order Status \"{AccountingStatus.Name}\" must *not* be a locking status"); + } + + if (AccountingStatus.Completed) + { + hasError = true; + initErrors.AppendLine($"Work order Status \"{AccountingStatus.Name}\" must *not* be a completed status"); + } + return !hasError; } @@ -1820,21 +1833,21 @@ namespace AyaNovaQBI /// Given a QB Item ID, return the /// AyaNova Vendor ID linked to that items /// QB preferred Vendor ID or - /// 0 on any problem or not found + /// null on any problem or not found /// /// /// - public static long AyaVendorForQBItem(string QBItemID) + public static long? AyaVendorForQBItem(string QBItemID) { - if (string.IsNullOrWhiteSpace(QBItemID)) return 0; + if (string.IsNullOrWhiteSpace(QBItemID)) return null; DataRow dr = _dtQBItems.Rows.Find(QBItemID); - if (dr == null || dr["VendorID"] == null || dr["VendorID"].ToString() == "") return 0; + if (dr == null || dr["VendorID"] == null || dr["VendorID"].ToString() == "") return null; DataRow drVendor = _dtQBVendors.Rows.Find(dr["VendorID"].ToString()); - if (drVendor == null) return 0; + if (drVendor == null) return null; var item = QBIntegration.Items.FirstOrDefault(z => z.IntegrationItemId == drVendor["ID"].ToString()); - if (item == null) return 0; + if (item == null) return null; //Ok we have a matching vendor in the list, return the id of it return item.ObjectId;