/// <summary>
        ///     ProcessAddShippingSubmit - click on continue on new shipping address
        /// </summary>
        /// <param name="button"></param>
        protected void ProcessAddShippingSubmit()
        {
            bool isNicknameEntered = false;

            string distributorID = DistributorID;
            string locale        = Locale;
            bool   toSession     = cbSaveThis.Checked ? false : true;

            WorkedUponAddress.ID = -1;
            IShippingProvider shippingProvider = (this.Page as ProductsBase).GetShippingProvider();

            var addressList = GetShippingAddressesFromDeliveryOptions(
                shippingProvider.GetShippingAddresses(distributorID, locale));

            // EMPTY IS ALLOWED OTHERWISE YOU COULD GET BUG 24224 for duplicates
            //  if (!this.txtNickname.Text.Equals(String.Empty))
            {
                WorkedUponAddress.Alias = txtNickname.Text.Trim();
                isNicknameEntered       = true;
            }

            try
            {
                //1) Submit validated chnages to Shippping Provider
                WorkedUponAddress.ID = ProductsBase.GetShippingProvider().SaveShippingAddress
                                           (distributorID, locale, WorkedUponAddress
                                           , toSession
                                           , true
                                           , isNicknameEntered);
            }
            finally
            {
            }

            if (WorkedUponAddress.ID == -2) //duplicateShippingAddress
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
                return;
            }
            if (WorkedUponAddress.ID == -3) //duplicateNickName
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "DuplicateAddressNickname")));
                return;
            }
            else
            {
                WorkedUponAddress.DisplayName = WorkedUponAddress.Alias == string.Empty
                                                    ? shippingProvider.GetAddressDisplayName(WorkedUponAddress)
                                                    : WorkedUponAddress.Alias;
                ShoppingCart.CopyInvoiceStatus = ServiceProvider.CatalogSvc.CopyInvoiceStatus.success;
                Session["IsCopingFromInvoice"] = null;
                OnShippingAddressCreated(this,
                                         new ShippingAddressEventArgs(distributorID, WorkedUponAddress, false, false));
                //popup_AddEditShippingControl.Hide();
            }
        }
Esempio n. 2
0
        protected virtual bool hasNoPreference()
        {
            IShippingProvider     ShippingProvider  = ProductsBase.GetShippingProvider();
            List <DeliveryOption> shippingAddresses =
                ShippingProvider.GetShippingAddresses(DistributorID, Locale);

            return(shippingAddresses == null || shippingAddresses.Count == 0);
        }
