Ejemplo n.º 1
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            var    ret      = new FreeSKUCollection();
            string freeSKUs = value as string;

            if (!string.IsNullOrEmpty(freeSKUs))
            {
                string[] skuQtyArr = freeSKUs.Split(',');
                foreach (var l in skuQtyArr)
                {
                    string[] skuQty = l.Split('|');
                    if (skuQty.Length != 0)
                    {
                        ret.Add(new FreeSKU {
                            Quantity = int.Parse(skuQty[1]), SKU = skuQty[0]
                        });
                    }
                }
            }

            return(ret);
        }
        public void ProcessOtherMarchPromotionPC_Test()
        {
            var Promotion = new PromotionElement
            {
                StartDate            = "01-01-2016",
                EndDate              = "01-31-2016",
                PromotionType        = ServiceProvider.OrderChinaSvc.PromotionType.Other,
                HasIncrementaldegree = true,
                AmountMinInclude     = 2000,
                CustTypeList         = new List <string>
                {
                    "PC", "CS"
                },
                FreeSKUList = new FreeSKUCollection
                {
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "560P"
                    }
                },
            };

            Promotion.Code = "00017";
            var Cart = MyHLShoppingCartGenerator.GetBasicShoppingCart("CN1632369 ", "zh-CN", "20", "3019",
                                                                      new ShippingAddress_V02());

            Cart.CartItems = new ShoppingCartItemList
            {
                ShoppingCartItemHelper.GetCartItem(1, 1, "1316"),
                ShoppingCartItemHelper.GetCartItem(2, 1, "1317"),
            };

            var Order = new Order_V01();

            Order.DistributorID = "CN1632369";
            var order1 = new OnlineOrderItem()
            {
                Quantity    = 10,
                SKU         = "1316",
                Description = "",
                RetailPrice = 0,
                IsPromo     = false,
            };

            Order.OrderItems = new OrderItems {
                order1
            };
            Order.Shipment = new ShippingInfo_V01
            {
                Address = new ServiceProvider.OrderSvc.Address()
                {
                    City    = "眉山市",
                    Country = "cn"
                },
                ShippingMethodID = "22",
                WarehouseCode    = "3019"
            };

            Order.CountryOfProcessing = "CN";
            var ordertotal = new OrderTotals_V02();

            GetQuotes(Order, ordertotal, false, out ordertotal);
            var promorule = new MyHerbalife3.Ordering.Rules.Promotional.zh_CN.PromotionalRules();

            Cart.Totals = ordertotal;
            FreeSKUCollection skuCollection = promorule.CheckPcPromo(Promotion, Cart);

            Assert.AreEqual(skuCollection[0].Quantity, 2);
        }
        public void ProcessVolumePromotionDSNovPromo_Test()
        {
            var promoelement = new PromotionElement
            {
                StartDate            = "11-01-2015",
                EndDate              = "11-30-2015",
                PromotionType        = MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.PromotionType.Volume,
                HasIncrementaldegree = true,
                VolumeMinInclude     = 200,
                CustTypeList         = new List <string>
                {
                    "DS", "FM", "SC", "SP", "SQ"
                },
                FreeSKUList = new FreeSKUCollection
                {
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "1443"
                    },
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "K365"
                    },
                },
                SelectableSKUList = new FreeSKUCollection
                {
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "1316"
                    },
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "1318"
                    },
                },
                FreeSKUListForVolume = new FreeSKUCollection
                {
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "1443"
                    },
                },
                FreeSKUListForSelectableSku = new FreeSKUCollection
                {
                    new FreeSKU
                    {
                        Quantity = 1,
                        SKU      = "K365"
                    },
                },
            };

            promoelement.Code = "DSNovPromo";
            var cart = MyHLShoppingCartGenerator.GetBasicShoppingCart("CN640521", "zh-CN", "20", "3019",
                                                                      new ShippingAddress_V02());

            cart.CartItems = new ShoppingCartItemList
            {
                ShoppingCartItemHelper.GetCartItem(1, 1, "1316"),
                ShoppingCartItemHelper.GetCartItem(2, 1, "1442"),
                ShoppingCartItemHelper.GetCartItem(3, 1, "1318")
            };
            var order = new Order_V01();

            order.DistributorID = "CN640521";
            var orderitem1 = new OnlineOrderItem()
            {
                Quantity    = 10,
                SKU         = "1316",
                Description = "",
                RetailPrice = 0,
                IsPromo     = false,
            };
            var orderitem2 = new OnlineOrderItem()
            {
                Quantity    = 1,
                SKU         = "1442",
                Description = "",
                RetailPrice = 0,
                IsPromo     = false,
            };
            var orderitem3 = new OnlineOrderItem()
            {
                Quantity    = 1,
                SKU         = "1318",
                Description = "",
                RetailPrice = 0,
                IsPromo     = false,
            };

            order.OrderItems = new OrderItems {
                orderitem1, orderitem2, orderitem3
            };
            order.Shipment = new ShippingInfo_V01
            {
                Address = new MyHerbalife3.Ordering.ServiceProvider.OrderSvc.Address
                {
                    City    = "眉山市",
                    Country = "cn"
                },
                ShippingMethodID = "22",
                WarehouseCode    = "3019"
            };
            order.CountryOfProcessing = "CN";
            var ordertotal = new MyHerbalife3.Ordering.ServiceProvider.OrderSvc.OrderTotals_V02();

            GetQuotes(order, ordertotal, false, out ordertotal);
            var promorule = new MyHerbalife3.Ordering.Rules.Promotional.zh_CN.PromotionalRules();

            cart.Totals = ordertotal;
            FreeSKUCollection skuCollection = promorule.CheckDsNovPromo(promoelement, cart);

            Assert.AreEqual(skuCollection[0].Quantity, 3);
        }