| | |
| | | { |
| | | throw new Exception("参数异常,请检查状态是否为执行完成或订单关闭"); |
| | | } |
| | | //总库存信息 |
| | | var stockList = Db.Queryable<DataStock>().ToList(); |
| | | ////总库存信息 |
| | | //var stockList = Db.Queryable<DataStock>().ToList(); |
| | | //出库单明细 |
| | | var noticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList(); |
| | | |
| | |
| | | notice.UpdateTime = DateTime.Now; |
| | | Db.Updateable(notice).ExecuteCommand(); |
| | | |
| | | var skuList = noticeDetail.Select(d => d.SkuNo).ToList(); |
| | | var stocks = stockList.Where(s => skuList.Contains(s.SkuNo)).ToList(); |
| | | //var skuList = noticeDetail.Select(d => d.SkuNo).ToList(); |
| | | //var stocks = stockList.Where(s => skuList.Contains(s.SkuNo)).ToList(); |
| | | |
| | | List<string> sqlList = new List<string>(); |
| | | |
| | | foreach (var d in noticeDetail) |
| | | { |
| | | #region MyRegion |
| | | //更改库存明细锁定数量 |
| | | //var orders = dataContext.WmsExportOrder.Where(o => o.ExportDetailId == d.Id |
| | | // && o.ExportExecuteFlag != "4" && o.ExportExecuteFlag == "3" && o.pickingType == 0).ToList(); |
| | |
| | | //{ |
| | | // throw new Exception("当前单据明细中计划数量与拣货数量不符,请核实"); |
| | | //} |
| | | #region 库存表减去锁定数量与总数量(PDA拣货的时候已经减去数量了) |
| | | |
| | | //库存表减去锁定数量与总数量(PDA拣货的时候已经减去数量了) |
| | | /*var sq = stocks.Where(s => s.SkuNo == d.SkuNo); |
| | | if (!string.IsNullOrWhiteSpace(d.LotNo)) |
| | | { |
| | |
| | | Db.Updateable(st).UpdateColumns(it => new { it.Qty, it.LockQty }).ExecuteCommand(); |
| | | }*/ |
| | | #endregion |
| | | //实际拣货表 |
| | | string completeSql = $@"select PalletNo,Qty-CompleteQty as lessQty |
| | | from BllExportAllot |
| | | where IsDel='0' and SONo='{d.SONo}' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}'"; |
| | | DataTable completeDt = Db.Ado.GetDataTable(completeSql); |
| | | //修改托盘明细的锁定数量 |
| | | foreach (DataRow dr in completeDt.Rows) |
| | | { |
| | | decimal lessQty = Convert.ToDecimal(dr["lessQty"]); |
| | | if (lessQty > 0) |
| | | { |
| | | //查看库存明细锁定数量-lessQty |
| | | string stockDetailSql = $@"select LockQty-{lessQty} as morelockQty from DataStockDetail where IsDel='0' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}' and PalletNo='{dr["PalletNo"] + ""}'"; |
| | | decimal morelockQty = Db.Ado.GetDecimal(stockDetailSql); |
| | | |
| | | if (morelockQty >= 0) |
| | | { |
| | | sqlList.Add($@"update DataStockDetail set LockQty=LockQty-{morelockQty} where IsDel='0' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}' and PalletNo='{dr["PalletNo"] + ""}'"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | //修改库存总表 |
| | | string exportDetailSql = $@"select SkuNo,LotNo,sum(Qty)-sum(CompleteQty) as lessQty |
| | | from BllExportNoticeDetail |
| | | where IsDel='0' and SONo='{notice.SONo}' |
| | | group by SkuNo,LotNo"; |
| | | DataTable exportDetailDt = Db.Ado.GetDataTable(exportDetailSql); |
| | | |
| | | foreach (DataRow dr in exportDetailDt.Rows) |
| | | { |
| | | decimal lessQty = Convert.ToDecimal(dr["lessQty"]); |
| | | if (lessQty > 0) |
| | | { |
| | | //查看库存锁定数量-lessQty |
| | | string stockDetailSql = $@"select LockQty-{lessQty} as morelockQty from DataStock where IsDel='0' and SkuNo='{dr["SkuNo"] + ""}' and LotNo='{dr["LotNo"] + ""}'"; |
| | | decimal morelockQty = Db.Ado.GetDecimal(stockDetailSql); |
| | | |
| | | if (morelockQty >= 0) |
| | | { |
| | | sqlList.Add($@"update DataStock set LockQty=LockQty-{morelockQty} where IsDel='0' and SkuNo='{dr["SkuNo"] + ""}' and LotNo='{dr["LotNo"] + ""}'"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //添加操作日志记录 |
| | | var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "关单", $"关闭了单据号为{notice.SONo}的单据信息", userId); |
| | | |