예제 #1
0
        public async static Task SaveCustomerRank(CustomerRank itemPara, CustomerRank oldItem)
        {
            //using (var db = new SalesContext())
            //{
            //    foreach(var item in Customers)  //change customerRank of relative Customer in customers collection to new customerRank
            //    {
            //        if (item.CustomerRankID == itemPara.Id)
            //            item.CustomerRank = itemPara;
            //    }

            //    var query = db.CustomerRanks.Find(itemPara.Id);
            //    var x = query.Customers;
            //    CopyProperties(typeof(CustomerRank), query, itemPara);
            //    query.Customers = x;
            //    db.Entry(query).State = EntityState.Modified;
            //    await UpdateDatabase(db);
            //}

            using (var db = new SalesContext())
            {
                db.Entry(oldItem).State = EntityState.Unchanged;
                var query = db.CustomerRanks.Find(itemPara.Id);
                CopyProperties(typeof(CustomerRank), query, itemPara);
                db.Entry(query).State = EntityState.Modified;
                await UpdateDatabase(db);
            }
        }
예제 #2
0
        public async static Task AddCustomerRank(CustomerRank itemPara)
        {
            using (var db = new SalesContext())
            {
                db.CustomerRanks.Add(itemPara);
                await UpdateDatabase(db);

                CustomerRanks.Add(itemPara);
            }
        }
예제 #3
0
        public async static Task DeleteCustomerRank(CustomerRank itemPara)
        {
            //using (var db = new SalesContext())
            //{
            //    db.CustomerRanks.Attach(itemPara);
            //    db.Entry(itemPara).State = EntityState.Deleted;
            //    CustomerRanks.Remove(itemPara);
            //    await UpdateDatabase(db);
            //}

            using (var db = new SalesContext())
            {
                db.Entry(itemPara).State = EntityState.Unchanged;   //NOT DELETE - IMPORTANT
                CustomerRanks.Remove(itemPara);
                db.Entry(itemPara).State = EntityState.Deleted;     // must be executed after deleted it in Customers
                await UpdateDatabase(db);
            }
        }
예제 #4
0
        private void DataGrid_Result_LoadingDataSource(object sender, Newegg.Oversea.Silverlight.Controls.Data.LoadingDataEventArgs e)
        {
            CustomerQueryFacade facade = new CustomerQueryFacade(this);

            filter.PagingInfo = new PagingInfo
            {
                PageSize  = e.PageSize,
                PageIndex = e.PageIndex,
                SortBy    = e.SortField
            };
            facade.QueryCustomer(filter, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                if (!(args == null || args.Result == null || args.Result.Rows == null))
                {
                    #region 拼接头像地址
                    foreach (var item in args.Result.Rows)
                    {
                        item.IsChecked    = false;
                        CustomerRank rank = item.Rank ?? CustomerRank.Ferrum;
                        string AvtarImage = item.AvtarImage;
                        if (!string.IsNullOrEmpty(AvtarImage))
                        {
                            item.AvtarImage = string.Format("{0}{1}", viewModel.AvtarImgBasePath, AvtarImage);
                        }
                        else
                        {
                            item.AvtarImage = string.Format("/Images/Customer/CustomerRankImage/P48Rank{0}.jpg", (int)rank);
                        }
                    }
                    #endregion
                    this.dataGrid1.ItemsSource = args.Result.Rows.ToList();
                    this.dataGrid1.TotalCount  = args.Result.TotalCount;
                }
            });
        }
