diff --git a/src/bnhtrade.Core/Config.cs b/src/bnhtrade.Core/Config.cs index 20bb1a9..b70940c 100644 --- a/src/bnhtrade.Core/Config.cs +++ b/src/bnhtrade.Core/Config.cs @@ -12,7 +12,21 @@ namespace bnhtrade.Core { public string GetAppDataPath() { - string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\bnhtrade\"; + string path = null; + if (OperatingSystem.IsWindows()) + { + path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + + @"\bnhtrade\"; + } + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS()) + { + path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + + "/.bnhtrade/"; + } + else + { + throw new PlatformNotSupportedException("Unsupported operating system"); + } return path; } diff --git a/src/bnhtrade.Core/Data/Database/Account/CreateJournal.cs b/src/bnhtrade.Core/Data/Database/Account/CreateJournal.cs index bfbb086..4df3dce 100644 --- a/src/bnhtrade.Core/Data/Database/Account/CreateJournal.cs +++ b/src/bnhtrade.Core/Data/Database/Account/CreateJournal.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Account/ReadContact.cs b/src/bnhtrade.Core/Data/Database/Account/ReadContact.cs index 489adad..5621f17 100644 --- a/src/bnhtrade.Core/Data/Database/Account/ReadContact.cs +++ b/src/bnhtrade.Core/Data/Database/Account/ReadContact.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Account/UpdateJournal.cs b/src/bnhtrade.Core/Data/Database/Account/UpdateJournal.cs index c7de34a..6633bba 100644 --- a/src/bnhtrade.Core/Data/Database/Account/UpdateJournal.cs +++ b/src/bnhtrade.Core/Data/Database/Account/UpdateJournal.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Amazon/FeeEstimate.cs b/src/bnhtrade.Core/Data/Database/Amazon/FeeEstimate.cs index 64331c7..d7b30d9 100644 --- a/src/bnhtrade.Core/Data/Database/Amazon/FeeEstimate.cs +++ b/src/bnhtrade.Core/Data/Database/Amazon/FeeEstimate.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentInfo.cs b/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentInfo.cs index 718ae05..25709c5 100644 --- a/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentInfo.cs +++ b/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentInfo.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentPrimaryKey.cs b/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentPrimaryKey.cs index 166267a..167e01a 100644 --- a/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentPrimaryKey.cs +++ b/src/bnhtrade.Core/Data/Database/AmazonFba/ReadShipmentPrimaryKey.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/AmazonFba/SetShipmentInfo.cs b/src/bnhtrade.Core/Data/Database/AmazonFba/SetShipmentInfo.cs index 9cefbff..c0b5aaf 100644 --- a/src/bnhtrade.Core/Data/Database/AmazonFba/SetShipmentInfo.cs +++ b/src/bnhtrade.Core/Data/Database/AmazonFba/SetShipmentInfo.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Connection.cs b/src/bnhtrade.Core/Data/Database/Connection.cs index c97c0e8..bfdc612 100644 --- a/src/bnhtrade.Core/Data/Database/Connection.cs +++ b/src/bnhtrade.Core/Data/Database/Connection.cs @@ -1,9 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Data.SqlClient; using System.Configuration; namespace bnhtrade.Core.Data.Database diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaCustomerReturn.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaCustomerReturn.cs index c58c5f1..4d37221 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaCustomerReturn.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaCustomerReturn.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Text; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAdjustment.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAdjustment.cs index a0d7ef6..b85a82c 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAdjustment.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAdjustment.cs @@ -1,5 +1,5 @@ using System; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; namespace bnhtrade.Core.Data.Database.Import diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeData.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeData.cs index 5cd5284..6eb13ef 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeData.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeData.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Text; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeRead.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeRead.cs index 4efb77b..34d07fc 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeRead.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryAgeRead.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryData.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryData.cs index cc9bd19..04f6ffa 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryData.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryData.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Text; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryLedgerDetail.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryLedgerDetail.cs index 88f1464..0815e28 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryLedgerDetail.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryLedgerDetail.cs @@ -2,7 +2,7 @@ using bnhtrade.Core.Logic.Amazon.Fba; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Diagnostics; using System.Diagnostics.Eventing.Reader; using System.IO; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryReceipt.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryReceipt.cs index 2216877..f991ef5 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryReceipt.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaInventoryReceipt.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Globalization; using System.IO; using System.Linq; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaReimbursement.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaReimbursement.cs index 77f2c54..279315c 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaReimbursement.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaReimbursement.cs @@ -3,7 +3,7 @@ using FikaAmazonAPI.ConstructFeed.Messages; using System; using System.Collections.Generic; using System.Data; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Runtime.ConstrainedExecution; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaRemovalOrder.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaRemovalOrder.cs index a7ffdf4..ba4f69b 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaRemovalOrder.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaRemovalOrder.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Text; diff --git a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaSaleShipment.cs b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaSaleShipment.cs index 5397d2e..51443b4 100644 --- a/src/bnhtrade.Core/Data/Database/Import/AmazonFbaSaleShipment.cs +++ b/src/bnhtrade.Core/Data/Database/Import/AmazonFbaSaleShipment.cs @@ -1,7 +1,7 @@ using Dapper; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Text; diff --git a/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs b/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs index a367350..b32832d 100644 --- a/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs +++ b/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Log/LogEvent.cs b/src/bnhtrade.Core/Data/Database/Log/LogEvent.cs index b3cc8f0..e074f90 100644 --- a/src/bnhtrade.Core/Data/Database/Log/LogEvent.cs +++ b/src/bnhtrade.Core/Data/Database/Log/LogEvent.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Product/CreateCompetitivePrice.cs b/src/bnhtrade.Core/Data/Database/Product/CreateCompetitivePrice.cs index df84a34..ad1823f 100644 --- a/src/bnhtrade.Core/Data/Database/Product/CreateCompetitivePrice.cs +++ b/src/bnhtrade.Core/Data/Database/Product/CreateCompetitivePrice.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Product/ReadCompetitivePrice.cs b/src/bnhtrade.Core/Data/Database/Product/ReadCompetitivePrice.cs index ef8a2aa..d68132f 100644 --- a/src/bnhtrade.Core/Data/Database/Product/ReadCompetitivePrice.cs +++ b/src/bnhtrade.Core/Data/Database/Product/ReadCompetitivePrice.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Product/ReadProduct.cs b/src/bnhtrade.Core/Data/Database/Product/ReadProduct.cs index ad436bc..f55de04 100644 --- a/src/bnhtrade.Core/Data/Database/Product/ReadProduct.cs +++ b/src/bnhtrade.Core/Data/Database/Product/ReadProduct.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Product/ReadProductId.cs b/src/bnhtrade.Core/Data/Database/Product/ReadProductId.cs index 21b561c..45c9cda 100644 --- a/src/bnhtrade.Core/Data/Database/Product/ReadProductId.cs +++ b/src/bnhtrade.Core/Data/Database/Product/ReadProductId.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/ReadRandomData.cs b/src/bnhtrade.Core/Data/Database/ReadRandomData.cs index 38a5c90..9fac6e6 100644 --- a/src/bnhtrade.Core/Data/Database/ReadRandomData.cs +++ b/src/bnhtrade.Core/Data/Database/ReadRandomData.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Repository/Implementation/AmazonSettlementRepository.cs b/src/bnhtrade.Core/Data/Database/Repository/Implementation/AmazonSettlementRepository.cs index ccfe64a..87dde05 100644 --- a/src/bnhtrade.Core/Data/Database/Repository/Implementation/AmazonSettlementRepository.cs +++ b/src/bnhtrade.Core/Data/Database/Repository/Implementation/AmazonSettlementRepository.cs @@ -2,7 +2,6 @@ using bnhtrade.Core.Data.Database.Repository.Interface; using bnhtrade.Core.Model.Amazon; using Microsoft.Data.SqlClient; -using Microsoft.VisualBasic.Logging; using System; using System.Collections.Generic; using System.Data; @@ -369,7 +368,7 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation // /// - /// Update the settlement report marketplace name by settlement Id (not table id) + /// Update the settlement report marketplace name by settlement Id (not row id) /// /// Settlement id (not table/record id) of the settlement to update /// marketplace name @@ -433,13 +432,13 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation /// Takes a Settlement Report flat file from Amazon and imports it into the database. /// /// path to the Amazon report flat file - /// The unique Amazon SP-API report id (not settlement id) + /// The unique Amazon SP-API report id (not settlement id) /// - public bool CreateAmazonSettlements(string filePath, string reportId) + public bool CreateAmazonSettlements(string filePath, string spapiReportId) { int settlementReportId = 0; - string settlementRef = ""; - bool marketPlaceUpdated = false; + string settlementRef = null; + string marketplaceName = null; decimal settlementAmount = 0m; int lineNumber = 2; int lineSkip = 0; @@ -479,17 +478,17 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation int indexQuantityPurchased = Array.IndexOf(headers, "quantity-purchased"); int indexPromotionId = Array.IndexOf(headers, "promotion-id"); - string currency = ""; + string currency = null; string fileRow; while ((fileRow = reader.ReadLine()) != null) { Console.Write("\rParsing record: " + lineNumber); //split line into array - string[] items = fileRow.Split('\t'); - if (items.Length != columnCount) + string[] rowArray = fileRow.Split('\t'); + if (rowArray.Length != columnCount) { - // skip line + // skip line, check settlement total at the end lineSkip = lineSkip + 1; _log.LogWarning( "Line #" + lineNumber + " skipped due to no enough element in row.", @@ -498,28 +497,25 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation } else if (lineNumber == 2) { - // check if settlement has already been imported + settlementRef = rowArray[indexSettlementId]; + currency = rowArray[indexCurrency]; + settlementAmount = decimal.Parse(rowArray[indexTotalAmount].Replace(",", ".")); + // check if settlement has already been imported using (SqlCommand cmd = _connection.CreateCommand() as SqlCommand) { cmd.CommandText = "SELECT COUNT(*) FROM tblImportAmazonSettlementReport WHERE [settlement-id]=@settlementId;"; cmd.Transaction = _transaction as SqlTransaction; - cmd.Parameters.AddWithValue("@settlementId", items[indexSettlementId]); + cmd.Parameters.AddWithValue("@settlementId", rowArray[indexSettlementId]); int recordCount = (int)cmd.ExecuteScalar(); if (recordCount > 0) { - SetSpapiReportId(items[indexSettlementId], reportId); + SetSpapiReportId(rowArray[indexSettlementId], spapiReportId); _log.LogInformation("Settlement report already imported, skipping..."); return true; } } - //set currencyId - //currencyId = GeneralQueries.GetCurrencyId(items[5]); - - //set currency - currency = items[indexCurrency]; - settlementAmount = decimal.Parse(items[indexTotalAmount].Replace(",", ".")); // insert using (SqlCommand cmd = _connection.CreateCommand() as SqlCommand) @@ -543,61 +539,38 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation ,@depositDate ,@settlementotalAmounttId ,@currency - ,@reportId + ,@spapiReportId );"; - // add parameters - if (indexSettlementId == -1 || items[indexSettlementId].Length == 0) { cmd.Parameters.AddWithValue("@settlementId", DBNull.Value); } - else - { - settlementRef = items[indexSettlementId]; - cmd.Parameters.AddWithValue("@settlementId", settlementRef); - } - var parseDateTime = new Core.Logic.Utilities.DateTime(); - if (indexSettlementStartDate == -1 || items[indexSettlementStartDate].Length == 0) { cmd.Parameters.AddWithValue("@settlementStartDate", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@settlementStartDate", parseDateTime.ParseIsoDateTimeString(items[indexSettlementStartDate])); } - - if (indexSettlementEndDate == -1 || items[indexSettlementEndDate].Length == 0) { cmd.Parameters.AddWithValue("@settlementEndDate", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@settlementEndDate", parseDateTime.ParseIsoDateTimeString(items[indexSettlementEndDate])); } - - if (indexDepositDate == -1 || items[indexDepositDate].Length == 0) { cmd.Parameters.AddWithValue("@depositDate", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@depositDate", parseDateTime.ParseIsoDateTimeString(items[indexDepositDate])); } - - if (indexTotalAmount == -1 || items[indexTotalAmount].Length == 0) { cmd.Parameters.AddWithValue("@totalAmount", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@settlementotalAmounttId", settlementAmount); } - - if (string.IsNullOrWhiteSpace(reportId)) { cmd.Parameters.AddWithValue("@reportId", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@reportId", reportId); } - + // add parameters + cmd.Parameters.AddWithValue("@settlementId", rowArray[indexSettlementId]); + cmd.Parameters.AddWithValue("@settlementStartDate", parseDateTime.ParseIsoDateTimeString(rowArray[indexSettlementStartDate])); + cmd.Parameters.AddWithValue("@settlementEndDate", parseDateTime.ParseIsoDateTimeString(rowArray[indexSettlementEndDate])); + cmd.Parameters.AddWithValue("@depositDate", parseDateTime.ParseIsoDateTimeString(rowArray[indexDepositDate])); + cmd.Parameters.AddWithValue("@settlementotalAmounttId", settlementAmount); + if (string.IsNullOrWhiteSpace(spapiReportId)) { cmd.Parameters.AddWithValue("@spapiReportId", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@spapiReportId", spapiReportId); } cmd.Parameters.AddWithValue("@currency", currency); - //if (currencyId == -1) { sqlCommand.Parameters.AddWithValue("@currencyId", DBNull.Value); } - //else { sqlCommand.Parameters.AddWithValue("@currencyId", currencyId); } - //execute and retrive id settlementReportId = (int)cmd.ExecuteScalar(); - } } else { - //update market place name in main table, if required - if (marketPlaceUpdated == false && settlementReportId > 0 && items[indexMarketplaceName].Length > 1) + // attempt to retrieve marketplace name for header table + if (rowArray[indexMarketplaceName].Length > 1 && settlementReportId > 0) { - using (SqlCommand cmd = _connection.CreateCommand() as SqlCommand) + if (marketplaceName == null) { - cmd.Transaction = _transaction as SqlTransaction; - cmd.CommandText = @" - UPDATE tblImportAmazonSettlementReport - SET [marketplace-name]=@MarketplaceName - WHERE ImportAmazonSettlementReportID=@ImportAmazonSettlementReportID;"; - cmd.Parameters.AddWithValue("@MarketplaceName", items[indexMarketplaceName]); - cmd.Parameters.AddWithValue("@ImportAmazonSettlementReportID", settlementReportId); - - cmd.ExecuteNonQuery(); - marketPlaceUpdated = true; + marketplaceName = rowArray[indexMarketplaceName]; + } + else if (marketplaceName != rowArray[indexMarketplaceName]) + { + _log.LogError("Marketplace name '" + rowArray[indexMarketplaceName] + "' on line " + lineNumber + + " is different from marketplace name '" + marketplaceName + "' on previous line. This shouldn't be possible!"); } } @@ -620,67 +593,95 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation cmd.Parameters.AddWithValue("@currency", currency); - if (indexTransactionType == -1 || items[indexTransactionType].Length == 0) { cmd.Parameters.AddWithValue("@TransactionType", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@TransactionType", items[indexTransactionType]); } + if (indexTransactionType == -1 || rowArray[indexTransactionType].Length == 0) { cmd.Parameters.AddWithValue("@TransactionType", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@TransactionType", rowArray[indexTransactionType]); } - if (indexOrderId == -1 || items[indexOrderId].Length == 0) { cmd.Parameters.AddWithValue("@orderRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@orderRef", items[indexOrderId]); } + if (indexOrderId == -1 || rowArray[indexOrderId].Length == 0) { cmd.Parameters.AddWithValue("@orderRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@orderRef", rowArray[indexOrderId]); } - if (indexMerchantOrderId == -1 || items[indexMerchantOrderId].Length == 0) { cmd.Parameters.AddWithValue("@merchantOrderRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@merchantOrderRef", items[indexMerchantOrderId]); } + if (indexMerchantOrderId == -1 || rowArray[indexMerchantOrderId].Length == 0) { cmd.Parameters.AddWithValue("@merchantOrderRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@merchantOrderRef", rowArray[indexMerchantOrderId]); } - if (indexAdjustmentId == -1 || items[indexAdjustmentId].Length == 0) { cmd.Parameters.AddWithValue("@AdjustmentRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@AdjustmentRef", items[indexAdjustmentId]); } + if (indexAdjustmentId == -1 || rowArray[indexAdjustmentId].Length == 0) { cmd.Parameters.AddWithValue("@AdjustmentRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@AdjustmentRef", rowArray[indexAdjustmentId]); } - if (indexShipmentId == -1 || items[indexShipmentId].Length == 0) { cmd.Parameters.AddWithValue("@ShipmentRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@ShipmentRef", items[indexShipmentId]); } + if (indexShipmentId == -1 || rowArray[indexShipmentId].Length == 0) { cmd.Parameters.AddWithValue("@ShipmentRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@ShipmentRef", rowArray[indexShipmentId]); } - if (indexMarketplaceName == -1 || items[indexMarketplaceName].Length == 0) { cmd.Parameters.AddWithValue("@MarketplaceName", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@MarketplaceName", items[indexMarketplaceName]); } + if (indexMarketplaceName == -1 || rowArray[indexMarketplaceName].Length == 0) { cmd.Parameters.AddWithValue("@MarketplaceName", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@MarketplaceName", rowArray[indexMarketplaceName]); } - if (indexAmountType == -1 || items[indexAmountType].Length == 0) { cmd.Parameters.AddWithValue("@AmountType", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@AmountType", items[indexAmountType]); } + if (indexAmountType == -1 || rowArray[indexAmountType].Length == 0) { cmd.Parameters.AddWithValue("@AmountType", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@AmountType", rowArray[indexAmountType]); } - if (indexAmountDescription == -1 || items[indexAmountDescription].Length == 0) { cmd.Parameters.AddWithValue("@AmountDescription", DBNull.Value); } + if (indexAmountDescription == -1 || rowArray[indexAmountDescription].Length == 0) { cmd.Parameters.AddWithValue("@AmountDescription", DBNull.Value); } else { - string amountDescription = items[indexAmountDescription]; + string amountDescription = rowArray[indexAmountDescription]; if (amountDescription.Length > 100) { amountDescription = amountDescription.Substring(0, 100); } cmd.Parameters.AddWithValue("@AmountDescription", amountDescription); } - if (indexAmount == -1 || items[indexAmount].Length == 0) { cmd.Parameters.AddWithValue("@Amount", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@Amount", decimal.Parse(items[indexAmount].Replace(",", "."))); } + if (indexAmount == -1 || rowArray[indexAmount].Length == 0) { cmd.Parameters.AddWithValue("@Amount", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@Amount", decimal.Parse(rowArray[indexAmount].Replace(",", "."))); } - if (indexFulfillmentId == -1 || items[indexFulfillmentId].Length == 0) { cmd.Parameters.AddWithValue("@FulfillmentRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@FulfillmentRef", items[indexFulfillmentId]); } + if (indexFulfillmentId == -1 || rowArray[indexFulfillmentId].Length == 0) { cmd.Parameters.AddWithValue("@FulfillmentRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@FulfillmentRef", rowArray[indexFulfillmentId]); } - if (indexPostedDateTime == -1 || items[indexPostedDateTime].Length == 0) { cmd.Parameters.AddWithValue("@PostedDateTimeUTC", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@PostedDateTimeUTC", new Logic.Utilities.DateTime().ParseIsoDateTimeString(items[indexPostedDateTime])); } + if (indexPostedDateTime == -1 || rowArray[indexPostedDateTime].Length == 0) { cmd.Parameters.AddWithValue("@PostedDateTimeUTC", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@PostedDateTimeUTC", new Logic.Utilities.DateTime().ParseIsoDateTimeString(rowArray[indexPostedDateTime])); } - if (indexOrderItemCode == -1 || items[indexOrderItemCode].Length == 0) { cmd.Parameters.AddWithValue("@OrderItemCode", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@OrderItemCode", long.Parse(items[indexOrderItemCode])); } + if (indexOrderItemCode == -1 || rowArray[indexOrderItemCode].Length == 0) { cmd.Parameters.AddWithValue("@OrderItemCode", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@OrderItemCode", long.Parse(rowArray[indexOrderItemCode])); } - if (indexMerchantOrderItemId == -1 || items[indexMerchantOrderItemId].Length == 0) { cmd.Parameters.AddWithValue("@MerchantOrderItemRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@MerchantOrderItemRef", long.Parse(items[indexMerchantOrderItemId])); } + if (indexMerchantOrderItemId == -1 || rowArray[indexMerchantOrderItemId].Length == 0) { cmd.Parameters.AddWithValue("@MerchantOrderItemRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@MerchantOrderItemRef", long.Parse(rowArray[indexMerchantOrderItemId])); } - if (indexMerchantAdjustmentItemId == -1 || items[indexMerchantAdjustmentItemId].Length == 0) { cmd.Parameters.AddWithValue("@MerchantAdjustmentItemRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@MerchantAdjustmentItemRef", items[indexMerchantAdjustmentItemId]); } + if (indexMerchantAdjustmentItemId == -1 || rowArray[indexMerchantAdjustmentItemId].Length == 0) { cmd.Parameters.AddWithValue("@MerchantAdjustmentItemRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@MerchantAdjustmentItemRef", rowArray[indexMerchantAdjustmentItemId]); } - if (indexSku == -1 || items[indexSku].Length == 0) { cmd.Parameters.AddWithValue("@SkuNumber", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@SkuNumber", items[indexSku]); } + if (indexSku == -1 || rowArray[indexSku].Length == 0) { cmd.Parameters.AddWithValue("@SkuNumber", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@SkuNumber", rowArray[indexSku]); } - if (indexQuantityPurchased == -1 || items[indexQuantityPurchased].Length == 0) { cmd.Parameters.AddWithValue("@QuantityPurchased", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@QuantityPurchased", int.Parse(items[indexQuantityPurchased])); } + if (indexQuantityPurchased == -1 || rowArray[indexQuantityPurchased].Length == 0) { cmd.Parameters.AddWithValue("@QuantityPurchased", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@QuantityPurchased", int.Parse(rowArray[indexQuantityPurchased])); } - if (indexPromotionId == -1 || items[indexPromotionId].Length == 0) { cmd.Parameters.AddWithValue("@PromotionRef", DBNull.Value); } - else { cmd.Parameters.AddWithValue("@PromotionRef", items[indexPromotionId]); } + if (indexPromotionId == -1 || rowArray[indexPromotionId].Length == 0) { cmd.Parameters.AddWithValue("@PromotionRef", DBNull.Value); } + else { cmd.Parameters.AddWithValue("@PromotionRef", rowArray[indexPromotionId]); } cmd.ExecuteNonQuery(); } } lineNumber = lineNumber + 1; } + // end of filestream reading + + // if we haven't gotten the marketplace name from the line items, attempt to infer from currency + if (marketplaceName == null && settlementReportId > 0) + { + if (currency == "GBP") + { + marketplaceName = MarketPlaceEnum.AmazonUK.GetMarketplaceUrl(); + marketplaceName = char.ToUpper(marketplaceName[0]) + marketplaceName.Substring(1); + } + } + + // finally, if we have it, add marketplace name to main table + if (marketplaceName != null && settlementReportId > 0) + { + using (SqlCommand cmd = _connection.CreateCommand() as SqlCommand) + { + cmd.Transaction = _transaction as SqlTransaction; + cmd.CommandText = @" + UPDATE tblImportAmazonSettlementReport + SET [marketplace-name]=@MarketplaceName + WHERE ImportAmazonSettlementReportID=@ImportAmazonSettlementReportID;"; + cmd.Parameters.AddWithValue("@MarketplaceName", marketplaceName); + cmd.Parameters.AddWithValue("@ImportAmazonSettlementReportID", settlementReportId); + + cmd.ExecuteNonQuery(); + } + } } //final check - settlement amount matches sum of inserted settlement lines diff --git a/src/bnhtrade.Core/Data/Database/Repository/Implementation/InvoiceRepository.cs b/src/bnhtrade.Core/Data/Database/Repository/Implementation/InvoiceRepository.cs index d9d1d59..4445fe9 100644 --- a/src/bnhtrade.Core/Data/Database/Repository/Implementation/InvoiceRepository.cs +++ b/src/bnhtrade.Core/Data/Database/Repository/Implementation/InvoiceRepository.cs @@ -340,19 +340,19 @@ namespace bnhtrade.Core.Data.Database.Repository.Implementation WHERE 1 = 1 "; // build the where statments - if (invoiceIdList != null || invoiceIdList.Any()) + if (invoiceIdList != null && invoiceIdList.Any()) { sqlBuilder.In("PurchaseID", invoiceLineIdList, "AND"); } - if (invoiceLineIdList != null || invoiceLineIdList.Any()) + if (invoiceLineIdList != null && invoiceLineIdList.Any()) { sqlBuilder.In("PurchaseLineID", invoiceLineIdList, "AND"); } - if (statusList != null || statusList.Any()) + if (statusList != null && statusList.Any()) { sqlBuilder.In("PurchaseLineStatus", invoiceLineIdList, "AND"); } - if (itemDescriptionList != null || itemDescriptionList.Any()) + if (itemDescriptionList != null && itemDescriptionList.Any()) { sqlBuilder.LikeAnd("ItemDescription", itemDescriptionList, "AND"); } diff --git a/src/bnhtrade.Core/Data/Database/SKU/Price/CreatePricingDetail.cs b/src/bnhtrade.Core/Data/Database/SKU/Price/CreatePricingDetail.cs index 06d0e6e..106ef82 100644 --- a/src/bnhtrade.Core/Data/Database/SKU/Price/CreatePricingDetail.cs +++ b/src/bnhtrade.Core/Data/Database/SKU/Price/CreatePricingDetail.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Transactions; namespace bnhtrade.Core.Data.Database.Sku.Price diff --git a/src/bnhtrade.Core/Data/Database/SKU/Price/ReadParameter.cs b/src/bnhtrade.Core/Data/Database/SKU/Price/ReadParameter.cs index 4b5d028..7839832 100644 --- a/src/bnhtrade.Core/Data/Database/SKU/Price/ReadParameter.cs +++ b/src/bnhtrade.Core/Data/Database/SKU/Price/ReadParameter.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/SKU/Price/ReadPricingDetail.cs b/src/bnhtrade.Core/Data/Database/SKU/Price/ReadPricingDetail.cs index dd03317..16f64e1 100644 --- a/src/bnhtrade.Core/Data/Database/SKU/Price/ReadPricingDetail.cs +++ b/src/bnhtrade.Core/Data/Database/SKU/Price/ReadPricingDetail.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/SKU/ReadSku.cs b/src/bnhtrade.Core/Data/Database/SKU/ReadSku.cs index c800dab..bd3f43b 100644 --- a/src/bnhtrade.Core/Data/Database/SKU/ReadSku.cs +++ b/src/bnhtrade.Core/Data/Database/SKU/ReadSku.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/SKU/ReadSkuConditionInfo.cs b/src/bnhtrade.Core/Data/Database/SKU/ReadSkuConditionInfo.cs index cd0edc9..f1fe400 100644 --- a/src/bnhtrade.Core/Data/Database/SKU/ReadSkuConditionInfo.cs +++ b/src/bnhtrade.Core/Data/Database/SKU/ReadSkuConditionInfo.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/SqlUpdateBuilder.cs b/src/bnhtrade.Core/Data/Database/SqlUpdateBuilder.cs index 6a60bc7..7ed6239 100644 --- a/src/bnhtrade.Core/Data/Database/SqlUpdateBuilder.cs +++ b/src/bnhtrade.Core/Data/Database/SqlUpdateBuilder.cs @@ -1,7 +1,7 @@ using bnhtrade.Core.Data.Database._BoilerPlate; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/SqlWhereBuilder.cs b/src/bnhtrade.Core/Data/Database/SqlWhereBuilder.cs index ea498f0..20eeb7d 100644 --- a/src/bnhtrade.Core/Data/Database/SqlWhereBuilder.cs +++ b/src/bnhtrade.Core/Data/Database/SqlWhereBuilder.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; -using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/DeleteSkuTransaction.cs b/src/bnhtrade.Core/Data/Database/Stock/DeleteSkuTransaction.cs index b6d320d..0b87dbd 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/DeleteSkuTransaction.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/DeleteSkuTransaction.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransaction.cs b/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransaction.cs index c3e9023..781d8ff 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransaction.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransaction.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransactionType.cs b/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransactionType.cs index 4a6236f..61a0b5d 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransactionType.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/InsertSkuTransactionType.cs @@ -1,5 +1,5 @@ using System; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Transactions; namespace bnhtrade.Core.Data.Database.Stock diff --git a/src/bnhtrade.Core/Data/Database/Stock/JournalCrud.cs b/src/bnhtrade.Core/Data/Database/Stock/JournalCrud.cs index 65b0dfe..06785a7 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/JournalCrud.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/JournalCrud.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransaction.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransaction.cs index ec62928..040f02c 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransaction.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransaction.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransactionType.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransactionType.cs index df2d71d..671c21f 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransactionType.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadSkuTransactionType.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusBalance.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusBalance.cs index 93ae836..e65ab1c 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusBalance.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusBalance.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTransaction.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTransaction.cs index b078322..3bec5de 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTransaction.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTransaction.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTypeBalance.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTypeBalance.cs index 69c9463..6789bd9 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTypeBalance.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadStatusTypeBalance.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/ReadStockId.cs b/src/bnhtrade.Core/Data/Database/Stock/ReadStockId.cs index a17e60f..0854aa2 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/ReadStockId.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/ReadStockId.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/Stock/UpdateSkuTransaction.cs b/src/bnhtrade.Core/Data/Database/Stock/UpdateSkuTransaction.cs index 09f835a..06d765d 100644 --- a/src/bnhtrade.Core/Data/Database/Stock/UpdateSkuTransaction.cs +++ b/src/bnhtrade.Core/Data/Database/Stock/UpdateSkuTransaction.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Data/Database/UnitOfWork/Connection.cs b/src/bnhtrade.Core/Data/Database/UnitOfWork/Connection.cs index b077cce..e4b298c 100644 --- a/src/bnhtrade.Core/Data/Database/UnitOfWork/Connection.cs +++ b/src/bnhtrade.Core/Data/Database/UnitOfWork/Connection.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Configuration; namespace bnhtrade.Core.Data.Database.UnitOfWork diff --git a/src/bnhtrade.Core/Data/Xero/SalesInvoice.cs b/src/bnhtrade.Core/Data/Xero/SalesInvoice.cs index 0caf1ee..d7cfd02 100644 --- a/src/bnhtrade.Core/Data/Xero/SalesInvoice.cs +++ b/src/bnhtrade.Core/Data/Xero/SalesInvoice.cs @@ -1,7 +1,6 @@ using bnhtrade.Core.Test.Amazon.SP_API; using CsvHelper; using CsvHelper.Configuration.Attributes; -using Microsoft.VisualBasic.Logging; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; diff --git a/src/bnhtrade.Core/Logic/Account/CurrencyService.cs b/src/bnhtrade.Core/Logic/Account/CurrencyService.cs index e58b1fb..e35bf18 100644 --- a/src/bnhtrade.Core/Logic/Account/CurrencyService.cs +++ b/src/bnhtrade.Core/Logic/Account/CurrencyService.cs @@ -4,7 +4,7 @@ using FikaAmazonAPI.ConstructFeed.Messages; using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Globalization; using System.Linq; using System.Text; @@ -268,45 +268,6 @@ namespace bnhtrade.Core.Logic.Account } } - private DateTime GetHmrcMaxPeriodAvaible() - { - // HMRC monthly exchange rates are published on the penultimate Thursday of the month before - // For some leeeeeeeeway we'll use the penultimate Friday - - // find penultimate Friday for current month - var ukTimeNow = new Logic.Utilities.DateTime().ConvertUtcToUk(DateTime.UtcNow); - var monthDayCount = DateTime.DaysInMonth(ukTimeNow.Year, ukTimeNow.Month); - var thisMonthPenultimateFriday = DateTime.SpecifyKind(new DateTime(ukTimeNow.Year, ukTimeNow.Month, monthDayCount), DateTimeKind.Unspecified); - int count = 0; - int fridayCount = 0; - while (count != 15) - { - if (thisMonthPenultimateFriday.DayOfWeek == DayOfWeek.Friday) - { - fridayCount++; - if (fridayCount == 2) - { - break; - } - } - thisMonthPenultimateFriday = thisMonthPenultimateFriday.AddDays(-1); - count++; - } - - if (count == 15) - { - throw new Exception("Something went wrong here ErrorID:ef7f5d8f-0f7b-4014-aa65-421ecd5d7367"); - } - - var mostRecentPeriodAvaible = DateTime.SpecifyKind(new DateTime(ukTimeNow.Year, ukTimeNow.Month, 1), DateTimeKind.Unspecified); ; - if (ukTimeNow >= thisMonthPenultimateFriday) - { - mostRecentPeriodAvaible = mostRecentPeriodAvaible.AddMonths(1); - } - - return mostRecentPeriodAvaible; - } - public void UpdateHmrcExchageRates() { Init(); @@ -381,16 +342,48 @@ namespace bnhtrade.Core.Logic.Account } // check if retrival from hmrc is required - var hmrcMaxMonthAvaible = GetHmrcMaxPeriodAvaible(); - if (hmrcMonthToRetrive.Year == hmrcMaxMonthAvaible.Year && hmrcMonthToRetrive.Month > hmrcMaxMonthAvaible.Month) + // find penultimate Friday for current month + var ukTimeNow = new Logic.Utilities.DateTime().ConvertUtcToUk(DateTime.UtcNow); + var monthDayCount = DateTime.DaysInMonth(ukTimeNow.Year, ukTimeNow.Month); + var thisMonthPenultimateFriday = DateTime.SpecifyKind(new DateTime(ukTimeNow.Year, ukTimeNow.Month, monthDayCount), DateTimeKind.Unspecified); + int dayCount = 0; + int fridayCount = 0; + while (dayCount < 15) + { + if (thisMonthPenultimateFriday.DayOfWeek == DayOfWeek.Friday) + { + fridayCount++; + if (fridayCount == 2) + { + break; + } + } + thisMonthPenultimateFriday = thisMonthPenultimateFriday.AddDays(-1); + dayCount++; + } + + if (dayCount == 15) + { + throw new Exception("Something went wrong here ErrorID:ef7f5d8f-0f7b-4014-aa65-421ecd5d7367"); + } + + var mostRecentPeriodAvaible = DateTime.SpecifyKind(new DateTime(ukTimeNow.Year, ukTimeNow.Month, 1), DateTimeKind.Unspecified); ; + if (ukTimeNow >= thisMonthPenultimateFriday) + { + mostRecentPeriodAvaible = mostRecentPeriodAvaible.AddMonths(1); + } + + if (hmrcMonthToRetrive.Year >= mostRecentPeriodAvaible.Year && hmrcMonthToRetrive.Month > mostRecentPeriodAvaible.Month) { // nothing to retrive - _log.LogInformation("Exchange rates curretly up to date, exiting."); + int days = (thisMonthPenultimateFriday - DateTime.UtcNow).Days; + _log.LogInformation($"Exchange rates up to date, next HMRC update in {days} days for {hmrcMonthToRetrive.ToString("MMM yyyy")}."); + _log.LogInformation($"Stopping update database HMRC exchange rates."); return; } // get info from hmrc and insert data in db - while (hmrcMonthToRetrive <= hmrcMaxMonthAvaible) + while (hmrcMonthToRetrive <= mostRecentPeriodAvaible) { count = 0; diff --git a/src/bnhtrade.Core/Logic/Account/GetTaxCodeInfo.cs b/src/bnhtrade.Core/Logic/Account/GetTaxCodeInfo.cs index cc900e3..74571c9 100644 --- a/src/bnhtrade.Core/Logic/Account/GetTaxCodeInfo.cs +++ b/src/bnhtrade.Core/Logic/Account/GetTaxCodeInfo.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using System.Windows.Forms; namespace bnhtrade.Core.Logic.Account { diff --git a/src/bnhtrade.Core/Logic/Account/Journal.cs b/src/bnhtrade.Core/Logic/Account/Journal.cs index 8cd434b..a386cdd 100644 --- a/src/bnhtrade.Core/Logic/Account/Journal.cs +++ b/src/bnhtrade.Core/Logic/Account/Journal.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Logic/Export/AccountInvoice/AmazonSettlement.cs b/src/bnhtrade.Core/Logic/Export/AccountInvoice/AmazonSettlement.cs index f80735e..eff1b21 100644 --- a/src/bnhtrade.Core/Logic/Export/AccountInvoice/AmazonSettlement.cs +++ b/src/bnhtrade.Core/Logic/Export/AccountInvoice/AmazonSettlement.cs @@ -173,10 +173,12 @@ namespace bnhtrade.Core.Logic.Export.AccountInvoice null, new List { settlementList[i].MarketPlace.GetMarketplaceUrl() }, true, true, 1); if (completedSettlement.Any()) { - if (completedSettlement.FirstOrDefault().Value.EndDate != settlementList[i].StartDate) + var tempEndDate = completedSettlement.FirstOrDefault().Value.EndDate; + + if (tempEndDate != settlementList[i].StartDate) { - string error = (settlementList[i].StartDate - settlementList[i - 1].EndDate).Days + " day gap in " - + settlementList[i].MarketPlace.GetMarketplaceUrl() + " settlement data (" + settlementList[i - 1].EndDate.ToString("dd MMM yyyy") + string error = (settlementList[i].StartDate - tempEndDate).Days + " day gap in " + + settlementList[i].MarketPlace.GetMarketplaceUrl() + " settlement data (" + tempEndDate.ToString("dd MMM yyyy") + " to " + settlementList[i].StartDate.ToString("dd MMM yyyy") + "). Ensure all settlement reports have been imported."; ErrorMessage = error; _log.LogError("Cancelled processing of Amazon settlement data into invoice export queue: " + error); diff --git a/src/bnhtrade.Core/Logic/Sku/Price/FbaPricing.cs b/src/bnhtrade.Core/Logic/Sku/Price/FbaPricing.cs index 18e25ec..c131872 100644 --- a/src/bnhtrade.Core/Logic/Sku/Price/FbaPricing.cs +++ b/src/bnhtrade.Core/Logic/Sku/Price/FbaPricing.cs @@ -1,7 +1,7 @@ using CsvHelper; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Globalization; using System.IO; using System.Linq; diff --git a/src/bnhtrade.Core/Logic/Sku/Price/UpdateRepricingValues.cs b/src/bnhtrade.Core/Logic/Sku/Price/UpdateRepricingValues.cs index 5ea3010..6f63b2e 100644 --- a/src/bnhtrade.Core/Logic/Sku/Price/UpdateRepricingValues.cs +++ b/src/bnhtrade.Core/Logic/Sku/Price/UpdateRepricingValues.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Transactions; namespace bnhtrade.Core.Logic.Sku.Price diff --git a/src/bnhtrade.Core/Logic/Sku/SkuService.cs b/src/bnhtrade.Core/Logic/Sku/SkuService.cs index 2ad1696..08e31b0 100644 --- a/src/bnhtrade.Core/Logic/Sku/SkuService.cs +++ b/src/bnhtrade.Core/Logic/Sku/SkuService.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; using System.Transactions; -using System.Windows.Forms; namespace bnhtrade.Core.Logic.Sku { diff --git a/src/bnhtrade.Core/Logic/Stock/SkuTransactionCrud.cs b/src/bnhtrade.Core/Logic/Stock/SkuTransactionCrud.cs index 4e8637d..790353f 100644 --- a/src/bnhtrade.Core/Logic/Stock/SkuTransactionCrud.cs +++ b/src/bnhtrade.Core/Logic/Stock/SkuTransactionCrud.cs @@ -1,7 +1,7 @@ using bnhtrade.Core.Data.Database; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading; diff --git a/src/bnhtrade.Core/Logic/Stock/SkuTransactionImport.cs b/src/bnhtrade.Core/Logic/Stock/SkuTransactionImport.cs index 1b1faef..318750f 100644 --- a/src/bnhtrade.Core/Logic/Stock/SkuTransactionImport.cs +++ b/src/bnhtrade.Core/Logic/Stock/SkuTransactionImport.cs @@ -3,7 +3,7 @@ using bnhtrade.Core.Model.Stock; using FikaAmazonAPI.AmazonSpApiSDK.Models.Restrictions; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Logic/Stock/SkuTransactionTypeCrud.cs b/src/bnhtrade.Core/Logic/Stock/SkuTransactionTypeCrud.cs index 62e9352..163afa4 100644 --- a/src/bnhtrade.Core/Logic/Stock/SkuTransactionTypeCrud.cs +++ b/src/bnhtrade.Core/Logic/Stock/SkuTransactionTypeCrud.cs @@ -1,7 +1,7 @@ using bnhtrade.Core.Data.Database; using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; diff --git a/src/bnhtrade.Core/Model/Account/Journal.cs b/src/bnhtrade.Core/Model/Account/Journal.cs index 6b69896..b9d37d4 100644 --- a/src/bnhtrade.Core/Model/Account/Journal.cs +++ b/src/bnhtrade.Core/Model/Account/Journal.cs @@ -1,5 +1,4 @@ -using Microsoft.VisualBasic; -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; diff --git a/src/bnhtrade.Core/Model/Credentials/bnhtradeDB.cs b/src/bnhtrade.Core/Model/Credentials/bnhtradeDB.cs index c8140ab..5fed5f3 100644 --- a/src/bnhtrade.Core/Model/Credentials/bnhtradeDB.cs +++ b/src/bnhtrade.Core/Model/Credentials/bnhtradeDB.cs @@ -28,7 +28,7 @@ namespace bnhtrade.Core.Model.Credentials { return "Data Source=" + DataSource + ";Initial Catalog=" + InitialCatalog + ";Persist Security Info=" + PersistSecurityInfo.ToString() + ";User ID=" + UserId + ";Password=" + UserPassword + ";MultipleActiveResultSets=" + MultipleActiveResultSets.ToString() - + ";Connect Timeout=" + ConnectionTimeout + ";Encrypt=True;TrustServerCertificate=True"; + + ";Connect Timeout=" + ConnectionTimeout + ";Encrypt=True"; } } diff --git a/src/bnhtrade.Core/Test/Account/Account.cs b/src/bnhtrade.Core/Test/Account/Account.cs index b58226a..7454605 100644 --- a/src/bnhtrade.Core/Test/Account/Account.cs +++ b/src/bnhtrade.Core/Test/Account/Account.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using System.Windows.Forms.Design; using System.Xml; using System.Xml.Linq; diff --git a/src/bnhtrade.Core/bnhtrade.Core.csproj b/src/bnhtrade.Core/bnhtrade.Core.csproj index ee5c558..329a7cf 100644 --- a/src/bnhtrade.Core/bnhtrade.Core.csproj +++ b/src/bnhtrade.Core/bnhtrade.Core.csproj @@ -1,10 +1,8 @@  - net8.0-windows + net8.0 Library false - true - true @@ -40,6 +38,7 @@ + diff --git a/src/bnhtrade.ScheduledTasks/bnhtrade.ScheduledTasks.csproj b/src/bnhtrade.ScheduledTasks/bnhtrade.ScheduledTasks.csproj index 29c1d33..204280e 100644 --- a/src/bnhtrade.ScheduledTasks/bnhtrade.ScheduledTasks.csproj +++ b/src/bnhtrade.ScheduledTasks/bnhtrade.ScheduledTasks.csproj @@ -1,6 +1,6 @@  - net8.0-windows + net8.0 Exe bnhtrade_Scheduled_Tasks bnhtradeScheduledTasks