Exemplo n.º 1
0
        /// <summary>
        /// Performs the actual update to the variant record after the Update All command is issued
        /// </summary>
        /// <param name="ht">Hash tabled containing the values extracted from each grid data row</param>
        private void UpdateItem(Hashtable ht)
        {
            int     variantID   = Convert.ToInt32(ht["VariantID"]);
            String  name        = String.Empty;
            String  skuSuffix   = String.Empty;
            Decimal price       = Convert.ToDecimal(ht["Price"]);
            Decimal salePrice   = Convert.ToDecimal(ht["SalePrice"]);
            int     inventory   = Convert.ToInt32(ht["Inventory"]);
            bool    isPublished = Convert.ToBoolean(ht["Published"]);

            if (ht["LocaleName"] != null)
            {
                name = AppLogic.FormLocaleXml(ht["LocaleName"].ToString(), Localization.GetDefaultLocale());
            }

            if (ht["SKUSuffix"] != null)
            {
                skuSuffix = ht["SKUSuffix"].ToString();
            }

            GridProductVariant pv = new GridProductVariant(variantID);

            if (pv != null)
            {
                pv.Name      = name;
                pv.Price     = price;
                pv.SalePrice = salePrice;
                pv.SKUSuffix = skuSuffix;
                pv.Inventory = inventory;
                pv.Published = isPublished;

                pv.Commit();
            }
        }
