Exemplo n.º 1
0
        private void LoadShippingMethods(Order o)
        {
            var rates = new SortableCollection <ShippingRateDisplay>();

            if (!o.HasShippingItems)
            {
                var r = new ShippingRateDisplay
                {
                    DisplayName         = GlobalLocalization.GetString("NoShippingRequired"),
                    ProviderId          = string.Empty,
                    ProviderServiceCode = string.Empty,
                    Rate             = 0,
                    ShippingMethodId = "NOSHIPPING"
                };
                rates.Add(r);
            }
            else
            {
                // Shipping Methods
                rates = HccApp.OrderServices.FindAvailableShippingRates(o);

                if (rates.Count < 1)
                {
                    var result = new ShippingRateDisplay();
                    result.DisplayName      = GlobalLocalization.GetString("ToBeDetermined");
                    result.ShippingMethodId = "TOBEDETERMINED";
                    result.Rate             = 0;
                    rates.Add(result);
                }
            }

            litShippingMethods.Text = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey);
        }
        public ActionResult GetRatesAsRadioButtons(FormCollection form)
        {
            var result = new ShippingRatesJsonModel();

            var country   = form["country"] ?? string.Empty;
            var firstname = form["firstname"] ?? string.Empty;
            var lastname  = form["lastname"] ?? string.Empty;
            var address   = form["address"] ?? string.Empty;
            var city      = form["city"] ?? string.Empty;
            var state     = form["state"] ?? string.Empty;
            var zip       = form["zip"] ?? string.Empty;
            var orderid   = form["orderid"] ?? string.Empty;

            var order = HccApp.OrderServices.Orders.FindForCurrentStore(orderid);

            order.ShippingAddress.FirstName  = firstname;
            order.ShippingAddress.LastName   = lastname;
            order.ShippingAddress.Line1      = address;
            order.ShippingAddress.City       = city;
            order.ShippingAddress.PostalCode = zip;
            var c = HccApp.GlobalizationServices.Countries.Find(country);

            if (c != null)
            {
                order.ShippingAddress.CountryBvin = country;
                var region = c.Regions.
                             FirstOrDefault(r => r.Abbreviation == state);
                if (region != null)
                {
                    order.ShippingAddress.RegionBvin = region.Abbreviation;
                }
            }

            var rates = HccApp.OrderServices.FindAvailableShippingRates(order);

            if (rates != null && rates.Count > 0)
            {
                var selectedRate = rates.
                                   OfType <ShippingRateDisplay>().
                                   FirstOrDefault(r => r.UniqueKey == order.ShippingMethodUniqueKey);
                if (selectedRate == null)
                {
                    selectedRate = rates[0];
                }

                HccApp.OrderServices.OrdersRequestShippingMethod(selectedRate, order);
            }
            else
            {
                order.ClearShippingPricesAndMethod();
            }

            result.rates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, order.ShippingMethodUniqueKey);

            HccApp.CalculateOrderAndSave(order);

            return(new PreJsonResult(Web.Json.ObjectToJson(result)));
        }
Exemplo n.º 3
0
        private void LoadShippingMethodsForOrder(Order o)
        {
            SortableCollection <ShippingRateDisplay> rates = MTApp.OrderServices.FindAvailableShippingRates(o, MTApp.CurrentStore);

            string rateKey         = o.ShippingMethodUniqueKey;
            bool   rateIsAvailable = false;

            // See if rate is available
            if ((rateKey.Length > 0))
            {
                foreach (MerchantTribe.Commerce.Shipping.ShippingRateDisplay r in rates)
                {
                    if ((r.UniqueKey == rateKey))
                    {
                        rateIsAvailable = true;
                        MTApp.OrderServices.OrdersRequestShippingMethod(r, o);
                    }
                }
            }

            // if it's not availabe, pick the first one or default
            if ((rateIsAvailable == false))
            {
                if ((rates.Count > 0))
                {
                    MTApp.OrderServices.OrdersRequestShippingMethod(rates[0], o);
                    rateKey = rates[0].UniqueKey;
                }
                else
                {
                    o.ClearShippingPricesAndMethod();
                }
            }

            ViewBag.ShippingRates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey);
        }
