protected void Session_Start(Object sender, EventArgs e) { OTCShoppingCart cart = new OTCShoppingCart(Session.SessionID); OTCUser user = new OTCUser(); Session["shoppingCartId"] = cart.AddNew(); Session["user"] = new OTCUser(); Session["SID"] = 0; Session["WantsMembership"] = true; Session["viewedMemberShip"] = false; Session.Timeout = 240; }
protected void btnCheckout_Click(object sender, System.EventArgs e) { if(!(doValidate())) return; int sessionOrderId = Convert.ToInt32(Session["SID"]); ITC itc = new ITC(); OTCShoppingCart cart = new OTCShoppingCart(this.m_shoppingCartId); string promotionKey = Request.Form["promotion"].Length > 0 ? Request.Form["promotion"] : ""; if (promotionKey.Length > 0) { //If we have a promotion, apply here & the next instance will recognize it. We could //have a function that would reload the shopping cart? This is much easier for the sake of time. cart.ApplyPromotion(promotionKey, this.m_shoppingCartId); } //BG - Added swap product sku for international and canadian string shippingType = String.Empty; if (isInternationalAutoShip()) shippingType = "International"; else if (isCanadianAutoShip()) shippingType = "Canadian"; if (!String.IsNullOrEmpty(shippingType)) { foreach (var item in cart.CartItems) swapProduct(shippingType, item.ProductID); } //refresh cart cart = new OTCShoppingCart(this.m_shoppingCartId); OTCSalesOrder order = new OTCSalesOrder(); order.ShoppingCartId = cart.ShoppingCartID; order.OTCPromotionId = cart.OTCPromotionId; order.Address = this.txtAddress.Text; order.City = this.txtCity.Text; order.Country = this.ddCountry.SelectedItem.Text; order.EmailAddress = this.txtEmailAddress.Text; order.FirstName = this.txtFirstName.Text; order.LastName = this.txtLastName.Text; order.Phone = this.txtPhone.Text; order.OrderCost = cart.CartTotal; order.SalesTax = this.m_salesTax; order.OTCSiteId = itc.SiteId; order.ShippingAddress = this.txtShippingAddress.Text; order.ShippingCity = this.txtShippingCity.Text; order.ShippingCost = getShippingCost(this.ddShippingMethods.SelectedItem.Value); order.ShippingFirstName = this.txtShippingFirstName.Text; order.ShippingLastName = this.txtShippingLastName.Text; //order.ShippingState = this.txtShippingStateProvince.Text; order.ShippingState = this.getShippingStateOrProvince(); order.ShippingZip = this.txtShippingZipPostalCode.Text; //bug fix //order.State = this.ddState.SelectedIndex > 0 ? this.ddState.SelectedItem.Text : ""; order.State = this.getBillingStateOrProvince(); order.ShippingPhone = this.txtShippingPhone.Text; order.Zip = this.txtZipPostalCode.Text; order.ShippingCountryId = Convert.ToInt32(this.ddShippingCountry.SelectedValue); order.ShippingCountry = this.ddShippingCountry.SelectedItem.Text; order.ShippingMethod = this.ddShippingMethods.SelectedItem.Text; order.ShippingEmailAddress = this.txtShippingEmailAddress.Text; order.Comments = this.txtComments.Value.Length > 0 ? this.txtComments.Value : ""; int id = order.Add(); OTCCreditCard cc = new OTCCreditCard(); cc.OTCSalesOrderId = order.OTCSalesOrderId; cc.OTCSiteMemberId = order.OTCSiteMemberId; cc.CardNumber = this.txtCardNumber.Text; cc.CardType = this.ddCCType.SelectedValue; cc.ExpirationMonth = this.ddMonth.SelectedValue; cc.ExpirationYear = this.ddYear.SelectedValue; cc.IISSessionId = Session.SessionID; cc.Add(); if(Convert.ToBoolean(Session["WantsMemberShip"])) { OTCPromotion.AddMemberPromotion(order.OTCSiteMemberId,1); } //if(this.txtComments.Value.Length > 0) //{ // OTCContact contact = new OTCContact(); // contact.SiteId = 7; // contact.EmailAddress = this.txtEmailAddress.Text; // contact.FirstName = this.txtFirstName.Text; // contact.LastName = this.txtLastName.Text; // contact.Comment1 = this.txtComments.Value; // contact.Add(); //} try { string sql = ""; this.m_db.Open(); string howDidYouHear = Request.Form["txtHowDidYouHear"]; if(howDidYouHear.Length > 0) { sql = "spInsertOTCSiteMemberQuestionAnswerAffiliation " + "@OTCSiteMemberId = " + order.OTCSiteMemberId + "," + "@OTCSiteMemberQuestionId = 1," + "@OTCSiteMemberAnswerID = 1," + "@AnswerText = " + OTCDatabase.SqlFormat(howDidYouHear) ; this.m_db.SendSQLUpdate(sql); } foreach(string s in Request.Form.ToString().Split('&')){ if(s.IndexOf("mq_") > -1){ int questionId = Convert.ToInt32(s.Split('=')[0].Replace("mq_","")); int answerId = Convert.ToInt32(s.Split('=')[1]); sql = "spInsertOTCSiteMemberQuestionAnswerAffiliation " + "@OTCSiteMemberId = " + order.OTCSiteMemberId + "," + "@OTCSiteMemberQuestionId = " + questionId + "," + "@OTCSiteMemberAnswerID = " + answerId ; this.m_db.SendSQLUpdate(sql); } } sql = "spUpdateCartAbandonmentOrderID @sessionId = " + OTCDatabase.SqlFormat(Session.SessionID); sql += ",@cartId = " + cart.ShoppingCartID; sql += ",@OrderId = " + order.OTCSalesOrderId; this.m_db.SendSQLUpdate(sql); this.m_db.ReleaseConnection(); } catch(Exception ex) {/*do nothing*/} OTCEncryption crypt = new OTCEncryption(7); cart = new OTCShoppingCart(Session.SessionID); Session["shoppingCartId"] = cart.AddNew(); Session["SID"] = 0; if (Page.IsValid) { Session["SessionID"] = Session.SessionID; Response.Redirect("../order/creditcardpost.aspx?OID=" + id.ToString() + "&_ga=" + Request.QueryString["_ga"] + "&site=" + Request.QueryString["site"]); } }
/// <summary> /// /// </summary> private void resetForm() { int salesOrderId = Convert.ToInt32(Session["SID"]); OTCSalesOrder salesOrder = new OTCSalesOrder(salesOrderId); OTCShoppingCart cart = new OTCShoppingCart(Session.SessionID); Session["shoppingCartId"] = cart.AddNew(); cart = new OTCShoppingCart(Convert.ToInt32(Session["shoppingCartId"])); OTCShoppingCartItem item = new OTCShoppingCartItem(); string sql = "SELECT * FROM OTCSalesOrderDetail WHERE OTCSalesOrderId = " + salesOrder.OTCSalesOrderId; this.m_db.Open(); DataTable dt = this.m_db.GetDataset(sql).Tables[0]; this.m_db.ReleaseConnection(); foreach(DataRow dr in dt.Rows) { item.ProductID = Convert.ToInt32(dr["OTCProductId"]); item.ProductPrice = Convert.ToDouble(dr["ItemPrice"]); item.ItemCount = Convert.ToInt32(dr["ItemCount"]); OTCProduct p = new OTCProduct(item.ProductID); if(p.CategoryId == 21) Session["site"] = "bm"; else Session["site"] = "bw"; cart.AddCartItem(item); } OTCSiteMember m = new OTCSiteMember(salesOrder.OTCSiteMemberId); OTCCreditCard c = new OTCCreditCard(salesOrder.OTCSalesOrderId); if(Page.IsPostBack) return; this.txtAddress.Text = m.Address; //this.txtBillingStreet.Text = m.Address; this.txtCardNumber.Text = c.CardNumber; this.txtCity.Text = m.City; this.txtComments.Value = salesOrder.Comments; this.txtEmailAddress.Text = m.EmailAddress; this.txtFirstName.Text = m.FirstName; this.txtLastName.Text = m.LastName; this.txtPhone.Text = salesOrder.Phone; this.txtZipPostalCode.Text = m.Zip; this.txtShippingAddress.Text = salesOrder.ShippingAddress; this.txtShippingCity.Text = salesOrder.City; this.txtShippingEmailAddress.Text = salesOrder.ShippingEmailAddress; this.txtShippingFirstName.Text = salesOrder.ShippingFirstName; this.txtShippingLastName.Text = salesOrder.LastName; this.txtShippingPhone.Text = salesOrder.Phone; this.txtShippingEmailAddress.Text = salesOrder.EmailAddress; this.txtShippingStateProvince.Text = salesOrder.ShippingState; this.txtShippingZipPostalCode.Text = salesOrder.ShippingZip; this.ddState.SQL = "spGetOTCState"; this.ddState.TextField = "StateName"; this.ddState.IdField = "StateAbbreviation"; this.ddState.IntroText = "Please Select"; this.ddState.Fill(); foreach(ListItem i in this.ddState.Items){ if(i.Text == salesOrder.State){ i.Selected = true; break; } } bindStateShipControl(); foreach (ListItem i in this.ddStateShip.Items) { if (i.Text == salesOrder.State) { i.Selected = true; break; } } this.ddCountry.IntroText = "Please Select"; this.ddCountry.SQL = "spGetOTCCountry"; this.ddCountry.TextField = "CountryName"; this.ddCountry.IdField = "CountryAbbreviation"; this.ddCountry.Fill(); foreach(ListItem i in this.ddCountry.Items){ if(i.Text == salesOrder.Country){ i.Selected = true; break; } if (i.Value == "United States") i.Attributes.Add("style", "color:Blue"); } this.ddShippingCountry.IntroText = "Please Select"; this.ddShippingCountry.SQL = "spGetOTCCountry"; this.ddShippingCountry.TextField = "CountryName"; this.ddShippingCountry.IdField = "OTCCountryId"; this.ddShippingCountry.Fill(); foreach(ListItem i in this.ddShippingCountry.Items){ if(i.Text == salesOrder.Country){ i.Selected = true; break; } } this.fillCCLists(); this.fillShippingMethods(); foreach(ListItem i in this.ddCCType.Items){ if(i.Text== c.CardType){ i.Selected = true; break; } } foreach(ListItem i in this.ddMonth.Items){ if(i.Value == c.ExpirationMonth){ i.Selected = true; break; } } foreach(ListItem i in this.ddYear.Items){ if(i.Value == c.ExpirationYear){ i.Selected = true; break; } } double shippingRate = this.getShippingRate(); this.ddShippingMethods.Items.Clear(); ListItem it = new ListItem(); it.Text = "S/H in US - $" + shippingRate; if(salesOrder.ShippingMethod == it.Text) it.Selected = true; it.Value = "10.99"; this.ddShippingMethods.Items.Add(it); it = new ListItem(); it.Text = "Rush S/H in US - " + (shippingRate + 9.99).ToString(); it.Value = "19.99"; if(salesOrder.ShippingMethod == it.Text) it.Selected = true; this.ddShippingMethods.Items.Add(it); it= new ListItem(); it.Text = "S/H to Canada - $" + (shippingRate + 5.00).ToString(); it.Value = (shippingRate + 5.00).ToString(); if(salesOrder.ShippingMethod == it.Text) it.Selected = true; this.ddShippingMethods.Items.Add(it); it = new ListItem(); it.Text = "S/H to other countries and the Carribean-$30.99"; it.Value = "30.99"; if(salesOrder.ShippingMethod == it.Text) it.Selected = true; this.ddShippingMethods.Items.Add(it); }