Esempio n. 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.ShippingCosts");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.ShippingCosts");
        }

        shippingOption = EditedObjectParent as ShippingOptionInfo;
        if (shippingOption != null)
        {
            CheckEditedObjectSiteID(shippingOption.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(shippingOption.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnAction             += gridElem_OnAction;
        gridElem.OnExternalDataBound  += gridElem_OnExternalDataBound;
        gridElem.OnAfterRetrieveData  += gridElem_OnAfterRetrieveData;
        gridElem.ZeroRowsText          = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        bool offerGlobalPaymentMethods = false;

        mShippingOptionId = QueryHelper.GetInteger("objectid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject           = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                int editedSiteId = mShippingOptionInfoObj.ShippingOptionSiteID;
                // Check object's site id
                CheckEditedObjectSiteID(editedSiteId);

                // Offer global payment methods when allowed
                offerGlobalPaymentMethods = ECommerceSettings.AllowGlobalPaymentMethods(editedSiteId);

                DataSet ds = PaymentOptionInfoProvider.GetPaymentOptionsForShipping(mShippingOptionId).OrderBy("PaymentOptionDisplayName");
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], "PaymentOptionID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.WhereCondition      = GetSelectorWhereCondition(offerGlobalPaymentMethods);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mShippingOptionId = QueryHelper.GetInteger("objectid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject           = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy             = "TaxClassDisplayName";
        uniSelector.WhereCondition      = GetSelectorWhereCondition();
    }
Esempio n. 4
0
 /// <summary>
 /// Load data of editing shippingOption.
 /// </summary>
 /// <param name="shippingOptionObj">ShippingOption object</param>
 protected void LoadData(ShippingOptionInfo shippingOptionObj)
 {
     txtShippingOptionDisplayName.Text = shippingOptionObj.ShippingOptionDisplayName;
     txtShippingOptionCharge.Value     = shippingOptionObj.ShippingOptionCharge;
     txtShippingOptionName.Text        = shippingOptionObj.ShippingOptionName;
     chkShippingOptionEnabled.Checked  = shippingOptionObj.ShippingOptionEnabled;
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        lblAvialable.Text = GetString("com.shippingoption.taxes");
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", SystemDataHelper.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.IconPath = GetObjectIconUrl("ecommerce.taxclass", "object.png");
        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy = "TaxClassDisplayName";
        uniSelector.WhereCondition = GetSelectorWhereCondition();
    }
Esempio n. 6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);

        mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
        EditedObject           = mShippingOptionInfoObj;

        if (mShippingOptionInfoObj != null)
        {
            CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(mShippingOptionInfoObj.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnAction             += new OnActionEventHandler(gridElem_OnAction);
        gridElem.OnExternalDataBound  += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);
        gridElem.OnAfterRetrieveData  += new OnAfterRetrieveData(gridElem_OnAfterRetrieveData);
        gridElem.WhereCondition        = "ShippingCostShippingOptionID = " + mShippingOptionId;
        gridElem.ZeroRowsText          = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;

        // Prepare the new shipping cost header action
        CurrentMaster.HeaderActions.AddAction(new HeaderAction()
        {
            Text        = GetString("com.ui.shippingcost.edit_new"),
            RedirectUrl = ResolveUrl("ShippingOption_Edit_ShippingCosts_Edit.aspx?shippingCostShippingOptionId=" + mShippingOptionId + "&siteId=" + SiteID),
            ImageUrl    = GetImageUrl("Objects/Ecommerce_ShippingOption/add.png"),
            ControlType = HeaderActionTypeEnum.Hyperlink
        });
    }
Esempio n. 7
0
        /// <summary>
        /// Calculates prices of the given shipping option.
        /// </summary>
        /// <param name="shippingInfo">Shipping option info object (<see cref="ShippingOptionInfo"/>) for which the prices are calculated.</param>
        /// <param name="cart">Shopping cart (<see cref="ShoppingCart"/>) used to gather the price calculation information.</param>
        /// <returns><see cref="ShippingPrice"/> object containing the shipping's prices.</returns>
        public virtual ShippingPrice CalculateShippingOptionPrice(ShippingOptionInfo shippingInfo, ShoppingCart cart)
        {
            if (shippingInfo == null)
            {
                throw new ArgumentNullException(nameof(shippingInfo));
            }

            if (cart == null)
            {
                throw new ArgumentNullException(nameof(cart));
            }

            var originalCart = cart.OriginalCart;

            // Evaluate the cart to get total items price
            originalCart.Evaluate();

            var request = Service.Resolve <IShoppingCartAdapterService>().GetCalculationRequest(originalCart);

            request.ShippingOption = shippingInfo;
            var calculatorData = new CalculatorData(request, new CalculationResult());

            // Get shipping price
            var shippingPrice = Service.Resolve <IShippingPriceService>().GetShippingPrice(calculatorData, originalCart.TotalItemsPrice).Price;

            var roundingService = Service.Resolve <IRoundingServiceFactory>().GetRoundingService(originalCart.ShoppingCartSiteID);

            return(new ShippingPrice
            {
                Currency = cart.Currency,
                Price = roundingService.Round(shippingPrice, cart.Currency.OriginalCurrency),
                Tax = 0m
            });
        }
    protected void InitPaymentShipping()
    {
        if (currentSite != null)
        {
            // Get shipping option name
            ShippingOptionInfo shippingObj = ShoppingCart.ShippingOption;
            if (shippingObj != null)
            {
                mAddressCount++;
                tdShippingAddress.Visible   = true;
                plcShipping.Visible         = true;
                plcShippingOption.Visible   = true;
                lblShippingOptionValue.Text = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(shippingObj.ShippingOptionDisplayName));
                lblShippingValue.Text       = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.TotalShipping, ShoppingCart.Currency);
            }
            else
            {
                tdShippingAddress.Visible = false;
                plcShippingOption.Visible = false;
                plcShipping.Visible       = false;
            }
        }

        // Get payment method name
        PaymentOptionInfo paymentObj = PaymentOptionInfoProvider.GetPaymentOptionInfo(ShoppingCart.ShoppingCartPaymentOptionID);

        if (paymentObj != null)
        {
            lblPaymentMethodValue.Text = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(paymentObj.PaymentOptionDisplayName));
        }

        // Total price initialization
        lblTotalPriceValue.Text = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.GrandTotal, ShoppingCart.Currency);
        lblTotalTaxValue.Text   = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.TotalTax, ShoppingCart.Currency);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mShippingOptionId = QueryHelper.GetInteger("shippingOptionID", 0);

        string             shippingOptionName = "";
        ShippingOptionInfo soi = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);

        if (soi != null)
        {
            editedSiteId = soi.ShippingOptionSiteID;

            // Check site ID
            CheckEditedObjectSiteID(editedSiteId);
            shippingOptionName = ResHelper.LocalizeString(soi.ShippingOptionDisplayName);
        }

        // Initializes page title and breadcrumbs
        string[,] breadcrumbs = new string[2, 3];
        breadcrumbs[0, 0]     = GetString("ShippingOption_EditHeader.ItemListLink");
        breadcrumbs[0, 1]     = "~/CMSModules/Ecommerce/Pages/Tools/Configuration/ShippingOptions/ShippingOption_List.aspx?siteId=" + SiteID;
        breadcrumbs[0, 2]     = "configEdit";
        breadcrumbs[1, 0]     = FormatBreadcrumbObjectName(shippingOptionName, editedSiteId);
        breadcrumbs[1, 1]     = "";
        breadcrumbs[1, 2]     = "";

        CMSMasterPage master = (CMSMasterPage)CurrentMaster;

        master.Title.Breadcrumbs  = breadcrumbs;
        master.Tabs.OnTabCreated += Tabs_OnTabCreated;
    }
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that throws event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void uniGrid_OnAction(string actionName, object actionArgument)
    {
        if (actionName == "edit")
        {
            URLHelper.Redirect("ShippingOption_Edit_Frameset.aspx?shippingOptionID=" + Convert.ToString(actionArgument) + "&siteId=" + SelectSite.SiteID);
        }
        else if (actionName == "delete")
        {
            ShippingOptionInfo shippingInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(ValidationHelper.GetInteger(actionArgument, 0));
            // Nothing to delete
            if (shippingInfoObj == null)
            {
                return;
            }

            // Check permissions
            CheckConfigurationModification(shippingInfoObj.ShippingOptionSiteID);

            // Check dependencies
            if (ShippingOptionInfoProvider.CheckDependencies(shippingInfoObj.ShippingOptionID))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("Ecommerce.DeleteDisabled");
                return;
            }
            // Delete ShippingOptionInfo object from database
            ShippingOptionInfoProvider.DeleteShippingOptionInfo(shippingInfoObj);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        bool offerGlobalPaymentMethods = false;

        mShippingOptionId = QueryHelper.GetInteger("objectid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                int editedSiteId = mShippingOptionInfoObj.ShippingOptionSiteID;
                // Check object's site id
                CheckEditedObjectSiteID(editedSiteId);

                // Offer global payment methods when allowed
                offerGlobalPaymentMethods = ECommerceSettings.AllowGlobalPaymentMethods(editedSiteId);

                DataSet ds = PaymentOptionInfoProvider.GetPaymentOptionsForShipping(mShippingOptionId).OrderBy("PaymentOptionDisplayName");
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], "PaymentOptionID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.WhereCondition = GetSelectorWhereCondition(offerGlobalPaymentMethods);
    }