예제 #5
0
        void UCCustomerRange_Loaded(object sender, RoutedEventArgs e)
        {
            if (isLoaded)
            {
                return;
            }

            CouponsInfoViewModel vm = this.DataContext as CouponsInfoViewModel;

            if (vm.IsCustomerNoLimit.Value)
            {
                gridUserRankSetting.Visibility = System.Windows.Visibility.Collapsed;
                gridUserIDSetting.Visibility   = System.Windows.Visibility.Collapsed;
                PreLimitType = LimitType.NoLimit;
            }
            else if (vm.IsCustomerRank.Value)
            {
                gridUserRankSetting.Visibility = System.Windows.Visibility.Visible;
                gridUserIDSetting.Visibility   = System.Windows.Visibility.Collapsed;
                PreLimitType = LimitType.CustomerRank;
            }
            else if (vm.IsCustomerID.Value)
            {
                gridUserRankSetting.Visibility = System.Windows.Visibility.Collapsed;
                gridUserIDSetting.Visibility   = System.Windows.Visibility.Visible;
                PreLimitType = LimitType.CustomerID;
            }

            if (vm.IsAreaNoLimit.Value)
            {
                gridArea.Visibility = System.Windows.Visibility.Collapsed;
                PreIsNoLimitArea    = true;
            }
            else
            {
                gridArea.Visibility = System.Windows.Visibility.Visible;
                PreIsNoLimitArea    = false;
            }

            ComboBoxItem defaultItem = new ComboBoxItem();

            defaultItem.Content    = "不限";
            defaultItem.Tag        = -1;
            defaultItem.IsSelected = false;
            cmbCustomerRank.Items.Add(defaultItem);

            foreach (var value in Enum.GetValues(typeof(CustomerRank)))
            {
                if (vm.CustomerCondition.RelCustomerRanks.CustomerRankList != null)
                {
                    SimpleObjectViewModel sim = vm.CustomerCondition.RelCustomerRanks.CustomerRankList.FirstOrDefault(f => f.SysNo.Value == (int)value);
                    if (sim != null)
                    {
                        CustomerRank cre = (CustomerRank)Enum.Parse(typeof(CustomerRank), value.ToString(), true);
                        sim.Name = EnumConverter.GetDescription(cre);
                        continue;
                    }
                }
                ComboBoxItem item = new ComboBoxItem();
                CustomerRank k    = (CustomerRank)Enum.Parse(typeof(CustomerRank), value.ToString(), true);
                item.Content    = EnumConverter.GetDescription(k);
                item.Tag        = value;
                item.IsSelected = false;
                cmbCustomerRank.Items.Add(item);
            }
            if (cmbCustomerRank.Items.Count > 0)
            {
                cmbCustomerRank.SelectedIndex = 0;
            }

            AreaQueryFacade areaFacade = new AreaQueryFacade();

            areaFacade.QueryProvinceAreaList((obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                List <AreaInfo> areaList = args.Result;
                foreach (AreaInfo area in areaList)
                {
                    if (vm.CustomerCondition.RelAreas.AreaList != null)
                    {
                        SimpleObjectViewModel sim = vm.CustomerCondition.RelAreas.AreaList.FirstOrDefault(f => f.SysNo == area.SysNo);
                        if (sim != null)
                        {
                            sim.Name = area.ProvinceName;
                            continue;
                        }
                    }

                    ComboBoxItem item = new ComboBoxItem();
                    item.Content      = area.ProvinceName;
                    item.Tag          = area.SysNo;
                    item.IsSelected   = false;
                    cmbArea.Items.Add(item);
                }
                if (cmbArea.Items.Count > 0)
                {
                    cmbArea.SelectedIndex = 0;
                }
            });

            if (vm.IsOnlyViewMode)
            {
                OperationControlStatusHelper.SetControlsStatus(gridLayout, true);
            }

            isLoaded = true;
        }
