Esempio n. 1
0
        /// <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);
        }