Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        //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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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));
        }