Exemplo n.º 1
0
 protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         TaxServices.DeleteTax(int.Parse((string)e.CommandArgument));
     }
     if (e.CommandName == "AddTax")
     {
         GridViewRow footer    = grid.FooterRow;
         string      name      = ((TextBox)footer.FindControl("txtNewName")).Text;
         string      regNumber = ((TextBox)footer.FindControl("txtNewRegNumber")).Text;
         bool        enabled   = Convert.ToBoolean(((DropDownList)footer.FindControl("ddlNewEnabled")).SelectedValue);
         int         countryId = Convert.ToInt32(((DropDownList)footer.FindControl("ddlCountry")).SelectedValue);
         if ((name.Trim().Length != 0) && (regNumber.Trim().Length != 0))
         {
             var tax = new TaxElement {
                 CountryID = countryId, DependsOnAddress = TypeRateDepends.Default, Enabled = enabled, FederalRate = 0.0M, Name = name, Priority = 1, RegNumber = regNumber, ShowInPrice = false, Type = (RateType)1
             };
             TaxServices.CreateTax(tax);
             //if (tax.TaxId != 0)
             //    Response.Redirect("Tax.aspx?TaxID=" + tax.TaxId);
         }
         grid.ShowFooter = false;
     }
 }
Exemplo n.º 2
0
        public static float CalculateTax(OrderItem orderItem, TaxElement tax, float discountPercent)
        {
            switch (tax.Type)
            {
                case RateType.LumpSum:
                    return tax.RegionalRates.Count > 0 ? tax.RegionalRates.First().Rate : tax.FederalRate;

                case RateType.Proportional:
                    {
                        float returnTax = tax.RegionalRates.Count > 0 ? tax.RegionalRates.First().Rate : tax.FederalRate;

                        if (tax.ShowInPrice)
                        {
                            returnTax = returnTax * (orderItem.Price - orderItem.Price * discountPercent/100) * orderItem.Amount / (100.0F + returnTax);
                        }
                        else
                        {
                            returnTax = returnTax * (orderItem.Price - orderItem.Price * discountPercent / 100) * orderItem.Amount / 100.0F;
                        }

                        return returnTax;
                    }

                default:
                    throw new NotImplementedException("This tax type does not exist");
            }
        }
Exemplo n.º 3
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (grid.UpdatedRow != null)
            {
                TaxElement tax = TaxServices.GetTax(grid.UpdatedRow["ID"].TryParseInt());
                if (tax != null)
                {
                    tax.Name        = grid.UpdatedRow["Name"];
                    tax.Enabled     = grid.UpdatedRow["Enable"].TryParseBool();
                    tax.ShowInPrice = grid.UpdatedRow["DoShowInPrice"].TryParseBool();
                    tax.Rate        = grid.UpdatedRow["Rate"].TryParseFloat();

                    TaxServices.UpdateTax(tax);
                }
            }

            DataTable data = _paging.PageItems;

            while (data.Rows.Count < 1 && _paging.CurrentPageIndex > 1)
            {
                _paging.CurrentPageIndex--;
                data = _paging.PageItems;
            }

            var clmn = new DataColumn("IsSelected", typeof(bool))
            {
                DefaultValue = _inverseSelection
            };

            data.Columns.Add(clmn);
            if ((_selectionFilter != null) && (_selectionFilter.Values != null))
            {
                for (int i = 0; i <= data.Rows.Count - 1; i++)
                {
                    int intIndex = i;
                    if (Array.Exists(_selectionFilter.Values, c => c == data.Rows[intIndex]["ID"].ToString()))
                    {
                        data.Rows[i]["IsSelected"] = !_inverseSelection;
                    }
                }
            }

            if (data.Rows.Count < 1)
            {
                goToPage.Visible = false;
            }

            grid.DataSource = data;
            grid.DataBind();

            pageNumberer.PageCount = _paging.PageCount;
            lblFound.Text          = _paging.TotalRowsCount.ToString();
        }