Exemplo n.º 4
0
        private void LoadShippingMethodsForOrder(Order o)
        {
            var rates = HccApp.OrderServices.FindAvailableShippingRates(o);

            var rateKey         = o.ShippingMethodUniqueKey;
            var rateIsAvailable = false;

            // See if rate is available
            if (rateKey.Length > 0)
            {
                foreach (ShippingRateDisplay r in rates)
                {
                    if (r.UniqueKey == rateKey)
                    {
                        rateIsAvailable = true;
                        HccApp.OrderServices.OrdersRequestShippingMethod(r, o);
                    }
                }
            }

            // if it's not availabe, pick the first one or default
            if (rateIsAvailable == false)
            {
                if (rates.Count > 0)
                {
                    HccApp.OrderServices.OrdersRequestShippingMethod(rates[0], o);
                    rateKey = rates[0].UniqueKey;
                }
                else
                {
                    o.ClearShippingPricesAndMethod();
                }
            }

            ViewBag.ShippingRates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey);
        }
        public ActionResult GetRatesAsRadioButtons(FormCollection form)
        {
            ShippingRatesJsonResponse result = new ShippingRatesJsonResponse();

            string country   = form["country"] ?? string.Empty;
            string firstname = form["firstname"] ?? string.Empty;
            string lastname  = form["lastname"] ?? string.Empty;
            string address   = form["address"] ?? string.Empty;
            string city      = form["city"] ?? string.Empty;
            string state     = form["state"] ?? string.Empty;
            string zip       = form["zip"] ?? string.Empty;
            string orderid   = form["orderid"] ?? string.Empty;

            Order o = MTApp.OrderServices.Orders.FindForCurrentStore(orderid);

            o.ShippingAddress.FirstName  = firstname;
            o.ShippingAddress.LastName   = lastname;
            o.ShippingAddress.Line1      = address;
            o.ShippingAddress.City       = city;
            o.ShippingAddress.PostalCode = zip;
            Country c = Country.FindByBvin(country);

            if ((c != null))
            {
                o.ShippingAddress.CountryBvin = country;
                o.ShippingAddress.CountryName = c.DisplayName;
                foreach (Region r in c.Regions)
                {
                    if ((r.Abbreviation == state))
                    {
                        o.ShippingAddress.RegionBvin = r.Abbreviation;
                        o.ShippingAddress.RegionName = r.Name;
                    }
                }
            }

            SortableCollection <ShippingRateDisplay> rates = MTApp.OrderServices.FindAvailableShippingRates(o);

            string rateKey         = o.ShippingMethodUniqueKey;
            bool   rateIsAvailable = false;

            // See if rate is available
            if ((rateKey.Length > 0))
            {
                foreach (MerchantTribe.Commerce.Shipping.ShippingRateDisplay r in rates)
                {
                    if ((r.UniqueKey == rateKey))
                    {
                        rateIsAvailable = true;
                        MTApp.OrderServices.OrdersRequestShippingMethod(r, o);
                    }
                }
            }

            // if it's not availabe, pick the first one or default
            if ((rateIsAvailable == false))
            {
                if ((rates.Count > 0))
                {
                    MTApp.OrderServices.OrdersRequestShippingMethod(rates[0], o);
                    rateKey = rates[0].UniqueKey;
                }
                else
                {
                    o.ClearShippingPricesAndMethod();
                }
            }

            result.rates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey);

            MTApp.CalculateOrderAndSave(o);
            SessionManager.SaveOrderCookies(o, MTApp.CurrentStore);

            result.totalsastable = o.TotalsAsTable();

            //System.Threading.Thread.Sleep(500)
            return(new PreJsonResult(MerchantTribe.Web.Json.ObjectToJson(result)));
        }