Esempio n. 12
0
        /// <summary>
        /// Creates a shipping option model.
        /// </summary>
        /// <param name="shippingOption">Shipping option.</param>
        /// <param name="shippingOptions">List of shipping options.</param>
        public ShippingOptionModel(ShippingOptionInfo shippingOption, SelectList shippingOptions)
        {
            ShippingOptions = shippingOptions;

            if (shippingOption != null)
            {
                ShippingOptionID = shippingOption.ShippingOptionID;
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Required field validator error messages initialization
        rfvDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
        rfvName.ErrorMessage        = GetString("COM_ShippingOption_Edit.NameError");
        txtShippingOptionCharge.EmptyErrorMessage      = GetString("COM_ShippingOption_Edit.ChargeError");
        txtShippingOptionCharge.ValidationErrorMessage = GetString("COM_ShippingOption_Edit.ChargePositive");

        // Control initializations
        lblShippingOptionCharge.Text = GetString("COM_ShippingOption_Edit.ShippingOptionChargeLabel");

        // Get shippingOption id from querystring
        mShippingOptionID = QueryHelper.GetInteger("shippingOptionID", 0);
        mEditedSiteId     = ConfiguredSiteID;
        // Edit shipping option
        if (mShippingOptionID > 0)
        {
            ShippingOptionInfo shippingOptionObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionID);
            EditedObject = shippingOptionObj;

            if (shippingOptionObj != null)
            {
                mEditedSiteId = shippingOptionObj.ShippingOptionSiteID;
                CheckEditedObjectSiteID(mEditedSiteId);

                // Init file uploader
                file.ObjectID   = mShippingOptionID;
                file.ObjectType = ECommerceObjectType.SHIPPINGOPTION;
                file.Category   = MetaFileInfoProvider.OBJECT_CATEGORY_THUMBNAIL;
                file.SiteID     = mEditedSiteId;

                // Fill editing form
                if (!RequestHelper.IsPostBack())
                {
                    LoadData(shippingOptionObj);
                    // Show that the shippingOption was created or updated successfully
                    if (QueryHelper.GetString("saved", "") == "1")
                    {
                        // Show message
                        ShowChangesSaved();
                    }
                }
            }
        }

        // Ensure currency code after price value
        txtShippingOptionCharge.CurrencySiteID = mEditedSiteId;

        // Check presence of main currency
        string currencyWarning = CheckMainCurrency(mEditedSiteId);

        if (!string.IsNullOrEmpty(currencyWarning))
        {
            ShowWarning(currencyWarning, null, null);
        }
    }
        /// <summary>
        /// Creates a shipping option model.
        /// </summary>
        /// <param name="shippingOption">Shipping option.</param>
        /// <param name="shippingOptions">List of shipping options.</param>
        public ShippingOptionViewModel(ShippingOptionInfo shippingOption, SelectList shippingOptions)
        {
            ShippingOptions = shippingOptions;

            if (shippingOption != null)
            {
                ShippingOptionID          = shippingOption.ShippingOptionID;
                ShippingOptionDisplayName = shippingOption.ShippingOptionDisplayName;
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for CMS Desk -> Ecommerce
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.PaymentMethods"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.PaymentMethods");
        }

        bool offerGlobalPaymentMethods = false;

        lblAvialable.Text = GetString("com.shippingoption.payments");
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                int editedSiteId = mShippingOptionInfoObj.ShippingOptionSiteID;
                // Check object's site id
                CheckEditedObjectSiteID(editedSiteId);

                // Offer global payment methods when allowed or configuring global shipping option
                if (editedSiteId != 0)
                {
                    SiteInfo si = SiteInfoProvider.GetSiteInfo(editedSiteId);
                    if (si != null)
                    {
                        offerGlobalPaymentMethods = ECommerceSettings.AllowGlobalPaymentMethods(si.SiteName);
                    }
                }
                // Configuring global shipping option
                else
                {
                    offerGlobalPaymentMethods = true;
                }

                DataSet ds = PaymentOptionInfoProvider.GetPaymentOptionsForShipping(mShippingOptionId, false);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", SqlHelperClass.GetStringValues(ds.Tables[0], "PaymentOptionID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.IconPath = GetObjectIconUrl("ecommerce.paymentoption", "object.png");
        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.WhereCondition = GetSelectorWhereCondition(offerGlobalPaymentMethods);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for CMS Desk -> Ecommerce
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.PaymentMethods"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.PaymentMethods");
        }

        bool offerGlobalPaymentMethods = false;

        lblAvialable.Text = GetString("com.shippingoption.payments");
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject           = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                int editedSiteId = mShippingOptionInfoObj.ShippingOptionSiteID;
                // Check object's site id
                CheckEditedObjectSiteID(editedSiteId);

                // Offer global payment methods when allowed or configuring global shipping option
                if (editedSiteId != 0)
                {
                    SiteInfo si = SiteInfoProvider.GetSiteInfo(editedSiteId);
                    if (si != null)
                    {
                        offerGlobalPaymentMethods = ECommerceSettings.AllowGlobalPaymentMethods(si.SiteName);
                    }
                }
                // Configuring global shipping option
                else
                {
                    offerGlobalPaymentMethods = true;
                }

                DataSet ds = PaymentOptionInfoProvider.GetPaymentOptionsForShipping(mShippingOptionId, false);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", SqlHelperClass.GetStringValues(ds.Tables[0], "PaymentOptionID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.IconPath            = GetObjectIconUrl("ecommerce.paymentoption", "object.png");
        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.WhereCondition      = GetSelectorWhereCondition(offerGlobalPaymentMethods);
    }
 internal IEnumerable <ShippingOptionInfo> InitShippingOptions()
 {
     return(new[]
     {
         ShippingOptionDefault = new ShippingOptionInfo
         {
             ShippingOptionSiteID = SiteInfo.SiteID,
             ShippingOptionName = "Default",
             ShippingOptionDisplayName = "Default",
             ShippingOptionEnabled = true,
             ShippingOptionCarrierID = CarrierBasic.CarrierID
         }
     });
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        shippingOption = EditedObjectParent as ShippingOptionInfo;
        if (shippingOption != null)
        {
            CheckEditedObjectSiteID(shippingOption.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(shippingOption.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnExternalDataBound  += gridElem_OnExternalDataBound;
        gridElem.ZeroRowsText          = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        shippingOption = EditedObjectParent as ShippingOptionInfo;
        if (shippingOption != null)
        {
            CheckEditedObjectSiteID(shippingOption.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(shippingOption.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnAction += gridElem_OnAction;
        gridElem.OnExternalDataBound += gridElem_OnExternalDataBound;
        gridElem.ZeroRowsText = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;
    }
Esempio n. 20
0
    private decimal CalculateShipping(ShippingOptionInfo option)
    {
        if (option == null || (ShoppingCart.Currency == null))
        {
            return(0m);
        }

        var request = Service.Resolve <IShoppingCartAdapterService>().GetCalculationRequest(ShoppingCart);

        request.ShippingOption = option;

        var result = Service.Resolve <IShoppingCartAdapterService>().GetCalculationResult(ShoppingCart);

        var shippingService = Service.Resolve <IShippingPriceService>();

        return(shippingService.GetShippingPrice(new CalculatorData(request, result), ShoppingCart.TotalItemsPrice - ShoppingCart.OrderDiscount).Price);
    }
Esempio n. 21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.ShippingCosts");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.ShippingCosts");
        }

        // Register item validation
        EditForm.OnItemValidation += EditForm_OnItemValidation;

        mShippingOptionObj = EditedObjectParent as ShippingOptionInfo;

        if (mShippingOptionObj != null)
        {
            // Register check permissions
            EditForm.OnCheckPermissions += (s, args) => CheckConfigurationModification(mShippingOptionObj.ShippingOptionSiteID);
        }
        else
        {
            // Invalid shipping option
            EditedObject = null;
            return;
        }

        ShippingCostInfo shippingCostObj = EditedObject as ShippingCostInfo;

        if (shippingCostObj != null)
        {
            // Check if edited shipping cost is assigned to shipping option
            if ((shippingCostObj.ShippingCostID != 0) && (shippingCostObj.ShippingCostShippingOptionID != mShippingOptionObj.ShippingOptionID))
            {
                EditedObject = null;
            }

            // Check if not editing object from another site
            CheckEditedObjectSiteID(mShippingOptionObj.ShippingOptionSiteID);

            // Check presence of main currency
            CheckMainCurrency(mShippingOptionObj.ShippingOptionSiteID);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.ShippingCosts");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.ShippingCosts");
        }

        // Register item validation
        EditForm.OnItemValidation += EditForm_OnItemValidation;

        mShippingOptionObj = EditedObjectParent as ShippingOptionInfo;

        if (mShippingOptionObj != null)
        {
            // Register check permissions
            EditForm.OnCheckPermissions += (s, args) => CheckConfigurationModification(mShippingOptionObj.ShippingOptionSiteID);
        }
        else
        {
            // Invalid shipping option
            EditedObject = null;
            return;
        }

        ShippingCostInfo shippingCostObj = EditedObject as ShippingCostInfo;

        if (shippingCostObj != null)
        {
            // Check if edited shipping cost is assigned to shipping option
            if ((shippingCostObj.ShippingCostID != 0) && (shippingCostObj.ShippingCostShippingOptionID != mShippingOptionObj.ShippingOptionID))
            {
                EditedObject = null;
            }

            // Check if not editing object from another site
            CheckEditedObjectSiteID(mShippingOptionObj.ShippingOptionSiteID);

            // Check presence of main currency
            CheckMainCurrency(mShippingOptionObj.ShippingOptionSiteID);
        }
    }
    protected void InitPaymentShipping()
    {
        // shipping option and payment method
        lblShippingOption.Text = GetString("Ecommerce.CartContent.ShippingOption");
        lblPaymentMethod.Text  = GetString("Ecommerce.CartContent.PaymentMethod");
        lblShipping.Text       = GetString("Ecommerce.CartContent.Shipping");

        if (IsShippingNeeded && currentSite != null)
        {
            // get shipping option name
            ShippingOptionInfo shippingObj = ShoppingCart.ShippingOption;
            if (shippingObj != null)
            {
                mAddressCount++;
                //plcShippingAddress.Visible = true;
                tdShippingAddress.Visible   = true;
                plcShipping.Visible         = true;
                plcShippingOption.Visible   = true;
                lblShippingOptionValue.Text = HTMLHelper.HTMLEncode(shippingObj.ShippingOptionDisplayName);
                lblShippingValue.Text       = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.TotalShipping, ShoppingCart.Currency);
            }
            else
            {
                //plcShippingAddress.Visible = false;
                tdShippingAddress.Visible = false;
                plcShippingOption.Visible = false;
                lblShippingValue.Text     = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.TotalShipping, ShoppingCart.Currency);
                //plcShipping.Visible = false;
            }
        }

        // get payment method name
        PaymentOptionInfo paymentObj = PaymentOptionInfoProvider.GetPaymentOptionInfo(ShoppingCart.ShoppingCartPaymentOptionID);

        if (paymentObj != null)
        {
            lblPaymentMethodValue.Text = HTMLHelper.HTMLEncode(paymentObj.PaymentOptionDisplayName);
        }


        // total price initialization
        lblTotalPrice.Text      = GetString("ecommerce.cartcontent.totalprice");
        lblTotalPriceValue.Text = CurrencyInfoProvider.GetFormattedPrice(ShoppingCart.RoundedTotalPrice, ShoppingCart.Currency);
    }
    /// <summary>
    /// Ensures that the shipping option is applicable only if user is not purchasing one fo the excluded products
    /// </summary>
    /// <param name="cart">Shopping cart data.</param>
    /// <param name="shippingOption">Shipping option which is being checked for applicability.</param>
    /// <returns>True if the shipping option is allowed to be applied for the current cart items, otherwise returns false.</returns>
    protected override bool IsShippingOptionApplicableInternal(ShoppingCartInfo cart, ShippingOptionInfo shippingOption)
    {
        bool blnOptionAllowed = true;

        try
        {
            // Does not check availability if shopping cart or shipping option object is not available
            if ((cart == null) || (shippingOption == null))
            {
                return true;
            }

            // Gets data for the ShippingOptionExcludedProducts field
            var shippingOptionExcludedProducts = shippingOption.GetValue("ShippingOptionExcludedProducts");

            // Does not check availability if no products were permitted
            if (shippingOptionExcludedProducts == null)
            {
                return true;
            }

            // Parses retrieved data
            var excludedProducts = shippingOptionExcludedProducts.ToString().Split(';');

            // Loop through the cart to see if it contains any of the selected products.
            // If so, do not allow the shipping option
            foreach (ShoppingCartItemInfo sci in cart.CartItems)
            {
                if (excludedProducts.Contains(ValidationHelper.GetString(sci.SKUID, "")))
                {
                    //Set the flag to false so the option is not allowed
                    blnOptionAllowed = false;
                    break;
                }
            }
        }
        catch(Exception ex)
        {
            EventLogProvider.LogException("CustomShippingOptionInfoProvider - IsShippingOptionApplicableInternal", "EXCEPTION", ex);
        }

        return blnOptionAllowed;
    }
