/// <summary> /// 检查总库存 /// </summary> /// <param name="allOrderItemList"></param> /// <param name="errorMsg"></param> /// <returns></returns> private bool ValidateInventory(List <OrderItem> allOrderItemList, out string errorMsg) { List <OrderItem> shortageOfStockItemList = new List <OrderItem>(); if (allOrderItemList != null && allOrderItemList.Count > 0) { List <int> allOrderItemSysNoList = allOrderItemList.Select(x => x.ProductSysNo).ToList(); List <ProductSalesInfo> allOrderItemSalesInfoList = PipelineDA.GetProductSalesInfoBySysNoList(allOrderItemSysNoList); if (allOrderItemSalesInfoList != null) { foreach (var orderItem in allOrderItemList) { var salesInfo = allOrderItemSalesInfoList.Find(x => x.ProductSysNo == orderItem.ProductSysNo); if (salesInfo == null) { shortageOfStockItemList.Add(orderItem); } else { if (salesInfo.OnlineQty < orderItem.UnitQuantity) { shortageOfStockItemList.Add(orderItem); } } } } else { shortageOfStockItemList.AddRange(allOrderItemList); } } StringBuilder msgBuilder = new StringBuilder(); shortageOfStockItemList.Select(x => string.Format("商品【{0}】库存不足!", x.ProductName)) .ToList() .ForEach(msg => { msgBuilder.AppendLine(msg); }); errorMsg = msgBuilder.ToString(); if (!string.IsNullOrEmpty(errorMsg)) { return(false); } errorMsg = null; return(true); }