Esempio n. 1
0
        private void CompareItems(TradeExportData input, TradeData output)
        {
            Assert.AreEqual(input.StyleNo, output.StyleNo);
            Assert.AreEqual(input.Description1 ?? string.Empty, output.Description1);
            Assert.AreEqual(input.Description2 ?? string.Empty, output.Description2);
            Assert.AreEqual(input.Description4 ?? string.Empty, output.Description4);
            Assert.AreEqual(input.PrimaryVendor ?? string.Empty, output.PrimaryVendor);
            Assert.AreEqual(input.SeasonName ?? string.Empty, output.SeasonName);
            Assert.AreEqual(input.TaxGroupCode ?? string.Empty, output.TaxGroupCode);
            Assert.AreEqual(input.TaxCategory ?? string.Empty, output.TaxCategory);
            Assert.AreEqual(input.BrandName ?? string.Empty, output.BrandName);
            Assert.AreEqual(true, output.Replenishment);
            Assert.AreEqual(input.CountryOfOrigin ?? string.Empty, output.CountryOfOrigin);
            Assert.AreEqual(input.CustomLongText1 ?? string.Empty, output.CustomLongText1);
            Assert.AreEqual(input.CustomLongText2 ?? string.Empty, output.CustomLongText2);
            Assert.AreEqual(input.CustomLongText3 ?? string.Empty, output.CustomLongText3);
            Assert.AreEqual(input.CustomLongText4 ?? string.Empty, output.CustomLongText4);
            Assert.AreEqual(input.CustomLongText5 ?? string.Empty, output.CustomLongText5);
            Assert.AreEqual(input.CustomLongText6 ?? string.Empty, output.CustomLongText6);
            Assert.AreEqual(string.Empty, output.CustomLongText7);
            Assert.AreEqual(string.Empty, output.CustomLongText8);
            Assert.AreEqual(string.Empty, output.CustomLongText9);
            Assert.AreEqual(string.Empty, output.CustomLongText10);
            Assert.AreEqual(string.Empty, output.CustomLongText11);
            Assert.AreEqual(string.Empty, output.CustomLongText12);
            Assert.AreEqual(string.Empty, output.Manufacturer);
            Assert.AreEqual(input.SubClass1.Substring(0, 1), output.Department);
            Assert.AreEqual(input.OrderCost, output.OrderCost);

            var item = output.Items.Single();

            Assert.AreEqual(6, item.WeeksOfSupply);
            Assert.AreEqual(input.EID, item.Eid);
            Assert.AreEqual(input.CLU, item.Clu);

            var upc = item.UPCs.Single();

            Assert.AreEqual(input.UPCValue, upc.Value);
            Assert.AreEqual(true, upc.IsDefault);

            Assert.AreEqual(input.Attribute1 ?? string.Empty, item.Attribute1);
            Assert.AreEqual(input.Attribute2 ?? string.Empty, item.Attribute2);

            Assert.AreEqual(input.Height ?? default(decimal), item.Height);
            Assert.AreEqual(input.Weight ?? default(decimal), item.Weight);
            Assert.AreEqual(input.Width ?? default(decimal), item.Width);
            Assert.AreEqual(input.Length ?? default(decimal), item.Length);

            Assert.AreEqual(input.ReleaseDate ?? null, item.ReleaseDate);

            Assert.AreEqual(false, item.NotTrackOh);
            Assert.AreEqual(true, item.TradeDiscount);
            Assert.AreEqual(true, item.MemberDiscount);
            Assert.AreEqual(false, item.Inactive);
            Assert.AreEqual(true, item.RequireDiscountAuthorizationCode);
            Assert.AreEqual(true, item.AcceptToken);
            Assert.AreEqual(true, item.AutoPromptToPayWithTokens);
            Assert.AreEqual(true, item.EligibleForLoyaltyRewards2);
            Assert.AreEqual(1, item.LoyaltyRewards2Ratio);

            Assert.AreEqual(input.ItemCost ?? default(decimal), item.OrderCost);
            Assert.AreEqual(input.CustomDate1 ?? null, item.CustomDate1);

            Assert.AreEqual(false, item.CustomFlag3);
            Assert.AreEqual(false, item.CustomFlag4);
            Assert.AreEqual(false, item.CustomFlag5);
            Assert.AreEqual(false, item.CustomFlag6);
            Assert.AreEqual(false, item.CustomFlag7);

            Assert.AreEqual(0, item.CustomNumber3);
            Assert.AreEqual(0, item.CustomNumber4);
            Assert.AreEqual(0, item.CustomNumber5);
            Assert.AreEqual(0, item.CustomNumber6);
            Assert.AreEqual(0, item.CustomNumber7);
            Assert.AreEqual(0, item.CustomNumber8);
            Assert.AreEqual(0, item.CustomNumber9);

            Assert.AreEqual(input.CustomText1 ?? string.Empty, item.CustomText1);
            Assert.AreEqual(input.CustomText2 ?? string.Empty, item.CustomText2);
            Assert.AreEqual(string.Empty, item.CustomText3);
            Assert.AreEqual(string.Empty, item.CustomText4);
            Assert.AreEqual(input.CustomText5 ?? string.Empty, item.CustomText5);
            Assert.AreEqual(string.Empty, item.CustomText6);
            Assert.AreEqual(string.Empty, item.CustomText7);
            Assert.AreEqual(string.Empty, item.CustomText8);
            Assert.AreEqual(input.CustomText9 ?? string.Empty, item.CustomText9);
            Assert.AreEqual(string.Empty, item.CustomText10);
            Assert.AreEqual(string.Empty, item.CustomText11);
            Assert.AreEqual(string.Empty, item.CustomText12);

            Assert.AreEqual(input.SubClass1 ?? string.Empty, item.SubClass1);
            Assert.AreEqual(input.SubClass2 ?? string.Empty, item.Subclass2);

            if (!string.IsNullOrWhiteSpace(item.SubClass1))
            {
                if (item.SubClass1.Length == 6)
                {
                    string elementClass = item.SubClass1.Substring(3, 3);

                    switch (item.SubClass1.Substring(0, 3).ToLowerInvariant())
                    {
                    case "p10":
                        elementClass = "1" + elementClass;
                        break;

                    case "m10":
                        elementClass = "2" + elementClass;
                        break;

                    case "g10":
                        elementClass = "3" + elementClass;
                        break;

                    case "f10":
                        elementClass = "6" + elementClass;
                        break;
                    }

                    Assert.AreEqual(elementClass, item.Class);
                }
            }

            Assert.AreEqual(input.BasePrice, item.BasePrice);
            this.ComparePricing(item.Prices, upc.Value, item.SubClass1, input.BasePrice);
        }