Esempio n. 3
0
        /// <summary>
        /// Copy a shopping cart from a exisiting order.
        /// </summary>
        /// <param name="shoppingCartID">Exisisting shopping cart.</param>
        /// <param name="distributorID">Actual distributor ID.</param>
        /// <param name="locale">Actual Locale.</param>
        /// <param name="SkuitemList">List of SKU item</param>
        /// <returns>New Shopping cart id.</returns>
        public static MyHLShoppingCart CopyShoppingCart(int shoppingCartID, string distributorID, string locale, SKU_V01ItemCollection SkuitemList = null)
        {
            try
            {
                //var myHLShoppingCart = ShoppingCartProvider.createShoppingCart(distributorID, locale);
                // create a new cart in catalog service
                MyHLShoppingCart copiedCart = ShoppingCartProvider.GetShoppingCartForCopy(distributorID, shoppingCartID, locale, 0, SkuitemList);
                if (copiedCart != null && copiedCart.ShippingAddressID != 0)
                {
                    IShippingProvider shippingProvider = ShippingProvider.GetShippingProvider(null);
                    if (HLConfigManager.Configurations.AddressingConfiguration.HasAddressRestriction)
                    {
                        List <DeliveryOption> shippingAddresses = shippingProvider.GetShippingAddresses(distributorID, locale).Where(s => s.HasAddressRestriction == true)
                                                                  .ToList();
                        if (shippingAddresses.Count > 0)
                        {
                            copiedCart.ShippingAddressID = shippingAddresses.FirstOrDefault().ID;
                        }
                    }

                    if (shippingProvider != null)
                    {
                        List <DeliveryOption> shippingAddresses = shippingProvider.GetShippingAddresses(distributorID, locale);
                        if (shippingAddresses == null || shippingAddresses != null &&
                            shippingAddresses.Find(s => s.ID == copiedCart.ShippingAddressID) == null)
                        {
                            string cacheKey = new ShippingProviderBase().getSessionShippingAddressKey(distributorID, locale);
                            HttpContext.Current.Session.Remove(cacheKey);
                        }
                    }
                }
                return(copiedCart);
            }
            catch (Exception ex)
            {
                LoggerHelper.Error(string.Format("CopyOrderError error: DS {0}, locale{1}, original {2}, error: {3}", distributorID, locale, shoppingCartID, ex.ToString()));
            }
            return(null);
        }
        /// <summary>
        ///     ProcessEditShippingSubmit - click on continue on edit shipping address
        /// </summary>
        /// <param name="button"></param>
        protected void ProcessEditShippingSubmit()
        {
            string distributorID = DistributorID;
            string countryCode   = CountryCode;
            string locale        = Locale;
            bool   toSession     = cbSaveThis.Checked ? false : true;
            int    existingId;

            IShippingProvider shippingProvider = (Page as ProductsBase).GetShippingProvider();

            bool isNicknameEntered = false;
            var  addressList       = GetShippingAddressesFromDeliveryOptions(
                shippingProvider.GetShippingAddresses(distributorID, locale));

            //check for empty nickname in the addressList.
            //if (this.txtNickname.Text.Equals(String.Empty))
            //{
            //   bool isExists = addressList.Exists(l => l.Alias.Equals(this.txtNickname.Text.Trim()));

            //   if (isExists)
            //   {
            //       existingId = addressList.Find(l => l.Alias.Equals(this.txtNickname.Text.Trim())) == null ? 0 :
            //           addressList.Find(l => l.Alias.Equals(this.txtNickname.Text.Trim())).ID;
            //       if (!this.WorkedUponAddress.ID.Equals(existingId))
            //       {
            //           //check for duplicate address.
            //           if (ProductsBase.GetShippingProvider().duplicateShippingAddress(addressList, this.WorkedUponAddress))
            //           {
            //               this.trError.Visible = true;
            //               this.blErrors.Items.Add(new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
            //               return;
            //           }
            //       }
            //   }
            //}

            int saveWorkingID = WorkedUponAddress.ID;

            var existentAdd =
                addressList.Where(l => l.Alias != null && l.Alias.Equals(txtNickname.Text.Trim())).FirstOrDefault();

            existingId = (existentAdd != null) ? existentAdd.ID : 0;

            if (!WorkedUponAddress.ID.Equals(existingId))
            {
                isNicknameEntered = true;
            }

            WorkedUponAddress.Alias = txtNickname.Text.Trim();

            //1) Submit validated chnages to Shippping Provider
            WorkedUponAddress.ID = ProductsBase.GetShippingProvider().SaveShippingAddress
                                       (distributorID, locale, WorkedUponAddress
                                       , toSession
                                       , true
                                       , isNicknameEntered);

            if (WorkedUponAddress.ID == -2) //duplicateShippingAddress
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "AddressExists")));
                return;
            }
            if (WorkedUponAddress.ID == -3) //duplicateNickName
            {
                trError.Visible = true;
                blErrors.Items.Add(
                    new ListItem(PlatformResources.GetGlobalResourceString("ErrorMessage", "DuplicateAddressNickname")));

                // don't loose the ID , otherwise it will become an insert
                if (isNicknameEntered)
                {
                    WorkedUponAddress.ID    = saveWorkingID;
                    WorkedUponAddress.Alias = txtNickname.Text.Trim();
                }

                return;
            }
            else
            {
                WorkedUponAddress.DisplayName = WorkedUponAddress.Alias == string.Empty
                                                    ? shippingProvider.GetAddressDisplayName(WorkedUponAddress)
                                                    : WorkedUponAddress.Alias;

                ShoppingCart.CopyInvoiceStatus = ServiceProvider.CatalogSvc.CopyInvoiceStatus.success;
                Session["IsCopingFromInvoice"] = null;
                OnShippingAddressChanged(this,
                                         new ShippingAddressEventArgs(distributorID, WorkedUponAddress, false, false));
            }
        }