Esempio n. 25
0
        /// <summary>
        /// Calculates prices of the given shipping option.
        /// </summary>
        /// <param name="shippingInfo">Shipping option info object (<see cref="ShippingOptionInfo"/>) for which the prices are calculated.</param>
        /// <param name="cart">Shopping cart (<see cref="ShoppingCart"/>) used to gather the price calculation information.</param>
        /// <param name="applyTaxes">Indicates if the prices are returned after applying taxes.</param>
        /// <returns><see cref="ShippingPrice"/> object containing the shipping's prices.</returns>
        public virtual ShippingPrice CalculateShippingOptionPrice(ShippingOptionInfo shippingInfo, ShoppingCart cart, bool applyTaxes = true)
        {
            var originalCart = cart.OriginalCart;

            lock (originalCart)
            {
                // Store the original shipping option ID
                var origShippingOptionId = originalCart.ShoppingCartShippingOptionID;

                // Calculate a hypothetical shipping cost for the shipping option from the supplied list item
                originalCart.ShoppingCartShippingOptionID = shippingInfo.ShippingOptionID;

                var price = CalculateShippingOptionPrice(originalCart, applyTaxes);

                // Restore the original shipping option ID
                originalCart.ShoppingCartShippingOptionID = origShippingOptionId;

                return(price);
            }
        }
