public void DisplayUpsellProducts(ShoppingCart cart) { // ---------------------------------------------------------------------------------------- // WRITE OUT UPSELL PRODUCTS: // ---------------------------------------------------------------------------------------- if (!AppLogic.AppConfigBool("ShowAccessoryProductsOnCartPage")) { return; } string accessoriesOptionText = string.Empty; try { int upsellProductLimit = AppLogic.AppConfigUSInt("AccessoryProductsLimitNumberOnCart"); if (upsellProductLimit == 0) { upsellProductLimit = 10; } string shoppingCartAccessoryHelperTemplate = "helper.product.xml.config"; accessoriesOptionText = InterpriseHelper.ShowInventoryAccessoryOptions(string.Empty, true, upsellProductLimit, string.Empty, ThisCustomer, false, false, InterpriseHelper.ViewingPage.ShoppingCart, shoppingCartAccessoryHelperTemplate); } catch { } if (accessoriesOptionText.Length != 0) { accessoriesOptions.Text = accessoriesOptionText; pnlUpsellProducts.Visible = true; } else { pnlUpsellProducts.Visible = false; } }
override protected void OnPreInit(EventArgs e) { if (AppLogic.AppConfigBool("TemplateSwitching.Enabled")) { string currentEntityTemplateName = String.Empty; if (CommonLogic.QueryStringCanBeDangerousContent("CategoryID").Length != 0) { currentEntityTemplateName = AppLogic.GetCurrentEntityTemplateName( EntityDefinitions.readonly_CategoryEntitySpecs.m_EntityName); } else if (CommonLogic.QueryStringCanBeDangerousContent("DepartmentID").Length != 0) { currentEntityTemplateName = AppLogic.GetCurrentEntityTemplateName(EntityDefinitions.readonly_SectionEntitySpecs.m_EntityName); } else if (CommonLogic.QueryStringCanBeDangerousContent("ManufacturerID").Length != 0) { currentEntityTemplateName = AppLogic.GetCurrentEntityTemplateName( EntityDefinitions.readonly_ManufacturerEntitySpecs.m_EntityName); } else { string itemCode = InterpriseHelper.GetInventoryItemCode(CommonLogic.QueryStringUSInt("ProductID")); string categoryId = EntityHelper.GetProductsFirstEntity(itemCode, "Category").ToString(); currentEntityTemplateName = AppLogic.GetCurrentEntityTemplateName( EntityDefinitions.readonly_CategoryEntitySpecs.m_EntityName, categoryId); } SetTemplate(currentEntityTemplateName); } base.OnPreInit(e); }
protected override void RenderContents(System.Web.UI.HtmlTextWriter writer) { String salesOrderCode = CommonLogic.QueryStringCanBeDangerousContent("so"); if (!ThisCustomer.OwnsThisOrder(salesOrderCode)) { Response.Redirect(SE.MakeDriverLink("ordernotfound")); } if (salesOrderCode == String.Empty) { writer.Write("<p>" + String.Format(AppLogic.GetString("reorder.aspx.2", SkinID, ThisCustomer.LocaleSetting), "account.aspx") + "</p>"); } String StatusMsg = String.Empty; if (InterpriseHelper.ReOrderToCart(salesOrderCode, ThisCustomer, base.EntityHelpers, ref StatusMsg)) { Response.Redirect(String.Format("shoppingcart.aspx{0}", StatusMsg)); } else { Response.Write("<p>There were some errors in trying to create the order.</p>"); Response.Write("<p>Error: " + StatusMsg + "</p>"); Response.Write("<p>" + String.Format(AppLogic.GetString("reorder.aspx.2", SkinID, ThisCustomer.LocaleSetting), "shoppingcart.aspx", AppLogic.GetString("AppConfig.CartPrompt", SkinID, ThisCustomer.LocaleSetting)) + "</p>"); } }
private void SendNow() { bool isSendCopy = ctrlGiftRegistryShareForm.IsSendMeCopy; var emails = ctrlGiftRegistryShareForm.GetEmailAddresses(); string subject = ctrlGiftRegistryShareForm.Subject; if (emails.Count() == 0) { DisplayError(new List <string>() { AppLogic.GetString("editgiftregistry.error.20", ThisCustomer.SkinID, ThisCustomer.LocaleSetting) }); return; } //decode since we will not going to save it to the database. string htmlMessage = ctrlGiftRegistryShareForm.HtmlMessage.ToHtmlDecode(); var param = new XElement(DomainConstants.XML_ROOT_NAME); param.Add(new XElement("MAIL_SUBJECT", subject)); param.Add(new XElement("MAIL_BODY", htmlMessage)); //param.Add(new XElement("REGISTRY_LINK", )); var package = new XmlPackage2("notification.emailgiftregistry.xml.config", param); string html = package.TransformString(); string[] emailacctinfo = InterpriseHelper.GetStoreEmailAccountInfo(); try { foreach (var email in emails) { AppLogic.SendMailRequest(subject, htmlMessage, true, emailacctinfo[0], emailacctinfo[1], email, email, string.Empty); } //MailSerder.SendMail(subject, "*****@*****.**", html, SkinID); if (isSendCopy) { AppLogic.SendMailRequest(subject, htmlMessage, true, emailacctinfo[0], emailacctinfo[1], ThisCustomer.EMail, ThisCustomer.FullName, string.Empty); //MailSerder.SendMail(subject, ThisCustomer.EMail, html, SkinID); } ctrlGiftRegistryShareForm.ClearTextBox(); DisplayError(new List <string>() { AppLogic.GetString("editgiftregistry.aspx.45", ThisCustomer.SkinID, ThisCustomer.LocaleSetting) }); } catch (Exception) { DisplayError(new List <string>() { AppLogic.GetString("editgiftregistry.error.19", ThisCustomer.SkinID, ThisCustomer.LocaleSetting) }); } }
private void InitializePageContent() { bool exists = false; string ImgFilename = string.Empty; bool existing = false; AppLogic.LogEvent(ThisCustomer.CustomerCode, 10, ItemCode); pnlRequireReg.Visible = (RequiresReg && ThisCustomer.IsNotRegistered); this.pnlEmailToFriend.Visible = !(RequiresReg && ThisCustomer.IsNotRegistered); emailproduct_aspx_1.Text = "<br><br><br><br><b>" + AppLogic.GetString("emailproduct.aspx.1", SkinID, ThisCustomer.LocaleSetting) + "</b><br><br><br><a href=\"signin.aspx?returnurl=showproduct.aspx?" + Server.HtmlEncode(Server.UrlEncode(CommonLogic.ServerVariables("QUERY_STRING"))) + "\">" + AppLogic.GetString("emailproduct.aspx.2", SkinID, ThisCustomer.LocaleSetting) + "</a> " + AppLogic.GetString("emailproduct.aspx.3", SkinID, ThisCustomer.LocaleSetting); string ProdPic = string.Empty; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT Filename FROM InventoryOverrideImage with (NOLOCK) WHERE ItemCode = {0} AND WebSiteCode = {1} AND IsDefaultIcon = 1", DB.SQuote(InterpriseHelper.GetInventoryItemCode(productID)), DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode))) { existing = reader.Read(); if (existing) { ImgFilename = (DB.RSField(reader, "Filename")); } } } ProdPic = AppLogic.LocateImageFilenameUrl("Product", InterpriseHelper.GetInventoryItemCode(productID), "medium", ImgFilename, AppLogic.AppConfigBool("Watermark.Enabled"), out exists); imgProduct.ImageUrl = ProdPic; string imgAltText = ""; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "exec EcommerceDefaultMediumImage @ItemCode={0}, @WebSiteCode={1}, @LanguageCode={2} ", DB.SQuote(InterpriseHelper.GetInventoryItemCode(productID)), DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode), DB.SQuote(Customer.Current.LanguageCode))) { existing = reader.Read(); if (existing) { imgAltText = (DB.RSField(reader, "SEAltTextMedium")); } } } imgProduct.AlternateText = imgAltText; ProductNavLink.NavigateUrl = InterpriseHelper.MakeItemLink(ItemCode); ProductNavLink.Text = AppLogic.GetString("emailproduct.aspx.23", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_4.Text = AppLogic.GetString("emailproduct.aspx.4", SkinID, ThisCustomer.LocaleSetting) + " " + Security.HtmlEncode(ProductName) + CommonLogic.IIF(VariantName.Length > 0, " - " + Security.HtmlEncode(VariantName), ""); emailproduct_aspx_11.Text = AppLogic.GetString("emailproduct.aspx.11", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_12.Text = AppLogic.GetString("emailproduct.aspx.12", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_22.Text = AppLogic.GetString("emailproduct.aspx.21", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_15.Text = AppLogic.GetString("emailproduct.aspx.15", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_18.Text = AppLogic.GetString("emailproduct.aspx.18", SkinID, ThisCustomer.LocaleSetting); emailproduct_aspx_19.Text = AppLogic.GetString("emailproduct.aspx.19", SkinID, ThisCustomer.LocaleSetting); txtMessage.Text = AppLogic.GetString("emailproduct.aspx.22", SkinID, ThisCustomer.LocaleSetting); btnSubmit.Text = AppLogic.GetString("emailproduct.aspx.20", SkinID, ThisCustomer.LocaleSetting); }
protected void Page_Load(object sender, System.EventArgs e) { string vesrsiontxt = String.Empty; string productname = String.Empty; string assemblyfilePath = HttpContext.Current.Request.PhysicalApplicationPath + "App_Code\\GlobalAssemblyInfo.cs"; if (File.Exists(assemblyfilePath)) { string[] attrlines = File.ReadAllLines(assemblyfilePath); //[assembly: AssemblyFileVersionAttribute("6.0.7.26")] if (attrlines != null) { foreach (string line in attrlines) { if (line.Contains("[assembly: AssemblyFileVersionAttribute(")) { vesrsiontxt = line.Replace("[assembly: AssemblyFileVersionAttribute(", String.Empty); vesrsiontxt = vesrsiontxt.Replace(")]", String.Empty); vesrsiontxt = vesrsiontxt.Replace("\"", String.Empty); if (vesrsiontxt.Length == 0) { vesrsiontxt = CommonLogic.GetVersion(); } break; } //[assembly: AssemblyProduct("Interprise Suite")] else if (line.Contains("[assembly: AssemblyProduct(")) { productname = line.Replace("[assembly: AssemblyProduct(", String.Empty); productname = productname.Replace(")]", String.Empty); productname = productname.Replace("\"", String.Empty); } } if (productname.Length > 0 && vesrsiontxt.Length > 0) { vesrsiontxt = String.Concat(" ", productname, " ", vesrsiontxt); } } } else { vesrsiontxt = CommonLogic.GetVersion(); } lblVersion.Text = vesrsiontxt; lblDB.Text = "DB Version: "; //Trap error so other data are still readable. try { lblDB.Text += InterpriseHelper.GetISdbVersion(); lblStoreCode.Text = "Web Store Code: " + InterpriseHelper.ConfigInstance.WebSiteCode; } catch (Exception ex) { lblDB.Text += ex.Message; } }
/// <summary> /// Loads the data from the database and stores it in session. /// </summary> private void LoadData() { //Load the data from the database. ApplicationConfigurationDatasetGateway appConfigGateway = InterpriseHelper.SelectAllStoreAppConfigs(); //Sort the data. SortWebStoreAppConfig(appConfigGateway, this.SortExpressionViewState, this.SortDirectionViewState); //Cache the data in session. SessionStateSink.AdminAppConfigGateway = appConfigGateway; }
protected void Page_Load(object sender, EventArgs e) { string salesOrderCode = Request.QueryString["order"]; if (!string.IsNullOrEmpty(salesOrderCode)) { this.Title = "Order - " + salesOrderCode; this.rptVyuOrder.Report = InterpriseHelper.CreateReport(salesOrderCode); } }
public void btnNewAddress_Click(object sender, EventArgs e) { if (this.IsValid) { var AddressType = AddressTypeString.TryParseEnum <AddressTypes>(); int OriginalRecurringOrderNumber = CommonLogic.QueryStringUSInt("OriginalRecurringOrderNumber"); bool AllowShipToDifferentThanBillTo = AppLogic.AppConfigBool("AllowShipToDifferentThanBillTo"); if (!AllowShipToDifferentThanBillTo) { //Shipping and Billing address must be the same so save both AddressType = AddressTypes.Shared; } Address thisAddress = new Address(); thisAddress.ThisCustomer = ThisCustomer; thisAddress.CustomerCode = ThisCustomer.CustomerCode; thisAddress.Name = ctrlAddress.AccountName; thisAddress.Address1 = ctrlAddress.Address; thisAddress.City = ctrlAddress.City; thisAddress.State = ctrlAddress.State; thisAddress.PostalCode = ctrlAddress.PostalCode; thisAddress.Country = ctrlAddress.CountryCode; thisAddress.Phone = ctrlAddress.PhoneNumber; thisAddress.County = ctrlAddress.County; thisAddress.ResidenceType = ctrlAddress.ResidenceType; if (!CheckToValidate(thisAddress, AddressType)) { switch (AddressType) { case AddressTypes.Shared: InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); InterpriseHelper.AddCustomerShipTo(thisAddress); break; case AddressTypes.Billing: InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); break; case AddressTypes.Shipping: InterpriseHelper.AddCustomerShipTo(thisAddress); break; } Response.Redirect(String.Format("selectaddress.aspx?Checkout={0}&AddressType={1}&ReturnURL={2}", checkOutMode.ToString(), AddressTypeString, Server.UrlEncode(ReturnURL))); } } }
protected override void OnInit(EventArgs e) { if (string.IsNullOrEmpty(CommonLogic.QueryStringCanBeDangerousContent("d"))) { HttpResponseHelper.RespondWithFileNotFound(Response); return; } //removed the binding of event to the html and code it here for mobile txtCaptcha.TextChanged += txtCaptcha_TextChanged; btnDownload.Click += btnDownload_Click; btnDownload.Text = "Download"; ThisCustomer.RequireCustomerRecord(); //Make sure the current customer is logged in. if (ThisCustomer.IsNotRegistered) { RedirectNonRegisteredUser(); } else { // get the querystring for the download id string strDownloadId = CommonLogic.QueryStringCanBeDangerousContent("d"); // get the querystring for the order id string orderId = CommonLogic.QueryStringCanBeDangerousContent("sid"); if (InterpriseHelper.IsCorrectCustomer(ThisCustomer, orderId)) { //The customer is either logged in and its their download, or the customer is anonymuos and the download //is for an anonymous customer. divSignInPrompt.Visible = false; lblCaption.Text = "Please enter the text on the image below"; divDownload.Visible = true; InterpriseHelper.ClearCustomerDownloadableLinkFromSession(ThisCustomer); if (!IsPostBack) { GenerateAndShowCaptchaImage(); } } else { txtCaptcha.Visible = false; btnDownload.Visible = false; lblError.Text = "You are not allowed to download this file since this belongs to a different customer!"; } } base.OnInit(e); }
/// <summary> /// Compute Sub total needed to avail free shipping. FreeShippingThreshold and ShippingMethodCodeIfFreeShippingIsOn appconfig MUST be setup /// properly for this feature to work. /// </summary> private void ShowFreeshippingInfo() { decimal threshHold = AppLogic.AppConfigUSDecimal("FreeShippingThreshold"); string currencyCode = _cart.ThisCustomer.CurrencyCode; decimal subTotal = _cart.GetCartSubTotalExcludeOversized(); string shippingMethods = AppLogic.AppConfig("ShippingMethodCodeIfFreeShippingIsOn"); string total; if (threshHold > decimal.Zero && threshHold > subTotal) { pnlGetFreeShippingMsg.Visible = true; total = InterpriseHelper.FormatCurrencyForCustomer(threshHold, currencyCode); GetFreeShippingMsg.Text = string.Format(AppLogic.GetString("checkoutshipping.aspx.2", SkinID, ThisCustomer.LocaleSetting), total, shippingMethods); } }
public void btnNewAddress_Click(object sender, EventArgs e) { if (this.IsValid) { var AddressType = AddressTypeString.TryParseEnum <AddressTypes>(); int OriginalRecurringOrderNumber = CommonLogic.QueryStringUSInt("OriginalRecurringOrderNumber"); bool AllowShipToDifferentThanBillTo = AppLogic.AppConfigBool("AllowShipToDifferentThanBillTo"); if (!AllowShipToDifferentThanBillTo) { //Shipping and Billing address must be the same so save both AddressType = AddressTypes.Shared; } //changes for mobile design var thisAddress = ctrlAddress.ExtractAddress(ThisCustomer); thisAddress.CustomerCode = ThisCustomer.CustomerCode; thisAddress.Name = ctrlAddress.AccountName; if (!CheckToValidate(thisAddress, AddressType)) { switch (AddressType) { case AddressTypes.Shared: InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); InterpriseHelper.AddCustomerShipTo(thisAddress); break; case AddressTypes.Billing: InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); break; case AddressTypes.Shipping: InterpriseHelper.AddCustomerShipTo(thisAddress); break; } string url = "selectaddress.aspx?Checkout={0}&AddressType={1}&ReturnURL={2}".FormatWith(checkOutMode.ToString(), AddressTypeString, Server.UrlEncode(ReturnURL)); Response.Redirect(url); } } }
protected void Page_Load(object sender, System.EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); Customer ThisCustomer = (Context.User as InterpriseSuiteEcommercePrincipal).ThisCustomer; if (AppLogic.AppConfigBool("SiteDisclaimerRequired")) { AppLogic.SetSessionCookie("SiteDisclaimerAccepted", String.Empty); } AppLogic.SetSessionCookie("AffiliateID", ""); AppLogic.SetCookie("LocaleSetting", ThisCustomer.LocaleSetting, new TimeSpan(1000, 0, 0, 0, 0)); InterpriseHelper.CreateContactSiteLog(ThisCustomer, "Logout"); Session.Clear(); Session.Abandon(); Response.Cookies.Clear(); Response.Expires = 0; Response.Cache.SetNoStore(); //save the last record of fullmode bool?isRequestedFullMode = ThisCustomer.ThisCustomerSession[DomainConstants.MOBILE_FULLMODE_QUERYTSTRING].TryParseBool(); bool value = (isRequestedFullMode.HasValue) ? isRequestedFullMode.Value : false; //build the query string string addedQueryString = (isRequestedFullMode.HasValue && isRequestedFullMode.Value)? "?" + DomainConstants.MOBILE_FULLMODE_QUERYTSTRING + "=true" : String.Empty; //create anonymous and pass the value again so it will not go to the mobile design ThisCustomer.ThisCustomerSession.Clear(); FormsAuthentication.SignOut(); Security.SignOutCrossDomainCookie(); this.Title = AppLogic.AppConfig("StoreName") + " - Signout"; Literal1.Text = AppLogic.GetString(Literal1.Text.Replace("(!", "").Replace("!)", ""), ThisCustomer.SkinID, ThisCustomer.LocaleSetting); Response.Redirect(String.Format("default.aspx{0}", addedQueryString)); //Response.AddHeader("REFRESH", String.Format("1; URL=default.aspx{0}", addedQueryString)); }
private void CheckWhetherToRequireShipping() { if (AppLogic.AppConfigBool("SkipShippingOnCheckout") || !_cart.HasShippableComponents() || _cartHasCouponAndIncludesFreeShipping) { _cart.MakeShippingNotRequired(); if (!_IsPayPal) { Response.Redirect("checkoutpayment.aspx"); } else { InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, PAYMENT_METHOD_CREDITCARD); Response.Redirect("checkoutreview.aspx?PayPal=True&token=" + Request.QueryString["token"]); } } }
protected void Page_Load(object sender, EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); SkinBase.RequireSecurePage(); Customer thisCustomer = Customer.Current; bool blnShowReceipt = false; //get the values from the querystring string strSalesOrderCodeFromQueryString = CommonLogic.QueryStringCanBeDangerousContent("OrderNumber"); string strCustGuidFromQueryString = CommonLogic.QueryStringCanBeDangerousContent("CustomerGUID"); if (thisCustomer.IsNotRegistered) { //unregistered customers will have values stored in the cookie, get the values and compare to the querystring string strOrderNumberFromCookie = CommonLogic.CookieCanBeDangerousContent("OrderNumber", true); string strCustGuidFromCookie = CommonLogic.CookieCanBeDangerousContent("ContactGUID", true); //show the receipt only if both the order number and guid match blnShowReceipt = strCustGuidFromQueryString.Equals(strCustGuidFromCookie, StringComparison.InvariantCultureIgnoreCase) && strSalesOrderCodeFromQueryString.Equals(strOrderNumberFromCookie, StringComparison.InvariantCultureIgnoreCase); } else { //make sure that this customer owns this order to view if (thisCustomer.OwnsThisOrder(strSalesOrderCodeFromQueryString)) { blnShowReceipt = true; } } //show the receipt if it's appropriate to do so if (blnShowReceipt && !string.IsNullOrEmpty(strSalesOrderCodeFromQueryString)) { ViewerReport.Report = InterpriseHelper.CreateReport(strSalesOrderCodeFromQueryString); } else { Response.Redirect(SE.MakeDriverLink("ordernotfound")); } }
protected void Page_Load(object sender, System.EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); ThisCustomer = ((InterpriseSuiteEcommercePrincipal)Context.User).ThisCustomer; ThisCustomer.RequireCustomerRecord(); _SkinID = CommonLogic.CookieUSInt(SkinBase.ro_SkinCookieName); ProductID = CommonLogic.QueryStringUSInt("ProductID"); ItemCode = InterpriseHelper.GetInventoryItemCode(ProductID); String ProductName = HttpContext.Current.Server.HtmlEncode(AppLogic.GetProductName(ProductID.ToString(), ThisCustomer.LocaleSetting)); String ReturnURL = CommonLogic.QueryStringCanBeDangerousContent("ReturnURL"); if (ReturnURL.IndexOf("<script>", StringComparison.InvariantCultureIgnoreCase) != -1) { throw new ArgumentException("SECURITY EXCEPTION"); } using (SqlConnection con = DB.NewSqlConnection()) { con.Open(); using (IDataReader rs = DB.GetRSFormat(con, String.Format("SELECT * FROM EcommerceRating with (NOLOCK) WHERE CustomerCode={0} AND ItemCode={1} AND WebsiteCode={2} AND ContactCode={3}", DB.SQuote(ThisCustomer.CustomerCode), DB.SQuote(ItemCode), DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode), DB.SQuote(ThisCustomer.ContactCode)))) { if (rs.Read()) { TheirCurrentRating = DB.RSFieldInt(rs, "Rating"); TheirCurrentComment = DB.RSField(rs, "Comments"); Editing = true; } } } if (!IsPostBack) { InitializePageContent(); } }
protected void btnCompletePurchase_Click(object sender, EventArgs e) { if (!_cart.IsEmpty()) { var isOutOfStockAndPhaseOut = _cart.CartItems.Any(item => item.Status == "P" && item.IsOutOfStock); if (isOutOfStockAndPhaseOut) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } } if (!_cartHasCouponAndIncludesFreeShipping) { // validate the shipping method is existing and is associated for this group // use a validator for this purpose if (ctrlShippingMethod.FreightCalculation == "1" || ctrlShippingMethod.FreightCalculation == "2") { _cart.SetCartShippingMethod(ctrlShippingMethod.ShippingMethod, String.Empty, ctrlShippingMethod.RealTimeRateGUID); string freight = ctrlShippingMethod.Freight.Trim(new char[] { ' ', '$' }); _cart.SetRealTimeRateRecord(ctrlShippingMethod.ShippingMethod, freight, ctrlShippingMethod.RealTimeRateGUID.ToString(), false); } else { _cart.SetCartShippingMethod(ctrlShippingMethod.ShippingMethod); } } if (Request.QueryString["PayPal"] == bool.TrueString && Request.QueryString["token"] != null) { InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, PAYMENT_METHOD_CREDITCARD); Response.Redirect("checkoutreview.aspx?PayPal=True&token=" + Request.QueryString["token"]); } else { Response.Redirect("checkoutpayment.aspx"); } }
void AddressList_ItemCommand(object source, RepeaterCommandEventArgs e) { switch (e.CommandName) { case "edit": Response.Redirect(String.Format("editaddress.aspx?Checkout={0}&AddressType={1}&AddressID={2}&ReturnURL={3}", checkOutMode.ToString(), AddressType, e.CommandArgument, ReturnURL)); break; case "makeprimary": InterpriseHelper.MakeDefaultAddress(ThisCustomer.ContactCode, e.CommandArgument.ToString(), AddressType); //Update customer default address. if (AddressType == AddressTypes.Shipping) { ThisCustomer.PrimaryShippingAddressID = e.CommandArgument.ToString(); } else { ThisCustomer.PrimaryBillingAddressID = e.CommandArgument.ToString(); } Response.Redirect(String.Format("selectaddress.aspx?Checkout={0}&AddressType={1}&ReturnURL={2}", checkOutMode.ToString(), AddressTypeString, Server.UrlEncode(ReturnURL))); break; } }
protected void btnSave_Click(object sender, EventArgs e) { //Get the cached gateway. ApplicationConfigurationDatasetGateway appConfigGateway = SessionStateSink.AdminAppConfigGateway; //Get a new WebStoreAppConfigRow. ApplicationConfigurationDataset.EcommerceAppConfigRow newRow = InterpriseHelper.AddNewStoreAppConfigRow(appConfigGateway); //Set the values from the add form. newRow.BeginEdit(); newRow.Name = txtName.Text; newRow.GroupName = txtGroupName.Text; newRow.ConfigValue = txtConfigValue.Text; newRow.Description = txtDescription.Text; newRow.EndEdit(); //Attempt to save the new record. if (InterpriseHelper.SaveStoreAppConfigs(appConfigGateway)) { //The new record was saved. //Show the commands and hide the add new form. pnlCommands.Visible = true; pnlAddNew.Visible = false; //Re-bind the data. BindData(); } else { //Record was not saved we need to show the violations. HandleViolations(newRow); //Reject any changes that were made. appConfigGateway.RejectChanges(); } }
protected void gvAppConfig_RowUpdating(object sender, GridViewUpdateEventArgs e) { //Get the dataset. ApplicationConfigurationDatasetGateway appConfigGateway = SessionStateSink.AdminAppConfigGateway; //Get the updating row from the grid. GridViewRow gridRow = gvAppConfig.Rows[e.RowIndex]; //Get the matching row from the table. //ApplicationConfigurationDataset.EcommerceStoreAppConfigRow rowToUpdate = GetRowToUpdate( // appConfigGateway.EcommerceStoreAppConfig, (Guid)gvAppConfig.DataKeys[e.RowIndex]["AppConfigGUID"]); ApplicationConfigurationDataset.EcommerceAppConfigRow rowToUpdate = GetRowToUpdate( appConfigGateway.EcommerceAppConfig, (Guid)gvAppConfig.DataKeys[e.RowIndex]["AppConfigGUID"]); //Update the record with the data from the grid. rowToUpdate.BeginEdit(); rowToUpdate.Name = ((TextBox)gridRow.Cells[1].FindControl("txtName")).Text; rowToUpdate.GroupName = ((TextBox)gridRow.Cells[2].FindControl("txtGroupName")).Text; rowToUpdate.ConfigValue = ((TextBox)gridRow.Cells[3].FindControl("txtConfigValue")).Text; rowToUpdate.Description = ((TextBox)gridRow.Cells[4].FindControl("txtDescription")).Text; rowToUpdate.EndEdit(); try { //Save the changes if (InterpriseHelper.SaveStoreAppConfigs(appConfigGateway)) { //Take the item out of edit mode. gvAppConfig.EditIndex = -1; //Re-bind the data. BindData(); } else { //Record was not saved we need to show the violations. HandleViolations(rowToUpdate); //Reject any changes that were made. appConfigGateway.RejectChanges(); } } catch (DataConcurrencyException) { //We had a concurrency error. //Re-load the data from the database (This will also apply the current sort). LoadData(); //Apply the current filter. ApplyFilter(SessionStateSink.AdminAppConfigGateway); //Add the conncurency violation. m_violations.Add("The record you were working with was modified by another user." + " Your changes have been lost and the record has been refreshed with the new data."); //Take the item out of edit mode. gvAppConfig.EditIndex = -1; //Re-bind the data. BindData(); } }
protected void Page_Load(object sender, System.EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); Customer ThisCustomer = (Context.User as InterpriseSuiteEcommercePrincipal).ThisCustomer; if (AppLogic.AppConfigBool("SiteDisclaimerRequired")) { AppLogic.SetSessionCookie("SiteDisclaimerAccepted", String.Empty); } AppLogic.SetSessionCookie("AffiliateID", ""); AppLogic.SetCookie("LocaleSetting", ThisCustomer.LocaleSetting, new TimeSpan(1000, 0, 0, 0, 0)); InterpriseHelper.CreateContactSiteLog(ThisCustomer, "Logout"); ThisCustomer.ThisCustomerSession.Clear(); Session.Clear(); Session.Abandon(); Response.Cookies.Clear(); Response.Expires = 0; Response.Cache.SetNoStore(); //Do special handling of key when IE and site has multiple domain if (Request.Browser.Browser == "IE" && Request.Cookies.Keys.OfType <string>().Where(k => k.ToUpper() == FormsAuthentication.FormsCookieName).Count() > 1) { Request.Cookies.Clear(); Request.Cookies.Remove(FormsAuthentication.FormsCookieName); Response.Cookies.Remove(FormsAuthentication.FormsCookieName); var autCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (autCookie != null) { Context.User = new InterpriseSuiteEcommercePrincipal(Customer.MakeAnonymous()); Customer.Current.RequireCustomerRecord(); var customer = Customer.Current; string cookieUserName = customer.ContactGUID.ToString(); string encryptedData = FormsAuthentication.Encrypt( new FormsAuthenticationTicket(1, cookieUserName, DateTime.Now, DateTime.Now.AddMinutes(30), false, string.Empty, FormsAuthentication.FormsCookiePath)); autCookie.Value = encryptedData; Request.Cookies.Set(autCookie); Response.Cookies.Set(autCookie); } } else { FormsAuthentication.SignOut(); } this.Title = AppLogic.AppConfig("StoreName") + " - Signout"; Literal1.Text = AppLogic.GetString(Literal1.Text.Replace("(!", "").Replace("!)", ""), ThisCustomer.SkinID, ThisCustomer.LocaleSetting); Response.AddHeader("REFRESH", "1; URL=default.aspx"); }
public void ProcessRequest(HttpContext context) { var ThisCustomer = ((InterpriseSuiteEcommercePrincipal)context.User).ThisCustomer; var m_PayPalExpress = new PayPalExpress(); //Get PayPal info var PayPalDetails = m_PayPalExpress.GetExpressCheckoutDetails(context.Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails; var paypalShippingAddress = Address.New(ThisCustomer, AddressTypes.Shipping); if (PayPalDetails.PayerInfo.Address.Name.IsNullOrEmptyTrimmed() && (PayPalDetails.PayerInfo.Address.Street1.IsNullOrEmptyTrimmed() || PayPalDetails.PayerInfo.Address.Street2.IsNullOrEmptyTrimmed()) && PayPalDetails.PayerInfo.Address.CityName.IsNullOrEmptyTrimmed() && PayPalDetails.PayerInfo.Address.StateOrProvince.IsNullOrEmptyTrimmed() && PayPalDetails.PayerInfo.Address.PostalCode.IsNullOrEmptyTrimmed() && PayPalDetails.PayerInfo.Address.CountryName.ToString().IsNullOrEmptyTrimmed() || PayPalDetails.PayerInfo.ContactPhone.IsNullOrEmptyTrimmed()) { paypalShippingAddress = ThisCustomer.PrimaryShippingAddress; } else { string streetAddress = PayPalDetails.PayerInfo.Address.Street1 + (!PayPalDetails.PayerInfo.Address.Street2.IsNullOrEmptyTrimmed() ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2; string sql = String.Empty; if (ThisCustomer.IsRegistered) { sql = String.Format("SELECT COUNT(ShipToCode) AS N FROM CustomerShipTo where Address = {0} and City = {1} and State = {2} and PostalCode = {3} and Country = {4} and ShipToName = {5} and CustomerCode = {6}", streetAddress.ToDbQuote(), PayPalDetails.PayerInfo.Address.CityName.ToDbQuote(), PayPalDetails.PayerInfo.Address.StateOrProvince.ToDbQuote(), PayPalDetails.PayerInfo.Address.PostalCode.ToDbQuote(), AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName).ToString().ToDbQuote(), PayPalDetails.PayerInfo.Address.Name.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote()); } else { sql = String.Format("SELECT COUNT(1) AS N FROM EcommerceAddress where ShipToAddress = {0} and ShipToCity = {1} and ShipToState = {2} and ShipToPostalCode = {3} and ShipToCountry = {4} and ShipToName = {5} and CustomerID = {6}", streetAddress.ToDbQuote(), PayPalDetails.PayerInfo.Address.CityName.ToDbQuote(), PayPalDetails.PayerInfo.Address.StateOrProvince.ToDbQuote(), PayPalDetails.PayerInfo.Address.PostalCode.ToDbQuote(), AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName).ToString().ToDbQuote(), PayPalDetails.PayerInfo.Address.Name.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote()); paypalShippingAddress.EMail = ThisCustomer.IsRegistered ? ThisCustomer.EMail : ThisCustomer.GetAnonEmail(); paypalShippingAddress.Name = PayPalDetails.PayerInfo.Address.Name; paypalShippingAddress.Address1 = PayPalDetails.PayerInfo.Address.Street1 + (PayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2; paypalShippingAddress.City = PayPalDetails.PayerInfo.Address.CityName; paypalShippingAddress.State = PayPalDetails.PayerInfo.Address.StateOrProvince; paypalShippingAddress.PostalCode = PayPalDetails.PayerInfo.Address.PostalCode; paypalShippingAddress.Country = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName.ToString()); paypalShippingAddress.Phone = PayPalDetails.PayerInfo.ContactPhone ?? String.Empty; } int isAddressExists = DB.GetSqlN(sql); if (AppLogic.AppConfigBool("PayPalCheckout.RequireConfirmedAddress") || isAddressExists == 0) { ServiceFactory.GetInstance <ICustomerService>().UpdateCustomerNotesWhenPaypalAddressIsUsed(); } } ThisCustomer.PrimaryShippingAddress = paypalShippingAddress; paypalShippingAddress.Save(); string redirectUrl = String.Empty; //Checking for redirectURL of PayPal -- Express Checkout button in Shopping Cart page or PayPal Radio Button in Payment Page if (Customer.Current.ThisCustomerSession["paypalfrom"] == "shoppingcart" || Customer.Current.ThisCustomerSession["paypalfrom"] == "checkoutanon") { redirectUrl = "checkoutshipping.aspx?PayPal=True&token=" + context.Request.QueryString["token"]; } else { if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout")) { if (!AppLogic.AppConfigBool("Checkout.UseOnePageCheckout.UseFinalReviewOrderPage")) { //Insert PayPal call here for response - For authorize and capture of order from paypal inside IS ThisCustomer.ThisCustomerSession["paypalfrom"] = "onepagecheckout"; string OrderNumber = String.Empty; string status = String.Empty; string receiptCode = String.Empty; var billingAddress = ThisCustomer.PrimaryBillingAddress; Address shippingAddress = null; var cart = new InterpriseShoppingCart(null, ThisCustomer.SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, String.Empty, false, true); if (cart.IsNoShippingRequired()) { cart.BuildSalesOrderDetails(false, true); } else { cart.BuildSalesOrderDetails(); } if (!AppLogic.AppConfigBool("PayPalCheckout.OverrideAddress")) { if (!cart.HasShippableComponents()) { shippingAddress = ThisCustomer.PrimaryShippingAddress; } else { if (ThisCustomer.IsRegistered) { var GetShippingAddress = new Address() { Name = PayPalDetails.PayerInfo.Address.Name, Address1 = PayPalDetails.PayerInfo.Address.Street1 + (PayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2, City = PayPalDetails.PayerInfo.Address.CityName, State = PayPalDetails.PayerInfo.Address.StateOrProvince, PostalCode = PayPalDetails.PayerInfo.Address.PostalCode, Country = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName.ToString()), CountryISOCode = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.Country.ToString()), Phone = PayPalDetails.PayerInfo.ContactPhone ?? String.Empty }; shippingAddress = GetShippingAddress; } else { shippingAddress = paypalShippingAddress; } } } var doExpressCheckoutResp = m_PayPalExpress.DoExpressCheckoutPayment(PayPalDetails.Token, PayPalDetails.PayerInfo.PayerID, OrderNumber, cart); string result = String.Empty; if (doExpressCheckoutResp.Errors != null && !doExpressCheckoutResp.Errors[0].ErrorCode.IsNullOrEmptyTrimmed()) { if (AppLogic.AppConfigBool("ShowGatewayError")) { result = String.Format(AppLogic.GetString("shoppingcart.aspx.27", ThisCustomer.SkinID, ThisCustomer.LocaleSetting), doExpressCheckoutResp.Errors[0].ErrorCode, doExpressCheckoutResp.Errors[0].LongMessage); } else { result = AppLogic.GetString("shoppingcart.aspx.28", ThisCustomer.SkinID, ThisCustomer.LocaleSetting); } context.Response.Redirect("shoppingcart.aspx?ErrorMsg=" + result.ToUrlEncode(), false); return; } else { Gateway gatewayToUse = null; var payPalResp = new GatewayResponse(String.Empty) { AuthorizationCode = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID, TransactionResponse = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(), Details = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(), AuthorizationTransID = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID }; InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD); status = cart.PlaceOrder(gatewayToUse, billingAddress, shippingAddress, ref OrderNumber, ref receiptCode, true, true, payPalResp, true, false); if (status != AppLogic.ro_OK) { ThisCustomer.IncrementFailedTransactionCount(); if (ThisCustomer.FailedTransactionCount >= AppLogic.AppConfigUSInt("MaxFailedTransactionCount")) { cart.ClearTransaction(); ThisCustomer.ResetFailedTransactionCount(); context.Response.Redirect("orderfailed.aspx"); } ThisCustomer.ClearTransactions(false); context.Response.Redirect("checkout1.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + status.ToUrlEncode()); } AppLogic.ClearCardNumberInSession(ThisCustomer); ThisCustomer.ClearTransactions(true); context.Response.Redirect(String.Format("orderconfirmation.aspx?ordernumber={0}", OrderNumber.ToUrlEncode())); } } else { InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD); redirectUrl = "checkoutreview.aspx?PayPal=True&token=" + context.Request.QueryString["token"]; } } else { InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD); redirectUrl = "checkoutreview.aspx?PayPal=True&token=" + context.Request.QueryString["token"]; } } context.Response.Redirect(redirectUrl); }
protected void Page_Load(object sender, EventArgs e) { productID = CommonLogic.QueryStringUSInt("productId"); ItemCode = InterpriseHelper.GetInventoryItemCode(productID); EntityHelper CategoryHelper = AppLogic.LookupHelper(base.EntityHelpers, "Category"); EntityHelper SectionHelper = AppLogic.LookupHelper(base.EntityHelpers, "Department"); EntityHelper ManufacturerHelper = AppLogic.LookupHelper(base.EntityHelpers, "Manufacturer"); CategoryID = CommonLogic.QueryStringCanBeDangerousContent("CategoryID"); DepartmentID = CommonLogic.QueryStringCanBeDangerousContent("DepartmentID"); ManufacturerID = CommonLogic.QueryStringCanBeDangerousContent("ManufacturerID"); String SourceEntity = "Category"; String SourceEntityID = String.Empty; if (AppLogic.AppConfigBool("GoNonSecureAgain")) { SkinBase.GoNonSecureAgain(); } // DOS attack prevention: if (AppLogic.OnLiveServer() && (Request.UrlReferrer == null || Request.UrlReferrer.Authority != Request.Url.Authority)) { Response.Redirect(SE.MakeDriverLink("EmailError")); } if (ItemCode == String.Empty) { Response.Redirect("default.aspx"); } if (AppLogic.ProductHasBeenDeleted(productID)) { Response.Redirect(SE.MakeDriverLink("ProductNotFound")); } using (SqlConnection con = DB.NewSqlConnection()) { con.Open(); using (IDataReader rs = DB.GetRSFormat(con, "SELECT * FROM EcommerceViewProduct with (NOLOCK) " + " WHERE Counter=" + productID + " AND ShortString=" + DB.SQuote(ThisCustomer.LocaleSetting) + " AND WebSiteCode=" + DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode))) { if (!rs.Read()) { Response.Redirect("default.aspx"); } SEName = SE.MungeName(DB.RSField(rs, "SEName")); if (DB.RSField(rs, "ItemDescription").ToString() != String.Empty) { ProductName = DB.RSField(rs, "ItemDescription"); } else { ProductName = DB.RSField(rs, "ItemName"); } RequiresReg = DB.RSFieldBool(rs, "RequiresRegistration"); ProductDescription = DB.RSField(rs, "ItemDescription"); if (AppLogic.ReplaceImageURLFromAssetMgr) { ProductDescription = ProductDescription.Replace("../images", "images"); } String FileDescription = new ProductDescriptionFile(ItemCode, ThisCustomer.LocaleSetting, SkinID).Contents; if (FileDescription.Length != 0) { ProductDescription += "<div align=\"left\">" + FileDescription + "</div>"; } } } if (Convert.ToInt32(CategoryID) == 0) { // no category passed in, pick first one that this product is mapped to: String tmpS = CategoryHelper.GetObjectEntities(ItemCode, false); if (tmpS.Length != 0) { String[] catIDs = tmpS.Split(','); CategoryID = Convert.ToString(Localization.ParseUSInt(catIDs[0])); } } string CategoryName = CommonLogic.IIF(CategoryHelper.GetEntityField(CategoryID, "Description", ThisCustomer.LocaleSetting) != String.Empty, CategoryHelper.GetEntityField(CategoryID, "Description", ThisCustomer.LocaleSetting), CategoryHelper.GetEntityName(CategoryID, ThisCustomer.LocaleSetting)); string SectionName = CommonLogic.IIF(SectionHelper.GetEntityField(DepartmentID, "Description", ThisCustomer.LocaleSetting) != String.Empty, SectionHelper.GetEntityField(DepartmentID, "Description", ThisCustomer.LocaleSetting), SectionHelper.GetEntityName(DepartmentID, ThisCustomer.LocaleSetting)); string ManufacturerName = CommonLogic.IIF(ManufacturerHelper.GetEntityField(ManufacturerID, "Description", ThisCustomer.LocaleSetting) != String.Empty, ManufacturerHelper.GetEntityField(ManufacturerID, "Description", ThisCustomer.LocaleSetting), ManufacturerHelper.GetEntityName(ManufacturerID, ThisCustomer.LocaleSetting)); SourceEntity = CommonLogic.CookieCanBeDangerousContent("LastViewedEntityName", true); String SourceEntityInstanceName = CommonLogic.CookieCanBeDangerousContent("LastViewedEntityInstanceName", true); SourceEntityID = CommonLogic.CookieCanBeDangerousContent("LastViewedEntityInstanceID", true); // validate that source entity id is actually valid for this product: if (SourceEntityID.Length != 0) { ArrayList alE = EntityHelper.GetProductEntityList(ItemCode, SourceEntity); if (alE.IndexOf(Localization.ParseNativeInt(SourceEntityID)) == -1) { SourceEntityID = String.Empty; } } if (SourceEntityID.Length != 0) { PickupBreadCrumb(ref SourceEntity, ref SourceEntityInstanceName, ref SourceEntityID, false); } else { PickupBreadCrumb(ref SourceEntity, ref SourceEntityInstanceName, ref SourceEntityID, true); } SectionTitle += "<span class=\"SectionTitleText\">"; SectionTitle += ProductName; SectionTitle += "</span>"; reqToAddress.ErrorMessage = AppLogic.GetString("emailproduct.aspx.13", SkinID, ThisCustomer.LocaleSetting, true); regexToAddress.ErrorMessage = AppLogic.GetString("emailproduct.aspx.14", SkinID, ThisCustomer.LocaleSetting, true); reqFromAddress.ErrorMessage = AppLogic.GetString("emailproduct.aspx.16", SkinID, ThisCustomer.LocaleSetting, true); regexFromAddress.ErrorMessage = AppLogic.GetString("emailproduct.aspx.17", SkinID, ThisCustomer.LocaleSetting, true); if (!this.IsPostBack) { InitializePageContent(); } }
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); }
protected void Page_Load(object sender, System.EventArgs e) { ltMessage.Text = AppLogic.GetString("savenotification.aspx.cs.1", Customer.Current.SkinID, Customer.Current.LocaleSetting); Int32 NotificationType = Int32.Parse(CommonLogic.QueryStringCanBeDangerousContent("NotificationType")); String itemCode = CommonLogic.QueryStringCanBeDangerousContent("itemCode"); String ProductURL = CommonLogic.QueryStringCanBeDangerousContent("ProductURL") + "/" + InterpriseHelper.MakeItemLink(itemCode); string[][] ruleloaddataset; ruleloaddataset = new string[][] { new string[] { "ECOMMERCENOTIFICATION", "READECOMMERCENOTIFICATION", "@ContactCode", Customer.Current.ContactCode, "@WebsiteCode", InterpriseHelper.ConfigInstance.WebSiteCode, "@ItemCode", itemCode, "@EmailAddress", Customer.Current.EMail } }; EcommerceNotificationDatasetGateway ruleDatasetContainer = new EcommerceNotificationDatasetGateway(); if (Interprise.Facade.Base.SimpleFacade.Instance.CurrentBusinessRule.LoadDataSet( InterpriseHelper.ConfigInstance.OnlineCompanyConnectionString, ruleloaddataset, ruleDatasetContainer)) { EcommerceNotificationDatasetGateway.EcommerceNotificationRow ruleDatasetContainernewRow; if (ruleDatasetContainer.EcommerceNotification.Rows.Count == 0) { ruleDatasetContainernewRow = ruleDatasetContainer.EcommerceNotification.NewEcommerceNotificationRow(); } else { ruleDatasetContainernewRow = ruleDatasetContainer.EcommerceNotification[0]; } Boolean OnPriceDrop = AppLogic.CheckNotification(Customer.Current.ContactCode, Customer.Current.EMail, itemCode, 1); Boolean OnItemAvail = AppLogic.CheckNotification(Customer.Current.ContactCode, Customer.Current.EMail, itemCode, 0); if (NotificationType == 1) { OnPriceDrop = true; } else { OnItemAvail = true; } ruleDatasetContainernewRow.BeginEdit(); ruleDatasetContainernewRow.WebSiteCode = InterpriseHelper.ConfigInstance.WebSiteCode; ruleDatasetContainernewRow.ItemCode = itemCode; ruleDatasetContainernewRow.ContactCode = Customer.Current.ContactCode; ruleDatasetContainernewRow.EmailAddress = Customer.Current.EMail; ruleDatasetContainernewRow.NotifyOnPriceDrop = OnPriceDrop; ruleDatasetContainernewRow.NotifyOnItemAvail = OnItemAvail; ruleDatasetContainernewRow.ProductURL = ProductURL; byte[] salt = InterpriseHelper.GenerateSalt(); byte[] iv = InterpriseHelper.GenerateVector(); string contactCodeCypher = InterpriseHelper.Encryption(Customer.Current.ContactCode, salt, iv); string emailAddressCypher = InterpriseHelper.Encryption(Customer.Current.EMail, salt, iv); ruleDatasetContainernewRow.EncryptedContactCode = contactCodeCypher + "|" + Convert.ToBase64String(salt) + "|" + Convert.ToBase64String(iv); ruleDatasetContainernewRow.EncryptedEmailAddress = emailAddressCypher + "|" + Convert.ToBase64String(salt) + "|" + Convert.ToBase64String(iv); ruleDatasetContainernewRow.EndEdit(); if (ruleDatasetContainer.EcommerceNotification.Rows.Count == 0) { ruleDatasetContainer.EcommerceNotification.AddEcommerceNotificationRow(ruleDatasetContainernewRow); } string[][] rulecommandset; rulecommandset = new string[][] { new string[] { ruleDatasetContainer.EcommerceNotification.TableName, "CREATEECOMMERCENOTIFICATION", "UPDATEECOMMERCENOTIFICATION", "DELETEECOMMERCENOTIFICATION" } }; if (Interprise.Facade.Base.SimpleFacade.Instance.CurrentBusinessRule.UpdateDataset( InterpriseHelper.ConfigInstance.OnlineCompanyConnectionString, rulecommandset, ruleDatasetContainer)) { ltMessage.Text = AppLogic.GetString("savenotification.aspx.cs.2", Customer.Current.SkinID, Customer.Current.LocaleSetting); Response.Write("<script type=text/javascript language=javascript>window.top.close();</script>"); } } }
void OrderOptionsList_ItemDataBound(object sender, RepeaterItemEventArgs e) { XmlNode orderOptionNode = e.Item.DataItem as XmlNode; int counter = 0; if (orderOptionNode != null && int.TryParse(orderOptionNode["Counter"].InnerText, out counter)) { string itemCode = orderOptionNode["ItemCode"].InnerText; string itemName = orderOptionNode["ItemName"].InnerText; string itemDescription = orderOptionNode["ItemDescription"].InnerText; string popupTitle = string.Empty; Label lblDisplayName = e.Item.FindControl("OrderOptionName") as Label; if (!CommonLogic.IsStringNullOrEmpty(itemDescription)) { lblDisplayName.Text = Security.HtmlEncode(itemDescription); popupTitle = CommonLogic.Left(Security.UrlEncode(SE.MungeName(itemDescription)), 90); } else { lblDisplayName.Text = Security.HtmlEncode(itemName); popupTitle = CommonLogic.Left(Security.UrlEncode(SE.MungeName(itemName)), 90); } if (AppLogic.AppConfigBool("ShowPicsInCart")) { String ImgUrl = InterpriseHelper.LookUpImageByItemCode(itemCode, "icon", SkinID, ThisCustomer.LocaleSetting); if (!string.IsNullOrEmpty(ImgUrl) && ImgUrl.IndexOf("nopicture") == -1) { Image imgControl = (Image)e.Item.FindControl("OptionImage"); imgControl.ImageUrl = ImgUrl; imgControl.Visible = true; } } var helpCircle = (Image)e.Item.FindControl("helpcircle_gif"); helpCircle.ImageUrl = AppLogic.LocateImageURL(SkinImagePath + "helpcircle.gif"); helpCircle.Attributes.Add("onclick", "popuporderoptionwh('Order Option " + popupTitle + "', " + counter.ToString() + ",650,550,'yes');"); // 2 Control choices for drop down list var cboUnitMeasureCode = e.Item.FindControl("cboUnitMeasureCode") as DropDownList; var lblUnitMeasureCode = e.Item.FindControl("lblUnitMeasureCode") as Label; var availableUnitMeasures = ProductDA.GetProductUnitMeasureAvailability(ThisCustomer.CustomerCode, itemCode, AppLogic.AppConfigBool("ShowInventoryFromAllWarehouses"), ThisCustomer.IsNotRegistered); if (availableUnitMeasures.Count() > 1) { // render as drop down list lblUnitMeasureCode.Visible = false; foreach (string unitMeasureCode in availableUnitMeasures) { cboUnitMeasureCode.Items.Add(new ListItem(HttpUtility.HtmlEncode(unitMeasureCode), HttpUtility.HtmlEncode(unitMeasureCode))); } } else { // The only unit measure the item is configured for is the default // which we are guaranteed to be in the first index.. cboUnitMeasureCode.Visible = false; lblUnitMeasureCode.Text = availableUnitMeasures.First().ToHtmlEncode(); } bool withVat = AppLogic.AppConfigBool("VAT.Enabled") && ThisCustomer.VATSettingReconciled == VatDefaultSetting.Inclusive; var um = UnitMeasureInfo.ForItem(itemCode, UnitMeasureInfo.ITEM_DEFAULT); decimal promotionalPrice = Decimal.Zero; decimal price = InterpriseHelper.GetSalesPriceAndTax(ThisCustomer.CustomerCode, itemCode, ThisCustomer.CurrencyCode, Decimal.One, um.Code, withVat, ref promotionalPrice); if (promotionalPrice != Decimal.Zero) { price = promotionalPrice; } string vatDisplay = String.Empty; if (AppLogic.AppConfigBool("VAT.Enabled")) { vatDisplay = (ThisCustomer.VATSettingReconciled == VatDefaultSetting.Inclusive)? " <span class=\"VATLabel\">" + AppLogic.GetString("showproduct.aspx.38", ThisCustomer.SkinID, ThisCustomer.LocaleSetting) + "</span>\n": " <span class=\"VATLabel\">" + AppLogic.GetString("showproduct.aspx.37", ThisCustomer.SkinID, ThisCustomer.LocaleSetting) + "</span>\n"; } var lblPrice = e.Item.FindControl("OrderOptionPrice") as Label; lblPrice.Text = InterpriseHelper.FormatCurrencyForCustomer(price, ThisCustomer.CurrencyCode) + vatDisplay; var hfCounter = e.Item.FindControl("hfItemCounter") as HiddenField; hfCounter.Value = counter.ToString(); var cbk = (DataCheckBox)e.Item.FindControl("OrderOptions"); cbk.Checked = false; bool shouldBeAbleToEnterNotes = orderOptionNode["CheckOutOptionAddMessage"].InnerText.TryParseBool().Value; var lblNotes = e.Item.FindControl("lblNotes") as Label; var txtNotes = e.Item.FindControl("txtOrderOptionNotes") as TextBox; lblNotes.Visible = txtNotes.Visible = shouldBeAbleToEnterNotes; txtNotes.Attributes.Add("onkeyup", "return imposeMaxLength(this, 1000);"); } }
public void ProcessCart(bool DoingFullCheckout) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); ThisCustomer.RequireCustomerRecord(); CartTypeEnum cte = CartTypeEnum.ShoppingCart; if (CommonLogic.QueryStringCanBeDangerousContent("CartType").Length != 0) { cte = (CartTypeEnum)CommonLogic.QueryStringUSInt("CartType"); } cart = new InterpriseShoppingCart(null, 1, ThisCustomer, cte, string.Empty, false, true); if (!Page.IsPostBack) { string couponCode = string.Empty; if (cart.HasCoupon(ref couponCode)) { CouponCode.Text = couponCode; } } else { if (string.IsNullOrEmpty(CouponCode.Text)) { cart.ClearCoupon(); } } // check if credit on hold if (ThisCustomer.IsCreditOnHold) { Response.Redirect("shoppingcart.aspx"); } if (cart.IsEmpty()) { // can't have this at this point: switch (cte) { case CartTypeEnum.ShoppingCart: Response.Redirect("shoppingcart.aspx"); break; case CartTypeEnum.WishCart: Response.Redirect("wishlist.aspx"); break; case CartTypeEnum.GiftRegistryCart: Response.Redirect("giftregistry.aspx"); break; default: Response.Redirect("shoppingcart.aspx"); break; } } //Make it a method UpdateCartItems(); // save coupon code, no need to reload cart object // will update customer record also: if (cte == CartTypeEnum.ShoppingCart) { if (!string.IsNullOrEmpty(CouponCode.Text)) { string errorMessage = string.Empty; if (cart.IsCouponValid(ThisCustomer, CouponCode.Text, ref errorMessage)) { cart.ApplyCoupon(CouponCode.Text); } else { // NULL out the coupon for this cusotmer... InterpriseHelper.ClearCustomerCoupon(ThisCustomer.CustomerCode, ThisCustomer.IsRegistered); ErrorMsgLabel.Text = errorMessage; CouponCode.Text = string.Empty; return; } } // check for upsell products if (CommonLogic.FormCanBeDangerousContent("Upsell").Length != 0) { foreach (string s in CommonLogic.FormCanBeDangerousContent("Upsell").Split(',')) { int ProductID = Localization.ParseUSInt(s); if (ProductID == 0) { continue; } string itemCode = InterpriseHelper.GetInventoryItemCode(ProductID); string shippingAddressID; shippingAddressID = CommonLogic.IIF(ThisCustomer.IsNotRegistered, string.Empty, ThisCustomer.PrimaryShippingAddressID); var umInfo = InterpriseHelper.GetItemDefaultUnitMeasure(itemCode); cart.AddItem(ThisCustomer, shippingAddressID, itemCode, ProductID, 1, umInfo.Code, CartTypeEnum.ShoppingCart); } } bool hasCheckedOptions = false; if (pnlOrderOptions.Visible) { // Process the Order Options foreach (RepeaterItem ri in OrderOptionsList.Items) { hasCheckedOptions = true; DataCheckBox cbk = (DataCheckBox)ri.FindControl("OrderOptions"); if (cbk.Checked) { string itemCode = (string)cbk.Data; HiddenField hfCounter = ri.FindControl("hfItemCounter") as HiddenField; TextBox txtNotes = ri.FindControl("txtOrderOptionNotes") as TextBox; string strNotes = HttpUtility.HtmlEncode(txtNotes.Text); string notes = CommonLogic.IIF((strNotes != null), CommonLogic.CleanLevelOne(strNotes), string.Empty); //check the length of order option notes //should not exceed 1000 characters including spaces int maxLen = 1000; if (notes.Length > maxLen) { notes = notes.Substring(0, maxLen); } string unitMeasureCode = string.Empty; // check if the item has only 1 unit measure // hence it's rendered as a label // else it would be rendered as a drop down list Label lblUnitMeasureCode = ri.FindControl("lblUnitMeasureCode") as Label; if (null != lblUnitMeasureCode && lblUnitMeasureCode.Visible) { unitMeasureCode = lblUnitMeasureCode.Text; } else { // it's rendered as combobox because the item has multiple unit measures configured DropDownList cboUnitMeasureCode = ri.FindControl("cboUnitMeasureCode") as DropDownList; if (null != cboUnitMeasureCode && cboUnitMeasureCode.Visible) { unitMeasureCode = cboUnitMeasureCode.SelectedValue; } } if (CommonLogic.IsStringNullOrEmpty(unitMeasureCode)) { throw new ArgumentException("Unit Measure not specified!!!"); } //check if this Order Option has Restricted Quantity and Minimum Order Qty set. decimal itemQuantity = 1; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT iw.RestrictedQuantity, iw.MinOrderQuantity FROM InventoryItem i with (NOLOCK) INNER JOIN InventoryItemWebOption iw with (NOLOCK) ON i.ItemCode = iw.ItemCode AND iw.WebsiteCode = {0} WHERE i.ItemCode = {1}", DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode), DB.SQuote(itemCode))) { if (reader.Read()) { string restrictedQuantitiesValue = DB.RSField(reader, "RestrictedQuantity"); decimal minimumOrderQuantity = Convert.ToDecimal(DB.RSFieldDecimal(reader, "MinOrderQuantity")); if (!CommonLogic.IsStringNullOrEmpty(restrictedQuantitiesValue)) { string[] quantityValues = restrictedQuantitiesValue.Split(','); if (quantityValues.Length > 0) { int ctr = 0; bool loop = true; while (loop) { int quantity = 0; string quantityValue = quantityValues[ctr]; if (int.TryParse(quantityValue, out quantity)) { if (quantity >= minimumOrderQuantity) { itemQuantity = quantity; loop = false; } } ctr++; } } } else { if (minimumOrderQuantity > 0) { itemQuantity = minimumOrderQuantity; } } } } } // Add the selected Order Option.... Guid cartItemId = Guid.Empty; cart.AddItem(ThisCustomer, ThisCustomer.PrimaryShippingAddressID, itemCode, int.Parse(hfCounter.Value), itemQuantity, unitMeasureCode, CartTypeEnum.ShoppingCart); } } } if (hasCheckedOptions) { //refresh the option items RenderOrderOptions(); } if (OrderNotes.Visible) { string sOrderNotes = CommonLogic.CleanLevelOne(OrderNotes.Text); //check the length of order notes //should not exceed 255 characters including spaces if (sOrderNotes.Length > DomainConstants.ORDER_NOTE_MAX_LENGTH) { sOrderNotes = sOrderNotes.Substring(0, DomainConstants.ORDER_NOTE_MAX_LENGTH); } DB.ExecuteSQL( String.Format("UPDATE Customer SET Notes = {0} WHERE CustomerCode = {1}", sOrderNotes.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote()) ); } } bool validated = true; if (cart.InventoryTrimmed) { // inventory got adjusted, send them back to the cart page to confirm the new values! ErrorMsgLabel.Text += Server.UrlDecode(AppLogic.GetString("shoppingcart.cs.43", SkinID, ThisCustomer.LocaleSetting)); validated = false; } cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); if (AppLogic.AppConfigBool("ShowShipDateInCart") && AppLogic.AppConfigBool("ShowStockHints")) { cart.BuildSalesOrderDetails(); } if (cte == CartTypeEnum.WishCart) { Response.Redirect("wishlist.aspx"); } if (cte == CartTypeEnum.GiftRegistryCart) { Response.Redirect("giftregistry.aspx"); } if (DoingFullCheckout) { if (!cart.MeetsMinimumOrderAmount(AppLogic.AppConfigUSDecimal("CartMinOrderAmount"))) { validated = false; } if (!cart.MeetsMinimumOrderQuantity(AppLogic.AppConfigUSInt("MinCartItemsBeforeCheckout"))) { validated = false; } string couponCode = string.Empty; string couponErrorMessage = string.Empty; if (cart.HasCoupon(ref couponCode) && !cart.IsCouponValid(ThisCustomer, couponCode, ref couponErrorMessage)) { validated = false; } //One page checkout is not implemented in mobile. //if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout") && !cart.HasMultipleShippingAddresses()) //{ // Response.Redirect("checkout1.aspx"); //} if (validated) { if (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryBillingAddressID == string.Empty)) // || !ThisCustomer.HasAtLeastOneAddress() { Response.Redirect("selectaddress.aspx?add=true&setPrimary=true&checkout=true&addressType=Billing"); } if (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryShippingAddressID == string.Empty)) // || !ThisCustomer.HasAtLeastOneAddress() { Response.Redirect("selectaddress.aspx?add=true&setPrimary=true&checkout=False&addressType=Shipping"); } if (ThisCustomer.IsNotRegistered || ThisCustomer.PrimaryBillingAddressID == string.Empty || ThisCustomer.PrimaryShippingAddressID == string.Empty || !ThisCustomer.HasAtLeastOneAddress()) { Response.Redirect("checkoutanon.aspx?checkout=true"); } else { if (AppLogic.AppConfigBool("SkipShippingOnCheckout") || !cart.HasShippableComponents()) { cart.MakeShippingNotRequired(); Response.Redirect("checkoutpayment.aspx"); } if ((cart.HasMultipleShippingAddresses() && cart.NumItems() <= AppLogic.MultiShipMaxNumItemsAllowed() && cart.CartAllowsShippingMethodSelection)) { Response.Redirect("checkoutshippingmult.aspx"); } else { Response.Redirect("checkoutshipping.aspx"); } } } InitializePageContent(); } }
public void InitializePageContent() { int AgeCartDays = AppLogic.AppConfigUSInt("AgeCartDays"); if (AgeCartDays == 0) { AgeCartDays = 7; } ShoppingCart.Age(ThisCustomer.CustomerID, AgeCartDays, CartTypeEnum.ShoppingCart); shoppingcartaspx8.Text = AppLogic.GetString("shoppingcart.aspx.6", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx10.Text = AppLogic.GetString("shoppingcart.aspx.8", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx11.Text = AppLogic.GetString("shoppingcart.aspx.9", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx9.Text = AppLogic.GetString("shoppingcart.aspx.7", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs27.Text = AppLogic.GetString("shoppingcart.cs.5", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs28.Text = AppLogic.GetString("shoppingcart.cs.6", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs29.Text = AppLogic.GetString("shoppingcart.cs.7", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs31.Text = AppLogic.GetString("shoppingcart.cs.9", SkinID, ThisCustomer.LocaleSetting); //removed for mobile design //btnUpdateCart1.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart2.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart3.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart4.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); lblOrderNotes.Text = AppLogic.GetString("shoppingcart.cs.13", SkinID, ThisCustomer.LocaleSetting); btnContinueShoppingTop.Text = AppLogic.GetString("shoppingcart.cs.12", SkinID, ThisCustomer.LocaleSetting); //btnContinueShoppingBottom.Text = AppLogic.GetString("shoppingcart.cs.12", SkinID, ThisCustomer.LocaleSetting); btnCheckOutNowTop.Text = AppLogic.GetString("shoppingcart.cs.34", SkinID, ThisCustomer.LocaleSetting); btnCheckOutNowBottom.Text = AppLogic.GetString("shoppingcart.cs.34", SkinID, ThisCustomer.LocaleSetting); OrderNotes.Attributes.Add("onkeyup", "return imposeMaxLength(this, 255);"); RedirectToShoppingCart = false; if (cart == null) { cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); if (!Page.IsPostBack) { if (cart.HasRegistryItems()) { cart.RemoveRegistryItems(); ErrorMsgLabel.Text = AppLogic.GetString("mobile.shoppingcart.error.1", SkinID, ThisCustomer.LocaleSetting).ToHtmlDecode(); ErrorMsgLabel.Visible = true; cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); } string couponCode = string.Empty; string couponErrorMessage = string.Empty; if (cart.HasCoupon(ref couponCode) && cart.IsCouponValid(ThisCustomer, couponCode, ref couponErrorMessage)) { CouponCode.Text = couponCode; } else { if (!couponErrorMessage.IsNullOrEmptyTrimmed()) { ErrorMsgLabel.Text = couponErrorMessage.ToHtmlDecode(); } cart.ClearCoupon(); } //check customer IsCreditHold if (ThisCustomer.IsCreditOnHold && cart != null) { ErrorMsgLabel.Text = AppLogic.GetString("shoppingcart.aspx.18", ThisCustomer.SkinID, ThisCustomer.LocaleSetting); cart.ClearCoupon(); RedirectToShoppingCart = true; } else { if (AppLogic.AppConfigBool("ShowShipDateInCart") && AppLogic.AppConfigBool("ShowStockHints") && cart != null) { cart.BuildSalesOrderDetails(); } } } else { if (string.IsNullOrEmpty(CouponCode.Text)) { cart.ClearCoupon(); } } } if (cart.IsEmpty()) { btnUpdateCart1.Visible = false; AlternativeCheckouts.Visible = false; } else { cart.BuildSalesOrderDetails(); } string BACKURL = AppLogic.GetCartContinueShoppingURL(SkinID, ThisCustomer.LocaleSetting); var html = new StringBuilder(""); html.Append("<script type=\"text/javascript\" >\n"); html.Append("function Cart_Validator(theForm)\n"); html.Append("{\n"); string cartJS = CommonLogic.ReadFile("js/shoppingcart.js", true); foreach (var c in cart.CartItems) { string itemJS = string.Empty; itemJS = cartJS.Replace("%MAX_QUANTITY_INPUT%", AppLogic.MAX_QUANTITY_INPUT_NoDec).Replace("%ALLOWED_QUANTITY_INPUT%", AppLogic.GetQuantityRegularExpression(c.ItemType, true)); itemJS = itemJS.Replace("%DECIMAL_SEPARATOR%", Localization.GetNumberDecimalSeparatorLocaleString(ThisCustomer.LocaleSetting)).Replace("%LOCALE_ZERO%", Localization.GetNumberZeroLocaleString(ThisCustomer.LocaleSetting)); html.Append(itemJS.Replace("%SKU%", c.m_ShoppingCartRecordID.ToString())); } html.Append("return(true);\n"); html.Append("}\n"); html.Append("function imposeMaxLength(theControl, maxLength)\n"); html.Append("{\n"); html.Append("theControl.value = theControl.value.substring(0, maxLength);\n"); html.Append("}\n"); html.Append("</script>\n"); string x = ThisCustomer.LocaleSetting; ValidationScript.Text = html.ToString(); //JSPopupRoutines.Text = AppLogic.GetJSPopupRoutines(); string XmlPackageName = AppLogic.AppConfig("XmlPackage.ShoppingCartPageHeader"); if (XmlPackageName.Length != 0) { XmlPackage_ShoppingCartPageHeader.Text = AppLogic.RunXmlPackage(XmlPackageName, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } string XRI = AppLogic.LocateImageURL(SkinImagePath + "redarrow.gif"); redarrow1.ImageUrl = XRI; redarrow2.ImageUrl = XRI; redarrow3.ImageUrl = XRI; redarrow4.ImageUrl = XRI; ShippingInformation.Visible = (!AppLogic.AppConfigBool("SkipShippingOnCheckout")); AddresBookLlink.Visible = (ThisCustomer.IsRegistered); btnCheckOutNowTop.Visible = (!cart.IsEmpty()); if (!IsPostBack) { if (CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg").Length != 0 || ErrorMsgLabel.Text.Length > 0) { if (CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg").IndexOf("<script>", StringComparison.InvariantCultureIgnoreCase) != -1) { throw new ArgumentException("SECURITY EXCEPTION"); } pnlErrorMsg.Visible = true; ErrorMsgLabel.Text += Server.HtmlEncode(CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg")); } } if (cart.InventoryTrimmed) { pnlInventoryTrimmedError.Visible = true; InventoryTrimmedError.Text = AppLogic.GetString("shoppingcart.aspx.1", SkinID, ThisCustomer.LocaleSetting); } if (cart.MinimumQuantitiesUpdated) { pnlMinimumQuantitiesUpdatedError.Visible = true; MinimumQuantitiesUpdatedError.Text = AppLogic.GetString("shoppingcart.aspx.5", SkinID, ThisCustomer.LocaleSetting); } Decimal MinOrderAmount = AppLogic.AppConfigUSDecimal("CartMinOrderAmount"); if (!cart.MeetsMinimumOrderAmount(MinOrderAmount)) { pnlMeetsMinimumOrderAmountError.Visible = true; string amountFormatted = InterpriseHelper.FormatCurrencyForCustomer(MinOrderAmount, ThisCustomer.CurrencyCode); MeetsMinimumOrderAmountError.Text = String.Format(AppLogic.GetString("shoppingcart.aspx.2", SkinID, ThisCustomer.LocaleSetting), amountFormatted); } int quantityDecimalPlaces = InterpriseHelper.GetInventoryDecimalPlacesPreference(); NumberFormatInfo formatter = (new CultureInfo(ThisCustomer.LocaleSetting)).NumberFormat; // setup the formatter formatter.NumberDecimalDigits = quantityDecimalPlaces; formatter.PercentDecimalDigits = quantityDecimalPlaces; MeetsMinimumOrderQuantityError.Text = string.Empty; decimal MinQuantity = AppLogic.AppConfigUSDecimal("MinCartItemsBeforeCheckout"); if (!cart.MeetsMinimumOrderQuantity(MinQuantity)) { pnlMeetsMinimumOrderQuantityError.Visible = true; MeetsMinimumOrderQuantityError.Text = String.Format(AppLogic.GetString("shoppingcart.aspx.16", SkinID, ThisCustomer.LocaleSetting), MinQuantity.ToString(), MinQuantity.ToString()); } //ShoppingCartGif.ImageUrl = AppLogic.LocateImageURL(SkinImagePath + "ShoppingCart.gif"); CartItems.Text = cart.RenderHTMLLiteral(new MobileShoppingCartPageLiteralRenderer()); //CartSubTotal.Text = cart.RenderHTMLLiteral(new ShoppingCartPageSummaryLiteralRenderer()); if (!cart.IsEmpty()) { //ShoppingCartorderoptions_gif.ImageUrl = AppLogic.LocateImageURL(SkinImagePath + "ShoppingCartorderoptions.gif"); string strXml = String.Empty; pnlErrorMsg.Visible = true; if (AppLogic.AppConfigBool("RequireOver13Checked") && ThisCustomer.IsRegistered && !ThisCustomer.IsOver13) { btnCheckOutNowTop.Enabled = false; btnCheckOutNowBottom.Enabled = false; ErrorMsgLabel.Text = AppLogic.GetString("over13oncheckout", SkinID, ThisCustomer.LocaleSetting); return; } btnCheckOutNowBottom.Enabled = btnCheckOutNowTop.Enabled; DisplayUpsellProducts(cart); if (cart.CouponsAllowed) { pnlCoupon.Visible = true; } else { pnlCoupon.Visible = false; } if (!AppLogic.AppConfigBool("DisallowOrderNotes")) { OrderNotes.Text = cart.OrderNotes; pnlOrderNotes.Visible = true; } else { pnlOrderNotes.Visible = false; } btnCheckOutNowBottom.Visible = true; if (ThisCustomer.IsNotRegistered) { pnlCoupon.Visible = false; pnlOrderNotes.Visible = false; } } else { pnlOrderOptions.Visible = false; pnlUpsellProducts.Visible = false; pnlCoupon.Visible = false; pnlOrderNotes.Visible = false; } btnContinueShoppingTop.OnClientClick = "self.location='" + BACKURL + "'"; CartPageFooterTopic.SetContext = this; String XmlPackageName2 = AppLogic.AppConfig("XmlPackage.ShoppingCartPageFooter"); if (XmlPackageName2.Length != 0) { XmlPackage_ShoppingCartPageFooter.Text = AppLogic.RunXmlPackage(XmlPackageName2, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } }
public void btnNewAddress_Click(object sender, EventArgs e) { if (this.IsValid) { var AddressType = AddressTypeString.TryParseEnum <AddressTypes>(); int OriginalRecurringOrderNumber = CommonLogic.QueryStringUSInt("OriginalRecurringOrderNumber"); bool AllowShipToDifferentThanBillTo = AppLogic.AppConfigBool("AllowShipToDifferentThanBillTo"); if (!AllowShipToDifferentThanBillTo) { //Shipping and Billing address must be the same so save both AddressType = AddressTypes.Shared; } Address thisAddress = new Address(); thisAddress.ThisCustomer = ThisCustomer; thisAddress.CustomerCode = ThisCustomer.CustomerCode; string bCityStates = txtCityStates.Text; string city = string.Empty; string state = string.Empty; if (!string.IsNullOrEmpty(bCityStates)) { var _cityState = bCityStates.Split(','); if (_cityState.Length > 1) { state = _cityState[0].Trim(); city = _cityState[1].Trim(); } else { city = _cityState[0].Trim(); state = string.Empty; } } else { state = AddressControl.state; city = AddressControl.city; } thisAddress.Name = txtContactName.Text; thisAddress.Address1 = AddressControl.street; thisAddress.City = city; thisAddress.State = state; thisAddress.PostalCode = AddressControl.postal; thisAddress.Country = AddressControl.country; thisAddress.Phone = txtContactNumber.Text; if (AppLogic.AppConfigBool("Address.ShowCounty")) { thisAddress.County = AddressControl.county; } switch (AddressType) { case AddressTypes.Shared: thisAddress.ResidenceType = ResidenceTypes.Residential; InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); InterpriseHelper.AddCustomerShipTo(thisAddress); break; case AddressTypes.Billing: thisAddress.ResidenceType = ResidenceTypes.Residential; InterpriseHelper.AddCustomerBillToInfo(ThisCustomer.CustomerCode, thisAddress, setPrimary); break; case AddressTypes.Shipping: if (AddressControl.residenceType == ResidenceTypes.Residential.ToString()) { thisAddress.ResidenceType = ResidenceTypes.Residential; } else { thisAddress.ResidenceType = ResidenceTypes.Commercial; } InterpriseHelper.AddCustomerShipTo(thisAddress); break; } AppLogic.SavePostalCode(thisAddress); Response.Redirect(String.Format("selectaddress.aspx?Checkout={0}&AddressType={1}&ReturnURL={2}", checkOutMode.ToString(), AddressTypeString, Server.UrlEncode(ReturnURL))); } }
protected void btnSubmit_Click(object sender, EventArgs e) { Page.Validate(); if (Page.IsValid) { String FromAddress = txtFromAddress.Text; String ToAddress = txtToAddress.Text; String BotAddress = AppLogic.AppConfig("ReceiptEMailFrom"); String Subject = AppLogic.AppConfig("StoreName") + " - " + SE.MungeName(ProductName); StringBuilder Body = new StringBuilder(4096); List <XmlPackageParam> runtimeParams = new List <XmlPackageParam>(); runtimeParams.Add(new XmlPackageParam("Subject", Subject)); runtimeParams.Add(new XmlPackageParam("ItemCode", ItemCode)); runtimeParams.Add(new XmlPackageParam("UserCode", InterpriseHelper.ConfigInstance.UserCode)); Body.Append( AppLogic.RunXmlPackage( "notification.emailproduct.xml.config", null, ThisCustomer, SkinID, string.Empty, runtimeParams, false, false ) ); try { //get email account information assigned to this website string[] defaultemailacctinfo = InterpriseHelper.GetStoreEmailAccountInfo(); string fromemailacccode = defaultemailacctinfo[0]; if (fromemailacccode.IsNullOrEmptyTrimmed()) { emailproduct_aspx_8.Text = AppLogic.GetString("emailproduct.aspx.24", SkinID, ThisCustomer.LocaleSetting); } else { AppLogic.SendMail(Subject, Body.ToString(), true, BotAddress, BotAddress, ToAddress, ToAddress, String.Empty, AppLogic.AppConfig("MailMe_Server")); emailproduct_aspx_8.Text = AppLogic.GetString("emailproduct.aspx.8", SkinID, ThisCustomer.LocaleSetting); } } catch (Exception ex) { emailproduct_aspx_8.Text = String.Format(AppLogic.GetString("emailproduct.aspx.9", SkinID, ThisCustomer.LocaleSetting), CommonLogic.GetExceptionDetail(ex, "<br>")); } pnlSuccess.Visible = true; pnlRequireReg.Visible = false; pnlEmailToFriend.Visible = false; ReturnToProduct.Text = AppLogic.GetString("emailproduct.aspx.10", SkinID, ThisCustomer.LocaleSetting); ReturnToProduct.NavigateUrl = SE.MakeProductLink(productID.ToString(), SEName); } else { InitializePageContent(); } }