예제 #6
0
        private void rdoCustomerID_Click(object sender, RoutedEventArgs e)
        {
            if (PreLimitType == LimitType.CustomerID)
            {
                return;
            }

            CouponsInfoViewModel vm = this.DataContext as CouponsInfoViewModel;

            if (vm.IsExistThrowInTypeCouponCode.HasValue && vm.IsExistThrowInTypeCouponCode.Value)
            {
                CurrentWindow.Alert("已经存在投放型优惠券,因此客户条件只能是不限!如果需要修改客户条件,请先删除所有的投放型优惠券!");
                vm.IsCustomerID      = false;
                vm.IsCustomerRank    = false;
                vm.IsCustomerNoLimit = true;
                PreLimitType         = LimitType.NoLimit;
                return;
            }

            if (vm.CustomerCondition.RelCustomerRanks.CustomerRankList != null &&
                vm.CustomerCondition.RelCustomerRanks.CustomerRankList.Count > 0)
            {
                CurrentWindow.Confirm("如果设置为自选用户,那么已指定的用户组都将全部移除,请确定是否设置为自选用户?", (obj, args) =>
                {
                    if (args.DialogResult == DialogResultType.OK)
                    {
                        vm.CustomerCondition.RelCustomerRanks.CustomerRankList.Clear();
                        dgCustomerRank.ItemsSource = vm.CustomerCondition.RelCustomerRanks.CustomerRankList;
                        dgCustomerRank.Bind();

                        gridUserRankSetting.Visibility = System.Windows.Visibility.Collapsed;
                        gridUserIDSetting.Visibility   = System.Windows.Visibility.Visible;
                        PreLimitType = LimitType.CustomerID;


                        cmbCustomerRank.Items.Clear();
                        foreach (var value in Enum.GetValues(typeof(CustomerRank)))
                        {
                            ComboBoxItem item = new ComboBoxItem();
                            CustomerRank k    = (CustomerRank)Enum.Parse(typeof(CustomerRank), value.ToString(), true);
                            item.Content      = EnumConverter.GetDescription(k);
                            item.Tag          = value;
                            item.IsSelected   = false;
                            cmbCustomerRank.Items.Add(item);
                        }
                        if (cmbCustomerRank.Items.Count > 0)
                        {
                            cmbCustomerRank.SelectedIndex = 0;
                        }
                    }
                    else
                    {
                        switch (PreLimitType)
                        {
                        case LimitType.CustomerID:
                            vm.IsCustomerID      = true;
                            vm.IsCustomerRank    = false;
                            vm.IsCustomerNoLimit = false;
                            break;

                        case LimitType.CustomerRank:
                            vm.IsCustomerID      = false;
                            vm.IsCustomerRank    = true;
                            vm.IsCustomerNoLimit = false;
                            break;

                        case LimitType.NoLimit:
                            vm.IsCustomerID      = false;
                            vm.IsCustomerRank    = false;
                            vm.IsCustomerNoLimit = true;
                            break;
                        }
                        return;
                    }
                });
            }
            else
            {
                gridUserRankSetting.Visibility = System.Windows.Visibility.Collapsed;
                gridUserIDSetting.Visibility   = System.Windows.Visibility.Visible;
                PreLimitType = LimitType.CustomerID;
            }
        }
