diff --git a/BealeEngineering/BealeEngineering.Accounts/Form1.cs b/BealeEngineering/BealeEngineering.Accounts/Form1.cs index 3fd3540..9f09f2a 100644 --- a/BealeEngineering/BealeEngineering.Accounts/Form1.cs +++ b/BealeEngineering/BealeEngineering.Accounts/Form1.cs @@ -148,7 +148,8 @@ namespace BealeEngineering.Accounts dialogText = "Import complete." + Environment.NewLine + Environment.NewLine + importXeroInvoice.InvoicesProcessed + " invoice(s) found" + Environment.NewLine + importXeroInvoice.InvoicesCreated + " invoice(s) created" + Environment.NewLine - + importXeroInvoice.InvoicesUpdated + " invoice(s) updated" + Environment.NewLine; + + importXeroInvoice.InvoicesUpdated + " invoice(s) updated" + Environment.NewLine + + importXeroInvoice.InvoicesSkipped + " invoice(s) skipped" + Environment.NewLine; MessageBox.Show(dialogText); } diff --git a/BealeEngineering/BealeEngineering.Core/Data/Database/Sale/UpdateInvoice.cs b/BealeEngineering/BealeEngineering.Core/Data/Database/Sale/UpdateInvoice.cs index 85a4a79..7d9271d 100644 --- a/BealeEngineering/BealeEngineering.Core/Data/Database/Sale/UpdateInvoice.cs +++ b/BealeEngineering/BealeEngineering.Core/Data/Database/Sale/UpdateInvoice.cs @@ -14,6 +14,7 @@ namespace BealeEngineering.Core.Data.Database.Sale private int recordsCreated = 0; private int recordsUpdated = 0; private int invoicesProcessed = 0; + private int invoicesSkipped = 0; public UpdateInvoice(string sqlConnectionString) : base(sqlConnectionString) { @@ -22,6 +23,7 @@ namespace BealeEngineering.Core.Data.Database.Sale public int RecordsCreated { get { return recordsCreated; } } public int RecordsUpdated { get { return recordsUpdated; } } public int InvoicesProcessed { get { return invoicesProcessed; } } + public int InvoicesSkipped { get { return invoicesSkipped; } } public void ByInvoice(Model.Sale.Invoice invoice, bool insertNew = false) { var invoiceList = new List { invoice }; @@ -32,6 +34,7 @@ namespace BealeEngineering.Core.Data.Database.Sale recordsCreated = 0; recordsUpdated = 0; invoicesProcessed = 0; + invoicesSkipped = 0; // check the list if (invoiceList == null || !invoiceList.Any()) { return; } @@ -103,18 +106,19 @@ namespace BealeEngineering.Core.Data.Database.Sale OUTPUT INSERTED.SaleInvoiceID VALUES( (SELECT ContactID FROM Contact WHERE ContactName = @contactName) - @saleInvoiceNumber - @invoiceDate - @dateDue - @reference - @currencyCode - @invoiceTotal - @taxTotal - @isCreditNote + ,@saleInvoiceNumber + ,@invoiceDate + ,@dateDue + ,@reference + ,@currencyCode + ,@invoiceTotal + ,@taxTotal + ,@isCreditNote )"; } else { + invoicesSkipped += 1; continue; } @@ -198,7 +202,7 @@ namespace BealeEngineering.Core.Data.Database.Sale } } } - if (InvoicesProcessed == (RecordsCreated + RecordsUpdated)) + if (InvoicesProcessed == (RecordsCreated + RecordsUpdated + invoicesSkipped)) { scope.Complete(); } diff --git a/BealeEngineering/BealeEngineering.Core/Logic/Import/XeroInvoiceFlatFile.cs b/BealeEngineering/BealeEngineering.Core/Logic/Import/XeroInvoiceFlatFile.cs index 6831ed3..4543c72 100644 --- a/BealeEngineering/BealeEngineering.Core/Logic/Import/XeroInvoiceFlatFile.cs +++ b/BealeEngineering/BealeEngineering.Core/Logic/Import/XeroInvoiceFlatFile.cs @@ -21,6 +21,7 @@ namespace BealeEngineering.Core.Logic.Import public int InvoicesProcessed { get; private set; } = 0; + public int InvoicesSkipped { get; private set; } = 0; public void ByFilePath(string filePath, bool updateContacts = true) { @@ -44,13 +45,14 @@ namespace BealeEngineering.Core.Logic.Import if (dbInvoiceData.Any()) { var updateInvoice = new Data.Database.Sale.UpdateInvoice(sqlConnectionString); - updateInvoice.ByInvoiceList(dbInvoiceData); + updateInvoice.ByInvoiceList(dbInvoiceData, true); InvoicesCreated = updateInvoice.RecordsCreated; InvoicesUpdated = updateInvoice.RecordsUpdated; InvoicesProcessed = updateInvoice.InvoicesProcessed; + InvoicesSkipped = updateInvoice.InvoicesSkipped; - if (InvoicesProcessed != (InvoicesCreated + InvoicesUpdated)) + if (InvoicesProcessed != (InvoicesCreated + InvoicesUpdated + InvoicesSkipped)) { throw new Exception("Error importing invoices"); } } }