Example #1
0
 public override void OnPageLoad(object sender, EventArgs e)
 {
     base.OnPageLoad(sender, e);
     _viewModel = new ShipTypeAreaUnQueryFilterVM();
     _facade    = new ShipTypeFacade(this);
     QueryFilter.DataContext = _viewModel;
 }
Example #2
0
 private void UCAddShipType_Loaded(object sender, RoutedEventArgs e)
 {
     Loaded -= new RoutedEventHandler(UCAddShipType_Loaded);
     facade  = new ShipTypeFacade(CPApplication.Current.CurrentPage);
     if (_sysNo.HasValue)
     {
         facade.LoadShipType(_sysNo, (obj, args) =>
         {
             VM           = args.Result;
             VM.ChannelID = _channelId;
             if (!VM.DsSysNo.HasValue)
             {
                 VM.DsSysNo = 1;
             }
             LayoutRoot.DataContext = VM;
         });
     }
     else
     {
         VM = new ShipTypeInfoVM();
         LayoutRoot.DataContext             = VM;
         comIsOnlineShow.IsEnabled          = false;
         comDeliveryPromise.SelectedIndex   = 0;
         comIsWithPackFee.SelectedIndex     = 0;
         comIsOnlineShow.SelectedIndex      = 0;
         comShipTypeEnum.SelectedIndex      = 0;
         comShippingPackStyle.SelectedIndex = 0;
         cbDeliveryType.SelectedIndex       = 0;
         comIsSpecified.SelectedIndex       = 0;
         comStoreType.SelectedIndex         = 0;
         VM.DsSysNo = 1;
     }
 }
Example #3
0
 public override void OnPageLoad(object sender, EventArgs e)
 {
     base.OnPageLoad(sender, e);
     _view   = new ShipTypeAreaUnInfoVM();
     _facade = new ShipTypeFacade(this);
     Main_region.DataContext = _view;
 }
Example #4
0
 public override void OnPageLoad(object sender, EventArgs e)
 {
     base.OnPageLoad(sender, e);
     _viewMode = new ShipTypeProductQueryFilterVM();
     _shipTypeProcuctFacade = new ShipTypeFacade(this);
     BindComboBoxData();
     this.QueryFilter.DataContext = _viewMode;
 }
 public override void OnPageLoad(object sender, EventArgs e)
 {
     base.OnPageLoad(sender, e);
     _viewVM = new ShipTypeProductInfoVM();
     _shipTypeProductFace   = new ShipTypeFacade(this);
     grid_Field.DataContext = _viewVM;
     InitControle();
 }
