protected override void AttachChildControls() { this.litShipTo = (Literal)this.FindControl("litShipTo"); this.litCellPhone = (Literal)this.FindControl("litCellPhone"); this.litAddress = (Literal)this.FindControl("litAddress"); this.rptCartProducts = (VshopTemplatedRepeater)this.FindControl("rptCartProducts"); //商品 this.rptCartGifts = (VshopTemplatedRepeater)this.FindControl("rptCartGifts"); //礼品 this.dropShippingType = (Common_ShippingTypeSelect)this.FindControl("dropShippingType"); this.dropCoupon = (Common_CouponSelect)this.FindControl("dropCoupon"); this.dropRedPager = (Common_UserRedPagerSelect)this.FindControl("dropRedPager"); this.dropStreets = (Common_StreetSelect)this.FindControl("dropStreets"); //街道下拉框 this.dropAgents = (Common_AgentSelect)this.FindControl("dropAgents"); //天使下拉框 this.litOrderTotal = (Literal)this.FindControl("litOrderTotal"); this.litTotalPoint = (Literal)this.FindControl("litTotalPoint"); //所需积分 this.isSelectAgentEnable = (HtmlInputHidden)this.FindControl("isSelectAgentEnable"); this.hiddenCartTotal = (HtmlInputHidden)this.FindControl("hiddenCartTotal"); this.aLinkToShipping = (HtmlAnchor)this.FindControl("aLinkToShipping"); this.groupbuyHiddenBox = (HtmlInputControl)this.FindControl("groupbuyHiddenBox"); this.countdownHiddenBox = (HtmlInputControl)this.FindControl("countdownHiddenBox"); this.cutdownHiddenBox = (HtmlInputControl)this.FindControl("cutdownHiddenBox"); this.couponRecharge = (HtmlInputHidden)this.FindControl("couponRecharge"); this.usercount = (HtmlInputHidden)this.FindControl("usercount"); this.rptAddress = (VshopTemplatedRepeater)this.FindControl("rptAddress"); this.selectShipTo = (HtmlInputHidden)this.FindControl("selectShipTo"); this.regionId = (HtmlInputHidden)this.FindControl("regionId"); Literal literal = (Literal)this.FindControl("litProductTotalPrice"); this.litExemption = (Literal)this.FindControl("litExemption"); this.litAddAddress = (Literal)this.FindControl("litAddAddress"); this.isStreetEnable = (HtmlInputHidden)this.FindControl("isStreetEnable"); this.isStreetMatch = (HtmlInputHidden)this.FindControl("isStreetMatch"); this.claimcode = (HtmlInputHidden)this.FindControl("claimcode"); this.litExemption.Text = "0.00"; IList <ShippingAddressInfo> shippingAddresses = MemberProcessor.GetShippingAddresses(); this.rptAddress.DataSource = from item in shippingAddresses orderby item.IsDefault select item; this.rptAddress.DataBind(); this.rptCartProducts.ItemDataBound += new RepeaterItemEventHandler(this.rptCartProducts_ItemDataBound); ShippingAddressInfo info = shippingAddresses.FirstOrDefault <ShippingAddressInfo>(item => item.IsDefault); if (info == null) { info = (shippingAddresses.Count > 0) ? shippingAddresses[0] : null; } if (info != null) { this.litShipTo.Text = info.ShipTo; this.litCellPhone.Text = info.CellPhone; this.litAddress.Text = info.Address; this.selectShipTo.SetWhenIsNotNull(info.ShippingId.ToString()); this.regionId.SetWhenIsNotNull(info.RegionId.ToString()); } this.litAddAddress.Text = " href='/Vshop/AddShippingAddress.aspx?returnUrl=" + HttpContext.Current.Request.Url.ToString() + "'"; if (CustomConfigHelper.Instance.IsProLa) { this.litAddAddress.Text = " href='/Vshop/AddShippingAddressPro.aspx?returnUrl=" + HttpContext.Current.Request.Url.ToString() + "'"; } if ((shippingAddresses == null) || (shippingAddresses.Count == 0)) { this.Page.Response.Redirect(Globals.ApplicationPath + "/Vshop/AddShippingAddress.aspx?returnUrl=" + HttpContext.Current.Request.Url.ToString()); } else { this.aLinkToShipping.HRef = Globals.ApplicationPath + "/Vshop/ShippingAddresses.aspx?returnUrl=" + HttpContext.Current.Request.Url.ToString(); ShoppingCartInfo shoppingCart = null; string msg = ""; string str = this.Page.Request.QueryString["from"]; if (((int.TryParse(this.Page.Request.QueryString["buyAmount"], out this.buyAmount) && !string.IsNullOrEmpty(this.Page.Request.QueryString["productSku"])) && !string.IsNullOrEmpty(this.Page.Request.QueryString["from"])) && ((this.Page.Request.QueryString["from"] == "signBuy") || (this.Page.Request.QueryString["from"] == "groupBuy") || (this.Page.Request.QueryString["from"] == "countDown") || (this.Page.Request.QueryString["from"] == "cutDown"))) { this.productSku = this.Page.Request.QueryString["productSku"]; //团购//待完善 if ((str == "groupBuy") && int.TryParse(this.Page.Request.QueryString["groupbuyId"], out this.groupBuyId)) { this.groupbuyHiddenBox.SetWhenIsNotNull(this.groupBuyId.ToString()); shoppingCart = ShoppingCartProcessor.GetGroupBuyShoppingCart(this.groupBuyId, this.productSku, this.buyAmount); } //限时抢购 else if ((str == "countDown") && int.TryParse(this.Page.Request.QueryString["countdownId"], out this.countDownId)) { this.countdownHiddenBox.SetWhenIsNotNull(this.countDownId.ToString()); CountDownInfo info4 = ProductBrowser.GetCountDownInfo(this.countDownId, this.buyAmount, out msg); if (info4 == null) { base.GotoResourceNotFound(msg); return; } if (string.IsNullOrEmpty(this.productSku) || (this.productSku.Split(new char[] { '_' })[0] != info4.ProductId.ToString())) { base.GotoResourceNotFound("错误的商品信息"); return; } shoppingCart = ShoppingCartProcessor.GetCountDownShoppingCart(this.productSku, this.buyAmount); } //砍价 else if ((str == "cutDown") && int.TryParse(this.Page.Request.QueryString["cutDownId"], out this.cutDownId)) { this.cutdownHiddenBox.SetWhenIsNotNull(this.cutDownId.ToString()); CutDownInfo info5 = PromoteHelper.GetCutDown(this.cutDownId); if (info5 == null) { base.GotoResourceNotFound(); return; } if (string.IsNullOrEmpty(this.productSku) || (this.productSku.Split(new char[] { '_' })[0] != info5.ProductId.ToString())) { base.GotoResourceNotFound("错误的商品信息"); return; } shoppingCart = ShoppingCartProcessor.GetCutDownShoppingCart(this.productSku, this.buyAmount, info5.CutDownId); } else { shoppingCart = ShoppingCartProcessor.GetShoppingCart(this.productSku, this.buyAmount); } } else { shoppingCart = ShoppingCartProcessor.GetShoppingCart(); } //获取/新建了购物车对象后,进行商品价格根据分销商特殊优惠设置进行减价处理. MemberInfo currentMember = MemberProcessor.GetCurrentMember(); int distributorid = Globals.GetCurrentDistributorId(); //根据分销商的特殊优惠设置进行计算返佣 switch (SettingsManager.GetMasterSettings(false).DistributorCutOff) { case "default": //直接退出,没有任何操作一切照常 break; case "bycostprice": //根据进货价进行返佣 if (currentMember.UserId != distributorid) //如果不是分销商购买自己的产品,则退出特殊处理 { break; } for (int i = 0; i < shoppingCart.LineItems.Count; i++) { shoppingCart.LineItems[i].AdjustedPrice = ProductHelper.GetSkuCostPrice(shoppingCart.LineItems[i].SkuId); } break; default: //根据指定折扣进行返佣(此种情况下,不存在直接分佣) if (currentMember.UserId != distributorid) //如果不是分销商购买自己的产品,则退出特殊处理 { break; } decimal rate = Convert.ToDecimal(SettingsManager.GetMasterSettings(false).DistributorCutOff) / 100; //获取折扣比例 for (int i = 0; i < shoppingCart.LineItems.Count; i++) { shoppingCart.LineItems[i].AdjustedPrice = shoppingCart.LineItems[i].AdjustedPrice * rate; } break; } if (shoppingCart != null) { //根据购物车内商品名是否为[会员充值]和是否开启了会员充值送优惠券的功能来给隐藏域赋值,前端js再进行相应的隐藏显示,默认选中等处理 if (shoppingCart.LineItems.Where(n => n.Name == "会员充值") != null && shoppingCart.LineItems.Where(n => n.Name == "会员充值").Count() == 1 && CustomConfigHelper.Instance.CouponRecharge) { this.couponRecharge.Value = "1"; } else { this.couponRecharge.Value = "0"; } //提交订单前先检查是否达到规则要求上限 if (!TradeHelper.CheckShoppingStock(shoppingCart, out msg)) { this.ShowMessage("订单中有商品(" + msg + ")库存不足", false); if (!this.Page.ClientScript.IsClientScriptBlockRegistered("AlertStockScript")) { StringBuilder builder = new StringBuilder(); builder.AppendLine("var stockError = true;"); builder.AppendLine(string.Format("var stockErrorInfo=\"订单中有商品({0})库存不足,请返回购物车修改库存.\";", msg)); this.Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "AlertStockScript", "var stockError=true;function AlertStock(){alert('订单中有商品(" + msg + ")库存不足,请返回购物车修改库存.');}", true); } } //当前用户已使用的优惠券信息 DataTable userCoupon = CouponHelper.GetUserCoupons(currentMember.UserId, 2); //代表已使用的 if (userCoupon.Rows.Count > 0) { this.usercount.Value = "1"; } else { ////把当前用户所有优惠券信息取出来 DataTable userCouponList = CouponHelper.GetUserCoupons(currentMember.UserId, 1); //1代表未使用的,有效期内的 ////对当前购物车shoppingCart.LineItems进行循环查找,如果优惠券的categoryId与商品的品类不匹配,把优惠券的claimcode取出来放到隐藏域内,传递到前台,前台再进行相关的隐藏操作 foreach (ShoppingCartItemInfo shopp in shoppingCart.LineItems) { foreach (DataRow coupon in userCouponList.Rows) { if (!Convert.IsDBNull(coupon["CategoryId"])) { int cp = Convert.ToInt32(coupon["CategoryId"]); if (shopp.CategoryId != cp && cp != 0) { claimcode.Value += coupon["ClaimCode"].ToString() + ";"; } } } } } claimcode.Value = claimcode.Value.TrimEnd(';'); this.rptCartProducts.DataSource = shoppingCart.LineItems; this.rptCartProducts.DataBind(); //绑定礼品 this.rptCartGifts.DataSource = shoppingCart.LineGifts; this.rptCartGifts.DataBind(); //绑定配送方式 this.dropShippingType.ShoppingCartItemInfo = shoppingCart.LineItems; this.dropShippingType.RegionId = 0; this.dropShippingType.Weight = shoppingCart.Weight; this.dropCoupon.CartTotal = shoppingCart.GetTotal(); //addby hj 2015-04-23(迪蔓) this.isSelectAgentEnable.Value = CustomConfigHelper.Instance.SelectServerAgent.ToString(); //addby hj 2015-12-25(爽爽挝咖) //给出是否开启街道选择和门店配送功能的标识 this.isStreetEnable.Value = Hidistro.ControlPanel.Config.CustomConfigHelper.Instance.AutoShipping.ToString(); //绑定街道下拉框 if (this.isStreetEnable.Value == "True") { DataTable dtStreetsInfo = Hidistro.ControlPanel.Sales.SalesHelper.GetStreetInfo(regionId.Value.ToString()); if (dtStreetsInfo.Rows.Count > 0) { this.dropStreets.StreetsInfo = dtStreetsInfo; this.isStreetMatch.Value = "True"; } else//此种情况下消费者的所在区域内并没有相应的配送店铺,给出提示,页面无法提交 { this.isStreetMatch.Value = "False"; } } string noCouponIds = string.Empty; string tempCategoryId = string.Empty; DataTable dtDB = CouponHelper.GetCouponAllCate(); //new DataTable();//设置的使用权限的有效期内的优惠卷 两表关联信息 foreach (DataRow dr in dtDB.Rows) { tempCategoryId = "," + dr["CategoryIds"].ToString() + ","; decimal dAmount = (decimal)dr["Amount"]; //计算排除掉不能参与的分类金额 //shoppingCart.LineItems decimal dAmount2 = dropCoupon.CartTotal; foreach (ShoppingCartItemInfo scii in shoppingCart.LineItems) { if (tempCategoryId.IndexOf("," + scii.CategoryId + ",") > -1) { dAmount2 -= scii.SubTotal; } } //待排除的 if (dAmount > dAmount2) { noCouponIds += dr["CouponId"] + ","; } } if (noCouponIds != "") { noCouponIds = noCouponIds.TrimEnd(','); } this.dropCoupon.CouponIds = noCouponIds; this.dropRedPager.CartTotal = shoppingCart.GetTotal(); this.hiddenCartTotal.Value = literal.Text = shoppingCart.GetTotal().ToString("F2"); decimal num = this.DiscountMoney(shoppingCart.LineItems); this.litOrderTotal.Text = (shoppingCart.GetTotal() - num).ToString("F2"); this.litTotalPoint.Text = getTotalPoints(shoppingCart).ToString(); this.litExemption.Text = num.ToString("0.00"); } else { this.Page.Response.Redirect("/Vshop/ShoppingCart.aspx"); } PageTitle.AddSiteNameTitle("订单确认"); } }