protected DataSet BindSearchData() { #region Local Variables string Attributes = String.Empty; string AttributeList = string.Empty; DataSet MyDatas = new DataSet(); SKUAdmin _SkuAdmin = new SKUAdmin(); ProductAdmin _adminAccess = new ProductAdmin(); #endregion productId = Convert.ToInt16(lstProduct.SelectedValue); if (productId != 0) { DataSet ds = _adminAccess.GetProductDetails(productId); //Check for Number of Rows if (ds.Tables[0].Rows.Count != 0) { //Check For Product Type productTypeID = int.Parse(ds.Tables[0].Rows[0]["ProductTypeId"].ToString()); } //GetAttribute for this ProductType DataSet MyAttributeTypeDataSet = _adminAccess.GetAttributeTypeByProductTypeID(productTypeID); foreach (DataRow MyDataRow in MyAttributeTypeDataSet.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + MyDataRow["AttributeTypeId"].ToString()); if (lstControl != null) { int selValue = int.Parse(lstControl.SelectedValue); if (selValue > 0) { Attributes += selValue.ToString() + ","; } } } if (Attributes != "") { // Split the string AttributeList = Attributes.Substring(0, Attributes.Length - 1); } } if (Attributes.Length == 0 && productId == 0) { MyDatas = _SkuAdmin.GetallSkuData(); } else { MyDatas = _SkuAdmin.GetBySKUAttributes(productId, AttributeList); } return MyDatas; }
/// <summary> /// Submit Button Click Event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { #region Declarations SKUAdmin skuAdminAccess = new SKUAdmin(); ProductAdmin productAdmin = new ProductAdmin(); SKUAttribute skuAttribute = new SKUAttribute(); SKU sku = new SKU(); ProductCategory productCategory = new ProductCategory(); ProductCategoryAdmin productCategoryAdmin=new ProductCategoryAdmin(); Product product = new Product(); System.IO.FileInfo fileInfo=null; bool retVal = false; //check if category was selected if (CategoryTreeView.CheckedNodes.Count > 0) { lblCategoryError.Visible = false; } else { lblCategoryError.Visible = true; return; } #endregion #region Set Product Properties //passing Values product.ProductID = ItemID; product.PortalID = ZNodeConfigManager.SiteConfig.PortalID; //if edit mode then get all the values first if (ItemID > 0) { product = productAdmin.GetByProductId(ItemID); if (ViewState["productSkuId"] != null) { sku.SKUID = int.Parse(ViewState["productSkuId"].ToString()); } } //General Info product.Name = txtProductName.Text; product.ImageFile = txtimagename.Text; product.ProductNum = txtProductNum.Text; product.PortalID = ZNodeConfigManager.SiteConfig.PortalID; if (ProductTypeList.SelectedIndex != -1) { product.ProductTypeID = Convert.ToInt32(ProductTypeList.SelectedValue); } else { //"Please add a product type before you add a new product"; } //MANUFACTURER if (ManufacturerList.SelectedIndex != -1) { if (ManufacturerList.SelectedItem.Text.Equals("No Manufacturer Selected")) { product.ManufacturerID = null; } else { product.ManufacturerID = Convert.ToInt32(ManufacturerList.SelectedValue); } } //Supplier if (ddlSupplier.SelectedIndex != -1) { if (ddlSupplier.SelectedItem.Text.Equals("None")) { product.SupplierID = null; } else { product.SupplierID = Convert.ToInt32(ddlSupplier.SelectedValue); } } product.DownloadLink = txtDownloadLink.Text.Trim(); product.ShortDescription = txtshortdescription.Text; product.Description = ctrlHtmlText.Html; product.RetailPrice = Convert.ToDecimal(txtproductRetailPrice.Text); if (txtproductSalePrice.Text.Trim().Length > 0) { product.SalePrice = Convert.ToDecimal(txtproductSalePrice.Text.Trim()); } else { product.SalePrice = null; } if (txtProductWholeSalePrice.Text.Trim().Length > 0) { product.WholesalePrice = Convert.ToDecimal(txtProductWholeSalePrice.Text.Trim()); } else { product.WholesalePrice = null; } //Quantity Available product.QuantityOnHand = Convert.ToInt32(txtProductQuantity.Text); if (txtReOrder.Text.Trim().Length > 0) { product.ReorderLevel = Convert.ToInt32(txtReOrder.Text); } else { product.ReorderLevel = null; } if(txtMaxQuantity.Text.Equals("")) { product.MaxQty = 10; } else { product.MaxQty = Convert.ToInt32(txtMaxQuantity.Text); } // Display Settings product.MasterPage = ddlPageTemplateList.SelectedItem.Text; product.DisplayOrder = int.Parse(txtDisplayOrder.Text.Trim()); // Tax Settings if(ddlTaxClass.SelectedIndex != -1) product.TaxClassID = int.Parse(ddlTaxClass.SelectedValue); //Shipping Option setting product.ShippingRuleTypeID = Convert.ToInt32(ShippingTypeList.SelectedValue); product.FreeShippingInd = chkFreeShippingInd.Checked; product.ShipSeparately = chkShipSeparately.Checked; if (txtProductWeight.Text.Trim().Length > 0) { product.Weight = Convert.ToDecimal(txtProductWeight.Text.Trim()); } else { product.Weight = null; } //Product Height - Which will be used to determine the shipping cost if (txtProductHeight.Text.Trim().Length > 0) { product.Height = decimal.Parse(txtProductHeight.Text.Trim()); } else { product.Height = null; } if (txtProductWidth.Text.Trim().Length > 0) { product.Width = decimal.Parse(txtProductWidth.Text.Trim()); } else { product.Width = null; } if (txtProductLength.Text.Trim().Length > 0) { product.Length = decimal.Parse(txtProductLength.Text.Trim()); } else { product.Length = null; } //Stock DataSet MyAttributeTypeDataSet = productAdmin.GetAttributeTypeByProductTypeID(int.Parse(ProductTypeList.SelectedValue)); if (MyAttributeTypeDataSet.Tables[0].Rows.Count == 0) { product.SKU = txtProductSKU.Text.Trim(); product.QuantityOnHand = Convert.ToInt32(txtProductQuantity.Text); } else { //SKU sku.ProductID = ItemID; sku.QuantityOnHand = Convert.ToInt32(txtProductQuantity.Text); sku.SKU = txtProductSKU.Text.Trim(); sku.ActiveInd = true; product.SKU = txtProductSKU.Text.Trim(); product.QuantityOnHand = 0; //Reset quantity available in the Product table,If SKU is selected } product.ImageAltTag = txtImageAltTag.Text.Trim(); #endregion #region Image Validation // Validate image if ((ItemID == 0 || RadioProductNewImage.Checked == true) && UploadProductImage.PostedFile.FileName.Length > 0) { //Check for Product Image fileInfo = new System.IO.FileInfo(UploadProductImage.PostedFile.FileName); if (fileInfo != null) { product.ImageFile = fileInfo.Name; sku.SKUPicturePath = fileInfo.Name; } } #endregion #region Database & Image Updates //set update date product.UpdateDte = System.DateTime.Now; //create transaction TransactionManager tranManager = ConnectionScope.CreateTransaction(); try { if (ItemID > 0) //PRODUCT UPDATE { //Update product Sku and Product values if (MyAttributeTypeDataSet.Tables[0].Rows.Count > 0) //If ProductType has SKU's { if (sku.SKUID > 0) //For this product already SKU if on exists { sku.UpdateDte = System.DateTime.Now; // Check whether Duplicate attributes is created string Attributes = String.Empty; DataSet MyAttributeTypeDataSet1 = productAdmin.GetAttributeTypeByProductTypeID(ProductTypeId); foreach (DataRow MyDataRow in MyAttributeTypeDataSet1.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + MyDataRow["AttributeTypeId"].ToString()); int selValue = int.Parse(lstControl.SelectedValue); Attributes += selValue.ToString() + ","; } // Split the string string Attribute = Attributes.Substring(0, Attributes.Length - 1); // To check SKU combination is already exists. bool RetValue = skuAdminAccess.CheckSKUAttributes(ItemID, sku.SKUID, Attribute); if (!RetValue) { //then Update the database with new property values retVal = productAdmin.Update(product, sku); } else { //Throw error if duplicate attribute lblMsg.Text = "This Attribute combination already exists for this product. Please select different combination."; return; } } else { retVal = productAdmin.Update(product); //If Product doesn't have any SKUs yet,then create new SKU in the database skuAdminAccess.Add(sku); } } else { retVal = productAdmin.Update(product); // If User selectes Default product type for this product, // then Remove all the existing SKUs for this product skuAdminAccess.DeleteByProductId(ItemID); } if (!retVal) { throw (new ApplicationException()); } // Delete existing categories productAdmin.DeleteProductCategories(ItemID); // Add Product Categories foreach (TreeNode Node in CategoryTreeView.CheckedNodes) { ProductCategory prodCategory = new ProductCategory(); ProductAdmin prodAdmin = new ProductAdmin(); prodCategory.CategoryID = int.Parse(Node.Value); prodCategory.ProductID = ItemID; prodAdmin.AddProductCategory(prodCategory); } // Delete existing SKUAttributes skuAdminAccess.DeleteBySKUId(sku.SKUID); // Add SKU Attributes foreach (DataRow MyDataRow in MyAttributeTypeDataSet.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + MyDataRow["AttributeTypeId"].ToString()); int selValue = int.Parse(lstControl.SelectedValue); if (selValue > 0) { skuAttribute.AttributeId = selValue; } skuAttribute.SKUID = sku.SKUID; skuAdminAccess.AddSKUAttribute(skuAttribute); } } else // PRODUCT ADD { product.ActiveInd = true; // Add Product/SKU if (MyAttributeTypeDataSet.Tables[0].Rows.Count > 0) { //if ProductType has SKUs, then insert sku with Product retVal = productAdmin.Add(product, sku, out _ProductID, out SKUId); } else { retVal = productAdmin.Add(product, out _ProductID); //if ProductType is Default } if (!retVal) { throw (new ApplicationException()); } // Add Category List for the Product foreach (TreeNode Node in CategoryTreeView.CheckedNodes) { ProductCategory prodCategory = new ProductCategory(); ProductAdmin prodAdmin = new ProductAdmin(); prodCategory.CategoryID = int.Parse(Node.Value); prodCategory.ProductID = _ProductID; prodAdmin.AddProductCategory(prodCategory); } // Add SKU Attributes foreach (DataRow MyDataRow in MyAttributeTypeDataSet.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + MyDataRow["AttributeTypeId"].ToString()); int selValue = int.Parse(lstControl.SelectedValue); if (selValue > 0) { skuAttribute.AttributeId = selValue; } skuAttribute.SKUID = SKUId; skuAdminAccess.AddSKUAttribute(skuAttribute); } ZNode.Libraries.Admin.ProductViewAdmin imageAdmin = new ProductViewAdmin(); ZNode.Libraries.DataAccess.Entities.ProductImage productImage = new ProductImage(); productImage.Name = txtimagename.Text; productImage.ActiveInd = false; productImage.ShowOnCategoryPage = false; productImage.ProductID = _ProductID; productImage.ProductImageTypeID = 1; productImage.DisplayOrder = 500; productImage.ImageAltTag = txtImageAltTag.Text.Trim(); productImage.AlternateThumbnailImageFile = txtImageAltTag.Text.Trim(); if (fileInfo != null) { productImage.ImageFile = fileInfo.Name; } imageAdmin.Insert(productImage); } // Commit transaction tranManager.Commit(); } catch // error occurred so rollback transaction { if (tranManager.IsOpen) tranManager.Rollback(); lblMsg.Text = "Unable to update product. Please try again."; return; } // Upload File if this is a new product or the New Image option was selected for an existing product if (RadioProductNewImage.Checked || ItemID == 0) { if (fileInfo != null) { UploadProductImage.SaveAs(Server.MapPath(ZNodeConfigManager.EnvironmentConfig.OriginalImagePath + fileInfo.Name)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemLargeWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.LargeImagePath)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemThumbnailWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.ThumbnailImagePath)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemMediumWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.MediumImagePath)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemSmallWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.SmallImagePath)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemSwatchWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.SwatchImagePath)); ZNodeImage.ResizeImage(fileInfo, ZNode.Libraries.Framework.Business.ZNodeConfigManager.SiteConfig.MaxCatalogItemCrossSellWidth, Server.MapPath(ZNodeConfigManager.EnvironmentConfig.CrossSellImagePath)); } } #endregion #region Redirect to next page //Redirect to next page if (ItemID > 0) { string ViewLink = "~/admin/secure/catalog/product/view.aspx?itemid=" + ItemID.ToString(); Response.Redirect(ViewLink); } else { string NextLink = "~/admin/secure/catalog/product/view.aspx?itemid=" + _ProductID.ToString(); Response.Redirect(NextLink); } #endregion }
/// <summary> /// Binds the Sku Attributes for this Product /// </summary> /// <param name="productTypeID"></param> private void BindAttributes(int productTypeID) { SKUAdmin adminSKU = new SKUAdmin(); ProductAdmin adminAccess = new ProductAdmin(); if (ViewState["productSkuId"] != null) { //Get SKUID from the ViewState DataSet SkuDataSet = adminSKU.GetBySKUId(int.Parse(ViewState["productSkuId"].ToString())); DataSet MyDataSet = adminAccess.GetAttributeTypeByProductTypeID(productTypeID); foreach (DataRow dr in MyDataSet.Tables[0].Rows) { foreach (DataRow Dr in SkuDataSet.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + dr["AttributeTypeId"].ToString()); if (lstControl != null) { lstControl.SelectedValue = Dr["Attributeid"].ToString(); } } } } }
/// <summary> /// Bind value for Particular Product /// </summary> public void BindEditData() { ProductAdmin productAdmin = new ProductAdmin(); Product product = new Product(); SKUAdmin skuAdmin = new SKUAdmin(); if (ItemID > 0) { product = productAdmin.GetByProductId(ItemID); // General Information - Section1 lblTitle.Text += product.Name; txtProductName.Text = product.Name; txtProductNum.Text = product.ProductNum; if (ProductTypeList.SelectedIndex != -1) { ProductTypeList.SelectedValue = product.ProductTypeID.ToString(); } if (ManufacturerList.SelectedIndex != -1) { ManufacturerList.SelectedValue = product.ManufacturerID.ToString(); } if (ddlSupplier.SelectedIndex != -1) { ddlSupplier.SelectedValue = product.SupplierID.ToString(); } // Product Description and Image - Section2 txtshortdescription.Text = product.ShortDescription; ctrlHtmlText.Html = product.Description; Image1.ImageUrl = ZNode.Libraries.Framework.Business.ZNodeConfigManager.EnvironmentConfig.MediumImagePath + product.ImageFile; // Displaying the Image file name in a textbox txtimagename.Text = product.ImageFile; txtImageAltTag.Text = product.ImageAltTag; // Product properties if(product.RetailPrice.HasValue) txtproductRetailPrice.Text = product.RetailPrice.Value.ToString("N"); if (product.SalePrice.HasValue) txtproductSalePrice.Text = product.SalePrice.Value.ToString("N"); if (product.WholesalePrice.HasValue) txtProductWholeSalePrice.Text = product.WholesalePrice.Value.ToString("N"); txtDownloadLink.Text = product.DownloadLink; // Tax Classes if(product.TaxClassID.HasValue) ddlTaxClass.SelectedValue = product.TaxClassID.Value.ToString(); // Category List this.BindEditCategoryList(); //Display Settings txtDisplayOrder.Text = product.DisplayOrder.ToString(); ddlPageTemplateList.SelectedValue = product.MasterPage; // Inventory DataSet MySKUDataSet = skuAdmin.GetByProductID(ItemID); if (MySKUDataSet.Tables[0].Rows.Count != 0) { ViewState["productSkuId"] = MySKUDataSet.Tables[0].Rows[0]["skuid"].ToString(); txtProductSKU.Text = MySKUDataSet.Tables[0].Rows[0]["sku"].ToString(); txtProductQuantity.Text = MySKUDataSet.Tables[0].Rows[0]["quantityonhand"].ToString(); this.BindAttributes(product.ProductTypeID); } else { if (product.QuantityOnHand.HasValue) { txtProductQuantity.Text = product.QuantityOnHand.Value.ToString(); } if (product.ReorderLevel.HasValue) { txtReOrder.Text = product.ReorderLevel.Value.ToString(); } txtProductSKU.Text = product.SKU; } if (product.MaxQty.HasValue) { txtMaxQuantity.Text = product.MaxQty.Value.ToString(); } // Shipping settings ShippingTypeList.SelectedValue = product.ShippingRuleTypeID.ToString(); EnableValidators(); //This method will enable or disable validators based on the shippingtype if(product.FreeShippingInd.HasValue) chkFreeShippingInd.Checked = product.FreeShippingInd.Value; chkShipSeparately.Checked = product.ShipSeparately; if (product.Weight.HasValue) txtProductWeight.Text = product.Weight.Value.ToString("N2"); if (product.Height.HasValue) txtProductHeight.Text = product.Height.Value.ToString("N2"); if (product.Width.HasValue) txtProductWidth.Text = product.Width.Value.ToString("N2"); if (product.Length.HasValue) txtProductLength.Text = product.Length.Value.ToString("N2"); // Release the Resources MySKUDataSet.Dispose(); } }
private void BindSKU() { SKUAdmin _SkuAdmin = new SKUAdmin(); DataSet MyDatas = _SkuAdmin.GetByProductID(ItemId); uxGridInventoryDisplay.DataSource = MyDatas; uxGridInventoryDisplay.DataBind(); if (MyDatas.Tables[0].Rows.Count == 0) { butAddNewSKU.Enabled = true; //override previous logic } }
/// <summary> /// Event triggered when a command button is clicked on the grid (InventoryDisplay Grid) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void uxGridInventoryDisplay_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandArgument.ToString() == "page") { } else { if (e.CommandName == "Edit") { //Redirect Edit SKUAttrbute Page Response.Redirect(AddSKULink + ItemId + "&skuid=" + e.CommandArgument.ToString() + "&typeid=" + productTypeID); } else if (e.CommandName == "Delete") { // Delete SKU and SKU Attribute SKUAdmin _AdminAccess = new SKUAdmin(); bool check = _AdminAccess.Delete(int.Parse(e.CommandArgument.ToString())); if (check) { _AdminAccess.DeleteBySKUId(int.Parse(e.CommandArgument.ToString())); } } } }
/// <summary> /// Bind Inventory Grid /// </summary> private void BindSKU() { SKUAdmin SkuAdmin = new SKUAdmin(); DataSet MyDatas = SkuAdmin.GetByProductID(ItemId); DataView Sku = new DataView(MyDatas.Tables[0]); Sku.Sort = "SKU"; uxGridInventoryDisplay.DataSource = Sku; uxGridInventoryDisplay.DataBind(); }
/// <summary> /// Binds the Search data /// </summary> private void BindSearchData() { ProductAdmin adminAccess = new ProductAdmin(); DataSet ds = adminAccess.GetProductDetails(ItemId); //Check for Number of Rows if (ds.Tables[0].Rows.Count != 0) { //Check For Product Type productTypeID = int.Parse(ds.Tables[0].Rows[0]["ProductTypeId"].ToString()); } // For Attribute value. string Attributes = String.Empty; //GetAttribute for this ProductType DataSet MyAttributeTypeDataSet = adminAccess.GetAttributeTypeByProductTypeID(productTypeID); foreach (DataRow MyDataRow in MyAttributeTypeDataSet.Tables[0].Rows) { System.Web.UI.WebControls.DropDownList lstControl = (System.Web.UI.WebControls.DropDownList)ControlPlaceHolder.FindControl("lstAttribute" + MyDataRow["AttributeTypeId"].ToString()); if (lstControl != null) { int selValue = int.Parse(lstControl.SelectedValue); if (selValue > 0) { Attributes += selValue.ToString() + ","; } } } //If Attributes length is more than zero. if (Attributes.Length > 0) { // Split the string string Attribute = Attributes.Substring(0, Attributes.Length - 1); if (Attribute.Length > 0) { SKUAdmin _SkuAdmin = new SKUAdmin(); DataSet MyDatas = _SkuAdmin.GetBySKUAttributes(ItemId, Attribute); DataView Sku = new DataView(MyDatas.Tables[0]); Sku.Sort = "SKU"; uxGridInventoryDisplay.DataSource = Sku; uxGridInventoryDisplay.DataBind(); } } else { this.BindSKU(); } }