Esempio n. 26
0
        /// <summary>
        /// If you sent an invoice requesting a shipping address and the parameter is_flexible was specified,
        /// the Bot API will send an <see href="https://core.telegram.org/bots/api#update">Update</see> with a shipping_query field to the bot.
        /// Use this method to reply to shipping queries.
        /// </summary>
        /// <param name="shippingQueryId">Unique identifier for the query to be answered</param>
        /// <param name="ok">Specify True if delivery to the specified address is possible and False if there are any problems
        /// (for example, if delivery to the specified address is not possible)</param>
        /// <param name="shippingOption">Required if ok is True.
        /// A JSON-serialized array of available shipping options.</param>
        /// <param name="errorMessage">Required if ok is False.
        /// Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable').
        /// Telegram will display this message to the user.</param>
        /// <returns>On success, True is returned.</returns>
        public BooleanResult AnswerShippingQuery(string shippingQueryId, bool ok,
                                                 ShippingOptionInfo[] shippingOption = null,
                                                 string errorMessage = null)
        {
            RestRequest request = NewRestRequest(mAnswerShippingQueryUri);

            request.AddParameter("shipping_query_id", shippingQueryId);
            request.AddParameter("ok", ok);

            if (shippingOption != null)
            {
                request.AddParameter("shipping_options", ShippingOptionInfo.GetJson(shippingOption));
            }
            if (!string.IsNullOrEmpty(errorMessage))
            {
                request.AddParameter("error_message", errorMessage);
            }

            return(ExecuteRequest <BooleanResult>(request) as BooleanResult);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.TaxClasses");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.TaxClasses");
        }

        mShippingOptionId = QueryHelper.GetInteger("objectid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy = "TaxClassDisplayName";
        uniSelector.WhereCondition = GetSelectorWhereCondition();
    }
