private string GetCustomerClassificationCode(OntracCustomerClassification customerClassification) { switch (customerClassification) { case OntracCustomerClassification.Wholesale: return("01"); case OntracCustomerClassification.Occasional: return("03"); case OntracCustomerClassification.Retail: return("04"); default: throw new NopException("Unknown Ontrac customer classification code"); } }
private string CreateRequest(string accessKey, string username, string password, GetShippingOptionRequest getShippingOptionRequest, OntracCustomerClassification customerClassification, OntracPickupType pickupType, OntracPackagingType packagingType, bool saturdayDelivery) { var zipPostalCodeFrom = getShippingOptionRequest.ZipPostalCodeFrom; var zipPostalCodeTo = getShippingOptionRequest.ShippingAddress.ZipPostalCode; var countryCodeFrom = getShippingOptionRequest.CountryFrom.TwoLetterIsoCode; var countryCodeTo = getShippingOptionRequest.ShippingAddress.Country.TwoLetterIsoCode; var stateCodeFrom = getShippingOptionRequest.StateProvinceFrom?.Abbreviation; var stateCodeTo = getShippingOptionRequest.ShippingAddress.StateProvince?.Abbreviation; _orderTotalCalculationService.GetShoppingCartSubTotal(getShippingOptionRequest.Items.Select(x => x.ShoppingCartItem).ToList(), false, out decimal _, out List <DiscountForCaching> _, out decimal orderSubTotal, out decimal _); // Rate request setup - Total Dimensions of Shopping Cart Items determines number of packages var usedMeasureWeight = GetUsedMeasureWeight(); var usedMeasureDimension = GetUsedMeasureDimension(); _shippingService.GetDimensions(getShippingOptionRequest.Items, out decimal widthTmp, out decimal lengthTmp, out decimal heightTmp, true); var length = ConvertFromPrimaryMeasureDimension(lengthTmp, usedMeasureDimension); var height = ConvertFromPrimaryMeasureDimension(heightTmp, usedMeasureDimension); var width = ConvertFromPrimaryMeasureDimension(widthTmp, usedMeasureDimension); var weight = ConvertFromPrimaryMeasureWeight(_shippingService.GetTotalWeight(getShippingOptionRequest, ignoreFreeShippedItems: true), usedMeasureWeight); if (length < 1) { length = 1; } if (height < 1) { height = 1; } if (width < 1) { width = 1; } if (weight < 1) { weight = 1; } var totalPackagesDims = 1; var totalPackagesWeights = 1; if (IsPackageTooHeavy(weight)) { totalPackagesWeights = Convert.ToInt32(Math.Ceiling((decimal)weight / (decimal)MAXPACKAGEWEIGHT)); } if (IsPackageTooLarge(length, height, width)) { totalPackagesDims = Convert.ToInt32(Math.Ceiling((decimal)TotalPackageSize(length, height, width) / (decimal)108)); } var totalPackages = totalPackagesDims > totalPackagesWeights ? totalPackagesDims : totalPackagesWeights; if (totalPackages == 0) { totalPackages = 1; } //The maximum declared amount per package: 50000 USD. var InsureCost = _ontracSettings.InsurePackage ? Convert.ToInt32(orderSubTotal / totalPackages) : 0; //var Product = "S"; var res = "true"; var urlString = "?pw=" + password + "&packages=ID1;" + zipPostalCodeFrom + ";" + zipPostalCodeTo + ";" + res + ";0.00;false;" + InsureCost + ";" + weight + ";" + length + "X" + width + "X" + height + ";"; return(urlString); }