/// <summary> /// Binding products on page load /// </summary> private void Bindproducts() { List <CampaignsProduct> products = null; if (TypeOfProduct == (int)ProductsType.PreBuy && OpenCampaign != null) { BindPrograms(); BindProductTypes(); if (OpenCampaign != null) { products = CampaignsProductProvider.GetCampaignsProducts() .WhereIn("ProgramID", GetProgramIDs(OpenCampaign.CampaignID)).WhereEquals("NodeSiteID", CurrentSite.SiteID).ToList(); } BindingProductsToRepeater(products); } else if (TypeOfProduct == (int)ProductsType.PreBuy && OpenCampaign == null) { catalogControls.Visible = false; lblNoProducts.Visible = false; campaignIsNotOpen.Visible = true; } if (TypeOfProduct == (int)ProductsType.GeneralInventory) { BindBrands(); BindProductTypes(); products = CampaignsProductProvider.GetCampaignsProducts().WhereEquals("NodeSiteID", CurrentSite.SiteID) .Where(new WhereCondition().WhereEquals("ProgramID", null).Or().WhereEquals("ProgramID", 0)).ToList(); BindingProductsToRepeater(products); } }
/// <summary> /// Get Product details /// </summary> /// <returns></returns> public List <CampaignsProduct> GetProductDetails() { List <CampaignsProduct> productsDetails = new List <CampaignsProduct>(); try { List <int> programIds = new List <int>(); if (ValidationHelper.GetInteger(ddlProgram.SelectedValue, default(int)) != default(int)) { if (IsCampaignClosed(ValidationHelper.GetInteger(ddlProgram.SelectedValue, default(int)))) { programIds.Add(ValidationHelper.GetInteger(ddlProgram.SelectedValue, default(int))); } } else { programIds = GetProgramIDs(ValidationHelper.GetInteger(ddlCampaign.SelectedValue, default(int)), ValidationHelper.GetInteger(ddlProgram.SelectedValue, default(int))); } if (!DataHelper.DataSourceIsEmpty(programIds)) { productsDetails = CampaignsProductProvider.GetCampaignsProducts() .WhereIn("ProgramID", programIds) .ToList(); } } catch (Exception ex) { EventLogProvider.LogException("Get Product Details", "GetProductDetails()", ex, CurrentSite.SiteID, ex.Message); } return(productsDetails); }
protected void ddlPosNo_SelectedIndexChanged(object sender, EventArgs e) { try { string selectedPos = ddlPosNo.SelectedValue; BindData(); SKUInfo skuDetails = SKUInfoProvider.GetSKUs().WhereEquals("SKUNumber", selectedPos).FirstObject; if (skuDetails != null) { string folderName = libraryFolderName; folderName = !string.IsNullOrEmpty(folderName) ? folderName.Replace(" ", "") : "CampaignProducts"; txtLongDes.Text = skuDetails.SKUDescription; txtEstPrice.Text = ValidationHelper.GetString(skuDetails.SKUPrice, string.Empty); ddlPosNo.SelectedValue = ValidationHelper.GetString(skuDetails.SKUNumber, string.Empty); txtShortDes.Text = skuDetails.SKUName; txtActualPrice.Text = ValidationHelper.GetString(skuDetails.SKUPrice, string.Empty); ddlStatus.SelectedValue = skuDetails.SKUEnabled == true ? "1" : "0"; imgProduct.ImageUrl = ValidationHelper.GetString(skuDetails.SKUImagePath, string.Empty); imgProduct.Visible = imgProduct.ImageUrl != string.Empty ? true : false; txtExpDate.Text = ValidationHelper.GetString(skuDetails.SKUValidUntil, string.Empty); txtQuantity.Text = ValidationHelper.GetString(skuDetails.SKUAvailableItems, string.Empty); txtWeight.Text = ValidationHelper.GetString(skuDetails.SKUWeight, string.Empty); CampaignsProduct product = CampaignsProductProvider.GetCampaignsProducts().WhereEquals("NodeSKUID", skuDetails.SKUID).FirstObject; if (product != null) { txtBundleQnt.Text = ValidationHelper.GetString(product.QtyPerPack, string.Empty); ddlBrand.SelectedValue = ValidationHelper.GetString(product.BrandID, string.Empty); ddlState.SelectedValue = ValidationHelper.GetString(product.State, string.Empty); ddlProdCategory.SelectedValue = ValidationHelper.GetString(product.CategoryID, string.Empty); BindEditProduct(ValidationHelper.GetInteger(product.CampaignsProductID, 0)); ViewState["ProductId"] = product.CampaignsProductID; } } else { ViewState["ProductId"] = null; EmptyFields(false); var pos = CustomTableItemProvider.GetItems(POSNumberItem.CLASS_NAME) .WhereEquals("POSNumber", selectedPos) .FirstOrDefault(); if (pos != null && pos.GetValue("BrandID") != null) { var brand = CustomTableItemProvider.GetItems(BrandItem.CLASS_NAME) .WhereEquals("BrandCode", pos.GetValue("BrandID")) .FirstOrDefault(); if (brand != null) { ddlBrand.SelectedValue = brand.GetValue("ItemId").ToString(); } } } ddlPosNo.SelectedValue = selectedPos; } catch (Exception ex) { EventLogProvider.LogException("CMSWebParts_Kadena_Inventory_porduct_POSchanged", "BindCategories", ex, CurrentSite.SiteID, ex.Message); } }
private void UpdateProduct(int productID) { CampaignsProduct product = CampaignsProductProvider .GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .WhereEquals("CampaignsProductID", productID) .FirstOrDefault(); if (product != null) { product.DocumentName = ValidationHelper.GetString(txtShortDes.Text, string.Empty); product.QtyPerPack = ValidationHelper.GetInteger(txtBundleQnt.Text, default(int)); product.BrandID = ValidationHelper.GetInteger(ddlBrand.SelectedValue, default(int)); product.CategoryID = ValidationHelper.GetInteger(ddlProdCategory.SelectedValue, default(int)); product.EstimatedPrice = ValidationHelper.GetInteger(txtEstPrice.Text, default(int)); product.ProductName = ValidationHelper.GetString(txtShortDes.Text, string.Empty); product.State = ValidationHelper.GetInteger(ddlState.SelectedValue, default(int)); SKUInfo updateProduct = SKUInfoProvider.GetSKUs().WhereEquals("SKUID", product.NodeSKUID).FirstObject; if (updateProduct != null) { if (productImage.HasFile) { if (updateProduct.SKUImagePath != string.Empty) { UploadImage.DeleteImage(updateProduct.SKUImagePath, libraryFolderName); } updateProduct.SKUImagePath = UploadImage.UploadImageToMeadiaLibrary(productImage, libraryFolderName); } updateProduct.SKUName = ValidationHelper.GetString(txtShortDes.Text, string.Empty); updateProduct.SKUShortDescription = ValidationHelper.GetString(txtShortDes.Text, string.Empty); updateProduct.SKUDescription = ValidationHelper.GetString(txtLongDes.Text, string.Empty); updateProduct.SKUPrice = ValidationHelper.GetDouble(txtActualPrice.Text, default(double)); updateProduct.SKUEnabled = ValidationHelper.GetString(ddlStatus.SelectedValue, "1") == "1" ? true : false; updateProduct.SKUSiteID = CurrentSite.SiteID; updateProduct.SKUProductType = SKUProductTypeEnum.EProduct; updateProduct.SKUAvailableItems = ValidationHelper.GetInteger(txtQuantity.Text, 0); updateProduct.SKUWeight = ValidationHelper.GetDouble(txtWeight.Text, default(double)); updateProduct.SKUValidUntil = ValidationHelper.GetDateTime(txtExpDate.Text, DateTime.MinValue); SKUInfoProvider.SetSKUInfo(updateProduct); } product.Update(); var saveproductID = ValidationHelper.GetInteger(product.CampaignsProductID, 0); UpdateAllocateProduct(saveproductID); lblSuccessMsg.Visible = true; lblFailureText.Visible = false; EmptyFields(true); Response.Cookies["status"].Value = QueryStringStatus.Updated; Response.Cookies["status"].HttpOnly = false; URLHelper.Redirect($"{CurrentDocument.Parent.DocumentUrlPath}?status={QueryStringStatus.Updated}"); } else { lblFailureText.Visible = true; } }
/// <summary> /// Set the field with the record which user wants to edit /// </summary> /// <param name="productid">The id of the product which user wants to edit</param> private void SetFeild(int productID) { try { if (productID != 0) { CampaignsProduct product = CampaignsProductProvider.GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .WhereEquals("CampaignsProductID", productID) .FirstOrDefault(); if (product != null) { SKUInfo skuDetails = SKUInfoProvider.GetSKUs() .WhereEquals("SKUID", product.NodeSKUID) .FirstObject; if (skuDetails != null) { string folderName = libraryFolderName; folderName = !string.IsNullOrEmpty(folderName) ? folderName.Replace(" ", "") : "InventoryProducts"; txtLongDes.Text = skuDetails.SKUDescription; txtEstPrice.Text = ValidationHelper.GetString(product.EstimatedPrice, string.Empty); ddlPosNo.Items.Add(new ListItem(ValidationHelper.GetString(skuDetails.GetValue("SKUProductCustomerReferenceNumber", string.Empty), string.Empty), ValidationHelper.GetString(skuDetails.GetValue("SKUProductCustomerReferenceNumber", string.Empty), string.Empty))); ddlPosNo.Enabled = false; txtShortDes.Text = skuDetails.SKUName; txtActualPrice.Text = ValidationHelper.GetString(skuDetails.SKUPrice, string.Empty); ddlStatus.SelectedValue = skuDetails.SKUEnabled == true ? "1" : "0"; imgProduct.ImageUrl = ValidationHelper.GetString(skuDetails.SKUImagePath, string.Empty); imgProduct.Visible = imgProduct.ImageUrl != string.Empty ? true : false; if (skuDetails.SKUValidUntil != DateTime.MinValue) { txtExpDate.Text = ValidationHelper.GetString(skuDetails.SKUValidUntil.ToShortDateString(), string.Empty); } txtQuantity.Text = ValidationHelper.GetString(skuDetails.SKUAvailableItems, string.Empty); txtWeight.Text = ValidationHelper.GetString(skuDetails.SKUWeight, string.Empty); } txtBundleQnt.Text = ValidationHelper.GetString(product.QtyPerPack, string.Empty); ddlBrand.SelectedValue = ValidationHelper.GetString(product.BrandID, string.Empty); ddlState.SelectedValue = ValidationHelper.GetString(product.State, string.Empty); ddlProdCategory.SelectedValue = ValidationHelper.GetString(product.CategoryID, string.Empty); BindEditProduct(ValidationHelper.GetInteger(product.CampaignsProductID, 0)); } } } catch (Exception ex) { EventLogProvider.LogException("GetProductFromButtonClick", "EXCEPTION", ex); } }
/// <summary> /// This methods returns inner HTML for pdf /// </summary> /// <param name="distributorCartData"></param> /// <returns></returns> public static string CreateCartInnerContent(List <DataRow> distributorCartData, string CurrentSiteName, int inventoryType) { try { string pdfProductContent = string.Empty; if (inventoryType == Convert.ToInt32(ProductType.GeneralInventory)) { pdfProductContent = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.KDA_DistributorCartPDFHTMLBodyGI"); } else { pdfProductContent = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.KDA_DistributorCartPDFHTMLBody"); } StringBuilder sb = new StringBuilder(); var skuIds = distributorCartData.AsEnumerable().Select(x => x.Field <int>("SkUID")).ToList(); var products = CampaignsProductProvider.GetCampaignsProducts() .WhereEquals("NodeSiteID", SiteContext.CurrentSiteID).WhereIn("NodeSKUID", skuIds).Columns("NodeSKUID,State,ProgramID,QtyPerPack,EstimatedPrice").ToList(); var programs = ProgramProvider.GetPrograms().WhereIn("ProgramID", products.Select(x => x.ProgramID).ToList()).Columns("ProgramID,ProgramName").ToList(); var stateGroups = CustomTableItemProvider.GetItems <StatesGroupItem>().WhereIn("ItemID", products.Select(x => x.State).ToList()).Columns("ItemID,States").ToList(); distributorCartData.ForEach(row => { var pdfContent = pdfProductContent; var product = products.Where(x => x.NodeSKUID == ValidationHelper.GetInteger(row["SKUID"], default(int))).FirstOrDefault(); var programName = programs.Where(x => x.ProgramID == product.ProgramID).FirstOrDefault(); var states = stateGroups.Where(x => x.ItemID == product.State).FirstOrDefault(); var skuValidity = ValidationHelper.GetDateTime(row["SKUValidUntil"], default(DateTime)); pdfContent = pdfContent.Replace("{PRODUCTNAME}", ValidationHelper.GetString(row["SKUName"], " ")) .Replace("{SKUNUMBER}", ValidationHelper.GetString(row["SKUProductCustomerReferenceNumber"], " ")) .Replace("{SKUUNITS}", ValidationHelper.GetString(row["SKUUnits"], " ")) .Replace("{BUNDLECOST}", inventoryType == Convert.ToInt32(ProductType.GeneralInventory) ? ($"{CurrencyInfoProvider.GetFormattedPrice(ValidationHelper.GetDouble(row["SKUPrice"], default(double)), SiteContext.CurrentSiteID, true)}") : ($"{CurrencyInfoProvider.GetFormattedPrice(ValidationHelper.GetDouble(product.EstimatedPrice, default(double)), SiteContext.CurrentSiteID, true)}")) .Replace("{BUNDLEQUANTITY}", ValidationHelper.GetString(product.QtyPerPack, " ")) .Replace("{IMAGEURL}", GetProductImage(ValidationHelper.GetString(row["SKUImagePath"], default(string)))) .Replace("{VALIDSTATES}", ValidationHelper.GetString(states?.States, " ")) .Replace("{EXPIREDATE}", skuValidity != default(DateTime) ? skuValidity.ToString("MMM dd, yyyy") : " ") .Replace("{PROGRAMNAME}", ValidationHelper.GetString(programName?.ProgramName, " ")); sb.Append(pdfContent); }); return(sb.ToString()); } catch (Exception ex) { EventLogProvider.LogInformation("CartPDFHelper", "CreateCartInnerContent", ex.Message); return(string.Empty); } }
/// <summary> /// update available sku quantity /// </summary> /// <param name="inventoryType"></param> /// <returns></returns> public static void UpdateAllocatedProductQuantity(ShoppingCartInfo cart, int userID) { try { var productProvider = DIContainer.Resolve <IKenticoProductsProvider>(); cart.CartItems.ForEach(cartItem => { var campProduct = CampaignsProductProvider.GetCampaignsProducts().WhereEquals("NodeSKUID", cartItem?.SKUID).Columns("CampaignsProductID,EstimatedPrice").FirstOrDefault(); if (campProduct != null) { productProvider.UpdateAllocatedProductQuantityForUser(campProduct.GetIntegerValue("CampaignsProductID", 0), userID, cartItem.CartItemUnits); } }); } catch (Exception ex) { EventLogProvider.LogInformation("ShoppingCartHelper", "UpdateAvailableSKUQuantity", ex.Message); } }
/// <summary> /// Filtering products based on filters /// </summary> public void SetFilter(int programID = default(int), int categoryID = default(int), int brandID = default(int), string posNum = null) { try { rptCatalogProducts.DataSource = null; rptCatalogProducts.DataBind(); lblNoProducts.Visible = false; noProductSelected.Visible = false; if (TypeOfProduct == (int)ProductsType.PreBuy && OpenCampaign != null) { var products = CampaignsProductProvider.GetCampaignsProducts().WhereNotEquals("ProgramID", null).WhereEquals("NodeSiteID", CurrentSite.SiteID).WhereIn("ProgramID", GetProgramIDs(OpenCampaign.CampaignID)).ToList(); if (programID != default(int) && !DataHelper.DataSourceIsEmpty(products)) { products = products.Where(x => x.ProgramID == programID).ToList(); } if (categoryID != default(int) && !DataHelper.DataSourceIsEmpty(products)) { products = products.Where(x => x.CategoryID == categoryID).ToList(); } BindingProductsToRepeater(products, posNum); } if (TypeOfProduct == (int)ProductsType.GeneralInventory) { var products = CampaignsProductProvider.GetCampaignsProducts().WhereEquals("NodeSiteID", CurrentSite.SiteID).Where(new WhereCondition().WhereEquals("ProgramID", null).Or().WhereEquals("ProgramID", 0)).ToList(); if (brandID != default(int) && !DataHelper.DataSourceIsEmpty(products)) { products = products.Where(x => x.BrandID == brandID).ToList(); } if (categoryID != default(int) && !DataHelper.DataSourceIsEmpty(products)) { products = products.Where(x => x.CategoryID == categoryID).ToList(); } BindingProductsToRepeater(products, posNum); } } catch (Exception ex) { EventLogProvider.LogException("Setting where condition to filter", ex.Message, ex); } }
/// <summary> /// Add to /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btmAddItemsToCart_Click(object sender, EventArgs e) { try { lblErrorMsg.Visible = false; var productProvider = DIContainer.Resolve <IKenticoProductsProvider>(); ProductSKUID = ValidationHelper.GetInteger(hdnClickSKU.Value, default(int)); SKUInfo product = SKUInfoProvider.GetSKUs().WhereEquals("SKUID", ProductSKUID).WhereNull("SKUOptionCategoryID").FirstObject; var campProduct = CampaignsProductProvider.GetCampaignsProducts().WhereEquals("NodeSKUID", product?.SKUID).Columns("CampaignsProductID,EstimatedPrice").FirstOrDefault(); var skuPrice = default(double); if (ProductType == (int)ProductsType.GeneralInventory) { skuPrice = 0; } else { skuPrice = campProduct.EstimatedPrice; } var allocatedQuantityItem = campProduct != null?productProvider.GetAllocatedProductQuantityForUser(campProduct.CampaignsProductID, CurrentUser.UserID) : null; var allocatedQuantity = allocatedQuantityItem != null?allocatedQuantityItem.GetValue <int>("Quantity", default(int)) : default(int); bool productHasAllocation = false; if (ProductType == (int)ProductsType.GeneralInventory) { productHasAllocation = campProduct != null?productProvider.IsProductHasAllocation(campProduct.CampaignsProductID) : false; } var itemsPlaced = default(int); foreach (GridViewRow row in gvCustomersCart.Rows) { if (row.RowType == DataControlRowType.DataRow && !DataHelper.DataSourceIsEmpty(product)) { int customerAddressID = Convert.ToInt32(row.Cells[0].Text); TextBox txtQty = (row.Cells[2].FindControl("txtQuanityOrdering") as TextBox); var quantityPlacing = ValidationHelper.GetInteger(txtQty.Text, default(int)); var customerShoppingCartID = ValidationHelper.GetInteger(row.Cells[3].Text, default(int)); if (ProductType == (int)ProductsType.GeneralInventory) { itemsPlaced += quantityPlacing; if (itemsPlaced > product.SKUAvailableItems) { lblErrorMsg.Text = ResHelper.GetString("Kadena.AddToCart.StockError"); lblErrorMsg.Visible = true; } else if (itemsPlaced > allocatedQuantity && productHasAllocation) { lblErrorMsg.Text = ResHelper.GetString("Kadena.AddToCart.AllocatedProductQuantityError"); lblErrorMsg.Visible = true; } else { CartProcessOperations(customerShoppingCartID, quantityPlacing, product, customerAddressID, skuPrice); } } else { CartProcessOperations(customerShoppingCartID, quantityPlacing, product, customerAddressID, skuPrice); } } } btnClose.InnerText = ResHelper.GetString("KDA.ShoppingCart.Close"); lblAvailbleItems.Visible = false; if (!lblErrorMsg.Visible) { lblSuccessMsg.Text = ResHelper.GetString("Kadena.AddToCart.SuccessfullyAdded"); lblSuccessMsg.Visible = true; gvCustomersCart.Visible = false; llbtnAddToCart.Visible = false; } } catch (Exception ex) { EventLogProvider.LogException("CustomerCartOperations.ascx.cs", "btmAddItemsToCart_Click()", ex); } }
/// <summary> /// Get Product details /// </summary> /// <param name="programID"></param> /// <param name="categoryID"></param> /// <param name="posNumber"></param> /// <returns></returns> public List <CampaignsProduct> GetProductsDetails(int programID = default(int), int categoryID = default(int), string posNumber = null, int brandID = default(int)) { List <CampaignsProduct> productsDetails = new List <CampaignsProduct>(); try { if (ProductType != default(int)) { if (ProductType == (int)ProductsType.GeneralInventory) { ddlCategory.Visible = true; ddlBrand.Visible = true; productsDetails = CampaignsProductProvider.GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .Where(new WhereCondition().WhereEquals("ProgramID", null).Or().WhereEquals("ProgramID", 0)) .ToList(); if (!DataHelper.DataSourceIsEmpty(productsDetails)) { if (categoryID != default(int)) { productsDetails = productsDetails .Where(x => x.CategoryID == categoryID) .ToList(); } if (brandID != default(int)) { productsDetails = productsDetails .Where(x => x.BrandID == brandID) .ToList(); } } } else if (ProductType == (int)ProductsType.PreBuy) { ddlProgram.Visible = true; ddlCategory.Visible = true; List <int> programIds = GetProgramIDs(); if (!DataHelper.DataSourceIsEmpty(programIds)) { productsDetails = CampaignsProductProvider.GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .WhereIn("ProgramID", programIds) .ToList(); if (!DataHelper.DataSourceIsEmpty(productsDetails)) { if (programID != default(int)) { productsDetails = productsDetails .Where(x => x.ProgramID == programID) .ToList(); } if (categoryID != default(int)) { productsDetails = productsDetails .Where(x => x.CategoryID == categoryID) .ToList(); } } } } } } catch (Exception ex) { EventLogProvider.LogException("Get Product Details", "GetProductsDetails()", ex, CurrentSite.SiteID, ex.Message); } return(productsDetails); }
/// <summary> /// Update the product data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpdate_Click(object sender, EventArgs e) { try { int programID = ValidationHelper.GetInteger(ddlProgram.SelectedValue, 0); TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); if (ViewState["ProductNodeID"] != null) { CampaignsProduct product = CampaignsProductProvider.GetCampaignsProduct(ValidationHelper.GetInteger(ViewState["ProductNodeID"], 0), CurrentDocument.DocumentCulture, CurrentSiteName); if (product != null) { string itemSpecsID, customItemSpecs; GetItemSpecsValue(out itemSpecsID, out customItemSpecs); product.DocumentName = ValidationHelper.GetString(txtProductName.Text, string.Empty); product.ProgramID = ValidationHelper.GetInteger(ddlProgram.SelectedValue, 0); product.State = ValidationHelper.GetInteger(ddlState.SelectedValue, default(int)); product.BrandID = ValidationHelper.GetInteger(ddlBrand.SelectedValue, default(int)); product.CategoryID = ValidationHelper.GetInteger(ddlProductcategory.SelectedValue, 0); product.QtyPerPack = ValidationHelper.GetInteger(txtQty.Text, default(int)); product.ItemSpecs = ValidationHelper.GetString(itemSpecsID, string.Empty); product.CustomItemSpecs = ValidationHelper.GetString(customItemSpecs, string.Empty); product.EstimatedPrice = ValidationHelper.GetDouble(txtEstimatedprice.Text, default(double)); product.ProductName = ValidationHelper.GetString(txtProductName.Text, string.Empty); SKUInfo updateProduct = SKUInfoProvider.GetSKUs().WhereEquals("SKUID", product.NodeSKUID).FirstObject; if (updateProduct != null) { if (productImage.HasFile) { string libraryFolderName = SettingsKeyInfoProvider.GetValue(CurrentSite.SiteName + ".KDA_ImagesFolderName"); if (updateProduct.SKUImagePath != string.Empty) { UploadImage.DeleteImage(updateProduct.SKUImagePath, libraryFolderName); } updateProduct.SKUImagePath = UploadImage.UploadImageToMeadiaLibrary(productImage, libraryFolderName); } updateProduct.SKUName = ValidationHelper.GetString(txtProductName.Text, string.Empty); updateProduct.SKUShortDescription = ValidationHelper.GetString(txtProductName.Text, string.Empty); updateProduct.SKUDescription = ValidationHelper.GetString(txtLongDescription.Text, string.Empty); updateProduct.SKUValidUntil = ValidationHelper.GetDate(txtExpireDate.Text, DateTime.MinValue); updateProduct.SKUEnabled = ValidationHelper.GetString(ddlStatus.SelectedValue, "1") == "1" ? true : false; updateProduct.SKUSiteID = CurrentSite.SiteID; updateProduct.SKUProductType = SKUProductTypeEnum.EProduct; updateProduct.SKUPrice = 0; SKUInfoProvider.SetSKUInfo(updateProduct); } product.Update(); } if (ViewState["ProgramID"] != null) { if (ValidationHelper.GetInteger(ViewState["ProgramID"], 0) != programID) { var targetProgram = ProgramProvider.GetPrograms() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .WhereEquals("ProgramID", programID) .Column("NodeID") .FirstOrDefault(); if (targetProgram != null) { var tagetDocument = DocumentHelper.GetDocument(targetProgram.NodeID, CurrentDocument.DocumentCulture, tree); var targetPage = tree.SelectSingleNode(SiteContext.CurrentSiteName, tagetDocument.NodeAliasPath, CurrentDocument.DocumentCulture); if ((product != null) && (targetPage != null)) { DocumentHelper.MoveDocument(product, targetPage, tree, true); } } } } int capaignNodeID = ValidationHelper.GetInteger(Request.QueryString["camp"], default(int)); var campDoc = DocumentHelper.GetDocument(capaignNodeID, CurrentDocument.DocumentCulture, tree); if (campDoc != null) { Response.Redirect($"{campDoc.DocumentUrlPath}?status={QueryStringStatus.Updated}"); } } } catch (Exception ex) { EventLogProvider.LogException("CMSWebParts_Kadena_Campaign_Web_Form_AddCampaignProducts", "btnUpdate_Click", ex, CurrentSite.SiteID, ex.Message); } }
/// <summary> /// Initializes the control properties. /// </summary> protected void SetupControl() { if (!this.StopProcessing) { try { if (!IsPostBack) { BindPrograms(); BindCategories(); BindResorceStrings(); BindPOS(); GetStateGroup(); GetBrandName(); BindItemSpecsDropdown(); int productID = ValidationHelper.GetInteger(Request.QueryString["id"], 0); if (productID != 0) { CampaignsProduct product = CampaignsProductProvider .GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .WhereEquals("CampaignsProductID", productID) .FirstOrDefault(); if (product != null) { SKUInfo skuDetails = SKUInfoProvider .GetSKUs() .WhereEquals("SKUID", product.NodeSKUID) .FirstObject; if (skuDetails != null) { string folderName = SettingsKeyInfoProvider.GetValue(CurrentSite.SiteName + ".KDA_ImagesFolderName"); folderName = !string.IsNullOrEmpty(folderName) ? folderName.Replace(" ", "") : "CampaignProducts"; txtLongDescription.Text = skuDetails.SKUDescription; ddlPos.SelectedValue = ValidationHelper.GetString(skuDetails.GetValue("SKUProductCustomerReferenceNumber", string.Empty), string.Empty); ddlPos.Enabled = false; txtProductName.Text = skuDetails.SKUName; txtActualPrice.Text = ValidationHelper.GetString(skuDetails.SKUPrice, string.Empty); ddlStatus.SelectedValue = skuDetails.SKUEnabled == true ? "1" : "0"; imgProduct.ImageUrl = ValidationHelper.GetString(skuDetails.SKUImagePath, string.Empty); imgProduct.Visible = imgProduct.ImageUrl != string.Empty ? true : false; if (skuDetails.SKUValidUntil != DateTime.MinValue) { txtExpireDate.Text = ValidationHelper.GetString(skuDetails.SKUValidUntil.ToShortDateString(), string.Empty); } } ddlProgram.SelectedValue = ValidationHelper.GetString(product.ProgramID, string.Empty); ddlProgram.Enabled = false; ddlState.SelectedValue = ValidationHelper.GetString(product.State, string.Empty); ddlBrand.SelectedValue = product.BrandID.ToString(); txtEstimatedprice.Text = ValidationHelper.GetString(product.EstimatedPrice, string.Empty); ddlProductcategory.SelectedValue = product.CategoryID.ToString(); txtQty.Text = ValidationHelper.GetString(product.QtyPerPack, string.Empty); if (!string.IsNullOrEmpty(product.CustomItemSpecs)) { txtItemSpec.Text = ValidationHelper.GetString(product.CustomItemSpecs, string.Empty); ddlItemSpecs.SelectedValue = ValidationHelper.GetString(ResHelper.GetString("Kadena.CampaignProduct.ItemSpecsOtherText"), string.Empty); divItemSpecs.Visible = true; } else { ddlItemSpecs.SelectedValue = ValidationHelper.GetString(product.ItemSpecs, string.Empty); } ViewState["ProgramID"] = product.ProgramID; ViewState["ProductNodeID"] = product.NodeID; btnSave.Visible = false; btnUpdate.Visible = true; } } else { btnSave.Visible = true; btnUpdate.Visible = false; } string currentDate = DateTime.Today.ToShortDateString(); compareDate.ValueToCompare = currentDate; } } catch (Exception ex) { EventLogProvider.LogException("CMSWebParts_Kadena_Campaign_Web_Form_AddCampaignProducts", "SetupControl", ex, CurrentSite.SiteID, ex.Message); } } }
/// <summary> /// Creating products PDF from Html /// </summary> /// <returns></returns> public void CreateProductPDF(string selectedValues) { try { if (!string.IsNullOrEmpty(selectedValues)) { var programs = ProgramProvider.GetPrograms() .Columns("ProgramName,BrandID,DeliveryDateToDistributors") .WhereEquals("CampaignID", OpenCampaign?.CampaignID ?? default(int)) .ToList(); lblNoProducts.Visible = false; List <string> selectedProducts = selectedValues.Split(',').ToList(); var skuDetails = SKUInfoProvider.GetSKUs() .WhereIn("SKUID", selectedProducts) .ToList(); string htmlTextheader = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.ProductsPDFHeader"); string programFooterText = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.KDA_ProgramFooterText"); if (TypeOfProduct == (int)ProductsType.PreBuy && OpenCampaign != null) { htmlTextheader = htmlTextheader.Replace("CAMPAIGNNAME", OpenCampaign?.Name); htmlTextheader = htmlTextheader.Replace("OrderStartDate", OpenCampaign.StartDate == default(DateTime) ? string.Empty : OpenCampaign.StartDate.ToString("MMM dd, yyyy")); htmlTextheader = htmlTextheader.Replace("OrderEndDate", OpenCampaign.EndDate == default(DateTime) ? string.Empty : OpenCampaign.EndDate.ToString("MMM dd, yyyy")); } string generalInventory = string.Empty; if (TypeOfProduct == (int)ProductsType.GeneralInventory) { generalInventory = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.KDA_GeneralInventoryCover"); } List <int> brands = new List <int>(); string programsContent = string.Empty; if (TypeOfProduct == (int)ProductsType.PreBuy && OpenCampaign != null) { foreach (var program in programs) { string programContent = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.ProgramsContent"); brands.Add(program.BrandID); programContent = programContent.Replace("ProgramBrandName", program.ProgramName); programContent = programContent.Replace("ProgramDate", program.DeliveryDateToDistributors == default(DateTime) ? string.Empty : program.DeliveryDateToDistributors.ToString("MMM dd, yyyy")); programsContent += programContent; programContent = string.Empty; } programsContent += programFooterText.Replace("PROGRAMFOOTERTEXT", ResHelper.GetString("Kadena.Catalog.ProgramFooterText")); } else { var productItems = CampaignsProductProvider.GetCampaignsProducts() .WhereEquals("NodeSiteID", CurrentSite.SiteID) .Where(new WhereCondition().WhereEquals("ProgramID", null).Or().WhereEquals("ProgramID", 0)) .ToList(); var inventoryList = productItems .Join(skuDetails, x => x.NodeSKUID, y => y.SKUID, (x, y) => new { x.BrandID, y.SKUNumber, x.Product.SKUProductCustomerReferenceNumber }) .ToList(); foreach (var giProducts in inventoryList) { brands.Add(giProducts.BrandID); } } string pdfProductsContentWithBrands = string.Empty; string closingDiv = SettingsKeyInfoProvider.GetValue("ClosingDIV").ToString(); if (!DataHelper.DataSourceIsEmpty(selectedProducts)) { foreach (var brand in brands.Distinct()) { string productBrandHeader = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.PDFBrand"); if (TypeOfProduct == (int)ProductsType.PreBuy) { productBrandHeader = productBrandHeader.Replace("BrandName", programs.Where(x => x.BrandID == brand).Select(y => y.ProgramName).FirstOrDefault()); } else if (TypeOfProduct == (int)ProductsType.GeneralInventory) { productBrandHeader = productBrandHeader.Replace("BrandName", GetBrandName(brand)); } List <CampaignsProduct> productItems = new List <CampaignsProduct>(); if (TypeOfProduct == (int)ProductsType.PreBuy) { productItems = CampaignsProductProvider.GetCampaignsProducts().WhereNotEquals("ProgramID", null).WhereEquals("NodeSiteID", CurrentSite.SiteID).WhereIn("ProgramID", GetProgramIDs(OpenCampaign.CampaignID)).ToList(); } else if (TypeOfProduct == (int)ProductsType.GeneralInventory) { productItems = CampaignsProductProvider.GetCampaignsProducts().Where(new WhereCondition().WhereEquals("ProgramID", null).Or().WhereEquals("ProgramID", 0)).WhereEquals("NodeSiteID", CurrentSite.SiteID).ToList(); } var catalogList = productItems .Join(skuDetails, x => x.NodeSKUID, y => y.SKUID, (x, y) => new { x.ProductName, x.EstimatedPrice, x.BrandID, x.ProgramID, x.QtyPerPack, x.State, y.SKUPrice, y.SKUNumber, x.Product.SKUProductCustomerReferenceNumber, y.SKUDescription, y.SKUShortDescription, y.SKUImagePath, y.SKUValidUntil }) .Where(x => x.BrandID == brand) .ToList(); string pdfProductsContent = string.Empty; if (!DataHelper.DataSourceIsEmpty(catalogList)) { foreach (var product in catalogList) { var stateInfo = CustomTableItemProvider.GetItems <StatesGroupItem>().WhereEquals("ItemID", product.State).FirstOrDefault(); string pdfProductContent = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.PDFInnerHTML"); pdfProductContent = pdfProductContent.Replace("IMAGEGUID", GetProductImage(product.SKUImagePath)); pdfProductContent = pdfProductContent.Replace("PRODUCTPARTNUMBER", product?.SKUProductCustomerReferenceNumber ?? string.Empty); pdfProductContent = pdfProductContent.Replace("PRODUCTBRANDNAME", GetBrandName(product.BrandID)); pdfProductContent = pdfProductContent.Replace("PRODUCTSHORTDESCRIPTION", product?.ProductName ?? string.Empty); pdfProductContent = pdfProductContent.Replace("PRODUCTDESCRIPTION", product?.SKUDescription ?? string.Empty); pdfProductContent = pdfProductContent.Replace("PRODUCTVALIDSTATES", stateInfo?.States.Replace(",", ", ") ?? string.Empty); pdfProductContent = pdfProductContent.Replace("PRODUCTCOSTBUNDLE", TypeOfProduct == (int)ProductsType.PreBuy ? ($"{CurrencyInfoProvider.GetFormattedPrice(ValidationHelper.GetDouble(product.EstimatedPrice, default(double)), CurrentSite.SiteID, true)}") : ($"{CurrencyInfoProvider.GetFormattedPrice(ValidationHelper.GetDouble(product.SKUPrice, default(double)), CurrentSite.SiteID, true)}")); pdfProductContent = pdfProductContent.Replace("PRODUCTBUNDLEQUANTITY", product?.QtyPerPack.ToString() ?? string.Empty); pdfProductContent = pdfProductContent.Replace("PRODUCTEXPIRYDATE", product?.SKUValidUntil != default(DateTime) ? product?.SKUValidUntil.ToString("MMM dd, yyyy") : string.Empty ?? string.Empty); pdfProductsContent += pdfProductContent; pdfProductContent = string.Empty; selectedProducts.Remove(product.SKUNumber); } pdfProductsContentWithBrands += productBrandHeader + pdfProductsContent + closingDiv; productBrandHeader = string.Empty; } } } string pdfClosingDivs = SettingsKeyInfoProvider.GetValue($@"{CurrentSiteName}.PdfEndingTags"); string html = pdfProductsContentWithBrands + pdfClosingDivs; byte[] pdfByte = default(byte[]); NReco.PdfGenerator.HtmlToPdfConverter PDFConverter = new NReco.PdfGenerator.HtmlToPdfConverter(); PDFConverter.License.SetLicenseKey(SettingsKeyInfoProvider.GetValue("KDA_NRecoOwner", CurrentSite.SiteID), SettingsKeyInfoProvider.GetValue("KDA_NRecoKey", CurrentSite.SiteID)); PDFConverter.LowQuality = SettingsKeyInfoProvider.GetBoolValue("KDA_NRecoLowQuality", CurrentSite.SiteID); if (TypeOfProduct == (int)ProductsType.PreBuy) { pdfByte = PDFConverter.GeneratePdf(html, htmlTextheader + programsContent + closingDiv); } else { pdfByte = PDFConverter.GeneratePdf(html, generalInventory + closingDiv); } string fileName = string.Empty; if (TypeOfProduct == (int)ProductsType.PreBuy) { fileName = ValidationHelper.GetString(ResHelper.GetString("KDA.CatalogGI.PrebuyFileName"), string.Empty) + ".pdf"; } else { fileName = ValidationHelper.GetString(ResHelper.GetString("KDA.CatalogGI.GeneralInventory"), string.Empty) + ".pdf"; } Response.Clear(); MemoryStream ms = new MemoryStream(pdfByte); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=" + fileName); Response.Buffer = true; ms.WriteTo(Response.OutputStream); Response.End(); } else { Bindproducts(); noProductSelected.Visible = true; } } catch (Exception ex) { EventLogProvider.LogException("creating html", ex.Message, ex); } }