From 167ddf02f6c080c8fca579729866831228d9390b Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Tue, 5 Dec 2023 17:01:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E5=85=A5=E5=BA=93=E6=95=B0=E9=87=8F-?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=85=AC=E5=BC=8F=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InStockTaskRepositories.cs | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) 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()