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))); }
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); }
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); }