Various bug fixs and improvements to stock SKU reconciliation

This commit is contained in:
Bobbie Hodgetts
2020-10-05 22:40:55 +01:00
parent cc2534a3e1
commit ddd2b62743
25 changed files with 1026 additions and 467 deletions
@@ -10,7 +10,8 @@ namespace bnhtrade.Core.Data.Database.Stock
{
public class ReadSkuTransaction : Connection
{
private Data.Database.WhereBuilder whereBuilder = new WhereBuilder();
private Data.Database.SqlWhereBuilder whereBuilder = new SqlWhereBuilder();
private List<int> transactionIdList = new List<int>();
public ReadSkuTransaction(string sqlConnectionString) : base(sqlConnectionString)
{
@@ -22,7 +23,7 @@ namespace bnhtrade.Core.Data.Database.Stock
/// </summary>
public void Init()
{
whereBuilder = new WhereBuilder();
whereBuilder = new SqlWhereBuilder();
IsReconciled = null;
StockTransactionTypeName = null;
StockTransactionTypeCode = null;
@@ -107,34 +108,44 @@ namespace bnhtrade.Core.Data.Database.Stock
INNER JOIN tblSku ON tblStockSkuTransaction.SkuID = tblSku.skuSkuID
WHERE 1=1 ";
if (IsReconciled != null)
if (transactionIdList.Any())
{
parameters.Add("@transactionIdList", this.transactionIdList);
sql += @"
AND tblStockSkuTransaction.StockSkuTransactionID IN @transactionIdList ";
}
else
{
if (IsReconciled != null)
{
sql += @"
AND tblStockSkuTransaction.IsProcessed =";
if (IsReconciled.GetValueOrDefault())
{
sql += " 1 ";
if (IsReconciled.GetValueOrDefault())
{
sql += " 1 ";
}
else
{
sql += " 0 ";
}
}
else
{
sql += " 0 ";
}
}
if (StockTransactionTypeName != null && StockTransactionTypeName.Any())
{
parameters.Add("@stockTransactionTypeName", StockTransactionTypeName);
if (StockTransactionTypeName != null && StockTransactionTypeName.Any())
{
parameters.Add("@stockTransactionTypeName", StockTransactionTypeName);
sql += @"
sql += @"
AND tblStockSkuTransactionType.TypeName IN @stockTransactionTypeName ";
}
}
if (StockTransactionTypeCode != null && StockTransactionTypeCode.Any())
{
parameters.Add("@stockTransactionTypeCode", StockTransactionTypeCode);
if (StockTransactionTypeCode != null && StockTransactionTypeCode.Any())
{
parameters.Add("@stockTransactionTypeCode", StockTransactionTypeCode);
sql += @"
sql += @"
AND tblStockSkuTransactionType.TypeCode IN @stockTransactionTypeCode ";
}
}
sql += @"
@@ -158,5 +169,23 @@ namespace bnhtrade.Core.Data.Database.Stock
return resultList;
}
/// <summary>
/// Get Stock SKU Transaction by ID
/// </summary>
/// <param name="transactionIdList"></param>
/// <returns>List of SkuTransaction</returns>
public List<Model.Stock.SkuTransaction> Read(List<int> transactionIdList)
{
var returnList = new List<Model.Stock.SkuTransaction>();
if (!transactionIdList.Any())
{
return returnList;
}
this.transactionIdList = transactionIdList;
returnList = Read();
this.transactionIdList = new List<int>();
return returnList;
}
}
}