protected string GetPrice(string giftregistryItemID) { GiftRegistryItem giftRegistryItem = DataAccessContextDeluxe.GiftRegistryItemRepository.GetOne(giftregistryItemID); return(StoreContext.Currency.FormatPrice( giftRegistryItem.GetUnitPrice(StoreContext.WholesaleStatus))); }
private string CheckErrorItem() { int rowIndex; string errormsg = string.Empty; for (rowIndex = 0; rowIndex < uxGrid.Rows.Count; rowIndex++) { GridViewRow row = uxGrid.Rows[rowIndex]; if (row.RowType == DataControlRowType.DataRow) { string giftRegistryItemID = uxGrid.DataKeys[rowIndex].Value.ToString(); int wantQuantity = ConvertUtilities.ToInt32(((Label)row.FindControl("uxWantQuantityLabel")).Text.Trim()); int hasQuantity = ConvertUtilities.ToInt32(((Label)row.FindControl("uxHasQuantityLabel")).Text.Trim()); string productName = ((HyperLink)row.FindControl("uxNameLink")).Text.Trim(); string quantityText = ((TextBox)row.FindControl("uxQuantityText")).Text.Trim(); int quantityInCart = GiftRegistryItem.GetGiftRegistryItemQuantity(StoreContext.ShoppingCart, StoreContext.Culture, StoreContext.WholesaleStatus, giftRegistryItemID); int totalItem = wantQuantity - hasQuantity - quantityInCart; int quantity; if (int.TryParse(quantityText, out quantity)) { if (quantity > totalItem && quantity > 0) { errormsg += "<li>" + productName + "</li>"; } } } } return(errormsg); }
private void UpdateQuantity() { ArrayList productNameList = new ArrayList(); int rowIndex; for (rowIndex = 0; rowIndex < uxGrid.Rows.Count; rowIndex++) { GridViewRow row = uxGrid.Rows[rowIndex]; if (row.RowType == DataControlRowType.DataRow) { string wantQuantityText = ((TextBox)row.FindControl("uxWantQuantityText")).Text; string hasQuantityText = ((Label)row.FindControl("uxHasQuantityLabel")).Text.Trim(); int wantQuantity, hasQuantity; if (int.TryParse(wantQuantityText, out wantQuantity) && int.TryParse(hasQuantityText, out hasQuantity)) { GiftRegistryItem item = DataAccessContextDeluxe.GiftRegistryItemRepository.GetOne(uxGrid.DataKeys[rowIndex].Value.ToString()); if (wantQuantity >= hasQuantity) { item.WantQuantity = wantQuantity; DataAccessContextDeluxe.GiftRegistryItemRepository.Save(item); } else { productNameList.Add(item.ProductName); } } else { uxMessage.DisplayError("Quantity is invalid."); return; } } } if (productNameList.Count > 0) { System.Text.StringBuilder errorMessage = new System.Text.StringBuilder(); errorMessage.Append("Cannot update quantity. Want Quantity cannot be less than Has Quantity.<br/>"); errorMessage.Append("Please correct the following product quantity:"); errorMessage.Append("<ul>"); for (int i = 0; i < productNameList.Count; i++) { errorMessage.Append("<li>"); errorMessage.Append(productNameList[i].ToString()); errorMessage.Append("</li>"); } errorMessage.Append("</ul>"); uxMessage.DisplayError(errorMessage.ToString()); } else { uxMessage.DisplayMessage("Update quantity successfully."); } }
private void AddGiftRegistryItemToCart(string giftRegistryItemID, int quantity) { ICartItem cartItem = GiftRegistryItem.AddGiftRegistryItem(StoreContext.ShoppingCart, StoreContext.Culture, giftRegistryItemID, quantity); StoreContext.CheckoutDetails.CartItemIDToGiftRegistryIDMap[cartItem.CartItemID] = giftRegistryItemID; }
private void AddItemToGiftRegistryAndRedirect(string giftRegistryID) { GiftRegistryItem.ConvertToGiftRegistryItem(StoreContext.ShoppingCart, StoreContext.Culture, StoreContext.Currency, giftRegistryID); StoreContext.ClearCheckoutSession(); Session["GiftRegistryID"] = null; Response.Redirect("GiftRegistryItemList.aspx?GiftRegistryID=" + giftRegistryID); }
private bool IsEnoughGiftRegistyWantQuantity(out string message) { CheckoutDetails checkout = StoreContext.CheckoutDetails; message = String.Empty; if (!String.IsNullOrEmpty(checkout.GiftRegistryID) && checkout.GiftRegistryID != "0") { int rowIndex; for (rowIndex = 0; rowIndex < uxGrid.Rows.Count; rowIndex++) { GridViewRow row = uxGrid.Rows[rowIndex]; if (row.RowType == DataControlRowType.DataRow) { string cartItemID = uxGrid.DataKeys[rowIndex]["CartItemID"].ToString(); string giftRegistryItemID = StoreContext.CheckoutDetails.CartItemIDToGiftRegistryIDMap[cartItemID]; GiftRegistryItem giftRegistryItem = DataAccessContextDeluxe.GiftRegistryItemRepository.GetOne( giftRegistryItemID); int wantQuantity = (int)(giftRegistryItem.WantQuantity - giftRegistryItem.HasQuantity); string productName = ((Label)row.FindControl("uxNameLabel")).Text; int quantity = ConvertUtilities.ToInt32(((TextBox)row.FindControl("uxQuantityText")).Text); if (quantity > wantQuantity) { message += "<li>" + productName + "</li>"; } } } if (!String.IsNullOrEmpty(message)) { message = "<p class=\"ErrorHeader\">[$GiftRegistryError]</p>" + "<ul class=\"ErrorBody\">" + message + "</ul>"; return(false); } else { return(true); } } else { return(true); } }
private bool IsEnoughGiftRegistyWantQuantity(out string message) { CheckoutDetails checkout = StoreContext.CheckoutDetails; message = String.Empty; if (!String.IsNullOrEmpty(checkout.GiftRegistryID) && checkout.GiftRegistryID != "0") { foreach (ICartItem item in StoreContext.ShoppingCart.GetCartItems()) { string giftRegistryItemID = checkout.CartItemIDToGiftRegistryIDMap[item.CartItemID]; GiftRegistryItem giftRegistryItem = DataAccessContextDeluxe.GiftRegistryItemRepository.GetOne( giftRegistryItemID); int wantQuantity = (int)(giftRegistryItem.WantQuantity - giftRegistryItem.HasQuantity); if (item.Quantity > wantQuantity) { message += "<li>" + item.GetName(StoreContext.Culture, StoreContext.Currency) + "</li>"; } } if (!String.IsNullOrEmpty(message)) { message = "<p class=\"ErrorHeader\">[$GiftRegistryError]</p>" + "<ul class=\"ErrorBody\">" + message + "</ul>"; return(false); } else { return(true); } } else { return(true); } }
public void ProcessRequest(HttpContext context) { context.Response.CacheControl = "private"; context.Response.Expires = 0; context.Response.AddHeader("pragma", "no-cache"); var ThisCustomer = ((InterpriseSuiteEcommercePrincipal)context.User).ThisCustomer; ThisCustomer.RequireCustomerRecord(); string ReturnURL = CommonLogic.QueryStringCanBeDangerousContent("ReturnURL"); if (ReturnURL.IndexOf("<script>", StringComparison.InvariantCultureIgnoreCase) != -1) { throw new ArgumentException("SECURITY EXCEPTION"); } //Anonymous users should not be allowed to used WishList, they must register first. if (ThisCustomer.IsNotRegistered) { string ErrMsg = string.Empty; if (CommonLogic.FormNativeInt("IsWishList") == 1 || CommonLogic.QueryStringUSInt("IsWishList") == 1) { ErrMsg = AppLogic.GetString("signin.aspx.19", ThisCustomer.SkinID, ThisCustomer.LocaleSetting); context.Response.Redirect("signin.aspx?ErrorMsg=" + ErrMsg + "&ReturnUrl=" + Security.UrlEncode(ReturnURL)); } } string ShippingAddressID = CommonLogic.QueryStringCanBeDangerousContent("ShippingAddressID"); // only used for multi-ship if (ShippingAddressID.IsNullOrEmptyTrimmed()) { ShippingAddressID = CommonLogic.FormCanBeDangerousContent("ShippingAddressID"); } if (ShippingAddressID.IsNullOrEmptyTrimmed() && !ThisCustomer.PrimaryShippingAddressID.IsNullOrEmptyTrimmed()) { ShippingAddressID = ThisCustomer.PrimaryShippingAddressID; } string ProductID = CommonLogic.QueryStringCanBeDangerousContent("ProductID"); if (ProductID.IsNullOrEmptyTrimmed()) { ProductID = CommonLogic.FormCanBeDangerousContent("ProductID"); } string itemCode = CommonLogic.QueryStringCanBeDangerousContent("ItemCode"); // check if the item being added is matrix group // look for the matrix item and use it as itemcode instead if (!string.IsNullOrEmpty(CommonLogic.FormCanBeDangerousContent("MatrixItem"))) { itemCode = CommonLogic.FormCanBeDangerousContent("MatrixItem"); } bool itemExisting = false; string defaultUnitMeasure = string.Empty; if (itemCode.IsNullOrEmptyTrimmed()) { int itemCounter = 0; if (!ProductID.IsNullOrEmptyTrimmed() && int.TryParse(ProductID, out itemCounter) && itemCounter > 0) { using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT i.ItemCode, ium.UnitMeasureCode FROM InventoryItem i with (NOLOCK) INNER JOIN InventoryUnitMeasure ium with (NOLOCK) ON i.ItemCode = ium.ItemCode AND IsBase = 1 WHERE i.Counter = {0}", itemCounter)) { itemExisting = reader.Read(); if (itemExisting) { itemCode = DB.RSField(reader, "ItemCode"); defaultUnitMeasure = DB.RSField(reader, "UnitMeasureCode"); } } } } } else { // verify we have a valid item code using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT i.ItemCode FROM InventoryItem i with (NOLOCK) WHERE i.ItemCode = {0}", DB.SQuote(itemCode))) { itemExisting = reader.Read(); if (itemExisting) { itemCode = DB.RSField(reader, "ItemCode"); } } } } if (!itemExisting) { GoNextPage(context); } // get the unit measure code string unitMeasureCode = CommonLogic.QueryStringCanBeDangerousContent("UnitMeasureCode"); if (unitMeasureCode.IsNullOrEmptyTrimmed()) { unitMeasureCode = CommonLogic.FormCanBeDangerousContent("UnitMeasureCode"); } if (unitMeasureCode.IsNullOrEmptyTrimmed()) { unitMeasureCode = defaultUnitMeasure; } // check if the unit measure is default so that we won't have to check // if the unit measure specified is valid... if (false.Equals(unitMeasureCode.Equals(defaultUnitMeasure, StringComparison.InvariantCultureIgnoreCase))) { bool isValidUnitMeasureForThisItem = false; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT UnitMeasureCode FROM InventoryUnitMeasure with (NOLOCK) WHERE ItemCode= {0} AND UnitMeasureCode = {1}", DB.SQuote(itemCode), DB.SQuote(unitMeasureCode))) { isValidUnitMeasureForThisItem = reader.Read(); if (isValidUnitMeasureForThisItem) { // maybe mixed case specified, just set.. unitMeasureCode = DB.RSField(reader, "UnitMeasureCode"); } } } if (!isValidUnitMeasureForThisItem) { GoNextPage(context); } } decimal Quantity = CommonLogic.FormLocaleDecimal("Quantity", ThisCustomer.LocaleSetting);//CommonLogic.QueryStringUSDecimal("Quantity"); if (Quantity == 0) { Quantity = CommonLogic.FormNativeDecimal("Quantity"); } if (Quantity == 0) { Quantity = 1; } Quantity = CommonLogic.RoundQuantity(Quantity); // Now let's check the shipping address if valid if specified if (ShippingAddressID != ThisCustomer.PrimaryShippingAddressID) { if (ThisCustomer.IsRegistered) { bool shippingAddressIsValidForThisCustomer = false; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT ShipToCode FROM CustomerShipTo with (NOLOCK) WHERE CustomerCode = {0} AND IsActive = 1 AND ShipToCode = {1}", DB.SQuote(ThisCustomer.CustomerCode), DB.SQuote(ShippingAddressID))) { shippingAddressIsValidForThisCustomer = reader.Read(); if (shippingAddressIsValidForThisCustomer) { // maybe mixed case, just set... ShippingAddressID = DB.RSField(reader, "ShipToCode"); } } } if (!shippingAddressIsValidForThisCustomer) { GoNextPage(context); } } else { ShippingAddressID = ThisCustomer.PrimaryShippingAddressID; } } var CartType = CartTypeEnum.ShoppingCart; if (CommonLogic.FormNativeInt("IsWishList") == 1 || CommonLogic.QueryStringUSInt("IsWishList") == 1) { CartType = CartTypeEnum.WishCart; } var giftRegistryItemType = GiftRegistryItemType.vItem; if (CommonLogic.FormNativeInt("IsAddToGiftRegistry") == 1 || CommonLogic.QueryStringUSInt("IsAddToGiftRegistry") == 1) { CartType = CartTypeEnum.GiftRegistryCart; } if (CommonLogic.FormNativeInt("IsAddToGiftRegistryOption") == 1 || CommonLogic.QueryStringUSInt("IsAddToGiftRegistryOption") == 1) { CartType = CartTypeEnum.GiftRegistryCart; giftRegistryItemType = GiftRegistryItemType.vOption; } ShoppingCart cart = null; bool itemIsARegistryItem = false; if (!itemCode.IsNullOrEmptyTrimmed()) { #region " --GIFTREGISTRY-- " if (CartType == CartTypeEnum.GiftRegistryCart) { Guid?registryID = CommonLogic.FormCanBeDangerousContent("giftregistryOptions").TryParseGuid(); if (registryID.HasValue) { var selectedGiftRegistry = ThisCustomer.GiftRegistries.FindFromDb(registryID.Value); if (selectedGiftRegistry != null) { bool isKit = AppLogic.IsAKit(itemCode); KitComposition preferredComposition = null; GiftRegistryItem registryItem = null; if (isKit) { preferredComposition = KitComposition.FromForm(ThisCustomer, itemCode); var registrytems = selectedGiftRegistry.GiftRegistryItems.Where(giftItem => giftItem.ItemCode == itemCode && giftItem.GiftRegistryItemType == giftRegistryItemType); Guid?matchedRegitryItemCode = null; //Do this routine to check if there are kit items //matched the selected kit items from the cart in the registry items foreach (var regitm in registrytems) { regitm.IsKit = true; var compositionItems = regitm.GetKitItemsFromComposition(); if (compositionItems.Count() == 0) { continue; } var arrItemCodes = compositionItems.Select(item => item.ItemCode) .ToArray(); var preferredItemCodes = preferredComposition.Compositions.Select(kititem => kititem.ItemCode); var lst = arrItemCodes.Except(preferredItemCodes); //has match if (lst.Count() == 0) { matchedRegitryItemCode = regitm.RegistryItemCode; break; } } if (matchedRegitryItemCode.HasValue) { registryItem = selectedGiftRegistry.GiftRegistryItems.FirstOrDefault(giftItem => giftItem.RegistryItemCode == matchedRegitryItemCode); } } //if not kit item get the item as is if (registryItem == null && !isKit) { registryItem = selectedGiftRegistry.GiftRegistryItems.FirstOrDefault(giftItem => giftItem.ItemCode == itemCode && giftItem.GiftRegistryItemType == giftRegistryItemType); } if (registryItem != null) { registryItem.Quantity += Quantity; registryItem.UnitMeasureCode = unitMeasureCode; selectedGiftRegistry.GiftRegistryItems.UpdateToDb(registryItem); } else { registryItem = new GiftRegistryItem() { GiftRegistryItemType = giftRegistryItemType, RegistryItemCode = Guid.NewGuid(), ItemCode = itemCode, Quantity = Quantity, RegistryID = registryID.Value, UnitMeasureCode = unitMeasureCode }; selectedGiftRegistry.GiftRegistryItems.AddToDb(registryItem); } if (isKit && preferredComposition != null) { registryItem.ClearKitItemsFromComposition(); preferredComposition.AddToGiftRegistry(registryID.Value, registryItem.RegistryItemCode); } HttpContext.Current.Response.Redirect(string.Format("~/editgiftregistry.aspx?{0}={1}", DomainConstants.GIFTREGISTRYPARAMCHAR, registryID.Value)); } } GoNextPage(context); } #endregion CartRegistryParam registryCartParam = null; if (AppLogic.AppConfigBool("GiftRegistry.Enabled")) { registryCartParam = new CartRegistryParam() { RegistryID = CommonLogic.FormGuid("RegistryID"), RegistryItemCode = CommonLogic.FormGuid("RegistryItemCode") }; } if (registryCartParam != null && registryCartParam.RegistryID.HasValue && registryCartParam.RegistryItemCode.HasValue) { ShippingAddressID = GiftRegistryDA.GetPrimaryShippingAddressCodeOfOwnerByRegistryID(registryCartParam.RegistryID.Value); itemIsARegistryItem = true; } cart = new ShoppingCart(null, 1, ThisCustomer, CartType, string.Empty, false, true, string.Empty); if (Quantity > 0) { if (AppLogic.IsAKit(itemCode)) { var preferredComposition = KitComposition.FromForm(ThisCustomer, CartType, itemCode); if (preferredComposition == null) { int itemCounter = 0; int.TryParse(ProductID, out itemCounter); var kitData = KitItemData.GetKitComposition(ThisCustomer, itemCounter, itemCode); var kitContents = new StringBuilder(); foreach (var kitGroup in kitData.Groups) { if (kitContents.Length > 0) { kitContents.Append(","); } var selectedItems = new StringBuilder(); int kitGroupCounter = kitGroup.Id; var selectedKitItems = kitGroup.Items.Where(i => i.IsSelected == true); foreach (var item in selectedKitItems) { if (selectedItems.Length > 0) { selectedItems.Append(","); } //note: since we are adding the kit counter and kit item counter in KitItemData.GetKitComposition (stored proc. EcommerceGetKitItems) //as "kit item counter", we'll reverse the process in order to get the "real kit item counter" int kitItemCounter = item.Id - itemCounter; selectedItems.Append(kitGroupCounter.ToString() + DomainConstants.KITCOMPOSITION_DELIMITER + kitItemCounter.ToString()); } kitContents.Append(selectedItems.ToString()); } preferredComposition = KitComposition.FromComposition(kitContents.ToString(), ThisCustomer, CartType, itemCode); } preferredComposition.PricingType = CommonLogic.FormCanBeDangerousContent("KitPricingType"); if (CommonLogic.FormBool("IsEditKit") && !CommonLogic.IsStringNullOrEmpty(CommonLogic.FormCanBeDangerousContent("KitCartID")) && InterpriseHelper.IsValidGuid(CommonLogic.FormCanBeDangerousContent("KitCartID"))) { Guid cartID = new Guid(CommonLogic.FormCanBeDangerousContent("KitCartID")); preferredComposition.CartID = cartID; } cart.AddItem(ThisCustomer, ShippingAddressID, itemCode, int.Parse(ProductID), Quantity, unitMeasureCode, CartType, preferredComposition, registryCartParam); } else { cart.AddItem(ThisCustomer, ShippingAddressID, itemCode, int.Parse(ProductID), Quantity, unitMeasureCode, CartType, null, registryCartParam); } } string RelatedProducts = CommonLogic.QueryStringCanBeDangerousContent("relatedproducts").Trim(); string UpsellProducts = CommonLogic.FormCanBeDangerousContent("UpsellProducts").Trim(); string combined = string.Concat(RelatedProducts, UpsellProducts); if (combined.Length != 0 && CartType == CartTypeEnum.ShoppingCart) { string[] arrUpsell = combined.Split(','); foreach (string s in arrUpsell) { string PID = s.Trim(); if (PID.Length == 0) { continue; } int UpsellProductID; try { UpsellProductID = Localization.ParseUSInt(PID); if (UpsellProductID != 0) { string ItemCode = InterpriseHelper.GetInventoryItemCode(UpsellProductID); string itemUnitMeasure = string.Empty; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT ium.UnitMeasureCode FROM InventoryItem i with (NOLOCK) INNER JOIN InventoryUnitMeasure ium with (NOLOCK) ON i.ItemCode = ium.ItemCode AND IsBase = 1 WHERE i.ItemCode = {0}", DB.SQuote(ItemCode))) { if (reader.Read()) { itemUnitMeasure = DB.RSField(reader, "UnitMeasureCode"); } } } cart.AddItem(ThisCustomer, ShippingAddressID, ItemCode, UpsellProductID, 1, itemUnitMeasure, CartType); } } catch { } } } } GoNextPage(context, itemIsARegistryItem, CartType, ThisCustomer); }