Example #6
0
        public override void OnPageLoad(object sender, EventArgs e)
        {
            // filter = new ShipTypeQueryFilter();
            facade                   = new ShipTypeFacade(this);
            queryVM                  = new ShipTypeQueryVM();
            queryVM.ChannelID        = "0";
            SeachBuilder.DataContext = queryVM;
            queryVM.CompanyCode      = Newegg.Oversea.Silverlight.ControlPanel.Core.CPApplication.Current.CompanyCode;

            comIsWithPackFee.ItemsSource = EnumConverter.GetKeyValuePairs <SYNStatus>(EnumConverter.EnumAppendItemType.All); //收取包裹费
            comIsOnlineShow.ItemsSource  = EnumConverter.GetKeyValuePairs <HYNStatus>(EnumConverter.EnumAppendItemType.All); //前台显示

            //facade.LoadWarehouse(queryVM.CompanyCode, (obj, args) =>
            //{
            //    if (args.FaultsHandle())
            //        return;
            //    cbOnlyForStockSysNo.ItemsSource = args.Result;
            //});
            base.OnPageLoad(sender, e);
        }
 public void ShipTypeAreaPriceMaintain_Loaded(object sender, RoutedEventArgs e)
 {
     _facade = new ShipTypeFacade(CPApplication.Current.CurrentPage);
     BindComboBoxData();
     LayoutRoot.DataContext = _view;
 }
        public static CheckOutResult GetPayAndShipTypeList(CheckOutContext context, int customerSysNo, ShoppingCart shoppingCart)
        {
            CheckOutResult result = new CheckOutResult();

            CheckOutContext newCheckoutContenxt = new CheckOutContext();

            if (context != null)
            {
                newCheckoutContenxt = context.Clone();
            }

            MemberInfo memberInfo = CustomerDA.GetCustomerInfo(customerSysNo);

            //取得用户选择的收货地址信息
            var custShippingAddrResult = GetCustomerShippingAddressList(newCheckoutContenxt, customerSysNo);

            result.SelShippingAddress = custShippingAddrResult.SelShippingAddress;

            #region 支付类别选择
            result.PaymentCategoryList = GetAllPaymentCategoryList();
            //优先取context指定的支付类型
            //其次取配送地址指定的支付类型
            if (!result.PaymentCategoryList.Exists(x =>
            {
                if (x.Key.ToString() == newCheckoutContenxt.PaymentCategoryID ||
                    x.Key == result.SelShippingAddress.PaymentCategoryID)
                {
                    result.SelPaymentCategoryID = x.Key;
                    return(true);
                }
                return(false);
            }))
            {
                //都没有就取第一条支付类型
                result.SelPaymentCategoryID = result.PaymentCategoryList.First().Key;
            }
            #endregion



            #region 配送方式选择
            //step1 取得配送地址支持的所有配送方式
            List <ShipTypeInfo> ShipTypeInfoList = new List <ShipTypeInfo>();
            List <ShipTypeInfo> shipTypeList     = new List <ShipTypeInfo>();
            foreach (ShoppingItemGroup ShoppingItemGroup in shoppingCart.ShoppingItemGroupList)
            {
                foreach (ShoppingItem ShoppingItem in ShoppingItemGroup.ShoppingItemList)
                {
                    ProductBasicInfo    basicInfo   = ProductFacade.GetProductBasicInfoBySysNo(ShoppingItem.ProductSysNo);
                    List <ShipTypeInfo> ShipTypeNew = ShipTypeFacade.Checkout_GetStockShippingType(basicInfo.VendorSysno);
                    if (ShipTypeNew.Count > 0)
                    {
                        if (ShipTypeInfoList.Count <= 0)
                        {
                            ShipTypeInfoList.AddRange(ShipTypeNew);
                            shipTypeList.AddRange(ShipTypeNew);
                        }
                        else
                        {
                            shipTypeList = new List <ShipTypeInfo>();
                            for (int i = 0; i < ShipTypeInfoList.Count; i++)
                            {
                                for (int j = 0; j < ShipTypeNew.Count; j++)
                                {
                                    if (ShipTypeInfoList[i].ShipTypeName == ShipTypeNew[j].ShipTypeName)
                                    {
                                        shipTypeList.Add(ShipTypeInfoList[i]);
                                    }
                                }
                            }
                            if (shipTypeList.Count <= 0)
                            {
                                result.ErrorMessages.Add("不同商家的商品,没有相同的配送方式,请分开下单!");
                                break;
                            }
                            else
                            {
                                ShipTypeInfoList = shipTypeList;
                            }
                        }
                    }
                    else
                    {
                        string error = string.Format("商品【{0}】没有对应配送方式,暂时无法为您配送!", basicInfo.ProductName);
                        result.ErrorMessages.Add(error);
                        result.ShipTypeList = null;
                        break;
                    }
                }
                if (result.ErrorMessages.Count > 0)
                {
                    break;
                }
            }
            //var shipTypeList = ShipTypeFacade.GetSupportedShipTypeList(result.SelShippingAddress.ReceiveAreaSysNo, null);
            //step2 如果不存在支持货到付款的配送方式, 则移除掉货到付款支付类别
            if (shipTypeList.Count(x => x.IsPayWhenRecv) <= 0)
            {
                result.PaymentCategoryList  = result.PaymentCategoryList.FindAll(x => x.Key == (int)PaymentCategory.OnlinePay);
                result.SelPaymentCategoryID = (int)PaymentCategory.OnlinePay;
            }
            //step3 如果选择的是货到付款,则移除掉不支持货到付款的配送方式
            if (result.SelPaymentCategoryID == (int)PaymentCategory.PayWhenRecv)
            {
                result.ShipTypeList = shipTypeList.Where(x => x.IsPayWhenRecv).ToList();
                //step4 移除掉不支持货到付款的配送方式后没有可用的配送方式时,系统自动选择在线支付
                if (result.ShipTypeList.Count <= 0)
                {
                    result.ShipTypeList         = shipTypeList;
                    result.PaymentCategoryList  = result.PaymentCategoryList.FindAll(x => x.Key == (int)PaymentCategory.OnlinePay);
                    result.SelPaymentCategoryID = (int)PaymentCategory.OnlinePay;
                }
            }
            else
            {
                result.ShipTypeList = shipTypeList;
            }

            //优先取context指定的配送方式
            result.SelShipType = result.ShipTypeList.Find(x => x.ShipTypeSysNo.ToString() == newCheckoutContenxt.ShipTypeID);
            //其次取配送地址指定的配送方式
            if (result.SelShipType == null && result.SelShippingAddress != null)
            {
                result.SelShipType = result.ShipTypeList.Find(x => x.ShipTypeSysNo == result.SelShippingAddress.ShipTypeSysNo);
            }
            //都没有就取第一条配送方式
            if (result.SelShipType == null && result.ShipTypeList.Count > 0)
            {
                result.SelShipType = result.ShipTypeList.First();
            }
            result.ShipTypeList = EnsureNotNullObject(result.ShipTypeList);
            result.SelShipType  = EnsureNotNullObject(result.SelShipType);
            #endregion

            #region 支付方式选择
            result.PayTypeList = GetAllPayTypeList();
            if (result.SelPaymentCategoryID == (int)PaymentCategory.PayWhenRecv)
            {
                result.PayTypeList = result.PayTypeList.FindAll(x => x.IsPayWhenRecv == 1);
            }
            //优先取用户上次下单使用的支付方式
            result.SelPayType = result.PayTypeList.Find(x => x.PayTypeID == memberInfo.ExtendInfo.LastPayTypeSysNo);
            if (result.SelPayType == null && result.PayTypeList.Count > 0)
            {
                result.SelPayType = result.PayTypeList.First();
            }
            if (result.SelPayType != null && result.PayTypeList.Count > 0)
            {
                var cateId             = result.SelPayType.IsPayWhenRecv == 1 ? (int)PaymentCategory.PayWhenRecv : (int)PaymentCategory.OnlinePay;
                var isPayWhenRecvValue = result.SelPaymentCategoryID == (int)PaymentCategory.PayWhenRecv ? 1 : 0;
                //如果上次下单用户使用的支付方式类型跟本次下单选择的支付类型不一致
                //则选择符合当前选择的支付类型的第一个支付方式
                if (cateId != result.SelPaymentCategoryID)
                {
                    result.SelPayType = result.PayTypeList.Where(x => x.IsPayWhenRecv == isPayWhenRecvValue).First();
                }

                if (context != null && context.PayTypeID.HasValue)
                {
                    result.SelPayType = result.PayTypeList.Where(x => x.PayTypeID == context.PayTypeID.Value).First();
                }
            }
            result.PayTypeList = EnsureNotNullObject(result.PayTypeList);
            result.SelPayType  = EnsureNotNullObject(result.SelPayType);
            #endregion

            return(result);
        }