Example #1
0
        public bool Validate(OrderInfo order, out string errorMsg)
        {
            bool pass = true;

            //先检查订单上的配送地址
            if (order.Contact.AddressAreaID <= 0)
            {
                errorMsg = "请先保存收货人信息!";
                return(false);
            }

            List <ShipTypeInfo> allShipTypeList = PipelineDA.GetAllShippingTypeList();

            //先检查主单
            pass = InnerValidate(order, allShipTypeList, true, out errorMsg);

            if (!pass)
            {
                return(pass);
            }

            //检查拆分后的子单
            if (order.SubOrderList != null && order.SubOrderList.Count > 0)
            {
                OrderInfo subOrder = null;
                foreach (var kvs in order.SubOrderList)
                {
                    subOrder = kvs.Value;
                    pass     = InnerValidate(subOrder, allShipTypeList, false, out errorMsg);
                    if (!pass)
                    {
                        return(pass);
                    }
                }
            }
            //因配送区域删除,所以去掉对商品配送区域的判断
            //errorMsg = CheckShippingType(order);
            if (!string.IsNullOrWhiteSpace(errorMsg))
            {
                return(false);
            }

            errorMsg = null;
            return(true);
        }