| | |
| | | #region 拼托信息 |
| | | var sdId = 0; |
| | | bool isNew = false; |
| | | var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew); |
| | | |
| | | var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo); |
| | | |
| | | if (pinStockDetail != null) |
| | | { |
| | | if (palletNo != palletNoNew)//非整托拣货 |
| | | { |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id!= pinStockDetail.Id).ToList(); |
| | | if (pinStockDetails.Count(m=>m.SONo != notice.SONo) > 0) |
| | | { |
| | | throw Oops.Bah("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | } |
| | | } |
| | | |
| | | sdId = pinStockDetail.Id; |
| | | } |
| | | else |
| | |
| | | newPalletInfo.Status = "1"; |
| | | await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); |
| | | } |
| | | |
| | | var sd = new DataStockDetail(); |
| | | if (isNew) |
| | | { |
| | |
| | | sd.IsDel = "0"; |
| | | sd.CreateUser = userId; |
| | | sd.CreateTime = nowDate; |
| | | |
| | | sd.UDF5 = "1"; |
| | | //新增拼托库存明细信息 |
| | | sdId = await Db.Insertable(sd).ExecuteReturnIdentityAsync(); |
| | | } |
| | |
| | | |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | var locateStr = stockDetail.LocatNo; |
| | | //删除原托盘库存明细 |
| | | await Db.Deleteable(stockDetail).ExecuteCommandAsync(); |
| | | |
| | |
| | | } |
| | | pallet.Status = "0"; |
| | | await Db.Updateable(pallet).ExecuteCommandAsync(); |
| | | |
| | | //更改储位状态为空储位 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr); |
| | | if (locate != null) |
| | | { |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | stockDetail.SONo = soNo; |
| | | stockDetail.UDF5 = "1"; |
| | | await Db.Updateable(stockDetail).ExecuteCommandAsync(); |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | var biaoShi = "0";//0:整箱拣货、1:散支拣货、2:数量拣货 |
| | | List<DataBoxInfo> boxInfos; |
| | | var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); |
| | | if (await boxInfo.CountAsync() == 0) |
| | | { |
| | | throw Oops.Bah("未查询到该箱码的信息"); |
| | | } |
| | | |
| | | boxInfos = boxInfo.ToList(); |
| | | var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync(); |
| | | |
| | | //整箱拣货 |
| | |
| | | { |
| | | throw Oops.Bah("拣货数量不能大于箱内剩余待拣数量"); |
| | | } |
| | | boxInfos = await boxInfo.ToListAsync(); |
| | | |
| | | foreach (var item in boxInfos) |
| | | { |
| | | if (comDetailList.Any(m => m.BoxNo == item.BoxNo)) |
| | |
| | | comList.Add(completeDetail); |
| | | |
| | | //修改库存箱码明细 |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | } |
| | | |
| | | item.Status = "5";//箱支状态,0:未组托 1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货 |
| | | await Db.Updateable(item).ExecuteCommandAsync(); |
| | | |
| | |
| | | stockDetail.BitPalletMark = "1";//修改为零托标识 |
| | | stockDetail.Qty -= pickQty; |
| | | stockDetail.LockQty -= pickQty; |
| | | stockDetail.UDF5 = "1"; |
| | | if (stockDetail.Qty == stockDetail.LockQty) |
| | | { |
| | | stockDetail.Status = "2"; |
| | |
| | | |
| | | if (stockDetail.Qty <= 0) |
| | | { |
| | | var locateStr = stockDetail.LocatNo; |
| | | await Db.Deleteable(stockDetail).ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | await Db.Updateable(stockDetail).ExecuteCommandAsync(); |
| | | } |
| | | var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); |
| | | if (num2 <= 0) |
| | | { |
| | | |
| | | //改变托盘状态 |
| | | var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); |
| | | if (pallet == null) |
| | |
| | | } |
| | | pallet.Status = "0"; |
| | | await Db.Updateable(pallet).ExecuteCommandAsync(); |
| | | |
| | | //更改储位状态为空储位 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr); |
| | | if (locate != null) |
| | | { |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | await Db.Updateable(stockDetail).ExecuteCommandAsync(); |
| | | } |
| | | |
| | | //修改出库单明细拣货数量 |
| | | noticeDetail.CompleteQty += pickQty; |
| | | await Db.Updateable(noticeDetail).ExecuteCommandAsync(); |
| | |
| | | |
| | | #region 拼托信息 |
| | | bool isNew = false; |
| | | var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew); |
| | | var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo== stockDetail.SkuNo && m.LotNo == stockDetail.LotNo); |
| | | if (pinStockDetail != null) |
| | | { |
| | | if (palletNo != palletNoNew)//非整托拣货 |
| | | { |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList(); |
| | | if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0) |
| | | { |
| | | throw Oops.Bah("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | } |
| | | } |
| | | } |
| | |
| | | sd.IsDel = "0"; |
| | | sd.CreateUser = userId; |
| | | sd.CreateTime = nowDate; |
| | | sd.UDF5 = "1"; |
| | | |
| | | //新增拼托库存明细信息 |
| | | await Db.Insertable(sd).ExecuteReturnIdentityAsync(); |
| | |
| | | //修改拼托托盘库存明细 |
| | | pinStockDetail.Qty += int.Parse(PickQty); |
| | | pinStockDetail.LockQty += int.Parse(PickQty); |
| | | pinStockDetail.UDF5 = "1"; |
| | | await Db.Updateable(pinStockDetail).ExecuteCommandAsync(); |
| | | } |
| | | else |
| | | { |
| | | pinStockDetail.SONo = soNo; |
| | | pinStockDetail.UDF5 = "1"; |
| | | await Db.Updateable(pinStockDetail).ExecuteCommandAsync(); |
| | | } |
| | | } |
| | |
| | | await Db.Updateable(allot).ExecuteCommandAsync(); |
| | | |
| | | int isDel = 0; |
| | | |
| | | var locateStr = stockDetail.LocatNo; |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | //删除或修改库存明细 |
| | |
| | | |
| | | pallet.Status = "0"; |
| | | await Db.Updateable(pallet).ExecuteCommandAsync(); |
| | | |
| | | //更改储位状态为空储位 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locateStr); |
| | | if (locate!=null) |
| | | { |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | |
| | | } |
| | | |
| | | //修改出库单明细拣货数量 |
| | |
| | | throw Oops.Bah("托盘码为空,请输入托盘码"); |
| | | } |
| | | var palletInfo = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo); |
| | | if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") |
| | | { |
| | | throw Oops.Bah("该托盘还未出库"); |
| | | } |
| | | //if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") |
| | | //{ |
| | | // throw Oops.Bah("该托盘还未出库"); |
| | | //} |
| | | if (type == "1")//平库出库获取单据 |
| | | { |
| | | var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync(); |