Esempio n. 2
0
        private TradeData CreateTradeDataElement(TradeExportData data)
        {
            if (string.IsNullOrWhiteSpace(data.StyleNo))
            {
                throw new Exception("data has empty StyleNo");
            }

            TradeData output = new TradeData();
            Item      item   = new Item();
            Upc       upc    = new Upc();

            var pricing = _pricingEngine.CalculatePrices(data.StyleNo, data.SubClass1 ?? string.Empty, data.BasePrice);

            output.StyleNo          = data.StyleNo;
            output.Description1     = data.Description1 ?? string.Empty;
            output.Description2     = data.Description2 ?? string.Empty;
            output.Description4     = data.Description4 ?? string.Empty;
            output.PrimaryVendor    = data.PrimaryVendor ?? string.Empty;
            output.SeasonName       = data.SeasonName ?? string.Empty;
            output.TaxGroupCode     = data.TaxGroupCode ?? string.Empty;
            output.TaxCategory      = data.TaxCategory ?? string.Empty;
            output.BrandName        = data.BrandName ?? string.Empty;
            output.Replenishment    = true;
            output.CountryOfOrigin  = data.CountryOfOrigin ?? string.Empty;
            output.CustomLongText1  = data.CustomLongText1 ?? string.Empty;
            output.CustomLongText2  = data.CustomLongText2 ?? string.Empty;
            output.CustomLongText3  = data.CustomLongText3 ?? string.Empty;
            output.CustomLongText4  = data.CustomLongText4 ?? string.Empty;
            output.CustomLongText5  = data.CustomLongText5 ?? string.Empty;
            output.CustomLongText6  = data.CustomLongText6 ?? string.Empty;
            output.CustomLongText7  = string.Empty;
            output.CustomLongText8  = string.Empty;
            output.CustomLongText9  = string.Empty;
            output.CustomLongText10 = string.Empty;
            output.CustomLongText11 = string.Empty;
            output.CustomLongText12 = string.Empty;
            output.Manufacturer     = string.Empty;
            output.Department       = string.IsNullOrEmpty(data.SubClass1) ? string.Empty : data.SubClass1.Substring(0, 1);
            output.OrderCost        = data.OrderCost;

            item.WeeksOfSupply = 6;
            item.Eid           = data.EID;
            item.Clu           = data.CLU;

            upc.Value     = data.UPCValue;
            upc.IsDefault = true;

            item.UPCs.Add(upc);

            item.Attribute1 = data.Attribute1 ?? string.Empty;
            item.Attribute2 = data.Attribute2 ?? string.Empty;

            if (data.Height.HasValue)
            {
                item.Height = data.Height.Value;
            }

            if (data.Weight.HasValue)
            {
                item.Weight = data.Weight.Value;
            }

            if (data.Width.HasValue)
            {
                item.Width = data.Width.Value;
            }

            if (data.Length.HasValue)
            {
                item.Length = data.Length.Value;
            }

            item.BasePrice = data.BasePrice;

            foreach (var outputPrice in _pricingEngine.CalculatePrices(data.StyleNo, data.SubClass1, data.BasePrice))
            {
                Price price = new Price
                {
                    PriceLevel = outputPrice.TWRLevel,
                    PricePrice = outputPrice.Price
                };

                item.Prices.Add(price);
            }

            if (data.ReleaseDate.HasValue)
            {
                item.ReleaseDate = data.ReleaseDate.Value;
            }

            item.NotTrackOh     = false;
            item.TradeDiscount  = true;
            item.MemberDiscount = true;
            item.Inactive       = false;
            item.RequireDiscountAuthorizationCode = true;
            item.AcceptToken = true;
            item.AutoPromptToPayWithTokens  = true;
            item.EligibleForLoyaltyRewards2 = true;
            item.LoyaltyRewards2Ratio       = 1;

            if (data.ItemCost.HasValue)
            {
                item.OrderCost = data.ItemCost.Value;
            }

            if (data.CustomDate1.HasValue)
            {
                item.CustomDate1 = data.CustomDate1.Value;
            }

            item.CustomFlag3   = false;
            item.CustomFlag4   = false;
            item.CustomFlag5   = false;
            item.CustomFlag6   = false;
            item.CustomFlag7   = false;
            item.CustomNumber3 = 0;
            item.CustomNumber4 = 0;
            item.CustomNumber5 = 0;
            item.CustomNumber6 = 0;
            item.CustomNumber7 = 0;
            item.CustomNumber8 = 0;
            item.CustomNumber9 = 0;

            item.CustomText1  = data.CustomText1 ?? string.Empty;
            item.CustomText2  = data.CustomText2 ?? string.Empty;
            item.CustomText3  = string.Empty;
            item.CustomText4  = string.Empty;
            item.CustomText5  = data.CustomText5 ?? string.Empty;
            item.CustomText6  = string.Empty;
            item.CustomText7  = string.Empty;
            item.CustomText8  = string.Empty;
            item.CustomText9  = data.CustomText9 ?? string.Empty;
            item.CustomText10 = string.Empty;
            item.CustomText11 = string.Empty;
            item.CustomText12 = string.Empty;

            item.SubClass1 = data.SubClass1 ?? string.Empty;
            item.Subclass2 = data.SubClass2 ?? string.Empty;

            if (!string.IsNullOrWhiteSpace(item.SubClass1))
            {
                if (item.SubClass1.Length == 6)
                {
                    string elementClass = item.SubClass1.Substring(3, 3);

                    switch (item.SubClass1.Substring(0, 3).ToLowerInvariant())
                    {
                    case "p10":
                        elementClass = "1" + elementClass;
                        break;

                    case "m10":
                        elementClass = "2" + elementClass;
                        break;

                    case "g10":
                        elementClass = "3" + elementClass;
                        break;

                    case "f10":
                        elementClass = "6" + elementClass;
                        break;
                    }

                    item.Class = elementClass;
                }
            }

            output.Items.Add(item);

            return(output);
        }