diff --git a/B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs b/B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs index 1f75bc2..144b0a7 100644 --- a/B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs +++ b/B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs @@ -94,7 +94,8 @@ namespace BWP.Web.Pages.B3_QiLianMuGe.Dialogs query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(barCode, "PickTime"))); if (!string.IsNullOrEmpty(Request.QueryString["Store_ID"])) { - query.Where.Conditions.Add(DQCondition.Like(barCode, "Store_ID", Request.QueryString["Store_ID"])); + var storeId = long.Parse(Request.QueryString["Store_ID"].ToString()); + query.Where.Conditions.Add(DQCondition.EQ(rightBarCode, "Store_ID", storeId)); } var txtbarCode = mQueryContainer.GetControl("BarCode"); if (!txtbarCode.IsEmpty) @@ -169,7 +170,8 @@ namespace BWP.Web.Pages.B3_QiLianMuGe.Dialogs } if (!string.IsNullOrEmpty(Request.QueryString["Store_ID"])) { - query2.Where.Conditions.Add(DQCondition.EQ(barCode2, "Store_ID", long.Parse(Request.QueryString["Store_ID"].ToString()))); + var storeId = long.Parse(Request.QueryString["Store_ID"].ToString()); + query2.Where.Conditions.Add(DQCondition.EQ(barCode2, "Store_ID", storeId)); } query.UnionNext.Select = query2; query.UnionNext.Type = UnionType.Default; diff --git a/B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs b/B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs index ee714c9..a2fef86 100644 --- a/B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs +++ b/B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs @@ -84,9 +84,12 @@ namespace BWP.Web.Pages.Overlays public long? AssignBillID { get; set; } public int? PickType { get; set; } - public string RightProduct_Batch { get; set; } + public string CeBarCode { get; set; } + + public DateTime? PickTime { get; set; } + } 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.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")); - 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) 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)); @@ -117,6 +120,7 @@ namespace BWP.Web.Pages.Overlays query.Columns.Add(DQSelectColumn.Field("Product_Batch", left)); query.Columns.Add(DQSelectColumn.Field("IsOpen", left)); query.Columns.Add(DQSelectColumn.Field("Product_Batch", right)); + query.Columns.Add(DQSelectColumn.Field("BarCode", uploadBarCode)); var list = new List(); using (var contex = new TransactionContext()) { @@ -125,7 +129,7 @@ namespace BWP.Web.Pages.Overlays while (reader.Read()) { decimal? packageWeight = null; - var num = (Money?)reader[10]; + var num = (Money?)reader[11]; if (num != null) { packageWeight = num.Value.Value; @@ -142,21 +146,47 @@ namespace BWP.Web.Pages.Overlays IsAssignGoods = (bool?)reader[7], AssignBillID = (long?)reader[8], PickType = (int?)reader[9], + BarCode = (string)reader[10], 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); } } } + var groups = list.GroupBy(x => x.BarCode); + var resultlist = new List(); + //既扫了箱码又单扫了箱里面的子码,去除单扫箱里面子码的情况 + 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(); - 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) { - 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) { 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 }); }