public static bool RequireAmazonProvider(int orderType,
                                          int market,
                                          string country,
                                          string sourceShippingService)
 {
     return(orderType == (int)OrderTypeEnum.Prime ||
            ((ShippingUtils.IsServiceNextDay(sourceShippingService) ||
              ShippingUtils.IsServiceSameDay(sourceShippingService) ||
              ShippingUtils.IsServiceTwoDays(sourceShippingService)) &&
             market == (int)MarketType.Amazon &&
             !ShippingUtils.IsInternational(country)));
 }
示例#2
0
        public static IList <CustomItemInfo> BuildCustomLines(IList <DTOOrderItem> items,
                                                              double orderWeightOz,
                                                              string defaultCustomType,
                                                              bool oneLine = false)
        {
            var nonAdjustedWeight = items.Sum(i => i.Weight * i.Quantity);
            var weightDelta       = nonAdjustedWeight - orderWeightOz;
            var itemCount         = items.Sum(i => i.Quantity);
            var adjustingWeight   = weightDelta / itemCount; //1 / (float)items.Count;

            //Adjustment items weight / convert prices
            foreach (var item in items)
            {
                item.ItemPrice = PriceHelper.RougeConvertToUSD(item.ItemPriceCurrency, item.ItemPrice);
                item.Weight   -= adjustingWeight;
            }

            ShippingUtils.FixUpItemPrices(items);

            var lines = CustomsHelper.PrepareLines(items);

            var results = lines.Select(i => new CustomItemInfo
            {
                Title        = StringHelper.GetFirstNotEmpty(i.ItemStyle, defaultCustomType),
                Quantity     = i.Quantity,
                ItemPrice    = i.ItemPrice,
                PerItemPrice = i.Quantity != 0 ? PriceHelper.RoundToTwoPrecision(i.ItemPrice / i.Quantity) : 0,
                Weight       = (decimal)i.Weight,
                SKU          = i.SKU,
                Country      = "US",
            }).ToArray();

            if (oneLine)
            {
                results = results.GroupBy(r => r.Title).Select(r => new CustomItemInfo()
                {
                    Title        = r.Key,
                    Quantity     = r.Sum(i => i.Quantity),
                    ItemPrice    = r.Sum(i => i.ItemPrice),
                    PerItemPrice = r.Sum(i => i.Quantity) != 0 ?
                                   PriceHelper.RoundToTwoPrecision(r.Sum(i => i.ItemPrice) / r.Sum(i => i.Quantity))
                        : 0,
                    Weight  = r.Sum(i => i.Weight),
                    SKU     = r.FirstOrDefault()?.SKU,
                    Country = r.FirstOrDefault()?.Country
                }).ToArray();
            }

            return(results);
        }