Esempio n. 28
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.TaxClasses");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.TaxClasses");
        }

        mShippingOptionId = QueryHelper.GetInteger("objectid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject           = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy             = "TaxClassDisplayName";
        uniSelector.WhereCondition      = GetSelectorWhereCondition();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for shipping costs
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts");
        }

        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);

        mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
        EditedObject           = mShippingOptionInfoObj;

        if (mShippingOptionInfoObj != null)
        {
            CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(mShippingOptionInfoObj.ShippingOptionSiteID);
        }

        gridElem.OnAction             += new OnActionEventHandler(gridElem_OnAction);
        gridElem.OnExternalDataBound  += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);
        gridElem.OnAfterRetrieveData  += new OnAfterRetrieveData(gridElem_OnAfterRetrieveData);
        gridElem.WhereCondition        = "ShippingCostShippingOptionID = " + mShippingOptionId;
        gridElem.ZeroRowsText          = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;

        // Set the master page actions element
        string[,] actions = new string[1, 10];
        actions[0, 0]     = HeaderActions.TYPE_HYPERLINK;
        actions[0, 1]     = GetString("com.ui.shippingcost.edit_new");
        actions[0, 3]     = ResolveUrl("~/CMSModules/Ecommerce/Pages/Tools/Configuration/ShippingOptions/ShippingOption_Edit_ShippingCosts_Edit.aspx?shippingCostShippingOptionId=" + mShippingOptionId + "&siteId=" + SiteID);
        actions[0, 4]     = null;
        actions[0, 5]     = GetImageUrl("Objects/Ecommerce_ShippingOption/add.png");

        this.CurrentMaster.HeaderActions.Actions = actions;

        this.CurrentMaster.Title.HelpTopicName = "shippingcosts_list";
        this.CurrentMaster.Title.HelpName      = "helpTopic";
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for Tax clases
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.TaxClasses"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.TaxClasses");
        }

        lblAvialable.Text = GetString("com.shippingoption.taxes");
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject           = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", SqlHelperClass.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.IconPath            = GetObjectIconUrl("ecommerce.taxclass", "object.png");
        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy             = "TaxClassDisplayName";
        uniSelector.WhereCondition      = GetSelectorWhereCondition();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mShippingOptionId = QueryHelper.GetInteger("shippingOptionID", 0);

        string             shippingOptionName = "";
        ShippingOptionInfo soi = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);

        if (soi != null)
        {
            editedSiteId = soi.ShippingOptionSiteID;

            // Check site ID
            CheckEditedObjectSiteID(editedSiteId);
            shippingOptionName = ResHelper.LocalizeString(soi.ShippingOptionDisplayName);
        }

        // Initializes page title and breadcrumbs
        string[,] breadcrumbs = new string[2, 3];
        breadcrumbs[0, 0]     = GetString("ShippingOption_EditHeader.ItemListLink");
        breadcrumbs[0, 1]     = "~/CMSModules/Ecommerce/Pages/Tools/Configuration/ShippingOptions/ShippingOption_List.aspx?siteId=" + SiteID;
        breadcrumbs[0, 2]     = "configEdit";
        breadcrumbs[1, 0]     = FormatBreadcrumbObjectName(shippingOptionName, editedSiteId);
        breadcrumbs[1, 1]     = "";
        breadcrumbs[1, 2]     = "";

        CMSMasterPage master = (CMSMasterPage)this.CurrentMaster;

        master.Title.Breadcrumbs   = breadcrumbs;
        master.Title.TitleText     = GetString("ShippingOption_EditHeader.TitleText");
        master.Title.TitleImage    = GetImageUrl("Objects/Ecommerce_ShippingOption/object.png");
        master.Title.HelpTopicName = "newgeneral_tab2";
        master.Title.HelpName      = "helpTopic";

        master.Tabs.ModuleName    = "CMS.Ecommerce";
        master.Tabs.ElementName   = "Configuration.ShippingOptions";
        master.Tabs.UrlTarget     = "shippingOptionContent";
        master.Tabs.OnTabCreated += new UITabs.TabCreatedEventHandler(Tabs_OnTabCreated);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for Tax clases
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.TaxClasses"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.TaxClasses");
        }

        lblAvialable.Text = GetString("com.shippingoption.taxes");
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);
        if (mShippingOptionId > 0)
        {
            mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
            EditedObject = mShippingOptionInfoObj;

            if (mShippingOptionInfoObj != null)
            {
                // Check object's site id
                CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);

                DataSet ds = ShippingOptionTaxClassInfoProvider.GetShippingOptionTaxClasses(mShippingOptionId);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    mCurrentValues = TextHelper.Join(";", SqlHelperClass.GetStringValues(ds.Tables[0], "TaxClassID"));
                }

                if (!RequestHelper.IsPostBack())
                {
                    uniSelector.Value = mCurrentValues;
                }
            }
        }

        uniSelector.IconPath = GetObjectIconUrl("ecommerce.taxclass", "object.png");
        uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged;
        uniSelector.OrderBy = "TaxClassDisplayName";
        uniSelector.WhereCondition = GetSelectorWhereCondition();
    }
    /// <summary>
    /// Ensures that only applicable shipping options are displayed in selector.
    /// </summary>
    /// <param name="ds"></param>
    /// <returns></returns>
    protected override DataSet OnAfterRetrieveData(DataSet ds)
    {
        if ((ds == null) || (ShoppingCart == null))
        {
            return(ds);
        }

        var shippingOptions = ds.Tables[0].Select();

        foreach (DataRow optionRow in shippingOptions)
        {
            int optionID = ValidationHelper.GetInteger(optionRow["ShippingOptionID"], 0);

            ShippingOptionInfo option = ShippingOptionInfoProvider.GetShippingOptionInfo(optionID);

            if ((option != null) && !ShippingOptionInfoProvider.IsShippingOptionApplicable(ShoppingCart, option))
            {
                ds.Tables[0].Rows.Remove(optionRow);
            }
        }

        return(ds);
    }
Esempio n. 34
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Register item validation
        EditForm.OnItemValidation += EditForm_OnItemValidation;

        mShippingOptionObj = EditedObjectParent as ShippingOptionInfo;

        if (mShippingOptionObj != null)
        {
            // Register check permissions
            EditForm.OnCheckPermissions += (s, args) => CheckConfigurationModification();
        }
        else
        {
            // Invalid shipping option
            EditedObject = null;
            return;
        }

        ShippingCostInfo shippingCostObj = EditedObject as ShippingCostInfo;

        if (shippingCostObj != null)
        {
            // Check if edited shipping cost is assigned to shipping option
            if ((shippingCostObj.ShippingCostID != 0) && (shippingCostObj.ShippingCostShippingOptionID != mShippingOptionObj.ShippingOptionID))
            {
                EditedObject = null;
            }

            // Check if not editing object from another site
            CheckEditedObjectSiteID(mShippingOptionObj.ShippingOptionSiteID);

            // Check presence of main currency
            CheckMainCurrency(mShippingOptionObj.ShippingOptionSiteID);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Register item validation
        EditForm.OnItemValidation += EditForm_OnItemValidation;

        mShippingOptionObj = EditedObjectParent as ShippingOptionInfo;

        if (mShippingOptionObj != null)
        {
            // Register check permissions
            EditForm.OnCheckPermissions += (s, args) => CheckConfigurationModification();
        }
        else
        {
            // Invalid shipping option
            EditedObject = null;
            return;
        }

        ShippingCostInfo shippingCostObj = EditedObject as ShippingCostInfo;

        if (shippingCostObj != null)
        {
            // Check if edited shipping cost is assigned to shipping option
            if ((shippingCostObj.ShippingCostID != 0) && (shippingCostObj.ShippingCostShippingOptionID != mShippingOptionObj.ShippingOptionID))
            {
                EditedObject = null;
            }

            // Check if not editing object from another site
            CheckEditedObjectSiteID(mShippingOptionObj.ShippingOptionSiteID);

            // Check presence of main currency
            CheckMainCurrency(mShippingOptionObj.ShippingOptionSiteID);
        }
    }
 /// <summary>
 /// Load data of editing shippingOption.
 /// </summary>
 /// <param name="shippingOptionObj">ShippingOption object</param>
 protected void LoadData(ShippingOptionInfo shippingOptionObj)
 {
     txtShippingOptionDisplayName.Text = shippingOptionObj.ShippingOptionDisplayName;
     txtShippingOptionCharge.Value = shippingOptionObj.ShippingOptionCharge;
     txtShippingOptionName.Text = shippingOptionObj.ShippingOptionName;
     chkShippingOptionEnabled.Checked = shippingOptionObj.ShippingOptionEnabled;
 }
