wangxinhui
2025-04-08 dcecb039035f4b2e82e31c39b74db9402444c536
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderDetailService.cs
@@ -123,12 +123,16 @@
                //获取出库库存
                List<Dt_ProStockInfo> assignOutStocks = _stockInfoService.ProStockInfoService.GetOutboundStocks(stockInfoss, item, needQty, out float residueQuantity);
                item.LockQtyPcs += needQty - residueQuantity;
                if (item.QtyPcs> item.LockQtyPcs)
                {
                    throw new Exception($"产品编码{item.PCode}可分配数量不足,可用数量{item.LockQtyPcs}");
                }
                outStocks.AddRange(assignOutStocks);
                float assignQuantity = needQty - residueQuantity;
                bool isCanLot = string.IsNullOrEmpty(item.PLot);
                bool isCanDate = string.IsNullOrEmpty(item.DateCode);
                List<Dt_ProOutOrderDetail> details = proOutOrderDetails
                    .Where(x => x.SaleOrder == item.SaleOrder && x.PCode == item.PCode && x.PVer == item.PVer
                    .Where(x =>x.PCode == item.PCode && x.PVer == item.PVer
                    && (isCanLot ? isCanLot : x.PLot == item.PLot)
                    && (isCanDate ? isCanDate : x.DateCode == item.DateCode))
                    .ToList();
@@ -139,17 +143,17 @@
                    for (int j = 0; j < assignOutStocks.Count; j++)
                    {
                        //出库订单明细已分配数量
                        float detailAssignQuantity = outProStockInfos.Where(x => x.SaleOrder == item.SaleOrder && x.PCode == item.PCode && x.PVer == item.PVer
                        float detailAssignQuantity = outProStockInfos.Where(x => x.PCode == item.PCode && x.PVer == item.PVer
                            && (isCanLot ? isCanLot : x.PLot == item.PLot)
                            && (isCanDate ? isCanDate : x.DateCode == item.DateCode)
                            && x.OrderDetailId == details[i].Id).Sum(x => x.AssignQuantity);
                        float palletAssignQuantity = outProStockInfos.Where(x => x.SaleOrder == item.SaleOrder && x.PCode == item.PCode && x.PVer == item.PVer
                        float palletAssignQuantity = outProStockInfos.Where(x => x.PCode == item.PCode && x.PVer == item.PVer
                            && (isCanLot ? isCanLot : x.PLot == item.PLot)
                            && (isCanDate ? isCanDate : x.DateCode == item.DateCode)
                            && x.PalletCode == assignOutStocks[j].PalletCode).Sum(x => x.AssignQuantity);
                        //出库详情已分配数量
                        palletAssignQuantity = outProStockInfos.Where(x => x.SaleOrder == item.SaleOrder && x.PCode == item.PCode && x.PVer == item.PVer
                        palletAssignQuantity = outProStockInfos.Where(x => x.PCode == item.PCode && x.PVer == item.PVer
                            && (isCanLot ? isCanLot : x.PLot == item.PLot)
                            && (isCanDate ? isCanDate : x.DateCode == item.DateCode) 
                            && x.PalletCode == assignOutStocks[j].PalletCode).Sum(x => x.AssignQuantity);//出库详情已分配数量