diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index e89fd153..6ec6a41e 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -275,10 +275,30 @@ namespace WMS.Web.Repositories Qty = s.detail.AccruedQty, DeliveredQty = s.detail.DeliveredQty, ReceiveQty = s.detail.ReceiveQty, - AvailableQty = s.detail.AccruedQty - s.detail.ReceiveQty, + //可入库数量=应入库数量-收货数量-已交数量+该明细的入库数量之和; + AvailableQty = s.detail.AccruedQty - s.detail.ReceiveQty- s.detail.DeliveredQty, Remark = s.detail.Remark, ErpDetailId=s.detail.ErpDetailId }).ToListAsync(); + + //找到入库单:通过erp明细ID + var erpDetIds = list.GroupBy(x => x.ErpDetailId).Select(x => x.Key).ToList(); + var instockDets= await _context.InStockDetails.Where(x => erpDetIds.Contains(x.ErpDetailId)).ToListAsync(); + if (instockDets != null && instockDets.Count != 0) + { + list.ForEach(x => + { + var current_instock_dets= instockDets.Where(t => t.ErpDetailId == x.ErpDetailId).ToList(); + if (current_instock_dets != null && current_instock_dets.Count != 0 && x.ErpDetailId==current_instock_dets.FirstOrDefault().ErpDetailId) + { + //+该明细的入库数量之和;在这里处理 + var instock_qty = current_instock_dets.Sum(x => x.Qty); + x.AvailableQty = x.AvailableQty + instock_qty; + } + }); + } + + return list; @@ -332,10 +352,29 @@ namespace WMS.Web.Repositories Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId), Qty = s.AccruedQty, DeliveredQty = s.DeliveredQty, - AvailableQty = s.AccruedQty - s.ReceiveQty, + //可入库数量=应入库数量-收货数量-已交数量+该明细的入库数量之和; + AvailableQty = s.AccruedQty - s.ReceiveQty- s.DeliveredQty, Remark = s.Remark, ErpDetailId=s.ErpDetailId }).ToListAsync(); + + //找到入库单:通过erp明细ID + var erpDetIds = task_details.GroupBy(x => x.ErpDetailId).Select(x => x.Key).ToList(); + var instockDets = await _context.InStockDetails.Where(x => erpDetIds.Contains(x.ErpDetailId)).ToListAsync(); + if (instockDets != null && instockDets.Count != 0) + { + task_details.ForEach(x => + { + var current_instock_dets = instockDets.Where(t => t.ErpDetailId == x.ErpDetailId).ToList(); + if (current_instock_dets != null && current_instock_dets.Count != 0 && x.ErpDetailId == current_instock_dets.FirstOrDefault().ErpDetailId) + { + //+该明细的入库数量之和;在这里处理 + var instock_qty = current_instock_dets.Sum(x => x.Qty); + x.AvailableQty = x.AvailableQty + instock_qty; + } + }); + } + //找箱 var task_box = await _context.InstockTaskBox.Where(x => ids.Contains(x.TaskId)) .Select(s => new SourceBillNoNoPurchaseBoxQueryResponse()