Esempio n. 37
0
        public void AnswerShippingQueryTest()
        {
            ShippingOptionInfo shippingOption1 = new ShippingOptionInfo
            {
                Id         = "idTest",
                Title      = "titleTest",
                LabelPrice = new[]
                {
                    new LabeledPriceInfo {
                        Label = "LableTest1", Amount = 123
                    },
                    new LabeledPriceInfo {
                        Label = "LabelTest2", Amount = 456
                    }
                }
            };

            ShippingOptionInfo shippingOption2 = new ShippingOptionInfo
            {
                Id         = "idTest",
                Title      = "titleTest",
                LabelPrice = new[]
                {
                    new LabeledPriceInfo {
                        Label = "LableTest3", Amount = 123
                    },
                    new LabeledPriceInfo {
                        Label = "LabelTest4", Amount = 456
                    }
                }
            };

            ShippingOptionInfo[] shippingOption = { shippingOption1, shippingOption2 };

            mBotOkResponse.AnswerShippingQuery("AnswerIdTest", false, shippingOption, "TestErrorMessage");

            var request =
                MockServer.ServerOkResponse.SearchLogsFor(Requests.WithUrl("/botToken/answerShippingQuery").UsingPost());

            ConsoleUtlis.PrintResult(request);

            Assert.Multiple(() =>
            {
                Assert.AreEqual("shipping_query_id=AnswerIdTest&" +
                                "ok=False&" +
                                "shipping_options=%7B%0D%0A%20%20%22prices" +
                                "%22%3A%20%5B%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%22id" +
                                "%22%3A%20%22idTest%22%2C%0D%0A%20%20%20%20%20%20%22title" +
                                "%22%3A%20%22titleTest%22%2C%0D%0A%20%20%20%20%20%20%22prices" +
                                "%22%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%22label" +
                                "%22%3A%20%22LableTest1" +
                                "%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22amount" +
                                "%22%3A%20123%0D%0A%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%22label" +
                                "%22%3A%20%22LabelTest2%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22amount" +
                                "%22%3A%20456%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%5D%0D%0A%20%20%20%20%7D%2C%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%22id" +
                                "%22%3A%20%22idTest%22%2C%0D%0A%20%20%20%20%20%20%22title%22%3A%20%22titleTest%22%2C%0D%0A%20%20%20%20%20%20%22prices" +
                                "%22%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%22label" +
                                "%22%3A%20%22LableTest3%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22amount" +
                                "%22%3A%20123%0D%0A%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%22label" +
                                "%22%3A%20%22LabelTest4%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22amount" +
                                "%22%3A%20456%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%5D%0D%0A%20%20%20%20%7D%0D%0A%20%20%5D%0D%0A%7D&" +
                                "error_message=TestErrorMessage", request.FirstOrDefault()?.Body);
                Assert.AreEqual("/botToken/answerShippingQuery", request.FirstOrDefault()?.Url);
                Assert.Throws <Exception>(
                    () => mBotBadResponse.AnswerShippingQuery("AnswerIdTest", false, shippingOption, "TestErrorMessage"));
            });
        }
    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check permissions
        CheckConfigurationModification(ConfiguredSiteID);

        string errorMessage = new Validator()
            .NotEmpty(txtShippingOptionDisplayName.Text.Trim(), rfvDisplayName.ErrorMessage)
            .NotEmpty(txtShippingOptionName.Text.Trim(), rfvName.ErrorMessage).Result;

        if (!ValidationHelper.IsCodeName(txtShippingOptionName.Text.Trim()))
        {
            errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
        }

        if (errorMessage == "")
        {
            errorMessage = txtShippingOptionCharge.Validate(false);
        }

        if (errorMessage == "")
        {
            // ShippingOptionName must be unique
            ShippingOptionInfo shippingOptionObj = null;
            string siteWhere = (ConfiguredSiteID > 0) ? " AND (ShippingOptionSiteID = " + ConfiguredSiteID + " OR ShippingOptionSiteID IS NULL)" : "";
            DataSet ds = ShippingOptionInfoProvider.GetShippingOptions("ShippingOptionName = '" + txtShippingOptionName.Text.Trim().Replace("'", "''") + "'" + siteWhere, null, 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                shippingOptionObj = new ShippingOptionInfo(ds.Tables[0].Rows[0]);
            }

            // If shippingOptionName value is unique
            if ((shippingOptionObj == null) || (shippingOptionObj.ShippingOptionID == mShippingOptionID))
            {
                // If shippingOptionName value is unique -> determine whether it is update or insert
                if ((shippingOptionObj == null))
                {
                    // Get ShippingOptionInfo object by primary key
                    shippingOptionObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionID);
                    if (shippingOptionObj == null)
                    {
                        // Create new item -> insert
                        shippingOptionObj = new ShippingOptionInfo();
                        shippingOptionObj.ShippingOptionSiteID = ConfiguredSiteID;
                    }
                }

                shippingOptionObj.ShippingOptionDisplayName = txtShippingOptionDisplayName.Text.Trim();
                shippingOptionObj.ShippingOptionDescription = txtDescription.Text.Trim();
                shippingOptionObj.ShippingOptionCharge = txtShippingOptionCharge.Price;
                shippingOptionObj.ShippingOptionName = txtShippingOptionName.Text.Trim();
                shippingOptionObj.ShippingOptionEnabled = chkShippingOptionEnabled.Checked;

                // Save record
                ShippingOptionInfoProvider.SetShippingOptionInfo(shippingOptionObj);

                // Upload file
                file.ObjectID = shippingOptionObj.ShippingOptionID;
                file.UploadFile();

                URLHelper.Redirect("ShippingOption_Edit_Frameset.aspx?ShippingOptionID=" + Convert.ToString(shippingOptionObj.ShippingOptionID) + "&saved=1&siteId=" + SiteID);
            }
            else
            {
                // Show error message
                ShowError(GetString("ShippingOption_Edit.ShippingOptionNameExists"));
            }
        }
        else
        {
            // Show error message
            ShowError(errorMessage);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for shipping costs
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts");
        }

        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);

        mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
        EditedObject = mShippingOptionInfoObj;

        if (mShippingOptionInfoObj != null)
        {
            CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(mShippingOptionInfoObj.ShippingOptionSiteID);
        }

        gridElem.OnAction += new OnActionEventHandler(gridElem_OnAction);
        gridElem.OnExternalDataBound += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);
        gridElem.OnAfterRetrieveData += new OnAfterRetrieveData(gridElem_OnAfterRetrieveData);
        gridElem.WhereCondition = "ShippingCostShippingOptionID = " + mShippingOptionId;
        gridElem.ZeroRowsText = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;

        // Set the master page actions element
        string[,] actions = new string[1, 10];
        actions[0, 0] = HeaderActions.TYPE_HYPERLINK;
        actions[0, 1] = GetString("com.ui.shippingcost.edit_new");
        actions[0, 3] = ResolveUrl("~/CMSModules/Ecommerce/Pages/Tools/Configuration/ShippingOptions/ShippingOption_Edit_ShippingCosts_Edit.aspx?shippingCostShippingOptionId=" + mShippingOptionId + "&siteId=" + SiteID);
        actions[0, 4] = null;
        actions[0, 5] = GetImageUrl("Objects/Ecommerce_ShippingOption/add.png");

        this.CurrentMaster.HeaderActions.Actions = actions;

        this.CurrentMaster.Title.HelpTopicName = "shippingcosts_list";
        this.CurrentMaster.Title.HelpName = "helpTopic";
    }
 public ShippingOptionViewModel(ShippingOptionInfo shippingOption, SelectList shippingOptions)
 {
     ShippingOptions  = shippingOptions;
     ShippingOptionID = shippingOption?.ShippingOptionID ?? 0;
 }
