public static double FedExEstimatedRate(Person shipto, ProductCollection cart) { double temp = 0.0; //return 0.0 if something is wrong RateRequest request = FedEx.FedExCreateRateRequest(shipto, cart); //TODO: better to use shoppingcartV2 if it was available RateService service = new RateService(); // Initialize the service try { // Call the web service passing in a RateRequest and returning a RateReply RateReply reply = service.getRates(request); if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) // check if the call was successful { //ShowRateReply(reply); for (int i = 0; i < reply.RateReplyDetails[0].RatedShipmentDetails.Count(); i++) { ShipmentRateDetail rateDetail = reply.RateReplyDetails[0].RatedShipmentDetails[i].ShipmentRateDetail; if ((double)rateDetail.TotalNetCharge.Amount > temp) { temp = (double)rateDetail.TotalNetCharge.Amount; } } } FedEx.FedExShowNotifications(reply); } catch (Exception ex) { temp = 0.0; } return(temp); }
private static decimal GetCurrencyConvertedRate(ShipmentRateDetail rateDetail) { if (rateDetail?.TotalNetCharge == null) { return(0); } var hasCurrencyRate = rateDetail.CurrencyExchangeRate?.RateSpecified ?? false && rateDetail.CurrencyExchangeRate.Rate != 1 && rateDetail.CurrencyExchangeRate.Rate != 0; return(hasCurrencyRate ? Math.Round(rateDetail.TotalNetCharge.Amount / rateDetail.CurrencyExchangeRate.Rate, 2) : rateDetail.TotalNetCharge.Amount); }
//public static void FedExShowShipmentRateDetails(RatedShipmentDetail shipmentDetail, Person shipto, ProductCollection cart) public static double FedExRate(RatedShipmentDetail shipmentDetail, Person shipto, ProductCollection cart) { double temp = 0; if (shipmentDetail == null) { return(-1); //***EAC something wrong? } if (shipmentDetail.ShipmentRateDetail == null) { return(-1); //***EAC something wrong? } ShipmentRateDetail rateDetail = shipmentDetail.ShipmentRateDetail; FedExNoelWrite("--- Shipment Rate Detail ---"); // FedExNoelWrite("RateType: " + rateDetail.RateType); if (rateDetail.TotalBillingWeight != null) { FedExNoelWrite("Total Billing Weight: " + rateDetail.TotalBillingWeight.Value + " " + shipmentDetail.ShipmentRateDetail.TotalBillingWeight.Units); } if (rateDetail.TotalBaseCharge != null) { FedExNoelWrite("Total Base Charge: " + rateDetail.TotalBaseCharge.Amount + " " + rateDetail.TotalBaseCharge.Currency); } if (rateDetail.TotalFreightDiscounts != null) { FedExNoelWrite("Total Freight Discounts: " + rateDetail.TotalFreightDiscounts.Amount + " " + rateDetail.TotalFreightDiscounts.Currency); } if (rateDetail.TotalSurcharges != null) { FedExNoelWrite("Total Surcharges: " + rateDetail.TotalSurcharges.Amount + " " + rateDetail.TotalSurcharges.Currency); } if (rateDetail.Surcharges != null) { // Individual surcharge for each package foreach (Surcharge surcharge in rateDetail.Surcharges) { FedExNoelWrite(" surcharge " + surcharge.SurchargeType + " " + surcharge.Amount.Amount + " " + surcharge.Amount.Currency); } } if (rateDetail.TotalNetCharge != null) { FedExNoelWrite("Total Net Charge: " + rateDetail.TotalNetCharge.Amount + " " + rateDetail.TotalNetCharge.Currency); temp = (double)rateDetail.TotalNetCharge.Amount; } return(temp); }
private static void ShowShipmentRateDetails(RatedShipmentDetail shipmentDetail) { if (shipmentDetail == null) { return; } if (shipmentDetail.ShipmentRateDetail == null) { return; } ShipmentRateDetail rateDetail = shipmentDetail.ShipmentRateDetail; Console.WriteLine("--- Shipment Rate Detail ---"); // Console.WriteLine("RateType: {0} ", rateDetail.RateType); if (rateDetail.TotalBillingWeight != null) { Console.WriteLine("Total Billing Weight: {0} {1}", rateDetail.TotalBillingWeight.Value, shipmentDetail.ShipmentRateDetail.TotalBillingWeight.Units); } if (rateDetail.TotalBaseCharge != null) { Console.WriteLine("Total Base Charge: {0} {1}", rateDetail.TotalBaseCharge.Amount, rateDetail.TotalBaseCharge.Currency); } if (rateDetail.TotalFreightDiscounts != null) { Console.WriteLine("Total Freight Discounts: {0} {1}", rateDetail.TotalFreightDiscounts.Amount, rateDetail.TotalFreightDiscounts.Currency); } if (rateDetail.TotalSurcharges != null) { Console.WriteLine("Total Surcharges: {0} {1}", rateDetail.TotalSurcharges.Amount, rateDetail.TotalSurcharges.Currency); } if (rateDetail.Surcharges != null) { // Individual surcharge for each package foreach (Surcharge surcharge in rateDetail.Surcharges) { Console.WriteLine(" {0} surcharge {1} {2}", surcharge.SurchargeType, surcharge.Amount.Amount, surcharge.Amount.Currency); } } if (rateDetail.TotalNetCharge != null) { Console.WriteLine("Total Net Charge: {0} {1}", rateDetail.TotalNetCharge.Amount, rateDetail.TotalNetCharge.Currency); } }
public void ShowShipmentRateDetails(RatedShipmentDetail shipmentDetail) { if (shipmentDetail == null) { return; } if (shipmentDetail.ShipmentRateDetail == null) { return; } ShipmentRateDetail rateDetail = shipmentDetail.ShipmentRateDetail; // DB.LogGenera("FedEx", "", "RateType: {0}" + rateDetail.RateType); if (rateDetail.TotalBillingWeight != null) { DB.LogGenera("FedEx", "", string.Concat("Total Billing Weight: {0} {1}", rateDetail.TotalBillingWeight.Value, shipmentDetail.ShipmentRateDetail.TotalBillingWeight.Units)); } if (rateDetail.TotalBaseCharge != null) { DB.LogGenera("FedEx", "", string.Concat("Total Base Charge: {0} {1}", rateDetail.TotalBaseCharge.Amount, rateDetail.TotalBaseCharge.Currency)); } if (rateDetail.TotalFreightDiscounts != null) { DB.LogGenera("FedEx", "", string.Concat("Total Freight Discounts: {0} {1}", rateDetail.TotalFreightDiscounts.Amount, rateDetail.TotalFreightDiscounts.Currency)); } if (rateDetail.TotalSurcharges != null) { DB.LogGenera("FedEx", "", string.Concat("Total Surcharges: {0} {1}", rateDetail.TotalSurcharges.Amount, rateDetail.TotalSurcharges.Currency)); } if (rateDetail.Surcharges != null) { // Individual surcharge for each package foreach (Surcharge surcharge in rateDetail.Surcharges) { DB.LogGenera("FedEx", "", string.Concat(" {0} surcharge {1} {2}", surcharge.SurchargeType, surcharge.Amount.Amount, surcharge.Amount.Currency)); } } if (rateDetail.TotalNetCharge != null) { DB.LogGenera("FedEx", "", string.Concat("Total Net Charge: {0} {1}", rateDetail.TotalNetCharge.Amount, rateDetail.TotalNetCharge.Currency)); } ShowFreightRateDetail(rateDetail.FreightRateDetail); }
private (decimal amount, string currencyCode) GetCurrencyConvertedRate(ShipmentRateDetail rateDetail) { if (rateDetail?.TotalNetCharge == null) { return(0, ShipmentOptions.DefaultCurrencyCode); } if (rateDetail.TotalNetCharge.Currency == Shipment.Options.GetCurrencyCode()) { return(rateDetail.TotalNetCharge.Amount, rateDetail.TotalNetCharge.Currency); } var hasCurrencyRate = (rateDetail.CurrencyExchangeRate?.RateSpecified ?? false) && rateDetail.TotalNetCharge.Currency == rateDetail.CurrencyExchangeRate.FromCurrency && rateDetail.CurrencyExchangeRate.Rate != 1 && rateDetail.CurrencyExchangeRate.Rate != 0; return(hasCurrencyRate ? (Math.Round(rateDetail.TotalNetCharge.Amount / rateDetail.CurrencyExchangeRate.Rate, 2), rateDetail.CurrencyExchangeRate.IntoCurrency) : (rateDetail.TotalNetCharge.Amount, rateDetail.TotalNetCharge.Currency)); }