예제 #7
0
        /// <summary>
        /// 计算商品最终售价
        /// 原则:取最优客户价格
        /// </summary>
        /// <param name="soInfo"></param>
        public virtual void CalculateItemPrice(SOInfo soInfo)
        {
            //礼品卡订单不获取价格
            if (soInfo.BaseInfo.SOType == SOType.ElectronicCard ||
                soInfo.BaseInfo.SOType == SOType.PhysicalCard)
            {
                soInfo.Items.ForEach(item =>
                {
                    item.GainAveragePoint = 0;
                    item.PayType          = ProductPayType.MoneyOnly;
                });

                return;
            }

            //获取商品价格信息
            List <int> itemSysNos = soInfo.Items.Where(item => item.ProductType == SOProductType.Accessory ||
                                                       item.ProductType == SOProductType.Award ||
                                                       item.ProductType == SOProductType.Gift ||
                                                       item.ProductType == SOProductType.Product ||
                                                       item.ProductType == SOProductType.SelfGift)
                                    .Select <SOItemInfo, int>(item => item.ProductSysNo.Value).ToList <int>();

            List <ProductInfo> productInfoList = ExternalDomainBroker.GetProductInfoListByProductSysNoList(itemSysNos);

            if (productInfoList != null && productInfoList.Count > 0)
            {
                foreach (var item in soInfo.Items)
                {
                    //普通商品处理逻辑
                    if (item.ProductType == SOProductType.Product)
                    {
                        ProductPriceInfo priceInfo       = null;
                        ProductInfo      productInfoTemp = productInfoList.Find(x => x.SysNo == item.ProductSysNo);
                        if (productInfoTemp != null)
                        {
                            priceInfo = productInfoTemp.ProductPriceInfo;
                        }
                        if (priceInfo != null)
                        {
                            item.CostPrice        = priceInfo.UnitCost;
                            item.PayType          = priceInfo.PayType;//Vantal Update 属性名称修改
                            item.GainAveragePoint = priceInfo.Point;
                            item.OriginalPrice    = priceInfo.CurrentPrice;

                            CustomerRank customerRank = ExternalDomainBroker.GetCustomerRank(soInfo.BaseInfo.CustomerSysNo.Value);

#warning 批发与手动修改价格逻辑需要再处理, 更新订单逻辑也需要考虑

                            decimal tempWholeSalePrice = 0.00M;
                            decimal tempMemberPrice    = 0.00M;
                            //如果商品支持批发价,商品售价取最优批发价格
                            if (priceInfo.ProductWholeSalePriceInfo != null && priceInfo.ProductWholeSalePriceInfo.Count > 0)
                            {
                                //取最优批发价
                                priceInfo.ProductWholeSalePriceInfo.OrderBy(l => l.Level)
                                .ToList()
                                .ForEach(w =>
                                {
                                    if (item.Quantity >= w.Qty)
                                    {
                                        tempWholeSalePrice = w.Price.Value;
                                    }
                                });
                            }

                            //优先使用会员价
                            priceInfo.ProductRankPrice.OrderBy(r => r.Rank)
                            .ToList()
                            .ForEach(r =>
                            {
                                if (r.Status.HasValue &&
                                    r.Status == ProductRankPriceStatus.Active &&
                                    customerRank >= r.Rank)
                                {
                                    tempMemberPrice = r.RankPrice.Value;
                                }
                            });
                            if (tempWholeSalePrice != 0)
                            {
                                item.OriginalPrice = Math.Min(tempWholeSalePrice, item.OriginalPrice.Value);
                                item.PriceType     = SOProductPriceType.WholeSale;
                            }
                            if (tempMemberPrice != 0)
                            {
                                if (tempMemberPrice <= tempWholeSalePrice)
                                {
                                    item.OriginalPrice = Math.Min(tempMemberPrice, item.OriginalPrice.Value);
                                    item.PriceType     = SOProductPriceType.Member;
                                }
                            }
                            if (item.PriceType == SOProductPriceType.WholeSale)
                            {
                                //批发无积分
                                item.GainAveragePoint = 0;
                            }

                            if (m_isManualPrice)
                            {
                                //重新计算Discount
                                if (item.Price_End > 0)
                                {
                                    item.AdjustPrice = item.OriginalPrice.Value - item.Price_End;
                                    //初始化调价
                                    item.Price_End = 0;
                                }
                                item.OriginalPrice = item.OriginalPrice - item.AdjustPrice;
                            }

                            //更新状态购物车的单件商品没有修改数量按原始价格计算
                            if (IsUpdate)
                            {
                                var originalItem = OriginalSOInfo.Items.Find(oitem => oitem.ProductSysNo == item.ProductSysNo);
                                if (originalItem != null && item.Quantity == originalItem.Quantity)
                                {
                                    //如果手动改价
                                    if (item.AdjustPrice != originalItem.AdjustPrice)
                                    {
                                        item.OriginalPrice = (originalItem.OriginalPrice ?? 0) + originalItem.AdjustPrice - item.AdjustPrice;
                                        //continue;
                                    }
                                }
                            }
                            item.Price = item.OriginalPrice;
                        }
                    }
                    //优惠券和延保不赠积分
                    else if (item.ProductType == SOProductType.Coupon)
                    {
                        item.GainAveragePoint = 0;
                        item.PayType          = ProductPayType.All;
                    }
                    else if (item.ProductType == SOProductType.ExtendWarranty)
                    {
                        item.OriginalPrice    = item.Price;
                        item.GainAveragePoint = 0;
                        item.PayType          = ProductPayType.All;
                        //数量
                        var masterProduct = soInfo.Items.First(p => p.ProductSysNo.ToString() == item.MasterProductSysNo);
                        item.Quantity = masterProduct.Quantity;
                    }
                    //是赠品,附件,奖品则价格为0, 积分为0
                    else
                    {
                        ProductPriceInfo priceInfo       = null;
                        ProductInfo      productInfoTemp = productInfoList.Find(x => x.SysNo == item.ProductSysNo);
                        if (productInfoTemp != null)
                        {
                            priceInfo = productInfoTemp.ProductPriceInfo;
                        }
                        if (priceInfo != null)
                        {
                            item.CostPrice = priceInfo.UnitCost;
                        }
                        item.OriginalPrice = 0;
                        item.Price         = 0;
                        item.PayType       = ProductPayType.All;
                    }
                }
            }

            if (m_isManualPrice)
            {
                if (IsUpdate)
                {
                    foreach (var item in soInfo.Items)
                    {
                        SOItemInfo oldSOItem = OriginalSOInfo.Items.Find(oldItem => oldItem.ProductSysNo == item.ProductSysNo);

                        if (oldSOItem != null)
                        {
                            if (!(item.PromotionAmount == 0 && string.IsNullOrEmpty(item.AdjustPriceReason)) && !(item.Price_End != item.Price))
                            {
                                item.OriginalPrice = item.OriginalPrice + oldSOItem.PromotionAmount - item.PromotionAmount;
                            }
                        }
                        item.Price = item.OriginalPrice;
                    }
                }
                else if (soInfo.BaseInfo.SOType == SOType.Gift)
                {
                    //赠品订单做补偿时使用
                    soInfo.Items.ForEach(item =>
                    {
                        item.PromotionAmount   = item.OriginalPrice;
                        item.AdjustPriceReason = "赠品订单自动调整";
                        item.OriginalPrice     = 0;
                        item.Price             = 0;
                    });
                }
            }
        }