Exemplo n.º 4
0
 protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         TaxServices.DeleteTax(int.Parse((string)e.CommandArgument));
     }
     if (e.CommandName == "AddTax")
     {
         GridViewRow footer      = grid.FooterRow;
         string      name        = ((TextBox)footer.FindControl("txtNewName")).Text;
         float       rate        = ((TextBox)footer.FindControl("txtNewRate")).Text.TryParseFloat();
         bool        enabled     = SQLDataHelper.GetBoolean(((DropDownList)footer.FindControl("ddlNewEnabled")).SelectedValue);
         bool        showInPrice = SQLDataHelper.GetBoolean(((DropDownList)footer.FindControl("ddlNewShowInPrice")).SelectedValue);
         if ((name.Trim().Length != 0))
         {
             var tax = new TaxElement {
                 Enabled = enabled, Rate = rate, Name = name, ShowInPrice = showInPrice
             };
             TaxServices.CreateTax(tax);
         }
         grid.ShowFooter = false;
     }
 }
Exemplo n.º 5
0
 protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         TaxServices.DeleteTax(int.Parse((string)e.CommandArgument));
     }
     if (e.CommandName == "AddTax")
     {
         GridViewRow footer = grid.FooterRow;
         string name = ((TextBox)footer.FindControl("txtNewName")).Text;
         string regNumber = ((TextBox)footer.FindControl("txtNewRegNumber")).Text;
         bool enabled = SQLDataHelper.GetBoolean(((DropDownList)footer.FindControl("ddlNewEnabled")).SelectedValue);
         int countryId = SQLDataHelper.GetInt(((DropDownList)footer.FindControl("ddlCountry")).SelectedValue);
         if ((name.Trim().Length != 0) && (regNumber.Trim().Length != 0))
         {
             var tax = new TaxElement { CountryID = countryId, DependsOnAddress = TypeRateDepends.Default, Enabled = enabled, FederalRate = 0.0F, Name = name, Priority = 1, RegNumber = regNumber, ShowInPrice = false, Type = (RateType)1 };
             TaxServices.CreateTax(tax);
             //if (tax.TaxId != 0)
             //    Response.Redirect("Tax.aspx?TaxID=" + tax.TaxId);
         }
         grid.ShowFooter = false;
     }
 }
Exemplo n.º 6
0
        public static float CalculateTax(float price, TaxElement tax)
        {
            switch (tax.Type)
            {
                case RateType.LumpSum:
                    return tax.RegionalRates.Count > 0 ? tax.RegionalRates.First().Rate : tax.FederalRate;

                case RateType.Proportional:
                    {
                        float returnTax = tax.RegionalRates.Count > 0 ? tax.RegionalRates.First().Rate : tax.FederalRate;

                        if (tax.ShowInPrice)
                        {
                            returnTax = returnTax * price / (100.0F + returnTax);
                        }
                        else
                        {
                            returnTax = returnTax * price / 100.0F;
                        }

                        return returnTax;
                    }

                default:
                    throw new NotImplementedException("This tax type does not exist");
            }
        }
Exemplo n.º 7
0
 private static TaxElement ReadTax(SqlDataReader reader)
 {
     var t = new TaxElement
     {
         TaxId = SQLDataHelper.GetInt(reader, "TaxId"),
         CountryID = SQLDataHelper.GetInt(reader, "CountryID"),
         Enabled = SQLDataHelper.GetBoolean(reader, "Enabled"),
         DependsOnAddress = (TypeRateDepends)SQLDataHelper.GetInt(reader, "DependsOnAddress"),
         Name = SQLDataHelper.GetString(reader, "Name"),
         Priority = SQLDataHelper.GetInt(reader, "Priority"),
         FederalRate = SQLDataHelper.GetFloat(reader, "FederalRate"),
         Type = (RateType)SQLDataHelper.GetInt(reader, "RateType"),
         RegNumber = SQLDataHelper.GetString(reader, "RegNumber"),
         ShowInPrice = SQLDataHelper.GetBoolean(reader, "ShowInPrice")
     };
     return t;
 }