Esempio n. 41
0
 public ShippingOptionViewModel(ShippingOptionInfo shippingOption, SelectList shippingOptions, bool isVisible = true)
 {
     ShippingOptions  = shippingOptions;
     ShippingOptionID = shippingOption?.ShippingOptionID ?? 0;
     IsVisible        = isVisible;
 }
    /// <summary>
    /// Creates shipping option. Called when the "Create option" button is pressed.
    /// </summary>
    private bool CreateShippingOption()
    {
        // Create new shipping option object
        ShippingOptionInfo newOption = new ShippingOptionInfo();

        // Set the properties
        newOption.ShippingOptionDisplayName = "My new option";
        newOption.ShippingOptionName = "MyNewOption";
        newOption.ShippingOptionSiteID = CMSContext.CurrentSiteID;
        newOption.ShippingOptionCharge = 1.0;
        newOption.ShippingOptionEnabled = true;

        // Create the shipping option
        ShippingOptionInfoProvider.SetShippingOptionInfo(newOption);

        return true;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check permissions for CMS Desk -> Ecommerce
        if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Ecommerce", "Configuration.ShippingOptions.ShippingCosts");
        }

        // Init labels
        lblShippingCostValue.Text = GetString("com.shippingcost.costlabel");
        lblShippingCostMinWeight.Text = GetString("com.shippingcost.minweightlabel");
        rfvMinWeight.ErrorMessage = GetString("com.shippingcost.minweightempty");
        rvMinWeight.ErrorMessage = GetString("com.shippingcost.minweightrange");
        txtShippingCostCharge.EmptyErrorMessage = GetString("com.shippingcost.costempty");
        txtShippingCostCharge.ValidationErrorMessage = GetString("com.shippingcost.costrange");

        btnOk.Text = GetString("General.OK");

        // Get parameters from querystring
        mShippingCostId = QueryHelper.GetInteger("shippingCostId", 0);
        mShippingOptionId = QueryHelper.GetInteger("shippingCostShippingOptionId", 0);

        // Check if configured shipping option record belongs to correct site
        mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
        if (mShippingOptionInfoObj != null)
        {
            CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);
            txtShippingCostCharge.CurrencySiteID = mShippingOptionInfoObj.ShippingOptionSiteID;

            // Check presence of main currency
            string currencyErr = CheckMainCurrency(mShippingOptionInfoObj.ShippingOptionSiteID);
            if (!string.IsNullOrEmpty(currencyErr))
            {
                // Show message
                lblError.Text = currencyErr;
                lblError.Visible = true;
            }
        }

        string[,] breadcrumbs = new string[2, 4];
        breadcrumbs[0, 0] = GetString("com.ui.shippingcost");
        breadcrumbs[0, 1] = ResolveUrl("ShippingOption_Edit_ShippingCosts.aspx?shippingoptionid=" + mShippingOptionId + "&siteId=" + SiteID);

        // If true, then we will edit existing record
        if (mShippingCostId > 0)
        {
            // Check if there is already ShippingCostInfo with this shippingCostID
            ShippingCostInfo shippingCostInfo = ShippingCostInfoProvider.GetShippingCostInfo(mShippingCostId);

            // Check if shipping cost belongs to edited shipping option
            if ((shippingCostInfo != null) && (shippingCostInfo.ShippingCostShippingOptionID != mShippingOptionId))
            {
                shippingCostInfo = null;
            }

            EditedObject = shippingCostInfo;

            if (shippingCostInfo != null)
            {
                // Fill editing form with existing data when not postback
                if (!RequestHelper.IsPostBack())
                {
                    LoadData(shippingCostInfo);

                    // Show that the shippingCost was created or updated successfully
                    if (QueryHelper.GetString("saved", "") == "1")
                    {
                        lblInfo.Visible = true;
                        lblInfo.Text = GetString("General.ChangesSaved");
                    }
                }
            }
            // Set title to "shipping cost properties"
            breadcrumbs[1, 0] = GetString("com.ui.shippingcost.edit");
            breadcrumbs[1, 1] = "";
        }
        // Do this when creating new cost
        else
        {
            // Set header to "new item"
            breadcrumbs[1, 0] = GetString("com.ui.shippingcost.edit_new");
        }

        this.CurrentMaster.Title.Breadcrumbs = breadcrumbs;
    }
