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; } }
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"); } }
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(); }
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; } }
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; } }
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"); } }
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; }
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(); } } }
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(); } } }
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"]; } }
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"]; } }