Exemplo n.º 2
0
        protected void grdVariants_OnNeedDatasource(object sender, EventArgs e)
        {
            int pageSize   = grdVariants.PageSize;
            int startIndex = (grdVariants.PageSize * grdVariants.CurrentPageIndex);
            int entityType = 0;
            int entityID   = 0;

            if (!String.IsNullOrEmpty(ViewState["EntityType"].ToString()) && !String.IsNullOrEmpty(ViewState["EntityID"].ToString()))
            {
                entityType = Convert.ToInt32(ViewState["EntityType"]);
                entityID   = Convert.ToInt32(ViewState["EntityID"]);
            }

            grdVariants.DataSource = GridProductVariant.GetVariantsPaged(pageSize, startIndex, entityType, entityID);

            grdVariants.VirtualItemCount = GridProductVariant.GetVariantCount(entityType, entityID);
        }
        protected void grdProducts_ItemCreated(object sender, GridItemEventArgs e)
        {
            RadGrid  grdProducts = ctrlSearch.FindControl <RadGrid>("grdProducts");
            GridItem gi          = e.Item;

            if (e.Item is GridDataItem)
            {
                if (e.Item.OwnerTableView.Name.EqualsIgnoreCase("Master"))
                {
                    //Parent product grid
                    string productID = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ProductID"].ToString();

                    HyperLink lnkEdit       = (HyperLink)e.Item.FindControl("lnkEdit");
                    HyperLink lnkAddVariant = (HyperLink)e.Item.FindControl("lnkAddVariant");
                    HyperLink lnkName       = (HyperLink)e.Item.FindControl("lnkName");

                    if (lnkEdit != null)
                    {
                        lnkEdit.ImageUrl              = "~/App_Themes/Admin_Default/images/edit.png";
                        lnkEdit.Attributes["src"]     = "#";
                        lnkEdit.Attributes["style"]   = "cursor:pointer;";
                        lnkEdit.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", productID, e.Item.ItemIndex);
                        lnkEdit.ToolTip = AppLogic.GetString("admin.productgrid.EditProduct", ThisCustomer.LocaleSetting);

                        lnkAddVariant.ImageUrl = "~/App_Themes/Admin_Default/images/add.png";
                        lnkAddVariant.ToolTip  = AppLogic.GetString("admin.productgrid.AddNewVariant", ThisCustomer.LocaleSetting);
                        lnkAddVariant.Attributes["onclick"] = String.Format("return VariantShowInsertForm('{0}');", productID);
                        lnkAddVariant.Attributes["style"]   = "cursor:pointer;";
                        lnkAddVariant.Attributes["src"]     = "#";

                        lnkName.Attributes["src"]     = "#";
                        lnkName.Attributes["onClick"] = String.Format("return ShowEditForm('{0}','{1}');", productID, e.Item.ItemIndex);
                        lnkName.Attributes["style"]   = "cursor:pointer;";
                    }
                }
                else if (e.Item.OwnerTableView.Name.EqualsIgnoreCase("ProductVariants"))
                {
                    //We are working with variants
                    GridProductVariant item = (GridProductVariant)e.Item.DataItem;

                    if (item != null)
                    {
                        string productID = item.ProductID.ToString();
                        string variantID = item.VariantID.ToString();

                        HyperLink lnkEditVariant = (HyperLink)e.Item.FindControl("lnkEditVariant");

                        if (lnkEditVariant != null)
                        {
                            lnkEditVariant.ImageUrl              = "~/App_Themes/Admin_Default/images/edit.png";
                            lnkEditVariant.Attributes["src"]     = "#";
                            lnkEditVariant.Attributes["onclick"] = String.Format("return VariantShowEditForm('{0}','{1}','{2}');", variantID, e.Item.ItemIndex, productID);
                            lnkEditVariant.Attributes["style"]   = "cursor:pointer;";
                            lnkEditVariant.ToolTip = AppLogic.GetString("admin.productgrid.EditVariant", ThisCustomer.LocaleSetting);
                        }
                    }
                }
            }


            if (gi.ItemType == GridItemType.Item || gi.ItemType == GridItemType.AlternatingItem)
            {
                // we have a product variant grid row
                if (gi.OwnerTableView.Name.EqualsIgnoreCase("ProductVariants"))
                {
                    GridProductVariant pv = gi.DataItem as GridProductVariant;

                    if (pv != null)
                    {
                        UpdatePublishedColumn(gi, pv.Published, false);
                        UpdateDefaultColumn(gi, pv.IsDefault);
                        UpdateDeletedColumn(gi, pv.Deleted, false);

                        LinkButton lnkName = (LinkButton)gi.FindControl("lnkName");

                        if (lnkName != null)
                        {
                            lnkName.Attributes["onclick"] = String.Format("return VariantShowEditForm('{0}','{1}',{2});", pv.VariantID.ToString(), gi.ItemIndex.ToString(), pv.ProductID.ToString());
                            lnkName.Attributes["src"]     = "#";
                            lnkName.Attributes["style"]   = "cursor:pointer;";
                        }
                    }
                }
                else  // we have a product grid row
                {
                    GridProduct p = gi.DataItem as GridProduct;

                    if (p != null)
                    {
                        UpdatePublishedColumn(gi, p.Published, true);
                        UpdateDeletedColumn(gi, p.Deleted, true);

                        HyperLink lnkName = (HyperLink)gi.FindControl("lnkName");

                        if (lnkName != null)
                        {
                            lnkName.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", p.ProductID.ToString(), gi.ItemIndex.ToString());
                            lnkName.Attributes["src"]     = "#";
                            lnkName.Attributes["style"]   = "cursor:pointer;";
                        }
                    }
                }
            }
        }
        protected void grdProducts_ItemCommand(object source, GridCommandEventArgs e)
        {
            if (e.CommandName.EqualsIgnoreCase("PublishProduct"))
            {
                int         pID = int.Parse(e.CommandArgument.ToString());
                GridProduct p   = new GridProduct(pID);
                p.Publish();

                UpdatePublishedColumn(e.Item, true, true);

                int prodIndex = (base.Datasource as List <GridProduct>).FindIndex(prod => prod.ProductID.Equals(pID));

                (base.Datasource as List <GridProduct>)[prodIndex] = p;

                BindData(false);
            }
            else if (e.CommandName.EqualsIgnoreCase("UnPublishProduct"))
            {
                int         pID = int.Parse(e.CommandArgument.ToString());
                GridProduct p   = new GridProduct(pID);
                p.UnPublish();

                UpdatePublishedColumn(e.Item, false, true);

                int prodIndex = (base.Datasource as List <GridProduct>).FindIndex(prod => prod.ProductID.Equals(pID));

                (base.Datasource as List <GridProduct>)[prodIndex] = p;

                BindData(false);
            }
            else if (e.CommandName.EqualsIgnoreCase("PublishProductVariant"))
            {
                int pvID = int.Parse(e.CommandArgument.ToString());
                GridProductVariant pv = new GridProductVariant(pvID);
                pv.Publish();

                UpdatePublishedColumn(e.Item, true, false);
            }
            else if (e.CommandName.EqualsIgnoreCase("UnPublishProductVariant"))
            {
                int pvID = int.Parse(e.CommandArgument.ToString());
                GridProductVariant pv = new GridProductVariant(pvID);
                pv.UnPublish();

                UpdatePublishedColumn(e.Item, false, false);
            }
            else if (e.CommandName.EqualsIgnoreCase("DeleteProduct"))
            {
                int         pID = int.Parse(e.CommandArgument.ToString());
                GridProduct p   = new GridProduct(pID);
                p.Delete();

                UpdateDeletedColumn(e.Item, true, true);

                int prodIndex = (base.Datasource as List <GridProduct>).FindIndex(prod => prod.ProductID.Equals(pID));

                (base.Datasource as List <GridProduct>)[prodIndex] = p;

                BindData(false);
            }
            else if (e.CommandName.EqualsIgnoreCase("UnDeleteProduct"))
            {
                int         pID = int.Parse(e.CommandArgument.ToString());
                GridProduct p   = new GridProduct(pID);
                p.UnDelete();

                UpdateDeletedColumn(e.Item, false, true);

                int prodIndex = (base.Datasource as List <GridProduct>).FindIndex(prod => prod.ProductID.Equals(pID));

                (base.Datasource as List <GridProduct>)[prodIndex] = p;

                BindData(false);
            }
            else if (e.CommandName.EqualsIgnoreCase("DeleteProductVariant"))
            {
                int pvID = int.Parse(e.CommandArgument.ToString());
                GridProductVariant pv = new GridProductVariant(pvID);
                pv.Delete();

                UpdateDeletedColumn(e.Item, true, false);
            }
            else if (e.CommandName.EqualsIgnoreCase("UnDeleteProductVariant"))
            {
                int pvID = int.Parse(e.CommandArgument.ToString());
                GridProductVariant pv = new GridProductVariant(pvID);
                pv.UnDelete();

                UpdateDeletedColumn(e.Item, false, false);
            }
            else if (e.CommandName.EqualsIgnoreCase("MakeDefaultProductVariant"))
            {
                int pvID = int.Parse(e.CommandArgument.ToString());
                GridProductVariant pv = new GridProductVariant(pvID);
                pv.MakeDefault();

                ClearOtherDefaults(e.Item);
                UpdateDefaultColumn(e.Item, true);
            }
            else if (e.CommandName.EqualsIgnoreCase("ExpandCollapse"))
            {
                if (e.Item.Expanded)
                {
                    //Item is already expanding, which means we are collapsing it now
                    ViewState["ExpandedItemIndex"] = "-1";
                }
                else
                {
                    ViewState["ExpandedItemIndex"] = e.Item.ItemIndexHierarchical;
                }

                AddRootAddButton();
            }
            if (e.CommandName.EqualsIgnoreCase("CloneProduct"))
            {
                int pID = int.Parse(e.CommandArgument.ToString());
                if (CloneProduct(pID))
                {
                    UpdateStatus(true, "Product " + pID.ToString() + " has been cloned and the new product has been set to unpublished.", false);
                }
                else
                {
                    UpdateStatus(true, "Product " + pID.ToString() + " could not be cloned.", true);
                }
                base.Datasource = GridProduct.GetProducts(true);
                BindData(false);
            }
            if (e.CommandName.EqualsIgnoreCase("NukeProduct"))
            {
                int pID = int.Parse(e.CommandArgument.ToString());
                if (NukeProduct(pID))
                {
                    UpdateStatus(true, "Product " + pID.ToString() + " has been nuked.", false);
                }
                else
                {
                    UpdateStatus(true, "Product " + pID.ToString() + " could not be nuked because it is in active shopping carts.", true);
                }
                base.Datasource = GridProduct.GetProducts(true);
                BindData(false);
            }
            updatePanelStatus.Update();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Event that fires when a grid item is created.  Logic for populating template fields and
        /// images is contained here.  Replaces .NET Gridview OnRowCreated event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void grdVariants_OnItemCreated(object sender, GridItemEventArgs e)
        {
            int productID = 0;

            if (e.Item is GridDataItem)
            {
                GridProductVariant gpv = (GridProductVariant)e.Item.DataItem;

                GridDataItem di = (GridDataItem)e.Item;

                if (gpv != null)
                {
                    productID = gpv.ProductID;
                }

                if (di != null)
                {
                    //This has to be done manually since editing does not support alternate row styles
                    bool isAlternate = (di.RowIndex % 2 != 0);

                    if (isAlternate)
                    {
                        di.BackColor = System.Drawing.Color.LightSteelBlue;
                    }
                    else
                    {
                        di.BackColor = System.Drawing.Color.White;
                    }
                }
            }

            if (e.Item is GridEditableItem && e.Item.IsInEditMode)
            {
                TextBox txtName      = (TextBox)e.Item.FindControl("txtName");
                TextBox txtSKU       = (TextBox)e.Item.FindControl("txtSKUSuffix");
                TextBox txtPrice     = (TextBox)e.Item.FindControl("txtPrice");
                TextBox txtSalePrice = (TextBox)e.Item.FindControl("txtSalePrice");
                TextBox txtInventory = (TextBox)e.Item.FindControl("txtInventory");
                Image   imgProduct   = (Image)e.Item.FindControl("imgProduct");


                String strImageUrl = String.Empty;

                if (productID != 0)
                {
                    strImageUrl = AppLogic.LookupImage("product", productID, "icon", 1, ThisCustomer.LocaleSetting);
                }


                if ((e.Item as GridEditableItem)["Published"] != null)
                {
                    (e.Item as GridEditableItem)["Published"].Enabled = chkPublished.Checked;
                }

                if (txtName != null)
                {
                    txtName.Enabled = chkName.Checked;

                    if (!txtName.Enabled)
                    {
                        txtName.BackColor = System.Drawing.Color.Gainsboro;
                    }
                }

                if (txtSKU != null)
                {
                    txtSKU.Enabled = chkSKU.Checked;

                    if (!txtSKU.Enabled)
                    {
                        txtSKU.BackColor = System.Drawing.Color.Gainsboro;
                    }
                }

                if (txtPrice != null)
                {
                    txtPrice.Enabled = chkPrice.Checked;

                    if (!txtPrice.Enabled)
                    {
                        txtPrice.BackColor = System.Drawing.Color.Gainsboro;
                    }
                }

                if (txtSalePrice != null)
                {
                    txtSalePrice.Enabled = chkSalePrice.Checked;

                    if (!txtSalePrice.Enabled)
                    {
                        txtSalePrice.BackColor = System.Drawing.Color.Gainsboro;
                    }
                }

                if (txtInventory != null)
                {
                    txtInventory.Enabled = chkInventory.Checked;

                    if (!txtInventory.Enabled)
                    {
                        txtInventory.BackColor = System.Drawing.Color.Gainsboro;
                    }
                }

                if (imgProduct != null && !String.IsNullOrEmpty(strImageUrl))
                {
                    imgProduct.ImageUrl = strImageUrl;
                    imgProduct.Visible  = true;
                }
            }
        }