|
|
@ -84,9 +84,12 @@ namespace BWP.Web.Pages.Overlays |
|
|
|
|
|
|
|
|
public long? AssignBillID { get; set; } |
|
|
public long? AssignBillID { get; set; } |
|
|
public int? PickType { get; set; } |
|
|
public int? PickType { get; set; } |
|
|
|
|
|
|
|
|
public string RightProduct_Batch { get; set; } |
|
|
public string RightProduct_Batch { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
public string CeBarCode { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
public DateTime? PickTime { get; set; } |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private class BarCodeData |
|
|
private class BarCodeData |
|
|
@ -109,7 +112,7 @@ namespace BWP.Web.Pages.Overlays |
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(uploadBarCode), DQCondition.EQ(left, "BarCode", uploadBarCode, "BarCode")); |
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(uploadBarCode), DQCondition.EQ(left, "BarCode", uploadBarCode, "BarCode")); |
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(right), DQCondition.EQ(left, "ID", right, "PackageID")); |
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(right), DQCondition.EQ(left, "ID", right, "PackageID")); |
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(left, "Goods_ID", goods, "ID")); |
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(left, "Goods_ID", goods, "ID")); |
|
|
var arr = new string[] { "Goods_ID", "Goods_Name", "Goods_Code", "Weight", "InStoreTime", "Store_ID", "Store_Name", "IsAssignGoods", "AssignBillID", "PickType" }; |
|
|
|
|
|
|
|
|
var arr = new string[] { "Goods_ID", "Goods_Name", "Goods_Code", "Weight", "InStoreTime", "Store_ID", "Store_Name", "IsAssignGoods", "AssignBillID", "PickType","BarCode" }; |
|
|
foreach (var f in arr) |
|
|
foreach (var f in arr) |
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.EQ(left, "BarType", 3), DQExpression.Field(right, f), DQExpression.Field(left, f)), f)); |
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.EQ(left, "BarType", 3), DQExpression.Field(right, f), DQExpression.Field(left, f)), f)); |
|
|
query.Columns.Add(DQSelectColumn.Field("PackageWeight", goods)); |
|
|
query.Columns.Add(DQSelectColumn.Field("PackageWeight", goods)); |
|
|
@ -117,6 +120,7 @@ namespace BWP.Web.Pages.Overlays |
|
|
query.Columns.Add(DQSelectColumn.Field("Product_Batch", left)); |
|
|
query.Columns.Add(DQSelectColumn.Field("Product_Batch", left)); |
|
|
query.Columns.Add(DQSelectColumn.Field("IsOpen", left)); |
|
|
query.Columns.Add(DQSelectColumn.Field("IsOpen", left)); |
|
|
query.Columns.Add(DQSelectColumn.Field("Product_Batch", right)); |
|
|
query.Columns.Add(DQSelectColumn.Field("Product_Batch", right)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("BarCode", uploadBarCode)); |
|
|
var list = new List<MinSaelBarCode>(); |
|
|
var list = new List<MinSaelBarCode>(); |
|
|
using (var contex = new TransactionContext()) |
|
|
using (var contex = new TransactionContext()) |
|
|
{ |
|
|
{ |
|
|
@ -125,7 +129,7 @@ namespace BWP.Web.Pages.Overlays |
|
|
while (reader.Read()) |
|
|
while (reader.Read()) |
|
|
{ |
|
|
{ |
|
|
decimal? packageWeight = null; |
|
|
decimal? packageWeight = null; |
|
|
var num = (Money<decimal>?)reader[10]; |
|
|
|
|
|
|
|
|
var num = (Money<decimal>?)reader[11]; |
|
|
if (num != null) |
|
|
if (num != null) |
|
|
{ |
|
|
{ |
|
|
packageWeight = num.Value.Value; |
|
|
packageWeight = num.Value.Value; |
|
|
@ -142,21 +146,47 @@ namespace BWP.Web.Pages.Overlays |
|
|
IsAssignGoods = (bool?)reader[7], |
|
|
IsAssignGoods = (bool?)reader[7], |
|
|
AssignBillID = (long?)reader[8], |
|
|
AssignBillID = (long?)reader[8], |
|
|
PickType = (int?)reader[9], |
|
|
PickType = (int?)reader[9], |
|
|
|
|
|
BarCode = (string)reader[10], |
|
|
PackageWeight = packageWeight, |
|
|
PackageWeight = packageWeight, |
|
|
PackageID = (long?)reader[11], |
|
|
|
|
|
Product_Batch = (string)reader[12], |
|
|
|
|
|
IsOpen = (bool?)reader[13], |
|
|
|
|
|
RightProduct_Batch = (string)reader[14], |
|
|
|
|
|
|
|
|
PackageID = (long?)reader[12], |
|
|
|
|
|
Product_Batch = (string)reader[13], |
|
|
|
|
|
IsOpen = (bool?)reader[14], |
|
|
|
|
|
RightProduct_Batch = (string)reader[15], |
|
|
|
|
|
CeBarCode = (string)reader[16], |
|
|
}; |
|
|
}; |
|
|
list.Add(obj); |
|
|
list.Add(obj); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
var groups = list.GroupBy(x => x.BarCode); |
|
|
|
|
|
var resultlist = new List<MinSaelBarCode>(); |
|
|
|
|
|
//既扫了箱码又单扫了箱里面的子码,去除单扫箱里面子码的情况
|
|
|
|
|
|
foreach (var group in groups) |
|
|
|
|
|
{ |
|
|
|
|
|
if(group.Count() > 1) |
|
|
|
|
|
{ |
|
|
|
|
|
var result = group.Where(x => x.PackageID != null); |
|
|
|
|
|
if (result.Count() > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
resultlist.Add(result.First()); |
|
|
|
|
|
}else |
|
|
|
|
|
{ |
|
|
|
|
|
resultlist.Add(group.First()); |
|
|
|
|
|
} |
|
|
|
|
|
}else |
|
|
|
|
|
{ |
|
|
|
|
|
resultlist.Add(group.First()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
var weightList = new List<BarCodeData>(); |
|
|
var weightList = new List<BarCodeData>(); |
|
|
var results = list.Where(x => x.Goods_ID != null && x.Store_ID == Dmo.Store_ID); |
|
|
|
|
|
|
|
|
//当前仓库已入库的条码
|
|
|
|
|
|
var results = resultlist.Where(x => x.Goods_ID != null && x.Store_ID == Dmo.Store_ID); |
|
|
if (results.Count() > 0) |
|
|
if (results.Count() > 0) |
|
|
{ |
|
|
{ |
|
|
var packageGroups = results.Where(x=>x.PackageID!=null).GroupBy(x => x.PackageID); |
|
|
|
|
|
|
|
|
var barCodes = results.Where(x => x.PackageID != null); |
|
|
|
|
|
var unPackage = barCodes.Where(x => x.IsOpen == true || x.PickType != null); |
|
|
|
|
|
var items = barCodes.Where(x => !unPackage.Any(y => y.BarCode == x.BarCode)); |
|
|
|
|
|
var packageGroups = items.GroupBy(x => x.PackageID); |
|
|
foreach (var package in packageGroups) |
|
|
foreach (var package in packageGroups) |
|
|
{ |
|
|
{ |
|
|
var datas = package.Where(x => x.PackageWeight != null); |
|
|
var datas = package.Where(x => x.PackageWeight != null); |
|
|
@ -172,8 +202,8 @@ namespace BWP.Web.Pages.Overlays |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
var items = results.Where(x => x.PackageID == null); |
|
|
|
|
|
foreach (var item in items) |
|
|
|
|
|
|
|
|
var items2 = results.Where(x => x.PackageID == null && x.PickType==null); |
|
|
|
|
|
foreach (var item in items2) |
|
|
{ |
|
|
{ |
|
|
weightList.Add(new BarCodeData { Goods_ID = item.Goods_ID, Product_Batch = item.Product_Batch, Weight = item.Weight, Num = 1 }); |
|
|
weightList.Add(new BarCodeData { Goods_ID = item.Goods_ID, Product_Batch = item.Product_Batch, Weight = item.Weight, Num = 1 }); |
|
|
} |
|
|
} |
|
|
|