예제 #8
0
 public Customer(Id id, User user)
 {
     Id   = id;
     Rank = CustomerRank.New;
     User = user;
 }
예제 #9
0
        private CouponsInfoViewModel EtoV(CouponsInfo entity)
        {
            CouponsInfoViewModel viewmodel = entity.Convert <CouponsInfo, CouponsInfoViewModel>((en, vm) =>
            {
                vm.Title = entity.Title.Content;
            });

            if (entity.WebChannel != null)
            {
                viewmodel.WebChannel = new Basic.Components.Models.WebChannelVM()
                {
                    ChannelID = entity.WebChannel.ChannelID, ChannelName = entity.WebChannel.ChannelName
                };
            }
            else
            {
                viewmodel.WebChannel = viewmodel.WebChennelList[0];
            }

            #region 商品条件处理
            if (viewmodel.ProductCondition != null)
            {
                if (viewmodel.ProductCondition.RelBrands != null && viewmodel.ProductCondition.RelBrands.BrandList != null)
                {
                    viewmodel.ProductCondition.RelBrands.IsExcludeRelation = !viewmodel.ProductCondition.RelBrands.IsIncludeRelation;
                    foreach (SimpleObjectViewModel sim in viewmodel.ProductCondition.RelBrands.BrandList)
                    {
                        sim.Relation  = viewmodel.ProductCondition.RelBrands.IsIncludeRelation.Value ? PSRelationType.Include : PSRelationType.Exclude;
                        sim.IsChecked = false;
                    }
                }
                else
                {
                    if (viewmodel.ProductCondition.RelBrands == null)
                    {
                        viewmodel.ProductCondition.RelBrands = new RelBrandViewModel();
                    }
                    viewmodel.ProductCondition.RelBrands.IsIncludeRelation = true;
                    viewmodel.ProductCondition.RelBrands.IsExcludeRelation = false;
                }

                if (viewmodel.ProductCondition.RelCategories != null && viewmodel.ProductCondition.RelCategories.CategoryList != null)
                {
                    viewmodel.ProductCondition.RelCategories.IsExcludeRelation = !viewmodel.ProductCondition.RelCategories.IsIncludeRelation;
                    foreach (SimpleObjectViewModel sim in viewmodel.ProductCondition.RelCategories.CategoryList)
                    {
                        sim.Relation  = viewmodel.ProductCondition.RelCategories.IsIncludeRelation.Value ? PSRelationType.Include : PSRelationType.Exclude;;
                        sim.IsChecked = false;
                    }
                }
                else
                {
                    if (viewmodel.ProductCondition.RelCategories == null)
                    {
                        viewmodel.ProductCondition.RelCategories = new RelCategory3ViewModel();
                    }
                    viewmodel.ProductCondition.RelCategories.IsIncludeRelation = true;
                    viewmodel.ProductCondition.RelCategories.IsExcludeRelation = false;
                }

                if (viewmodel.ProductCondition.RelProducts != null && viewmodel.ProductCondition.RelProducts.ProductList != null)
                {
                    foreach (RelProductAndQtyViewModel sim in viewmodel.ProductCondition.RelProducts.ProductList)
                    {
                        sim.IsChecked = false;
                    }
                }
                else
                {
                    if (viewmodel.ProductCondition.RelProducts == null)
                    {
                        viewmodel.ProductCondition.RelProducts = new RelProductViewModel();
                    }
                    viewmodel.ProductCondition.RelProducts.IsIncludeRelation = true;
                    viewmodel.ProductCondition.RelProducts.IsExcludeRelation = false;
                }
                if (viewmodel.ProductCondition.ListRelVendorViewModel == null)
                {
                    viewmodel.ProductCondition.ListRelVendorViewModel = new List <RelVendorViewModel>();
                }
                if (entity.ProductCondition.ListRelVendor != null)
                {
                    foreach (var item in entity.ProductCondition.ListRelVendor)
                    {
                        viewmodel.ProductCondition.ListRelVendorViewModel.Add(new RelVendorViewModel()
                        {
                            CouponsStatus = entity.Status,
                            VendorSysNo   = item.VendorSysNo,
                            VendorName    = item.VendorName,
                            IsChecked     = false
                        });
                    }
                }
            }
            else
            {
                viewmodel.ProductCondition           = new PSProductConditionViewModel();
                viewmodel.ProductCondition.RelBrands = new RelBrandViewModel();
                viewmodel.ProductCondition.RelBrands.IsIncludeRelation = true;
                viewmodel.ProductCondition.RelCategories = new RelCategory3ViewModel();
                viewmodel.ProductCondition.RelCategories.IsIncludeRelation = true;
                viewmodel.ProductCondition.RelProducts = new RelProductViewModel();
                viewmodel.ProductCondition.RelProducts.IsIncludeRelation = true;
            }
            #endregion

            #region 客户条件处理

            /*
             * 说明:由于原数据库设计变态,因此为了保证原来的兼容性,所以这里转换比较复杂
             * (1)如果限定类型是“无限定”,是插入了一条用户组的SysNo为-1记录到Coupon_SaleRules表:Type=R, CustomerRank=-1。
             * (2)如果限定类型是限定用户组,那么插入CustomerRank的SysNo记录到Coupon_SaleRules表:Type=R, CustomerRank=SysNo。
             * (3)如果限定类型是自选用户,那么插入Customer SysNo数据到Coupon_SaleRulesCustomer表。
             *      对于上述三种情况,转换到ViewModel中时,
             *      情况(1)则viewmodel.IsCustomerNoLimit = true,并且清空RelCustomerRanks.CustomerRankList
             *      但是在VtoE时,记得需要将viewmodel.IsCustomerNoLimit转换为CustomerRank=-1 的RelCustomerRanks.CustomerRankList一条记录
             *
             * (4)如果再限定用户地区,那么插入地区的SysNo到Coupon_SaleRules表:Type=A, AreaSysNo=SysNo
             * */
            if (viewmodel.CustomerCondition == null)
            {
                viewmodel.CustomerCondition                        = new PSCustomerConditionViewModel();
                viewmodel.CustomerCondition.RelAreas               = new RelAreaViewModel();
                viewmodel.CustomerCondition.RelCustomerRanks       = new RelCustomerRankViewModel();
                viewmodel.CustomerCondition.RelCustomers           = new RelCustomerViewModel();
                viewmodel.CustomerCondition.NeedEmailVerification  = false;
                viewmodel.CustomerCondition.NeedMobileVerification = false;
                viewmodel.CustomerCondition.InvalidForAmbassador   = false;
            }
            else
            {
                if (!viewmodel.CustomerCondition.NeedEmailVerification.HasValue)
                {
                    viewmodel.CustomerCondition.NeedEmailVerification = false;
                }
                if (!viewmodel.CustomerCondition.NeedMobileVerification.HasValue)
                {
                    viewmodel.CustomerCondition.NeedMobileVerification = false;
                }
                if (!viewmodel.CustomerCondition.InvalidForAmbassador.HasValue)
                {
                    viewmodel.CustomerCondition.InvalidForAmbassador = false;
                }

                if (viewmodel.CustomerCondition.RelAreas != null && viewmodel.CustomerCondition.RelAreas.AreaList != null)
                {
                    foreach (SimpleObjectViewModel sim in viewmodel.CustomerCondition.RelAreas.AreaList)
                    {
                        sim.IsChecked = false;
                    }
                    if (viewmodel.CustomerCondition.RelAreas.AreaList.Count > 0)
                    {
                        viewmodel.IsAreaLimit   = true;
                        viewmodel.IsAreaNoLimit = false;
                    }
                }
                else
                {
                    viewmodel.CustomerCondition.RelAreas = new RelAreaViewModel();
                }

                if (viewmodel.CustomerCondition.RelCustomerRanks != null && viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList != null)
                {
                    foreach (SimpleObjectViewModel sim in viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList)
                    {
                        sim.IsChecked = false;
                        CustomerRank cr = (CustomerRank)Enum.Parse(typeof(CustomerRank), sim.SysNo.Value.ToString(), true);
                        sim.Name = EnumConverter.GetDescription(cr);
                    }

                    if (viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList.Count > 0)
                    {
                        if (viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList.Count == 1 &&
                            viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList[0].SysNo == -1)
                        {
                            viewmodel.IsCustomerRank    = false;
                            viewmodel.IsCustomerID      = false;
                            viewmodel.IsCustomerNoLimit = true;
                            viewmodel.CustomerCondition.RelCustomerRanks.CustomerRankList.Clear();
                        }
                        else
                        {
                            viewmodel.IsCustomerRank    = true;
                            viewmodel.IsCustomerID      = false;
                            viewmodel.IsCustomerNoLimit = false;
                        }
                    }
                }
                else
                {
                    viewmodel.CustomerCondition.RelCustomerRanks = new RelCustomerRankViewModel();
                }

                if (viewmodel.CustomerCondition.RelCustomers != null && viewmodel.CustomerCondition.RelCustomers.CustomerIDList != null)
                {
                    foreach (CustomerAndSendViewModel sim in viewmodel.CustomerCondition.RelCustomers.CustomerIDList)
                    {
                        sim.IsChecked = false;
                    }
                    if (viewmodel.CustomerCondition.RelCustomers.CustomerIDList.Count > 0)
                    {
                        viewmodel.IsCustomerRank    = false;
                        viewmodel.IsCustomerID      = true;
                        viewmodel.IsCustomerNoLimit = false;
                    }
                }
                else
                {
                    viewmodel.CustomerCondition.RelCustomers = new RelCustomerViewModel();
                }
            }

            #endregion

            if (viewmodel.OrderAmountDiscountRule == null)
            {
                viewmodel.OrderAmountDiscountRule = new PSOrderAmountDiscountRuleViewModel();
            }
            else
            {
                if (viewmodel.OrderAmountDiscountRule.OrderAmountDiscountRank != null &&
                    viewmodel.OrderAmountDiscountRule.OrderAmountDiscountRank.Count > 0)
                {
                    //foreach (OrderAmountDiscountRankViewModel rank in viewmodel.OrderAmountDiscountRule.OrderAmountDiscountRank)
                    //{
                    //    if (rank.DiscountType.Value == PSDiscountTypeForOrderAmount.OrderAmountPercentage)
                    //    {
                    //        rank.DiscountValue = rank.DiscountValue.Value * 100;
                    //    }
                    //}
                }
            }

            if (viewmodel.OrderCondition == null)
            {
                viewmodel.OrderCondition = new PSOrderConditionViewModel();
            }
            //SHIPTYPE ,PAYTYPE 转换
            if (viewmodel.OrderCondition != null &&
                viewmodel.OrderCondition.ShippingTypeSysNoList != null &&
                viewmodel.OrderCondition.ShippingTypeSysNoList.Count > 0)
            {
                viewmodel.ShipTypeSysNo = entity.OrderCondition.ShippingTypeSysNoList[0];
            }

            if (viewmodel.OrderCondition != null &&
                viewmodel.OrderCondition.PayTypeSysNoList != null &&
                viewmodel.OrderCondition.PayTypeSysNoList.Count > 0)
            {
                viewmodel.PayTypeSysNo = entity.OrderCondition.PayTypeSysNoList[0];
            }

            if (viewmodel.BindCondition == null)
            {
                viewmodel.BindCondition = CouponsBindConditionType.None;
            }

            if (viewmodel.ValidPeriod == null)
            {
                viewmodel.ValidPeriod = CouponsValidPeriodType.All;
            }

            if (viewmodel.UsingFrequencyCondition == null)
            {
                viewmodel.UsingFrequencyCondition = new PSActivityFrequencyConditionViewModel();
            }

            if (!viewmodel.IsAutoBinding.HasValue)
            {
                viewmodel.IsAutoBinding = false;
            }
            if (!viewmodel.IsAutoUse.HasValue)
            {
                viewmodel.IsAutoUse = false;
            }
            if (!viewmodel.IsExistThrowInTypeCouponCode.HasValue)
            {
                viewmodel.IsExistThrowInTypeCouponCode = false;
            }
            if (!viewmodel.IsSendMail.HasValue)
            {
                viewmodel.IsSendMail = false;
            }

            if (viewmodel.BindRule == null)
            {
                viewmodel.BindRule = new CouponBindRuleViewModel();
            }

            if (viewmodel.BindRule.RelProducts == null)
            {
                viewmodel.BindRule.RelProducts = new RelProductViewModel();
            }
            //viewmodel.BindRule = new CouponBindRuleViewModel();
            //viewmodel.BindRule.RelProducts = new RelProductViewModel();
            //if (entity.BindCondition == CouponsBindConditionType.SO)
            //{
            //    if (entity.BindRule != null)
            //    {
            //        viewmodel.BindRule.AmountLimit = entity.BindRule.AmountLimit;
            //        if (entity.BindRule.RelProducts != null)
            //        {
            //            viewmodel.BindRule.RelProducts.IsIncludeRelation = entity.BindRule.RelProducts.IsIncludeRelation;
            //            viewmodel.BindRule.RelProducts.IsExcludeRelation = !entity.BindRule.RelProducts.IsIncludeRelation;
            //            if (entity.BindRule.RelProducts.ProductList != null && entity.BindRule.RelProducts.ProductList.Count > 0)
            //            {
            //                viewmodel.BindRule.RelProducts.ProductList = new List<RelProductAndQty>();
            //                foreach (var itemViewModel in entity.BindRule.RelProducts.ProductList)
            //                {
            //                    RelProductAndQtyViewModel item = new RelProductAndQtyViewModel();
            //                    item.ProductSysNo = itemViewModel.ProductSysNo;
            //                    item.MinQty = itemViewModel.MinQty;

            //                    item.ProductID = itemViewModel.ProductID;
            //                    item.ProductName = itemViewModel.ProductName;
            //                    item.AvailableQty = itemViewModel.AvailableQty;
            //                    item.ConsignQty = itemViewModel.ConsignQty;
            //                    item.VirtualQty = itemViewModel.VirtualQty;
            //                    item.UnitCost = itemViewModel.UnitCost;
            //                    item.CurrentPrice = itemViewModel.CurrentPrice;
            //                    item.GrossMarginRate = itemViewModel.GrossMarginRate;
            //                    item.Priority = itemViewModel.Priority;
            //                    item.ProductRangeType = itemViewModel.ProductRangeType;
            //                    viewmodel.BindRule.RelProducts.ProductList.Add(item);
            //                }
            //            }
            //        }
            //    }

            //}
            return(viewmodel);
        }