Exemplo n.º 8
0
        public static void UpdateTax(TaxElement t)
        {
            using (var da = new SQLDataAccess())
            {
                da.cmd.CommandText = @"UPDATE [Catalog].[Tax] SET [Name] = @name, [Enabled] = @enabled, [Priority] = @priority, [DependsOnAddress] = @dependsOnAddress,
                                                                  [ShowInPrice] = @showInPrice, [RegNumber] =  @regNumber, [CountryID] = @countryId,
                                                                  [RateType] = @rateType, [FederalRate] = @federalRate
                                       WHERE [TaxId] = @TaxId";
                da.cmd.CommandType = CommandType.Text;

                da.cmd.Parameters.Clear();
                da.cmd.Parameters.AddWithValue("@TaxId", t.TaxId);
                da.cmd.Parameters.AddWithValue("@name", t.Name);
                da.cmd.Parameters.AddWithValue("@enabled", t.Enabled);
                da.cmd.Parameters.AddWithValue("@priority", t.Priority);
                da.cmd.Parameters.AddWithValue("@dependsOnAddress", (int)t.DependsOnAddress);
                da.cmd.Parameters.AddWithValue("@showInPrice", t.ShowInPrice);
                da.cmd.Parameters.AddWithValue("@regNumber", t.RegNumber ?? (object)DBNull.Value);
                da.cmd.Parameters.AddWithValue("@countryId", t.CountryID);
                da.cmd.Parameters.AddWithValue("@rateType", (int)t.Type);
                da.cmd.Parameters.AddWithValue("@federalRate", t.FederalRate);

                da.cnOpen();

                da.cmd.ExecuteNonQuery();

                t.RegionalRates.Any(); //DO NOT DELETE!!! предзагрузка региональных ставок

                da.cmd.CommandText = "DELETE FROM [Catalog].[TaxRegionRate] WHERE [TaxId] = @TaxId";
                da.cmd.Parameters.Clear();
                da.cmd.Parameters.AddWithValue("@TaxId", t.TaxId);
                da.cmd.ExecuteNonQuery();

                da.cnClose();

                if (t.RegionalRates.Count > 0)
                {
                    da.cnOpen();
                    da.cmd.CommandText = "INSERT INTO [Catalog].[TaxRegionRate]([TaxId], [RegionID], [RegionRate]) VALUES (@TaxId, @regionId, @regionRate)";

                    foreach (var rr in t.RegionalRates)
                    {
                        da.cmd.Parameters.Clear();
                        da.cmd.Parameters.AddWithValue("@TaxId", t.TaxId);
                        da.cmd.Parameters.AddWithValue("@regionId", rr.RegionId);
                        da.cmd.Parameters.AddWithValue("@regionRate", rr.Rate);
                        da.cmd.ExecuteNonQuery();
                    }
                    da.cnClose();
                }
            }
        }
