| | |
| | | } |
| | | } |
| | | |
| | | //根据入库单号获取入库总单信息 |
| | | public List<BllArrivalNotice> GetArrivalNotice(ArrivalNoticeVm model) |
| | | { |
| | | string sqlString = string.Empty; |
| | | try |
| | | { |
| | | sqlString = $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isdel='0' "; |
| | | var modelList = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString); |
| | | |
| | | return modelList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | // 根据单据号获取单据明细列表 |
| | | public List<ArrivalNoticeDetailDto> GetArrivalNoticeDetails(ArrivalNoticeVm model) |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="locatNo">储位编码</param> |
| | | /// <returns></returns> |
| | | public string CheckLocatNo(string locatNo) |
| | | public string CheckLocatNo(string locatNo) |
| | | { |
| | | try |
| | | { |
| | |
| | | { |
| | | model.LotNo = model.LotNo.Substring(indexOfDash + 1); |
| | | } |
| | | else |
| | | { |
| | | model.LotNo = ""; |
| | | } |
| | | } |
| | | //判断物料数量是否为0 为0判断箱码信息 不为0继续 |
| | | if (model.SkuQty == 0) |
| | |
| | | |
| | | } |
| | | } |
| | | int isDeposit = 0; |
| | | //判断总单单据是否为寄存单据 |
| | | if (notice.Type == "7") |
| | | { |
| | | isDeposit = 1; |
| | | } |
| | | if (isDeposit == 1) |
| | | { |
| | | //判断总单备注是否为空 |
| | | if (!string.IsNullOrWhiteSpace(notice.Demo)) |
| | | { |
| | | //分割总单备注及托盘备注 |
| | | var noticeDemo = notice.Demo.Split('、'); //总单备注 |
| | | var palletDemo = model.Demo.Split('、'); //托盘备注 |
| | | |
| | | //循环托盘备注 |
| | | foreach (var itemPallet in palletDemo) |
| | | { |
| | | int isDemo = 0; |
| | | //循环总单备注 |
| | | foreach (var itemNotice in noticeDemo) |
| | | { |
| | | //判断是否有相同备注 |
| | | if (itemPallet == itemNotice) |
| | | { |
| | | isDemo = 1; |
| | | break; |
| | | } |
| | | } |
| | | if (isDemo == 0) |
| | | { |
| | | throw new Exception("-1:总单备注与托盘备注不符,请核实后重新绑定!"); |
| | | } |
| | | } |
| | | } |
| | | else if (string.IsNullOrWhiteSpace(notice.Demo)) |
| | | { |
| | | //判断托盘备注是否为空 |
| | | if (!string.IsNullOrWhiteSpace(model.Demo)) |
| | | { |
| | | throw new Exception("-1:请添加总单备注后输入托盘备注!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | Db.BeginTran(); |
| | |
| | | var package = Db.Queryable<SysPackag>().Where(m => m.IsDel == "0"); |
| | | var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo); |
| | | var pack = package.First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo); |
| | | if (pack == null) |
| | | { |
| | | throw new Exception("-1:获取物料包装失败,请核实!"); |
| | | } |
| | | |
| | | var pNum = 0;//托盘物品数量 |
| | | var bNum = 0;//箱码物品数量 |
| | | if (pack.L5Num.HasValue) |
| | | |
| | | //判断是否为寄存物料 |
| | | if (isDeposit == 0) |
| | | { |
| | | pNum = (int)pack.L5Num; |
| | | bNum = (int)pack.L4Num; |
| | | } |
| | | else if (pack.L4Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L4Num; |
| | | bNum = (int)pack.L3Num; |
| | | } |
| | | else if (pack.L3Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L3Num; |
| | | bNum = (int)pack.L2Num; |
| | | } |
| | | else if (pack.L2Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L2Num; |
| | | bNum = (int)pack.L1Num; |
| | | } |
| | | else if (pack.L1Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L1Num; |
| | | bNum = (int)pack.L1Num; |
| | | } |
| | | if (pNum == 0 || bNum == 0) |
| | | { |
| | | throw new Exception($"绑定失败,{detail.SkuNo}物品包装未找到!"); |
| | | if (pack == null) |
| | | { |
| | | throw new Exception("-1:获取物料包装失败,请核实!"); |
| | | } |
| | | if (pack.L5Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L5Num; |
| | | bNum = (int)pack.L4Num; |
| | | } |
| | | else if (pack.L4Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L4Num; |
| | | bNum = (int)pack.L3Num; |
| | | } |
| | | else if (pack.L3Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L3Num; |
| | | bNum = (int)pack.L2Num; |
| | | } |
| | | else if (pack.L2Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L2Num; |
| | | bNum = (int)pack.L1Num; |
| | | } |
| | | else if (pack.L1Num.HasValue) |
| | | { |
| | | pNum = (int)pack.L1Num; |
| | | bNum = (int)pack.L1Num; |
| | | } |
| | | if (pNum == 0 || bNum == 0) |
| | | { |
| | | throw new Exception($"绑定失败,{detail.SkuNo}物品包装未找到!"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | |
| | | BitPalletMark = "1", |
| | | IsBale = "0", |
| | | IsBelt = "0", |
| | | CreateUser = userId |
| | | CreateUser = userId, |
| | | Demo = model.Demo, |
| | | |
| | | }; |
| | | if (model.SkuQty > pNum) |
| | | if (model.SkuQty > pNum && isDeposit == 0) |
| | | { |
| | | throw new Exception($"绑定失败,{model.PalletNo}托盘绑定数量大于该物品托盘包装数量!"); |
| | | } |
| | |
| | | // 更新托盘绑定表 |
| | | bind.Qty += factQty; |
| | | } |
| | | if (bind.FullQty < bind.Qty) |
| | | if (bind.FullQty < bind.Qty && isDeposit == 0) |
| | | { |
| | | throw new Exception("托盘绑定数量已超出该物料包装数量"); |
| | | } |
| | |
| | | { |
| | | bind.BitPalletMark = "0"; |
| | | } |
| | | if (bind.Qty > pNum) |
| | | if (bind.Qty > pNum && isDeposit == 0) |
| | | { |
| | | throw new Exception($"绑定失败,{bind.PalletNo}托盘绑定数量大于该物品托盘包装数量!"); |
| | | } |
| | |
| | | { |
| | | // 不贴码物料 无需验证箱码信息 |
| | | } |
| | | else |
| | | else |
| | | { |
| | | //验证箱码信息是否存在 |
| | | if (boxInfoList.Count <= 0) |