示例#3
0
 public static IList <OrderItemRateInfo> BuildAndGroupOrderItems(IList <ListingOrderDTO> orderItems)
 {
     return(orderItems.Select(i => new OrderItemRateInfo()
     {
         ItemOrderId = i.ItemOrderId,
         ReplaceType = i.ReplaceType,
         Weight = i.Weight ?? 0,
         PackageLength = i.PackageLength,
         PackageWidth = i.PackageWidth,
         PackageHeight = i.PackageHeight,
         Quantity = i.QuantityOrdered,
         ItemPrice = ShippingUtils.GetItemPrice(i),
         ShippingSize = i.ShippingSize,
         ItemStyle = ItemStyleHelper.GetFromItemStyleOrTitle(i.ItemStyle, i.Title),
     }).ToList());
 }
        public static string BuildLabelNotes(OrderShippingInfoDTO shipping)
        {
            var notes = OrderHelper.FormatOrderNumber(shipping.OrderAmazonId, (MarketType)shipping.Market) + " > " +
                        (shipping.TotalQuantity > 1 ? shipping.TotalQuantity + " items" : shipping.TotalQuantity + " item") +
                        (ShippingUtils.IsFlat(shipping.ShippingMethod.Id) ? " Flat" : "");

            if (shipping.NumberInList > 0)
            {
                notes = shipping.NumberInList + " > " + notes;
            }

            if (shipping.BatchId.HasValue && shipping.BatchId > 0)
            {
                notes = "B" + shipping.BatchId + " > " + notes;
            }

            return(notes);
        }
        public static bool ValidateLenghts(AddressDTO address,
                                           ShipmentProviderType type,
                                           long?dropShipperId)
        {
            if (dropShipperId == DSHelper.AshfordDsId)
            {
                //Address length max 30
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 30) //Checked
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 30) //Checked
                {
                    return(false);
                }
            }

            if (type == ShipmentProviderType.IBC)
            {
                /*<ShipTo>
                 * <Company>40</Company>
                 * <Attn>40</Attn>
                 * <AddressLine1>40</AddressLine1>
                 * <AddressLine2>40</AddressLine2>
                 * <AddressLine3>40</AddressLine3>
                 * <City>40</City>
                 * <StateCode>15</StateCode>
                 * <Zip>10</Zip>
                 * <Zip4>10</Zip4>
                 * <CountryCode>5</CountryCode>
                 * <CountryName>40</CountryName>
                 * <PhoneAreaCode>3</PhoneAreaCode>
                 * <Phone>20</Phone>
                 * <PhoneExt>10</PhoneExt>
                 * <Fax>15</Fax>
                 * <EMail>65</EMail>
                 * <Department>40</Department>
                 * <Reference>N/A</Reference>
                 * <ResidentialFlag>false</ResidentialFlag>
                 * <IsPOBox>false</IsPOBox>
                 * </ShipTo>*/

                if (String.IsNullOrEmpty(address.FullName) || address.FullName.Length < 2 || address.FullName.Length > 40)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 40) //Checked
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 40) //Checked
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.City) && address.City.Length > 40)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.State) && address.State.Length > 15) //Checked
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Zip) && address.Zip.Length > 10)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Country) && address.Country.Length > 40)
                {
                    return(false);
                }
            }

            if (type == ShipmentProviderType.Dhl)
            {
                if (String.IsNullOrEmpty(address.FullName) || address.FullName.Length < 2 || address.FullName.Length > 35)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 35)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 35)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.City) && address.City.Length > 35)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.State) && address.State.Length > 35)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Zip) && address.Zip.Length > 12)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Country) && address.Country.Length > 35)
                {
                    return(false);
                }
            }
            if (type == ShipmentProviderType.DhlECom)
            {
                if (String.IsNullOrEmpty(address.FullName) || address.FullName.Length < 2 || address.FullName.Length > 30)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 40)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 40)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.City) && address.City.Length > 30)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.State) && address.State.Length > 30)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Zip) && (address.Zip.Length > 11 || address.Zip.Length < 5))
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Country) && address.Country.Length != 2)
                {
                    return(false);
                }
            }
            if (type == ShipmentProviderType.Stamps)
            {
                var isInternational = ShippingUtils.IsInternational(address.FinalCountry);
                if (String.IsNullOrEmpty(address.FullName) || address.FullName.Length < 2)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.City) && address.City.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.State) && address.State.Length > 30)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Zip) && (!isInternational && address.Zip.Length > 5))
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.ZipAddon) && (!isInternational && address.ZipAddon.Length > 4))
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Country) && address.Country.Length > 35)
                {
                    return(false);
                }
            }
            if (type == ShipmentProviderType.IBC)
            {
                var isInternational = ShippingUtils.IsInternational(address.FinalCountry);
                if (String.IsNullOrEmpty(address.FullName) || address.FullName.Length < 2)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address1) && address.Address1.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Address2) && address.Address2.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.City) && address.City.Length > 50)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.State) && address.State.Length > 30)
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Zip) && (!isInternational && address.Zip.Length > 5))
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.ZipAddon) && (!isInternational && address.ZipAddon.Length > 4))
                {
                    return(false);
                }
                if (!String.IsNullOrEmpty(address.Country) && address.Country.Length > 35)
                {
                    return(false);
                }
            }
            if (type == ShipmentProviderType.Amazon)
            {
                //No validation, do not pass, changes have no effects
            }
            return(true);
        }