Esempio n. 44
0
    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check permissions
        CheckConfigurationModification(ConfiguredSiteID);

        string errorMessage = new Validator()
                              .NotEmpty(txtShippingOptionDisplayName.Text.Trim(), rfvDisplayName.ErrorMessage)
                              .NotEmpty(txtShippingOptionName.Text.Trim(), rfvName.ErrorMessage).Result;

        if (!ValidationHelper.IsCodeName(txtShippingOptionName.Text.Trim()))
        {
            errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
        }

        if (errorMessage == "")
        {
            errorMessage = txtShippingOptionCharge.Validate(false);
        }

        if (errorMessage == "")
        {
            // ShippingOptionName must be unique
            ShippingOptionInfo shippingOptionObj = null;
            string             siteWhere         = (ConfiguredSiteID > 0) ? " AND (ShippingOptionSiteID = " + ConfiguredSiteID + " OR ShippingOptionSiteID IS NULL)" : "";
            DataSet            ds = ShippingOptionInfoProvider.GetShippingOptions("ShippingOptionName = '" + txtShippingOptionName.Text.Trim().Replace("'", "''") + "'" + siteWhere, null, 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                shippingOptionObj = new ShippingOptionInfo(ds.Tables[0].Rows[0]);
            }

            // If shippingOptionName value is unique
            if ((shippingOptionObj == null) || (shippingOptionObj.ShippingOptionID == mShippingOptionID))
            {
                // If shippingOptionName value is unique -> determine whether it is update or insert
                if ((shippingOptionObj == null))
                {
                    // Get ShippingOptionInfo object by primary key
                    shippingOptionObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionID);
                    if (shippingOptionObj == null)
                    {
                        // Create new item -> insert
                        shippingOptionObj = new ShippingOptionInfo();
                        shippingOptionObj.ShippingOptionSiteID = ConfiguredSiteID;
                    }
                }

                shippingOptionObj.ShippingOptionDisplayName = txtShippingOptionDisplayName.Text.Trim();
                shippingOptionObj.ShippingOptionDescription = txtDescription.Text.Trim();
                shippingOptionObj.ShippingOptionCharge      = txtShippingOptionCharge.Price;
                shippingOptionObj.ShippingOptionName        = txtShippingOptionName.Text.Trim();
                shippingOptionObj.ShippingOptionEnabled     = chkShippingOptionEnabled.Checked;

                // Save record
                ShippingOptionInfoProvider.SetShippingOptionInfo(shippingOptionObj);

                // Upload file
                file.ObjectID = shippingOptionObj.ShippingOptionID;
                file.UploadFile();

                URLHelper.Redirect("ShippingOption_Edit_Frameset.aspx?ShippingOptionID=" + Convert.ToString(shippingOptionObj.ShippingOptionID) + "&saved=1&siteId=" + SiteID);
            }
            else
            {
                // Show error message
                ShowError(GetString("ShippingOption_Edit.ShippingOptionNameExists"));
            }
        }
        else
        {
            // Show error message
            ShowError(errorMessage);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsMultiStoreConfiguration)
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Ecommerce.GlobalShippingOptions.ShippingCosts");
        }
        else
        {
            CheckUIElementAccessHierarchical(ModuleName.ECOMMERCE, "Configuration.ShippingOptions.ShippingCosts");
        }

        shippingOption = EditedObjectParent as ShippingOptionInfo;
        if (shippingOption != null)
        {
            CheckEditedObjectSiteID(shippingOption.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(shippingOption.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnAction += gridElem_OnAction;
        gridElem.OnExternalDataBound += gridElem_OnExternalDataBound;
        gridElem.OnAfterRetrieveData += gridElem_OnAfterRetrieveData;
        gridElem.ZeroRowsText = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;
    }
    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check permissions
        CheckConfigurationModification(mEditedSiteId);

        string errorMessage = new Validator()
            .NotEmpty(txtShippingOptionDisplayName.Text.Trim(), rfvDisplayName.ErrorMessage)
            .NotEmpty(txtShippingOptionName.Text.Trim(), rfvName.ErrorMessage).Result;

        if (!ValidationHelper.IsCodeName(txtShippingOptionName.Text.Trim()))
        {
            errorMessage = GetString("General.ErrorCodeNameInIdentificatorFormat");
        }

        if (errorMessage == "")
        {
            errorMessage = txtShippingOptionCharge.ValidatePrice(false);
        }

        if (errorMessage == "")
        {
            // ShippingOptionName must be unique
            ShippingOptionInfo shippingOptionObj = null;
            string siteWhere = (mEditedSiteId > 0) ? " AND (ShippingOptionSiteID = " + mEditedSiteId + " OR ShippingOptionSiteID IS NULL)" : "";
            DataSet ds = ShippingOptionInfoProvider.GetShippingOptions("ShippingOptionName = '" + txtShippingOptionName.Text.Trim().Replace("'", "''") + "'" + siteWhere, null, 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                shippingOptionObj = new ShippingOptionInfo(ds.Tables[0].Rows[0]);
            }

            if ((shippingOptionObj == null) || (shippingOptionObj.ShippingOptionID == mShippingOptionID))
            {
                // Get object
                if ((shippingOptionObj == null))
                {
                    shippingOptionObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionID);
                    if (shippingOptionObj == null)
                    {
                        shippingOptionObj = new ShippingOptionInfo();
                        shippingOptionObj.ShippingOptionSiteID = mEditedSiteId;
                    }
                }

                shippingOptionObj.ShippingOptionDisplayName = txtShippingOptionDisplayName.Text.Trim();
                shippingOptionObj.ShippingOptionCharge = txtShippingOptionCharge.Value;
                shippingOptionObj.ShippingOptionName = txtShippingOptionName.Text.Trim();
                shippingOptionObj.ShippingOptionEnabled = chkShippingOptionEnabled.Checked;

                // Save changes
                ShippingOptionInfoProvider.SetShippingOptionInfo(shippingOptionObj);

                URLHelper.Redirect("ShippingOption_Edit_General.aspx?shippingOptionID=" + shippingOptionObj.ShippingOptionID + "&saved=1&siteId=" + SiteID);
            }
            else
            {
                lblError.Visible = true;
                lblError.Text = GetString("ShippingOption_Edit.ShippingOptionNameExists");
            }
        }
        else
        {
            lblError.Visible = true;
            lblError.Text = errorMessage;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mShippingOptionId = QueryHelper.GetInteger("shippingoptionid", 0);

        mShippingOptionInfoObj = ShippingOptionInfoProvider.GetShippingOptionInfo(mShippingOptionId);
        EditedObject = mShippingOptionInfoObj;

        if (mShippingOptionInfoObj != null)
        {
            CheckEditedObjectSiteID(mShippingOptionInfoObj.ShippingOptionSiteID);
            currency = CurrencyInfoProvider.GetMainCurrency(mShippingOptionInfoObj.ShippingOptionSiteID);
        }

        // Init unigrid
        gridElem.OnAction += new OnActionEventHandler(gridElem_OnAction);
        gridElem.OnExternalDataBound += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);
        gridElem.OnAfterRetrieveData += new OnAfterRetrieveData(gridElem_OnAfterRetrieveData);
        gridElem.WhereCondition = "ShippingCostShippingOptionID = " + mShippingOptionId;
        gridElem.ZeroRowsText = GetString("com.ui.shippingcost.edit_nodata");
        gridElem.GridView.AllowSorting = false;

        // Prepare the new shipping cost header action
        CurrentMaster.HeaderActions.AddAction(new HeaderAction()
        {
            Text = GetString("com.ui.shippingcost.edit_new"),
            RedirectUrl = ResolveUrl("ShippingOption_Edit_ShippingCosts_Edit.aspx?shippingCostShippingOptionId=" + mShippingOptionId + "&siteId=" + SiteID),
            ImageUrl = GetImageUrl("Objects/Ecommerce_ShippingOption/add.png"),
            ControlType = HeaderActionTypeEnum.Hyperlink
        });
    }
    /// <summary>
    /// Gets and bulk updates shipping options. Called when the "Get and bulk update options" button is pressed.
    /// Expects the CreateShippingOption method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateShippingOptions()
    {
        // Prepare the parameters
        string where = "ShippingOptionName LIKE N'MyNewOption%'";
        where = SqlHelperClass.AddWhereCondition(where, "ShippingOptionSiteID = " + CMSContext.CurrentSiteID, "AND");

        // Get the data
        DataSet options = ShippingOptionInfoProvider.GetShippingOptions(where, null);
        if (!DataHelper.DataSourceIsEmpty(options))
        {
            // Loop through the individual items
            foreach (DataRow optionDr in options.Tables[0].Rows)
            {
                // Create object from DataRow
                ShippingOptionInfo modifyOption = new ShippingOptionInfo(optionDr);

                // Update the properties
                modifyOption.ShippingOptionDisplayName = modifyOption.ShippingOptionDisplayName.ToUpper();

                // Update the shipping option
                ShippingOptionInfoProvider.SetShippingOptionInfo(modifyOption);
            }

            return true;
        }

        return false;
    }