Beispiel #1
0
        /// <summary>
        /// 检查是否有不支持的配送区域
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        private string CheckShippingType(OrderInfo order)
        {
            string shippingErrorMsg = "";

            foreach (var kvs in order.SubOrderList)
            {
                OrderInfo subOrderInfo = kvs.Value;

                List <ProductShippingPrice> ProductSysNoList = PipelineDA.Pipeline_GetAllProductRestrictedAreaByAreaSysNo(subOrderInfo.Contact.AddressAreaID);
                if (ProductSysNoList == null || ProductSysNoList.Count <= 0)
                {
                    shippingErrorMsg = "订单无法配送到您选择的送货区域,请重新选择!";
                    break;
                }
                else
                {
                    List <int> ProductSysNo = new List <int>();
                    foreach (OrderItemGroup ItemGroup in subOrderInfo.OrderItemGroupList)
                    {
                        foreach (OrderProductItem ProductItem in ItemGroup.ProductItemList)
                        {
                            if (!ProductSysNoList.Exists(p => p.ProductSysNo == ProductItem.ProductSysNo))
                            {
                                shippingErrorMsg = "商品(" + ProductItem.ProductName + ")无法配送到您选择的送货区域,请重新选择!";
                                break;
                            }
                        }
                    }
                }

                if (!PipelineDA.Pipeline_ExistsShipTypeAreaPrice(int.Parse(subOrderInfo.ShipTypeID), subOrderInfo.Contact.AddressAreaID))
                {
                    shippingErrorMsg += "该收货地区配置有误,请重新选择!";
                    break;
                }
            }

            if (!string.IsNullOrWhiteSpace(shippingErrorMsg))
            {
                return(shippingErrorMsg);
            }
            return("");
        }