| | |
| | | PalletNo = model.PalletNo, |
| | | PalletNo2 = "", |
| | | PalletNo3 = "", |
| | | Qty = 0, |
| | | Qty = model.SkuQty, |
| | | FullQty = pNum, |
| | | Status = "0", |
| | | Type = "0", |
| | |
| | | #region 箱码信息 |
| | | var msgStr = $"箱号为{model.BoxNo}"; |
| | | var boxInfoList = new List<BllBoxInfo>(); |
| | | //首箱 |
| | | var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo.Count == 0) |
| | | if (model.SkuQty == 0) |
| | | { |
| | | throw new Exception("-1:箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo); |
| | | //是否连续组托 |
| | | if (model.IsContinue == "1") |
| | | { |
| | | //尾箱 |
| | | var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo2.Count == 0) |
| | | //首箱 |
| | | var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo.Count == 0) |
| | | { |
| | | throw new Exception("-1:尾箱码信息不存在!"); |
| | | throw new Exception("-1:箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo2); |
| | | var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; |
| | | var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); |
| | | boxInfoList.AddRange(list); |
| | | msgStr += $"尾箱号为{model.TailBoxNo}"; |
| | | boxInfoList.AddRange(boxInfo); |
| | | //是否连续组托 |
| | | if (model.IsContinue == "1") |
| | | { |
| | | //尾箱 |
| | | var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo2.Count == 0) |
| | | { |
| | | throw new Exception("-1:尾箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo2); |
| | | var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; |
| | | var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); |
| | | boxInfoList.AddRange(list); |
| | | msgStr += $"尾箱号为{model.TailBoxNo}"; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | // 更改箱支关系表 |
| | | decimal factQty = 0.00m;//托盘总数量 |
| | | var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList(); |
| | | foreach (var g in boxGroup) |
| | | if (model.SkuQty == 0) |
| | | { |
| | | var boxFullQty = 0;//箱内总数量 |
| | | foreach (var box in g) |
| | | var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList(); |
| | | foreach (var g in boxGroup) |
| | | { |
| | | if (box.BindNo != null && box.BindNo != 0) |
| | | var boxFullQty = 0;//箱内总数量 |
| | | foreach (var box in g) |
| | | { |
| | | continue; |
| | | if (box.BindNo != null && box.BindNo != 0) |
| | | { |
| | | continue; |
| | | } |
| | | //箱内物料批次与单据明细不符合 |
| | | if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo) |
| | | { |
| | | throw new Exception($"-1:{box.BoxNo}箱内物料及批次与单据不一致,请核实!"); |
| | | } |
| | | |
| | | box.ASNNo = model.AsnNo; |
| | | box.ASNDetailNo = model.AsnDetailId; |
| | | box.BindNo = bindId; |
| | | box.PalletNo = model.PalletNo; |
| | | box.Status = "1"; |
| | | box.CompleteTime = DateTime.Now; |
| | | box.UpdateTime = DateTime.Now; |
| | | box.UpdateUser = userId; |
| | | |
| | | factQty += box.Qty; |
| | | boxFullQty += box.Qty; |
| | | } |
| | | //箱内物料批次与单据明细不符合 |
| | | if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo) |
| | | if (boxFullQty > bNum) |
| | | { |
| | | throw new Exception($"-1:{box.BoxNo}箱内物料及批次与单据不一致,请核实!"); |
| | | throw new Exception($"绑定失败,{g.Key}箱码绑定数量大于该物品包装数量!"); |
| | | } |
| | | |
| | | box.ASNNo = model.AsnNo; |
| | | box.ASNDetailNo = model.AsnDetailId; |
| | | box.BindNo = bindId; |
| | | box.PalletNo = model.PalletNo; |
| | | box.Status = "1"; |
| | | box.CompleteTime = DateTime.Now; |
| | | box.UpdateTime = DateTime.Now; |
| | | box.UpdateUser = userId; |
| | | |
| | | factQty += box.Qty; |
| | | boxFullQty += box.Qty; |
| | | } |
| | | if (boxFullQty > bNum) |
| | | { |
| | | throw new Exception($"绑定失败,{g.Key}箱码绑定数量大于该物品包装数量!"); |
| | | } |
| | | Db.Updateable(boxInfoList).ExecuteCommand(); |
| | | |
| | | // 更新托盘绑定表 |
| | | bind.Qty += factQty; |
| | | } |
| | | Db.Updateable(boxInfoList).ExecuteCommand(); |
| | | |
| | | // 更新托盘绑定表 |
| | | bind.Qty += factQty; |
| | | if (bind.FullQty < bind.Qty) |
| | | { |
| | | throw new Exception("托盘绑定数量已超出该物料包装数量"); |
| | |
| | | |
| | | // 更改入库单明细已组数量 |
| | | var sqlString = string.Empty; |
| | | sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';"; |
| | | if (factQty == 0) |
| | | { |
| | | sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{bind.Qty}' where id = '{model.AsnDetailId}';"; |
| | | } |
| | | else |
| | | { |
| | | sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';"; |
| | | } |
| | | |
| | | Db.Ado.ExecuteCommand(sqlString); |
| | | |
| | | // 更改入库单及入库明细状态 |