using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Controls_Selectors_DropdownSelect : SelectorControl { // variables to be displayed public string ProductName; public string Description; private int MinimumQuantity { get { return (ViewState["MinimumQuantity"] == null ? 1 : (int)ViewState["MinimumQuantity"]); } set { ViewState["MinimumQuantity"] = value; } } private bool ignoreInventory { get { return Configuration.Get("IgnoreInventory") == "Yes" ? true : false; } } public override void BindData() { // bind image view ImageView1.SelectorID = SelectorData.SelectorID; ImageView1.BindData(); // bind customizations ccCustomizations.SelectorID = SelectorData.SelectorID; ccCustomizations.BindData(); // bind related products RelatedProducts1.SelectorID = SelectorData.SelectorID; RelatedProducts1.BindData(); litProductName.Text = SelectorData.Name; if (SelectorData.SKU.Length > 0) litSKU.Text = SelectorData.SKU; ProductName = SelectorData.Name; Description = SelectorData.Description; DataTable dt = Database.Items_GetBySelectorIDForDetailPage(SelectorData.SelectorID); if(!ignoreInventory) { foreach (DataRow dr in dt.Rows) { if ((int)dr["Inventory"] < -1 || (int)dr["Inventory"] == 0) { dr["Name"] += " (Out of Stock)"; dr["ItemID"] = 0; } } } ddlItem.DataSource = dt; ddlItem.DataBind(); if (dt.Rows.Count > 0) BindVolumeTable(); } private void BindVolumeTable() { int ItemID = Int32.Parse(ddlItem.SelectedValue); DataTable dt = Database.VolumePricingTableItem_GetByItemID(ItemID); if (dt.Rows.Count > 0) { MinimumQuantity = Math.Max(0, (int)dt.Rows[0]["Quantity"]); txtQuantity.Text = MinimumQuantity.ToString(); VolumePricing1.Visible = true; VolumePricing1.DataSource = dt; VolumePricing1.BindData(); } else VolumePricing1.Visible = false; } protected void btnBuy_Click(object sender, ImageClickEventArgs e) { int ItemID = Int32.Parse(ddlItem.SelectedValue); if (ItemID > 0) { int Quantity = Int32.Parse(txtQuantity.Text); int Max = Int32.Parse(Database.Items_Get(ItemID)["Inventory"].ToString()); // we need to check items in the cart with this ItemID foreach (ShoppingCartItem sci2 in ShoppingCart) { if (sci2.ItemID == ItemID && Max != -1) Max -= sci2.Quantity; } if (ignoreInventory) { string CustomizationText = ccCustomizations.GetCustomizationText(); decimal CustomizationCost = ccCustomizations.GetCustomizationCost(); AddItemToCart(ItemID, Quantity, CustomizationText, CustomizationCost); Response.Redirect("~/Cart.aspx"); } else { if (Max == 0) { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('You have already added all available units to your cart.');", true); } else if (Quantity > Max && Max != -1) { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('You can only add " + Max.ToString() + " unit(s) to your cart. Please decrease your quantity this amount or less.');", true); } else if (Quantity >= MinimumQuantity) { string CustomizationText = ccCustomizations.GetCustomizationText(); decimal CustomizationCost = ccCustomizations.GetCustomizationCost(); AddItemToCart(ItemID, Quantity, CustomizationText, CustomizationCost); Response.Redirect("~/Cart.aspx"); } else { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('The minimum order for this item is " + MinimumQuantity.ToString() + " unit(s). Please increase your quantity to at least this amount.');", true); } } } } protected void ddlItem_SelectedIndexChanged(object sender, EventArgs e) { BindVolumeTable(); } }