Exemplo n.º 9
0
        public static void CreateTax(TaxElement t)
        {
            using (var da = new SQLDataAccess())
            {
                da.cmd.CommandText = "INSERT INTO [Catalog].[Tax]([Name], [Enabled], [Priority], [DependsOnAddress], [ShowInPrice], [RegNumber], [CountryID], [RateType], [FederalRate]) VALUES (@name, @enabled, @priority, @dependsOnAddress, @showInPrice, @regNumber, @countryId, @rateType, @federalRate); SELECT scope_identity()";
                da.cmd.CommandType = CommandType.Text;

                da.cmd.Parameters.Clear();
                da.cmd.Parameters.AddWithValue("@name", t.Name);
                da.cmd.Parameters.AddWithValue("@enabled", t.Enabled);
                da.cmd.Parameters.AddWithValue("@priority", t.Priority);
                da.cmd.Parameters.AddWithValue("@dependsOnAddress", (int)t.DependsOnAddress);
                da.cmd.Parameters.AddWithValue("@showInPrice", t.ShowInPrice);
                da.cmd.Parameters.AddWithValue("@regNumber", t.RegNumber ?? (object)DBNull.Value);
                da.cmd.Parameters.AddWithValue("@countryId", t.CountryID);
                da.cmd.Parameters.AddWithValue("@rateType", (int)t.Type);
                da.cmd.Parameters.AddWithValue("@federalRate", t.FederalRate);

                da.cnOpen();
                t.TaxId = SQLDataHelper.GetInt(da.cmd.ExecuteScalar());
                da.cnClose();

                if (t.RegionalRates != null)
                {
                    da.cnOpen();
                    da.cmd.CommandText = "INSERT INTO [Catalog].[TaxRegionRate] ([TaxId], [RegionID], [RegionRate]) VALUES (@TaxId, @regionId, @regionRate)";

                    foreach (var rr in t.RegionalRates)
                    {
                        da.cmd.Parameters.Clear();
                        da.cmd.Parameters.AddWithValue("@TaxId", t.TaxId);
                        da.cmd.Parameters.AddWithValue("@regionId", rr.RegionId);
                        da.cmd.Parameters.AddWithValue("@regionRate", rr.Rate);
                        da.cmd.ExecuteNonQuery();
                    }
                    da.cnClose();
                }
            }
        }
Exemplo n.º 10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var cats = new List <Category> {
            CategoryService.GetCategory(0)
        };

        Category[] rootCategories = cats.ToArray();
        CatalogDataTreeViewForTaxes.RootCategories = rootCategories;

        var taxIdStr = Request["taxid"];

        if (string.IsNullOrEmpty(taxIdStr))
        {
            Response.Redirect("Taxes.aspx", true);
            return;
        }
        int taxId;

        if (!Int32.TryParse(taxIdStr, out taxId))
        {
            Response.Redirect("Taxes.aspx", true);
            return;
        }

        CurrentTax = TaxServices.GetTax(taxId);

        Title = CurrentTax.Name;

        if (!IsPostBack)
        {
            _paging = new SqlPaging {
                TableName = "[Catalog].[TaxRegionRate] JOIN [Customers].[Region] ON [TaxRegionRate].[RegionID] = [Region].[RegionID]", ItemsPerPage = 10
            };

            var f = new Field {
                Name = "TaxID"
            };
            var ff = new EqualFieldFilter {
                ParamName = "@TaxID", Value = CurrentTax.TaxId.ToString(CultureInfo.InvariantCulture)
            };
            f.Filter = ff;

            _paging.AddField(f);

            f = new Field {
                Name = "RegionName", Sorting = SortDirection.Ascending
            };
            _paging.AddField(f);
            grid.ChangeHeaderImageUrl("arrowName", f.Sorting == SortDirection.Ascending ? "images/arrowup.gif" : "images/arrowdown.gif");

            f = new Field {
                Name = "RegionRate"
            };
            _paging.AddField(f);

            f = new Field {
                Name = "[Catalog].[TaxRegionRate].RegionID as RegionID"
            };
            _paging.AddField(f);

            _paging.CurrentPageIndex = 1;

            ViewState["Paging"] = _paging;

            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_DefaultAddress, ((int)TypeRateDepends.Default).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_ShippingAddress, ((int)TypeRateDepends.ByShippingAddress).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_BillingAddress, ((int)TypeRateDepends.ByBillingAddress).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.SelectedValue = ((int)CurrentTax.DependsOnAddress).ToString(CultureInfo.InvariantCulture);

            ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Fixed, ((int)RateType.LumpSum).ToString(CultureInfo.InvariantCulture)));
            ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Proportional, ((int)RateType.Proportional).ToString(CultureInfo.InvariantCulture)));
            ddlRateType.SelectedValue = ((int)CurrentTax.Type).ToString(CultureInfo.InvariantCulture);

            ddlCountry.DataSource = CountryService.GetAllCountries();
            DataBind();

            ddlCountry.SelectedValue = CurrentTax.CountryID.ToString(CultureInfo.InvariantCulture);
            ddlCountry_SelectedIndexChanged(ddlCountry, e);
            chkEnabled.Checked = CurrentTax.Enabled;
        }
        else
        {
            _paging = (SqlPaging)ViewState["Paging"];
        }
    }
Exemplo n.º 11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SetMeta(string.Format("{0} - {1}", SettingsMain.ShopName, Resource.Admin_Taxes_Header));

            var cats = new List<Category> { CategoryService.GetCategory(0) };
            Category[] rootCategories = cats.ToArray();
            CatalogDataTreeViewForTaxes.RootCategories = rootCategories;

            var taxIdStr = Request["taxid"];
            if (string.IsNullOrEmpty(taxIdStr))
            {
                Response.Redirect("Taxes.aspx", true);
                return;
            }
            int taxId;
            if (!Int32.TryParse(taxIdStr, out taxId))
            {
                Response.Redirect("Taxes.aspx", true);
                return;
            }

            CurrentTax = TaxServices.GetTax(taxId);

            Title = CurrentTax.Name;

            if (!IsPostBack)
            {
                _paging = new SqlPaging { TableName = "[Catalog].[TaxRegionRate] JOIN [Customers].[Region] ON [TaxRegionRate].[RegionID] = [Region].[RegionID]", ItemsPerPage = 10 };

                var f = new Field { Name = "TaxID" };
                var ff = new EqualFieldFilter { ParamName = "@TaxID", Value = CurrentTax.TaxId.ToString(CultureInfo.InvariantCulture) };
                f.Filter = ff;

                _paging.AddField(f);

                f = new Field { Name = "RegionName", Sorting = SortDirection.Ascending };
                _paging.AddField(f);
                grid.ChangeHeaderImageUrl("arrowName", f.Sorting == SortDirection.Ascending ? "images/arrowup.gif" : "images/arrowdown.gif");

                f = new Field { Name = "RegionRate" };
                _paging.AddField(f);

                f = new Field { Name = "[Catalog].[TaxRegionRate].RegionID as RegionID" };
                _paging.AddField(f);

                _paging.CurrentPageIndex = 1;

                ViewState["Paging"] = _paging;

                ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_DefaultAddress, ((int)TypeRateDepends.Default).ToString(CultureInfo.InvariantCulture)));
                ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_ShippingAddress, ((int)TypeRateDepends.ByShippingAddress).ToString(CultureInfo.InvariantCulture)));
                ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_BillingAddress, ((int)TypeRateDepends.ByBillingAddress).ToString(CultureInfo.InvariantCulture)));
                ddlDependsOnAddress.SelectedValue = ((int)CurrentTax.DependsOnAddress).ToString(CultureInfo.InvariantCulture);

                ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Fixed, ((int)RateType.LumpSum).ToString(CultureInfo.InvariantCulture)));
                ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Proportional, ((int)RateType.Proportional).ToString(CultureInfo.InvariantCulture)));
                ddlRateType.SelectedValue = ((int)CurrentTax.Type).ToString(CultureInfo.InvariantCulture);

                ddlCountry.DataSource = CountryService.GetAllCountries();
                DataBind();

                ddlCountry.SelectedValue = CurrentTax.CountryID.ToString(CultureInfo.InvariantCulture);
                ddlCountry_SelectedIndexChanged(ddlCountry, e);
                chkEnabled.Checked = CurrentTax.Enabled;
            }
            else
            {
                _paging = (SqlPaging)ViewState["Paging"];
            }
        }