//更新购物车中的AllMoney(实际购买总价),便于后期查看详情 private double UpdateCartAllMoney(DataTable dt) { M_UserInfo mu = buser.GetLogin(); double allmoney = 0; for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; M_Cart cartMod = new M_Cart().GetModelFromReader(dr); M_Product proMod = proBll.GetproductByid(Convert.ToInt32(dr["Proid"])); //根据商品价格类型,看使用 零售|批发|会员|会员组价格 //多区域价格 //if (string.IsNullOrEmpty(Region)) //{ // Region = buser.GetRegion(mu.UserID); //} //double price = regionBll.GetRegionPrice(proMod.ID, proMod.LinPrice, Region, mu.GroupID); ////如果多区域价格未匹配,则匹配会员价 //if (price == proMod.LinPrice) { price = proBll.P_GetByUserType(proMod, mu); } double price = proBll.P_GetByUserType(proMod, mu); //--多价格编号,则使用多价格编号的价钱,ProName(已在购物车页面更新) //double price =proBll.GetPriceByCode(dr["code"], proMod.Wholesalesinfo, ref price); cartMod.AllMoney_Init = cartMod.AllMoney = price * cartMod.Pronum; cartMod.FarePrice = price.ToString("F2"); cartMod.Shijia = price; //----检查有无价格方面的促销活动,如果有,检免多少金额 { W_Filter filter = new W_Filter(); filter.cartMod = cartMod; filter.TypeFilter = "money"; ptBll.WhereLogical(filter); cartMod.AllMoney_Arrive += filter.DiscountMoney; cartMod.ArriveRemark += "促销:" + filter.DiscountMoney.ToString("F2"); } //----计算折扣 cartMod.AllMoney = cartMod.AllMoney_Init - cartMod.AllMoney_Arrive; if (cartMod.AllMoney < 0) { cartMod.AllMoney = 0; } //------------------------------ dr["AllMoney"] = cartMod.AllMoney; cartBll.UpdateByID(cartMod); allmoney += cartMod.AllMoney; } //缓存数据,提交时验证 VerifyDT = CartDT.DefaultView.ToTable(false, verifyFields); return(allmoney); }
/*----------------------------------------------------------------------------------------------------*/ #region 重算商品金额 //更新购物车中的AllMoney(实际购买总价),便于后期查看详情 private double UpdateCartAllMoney(DataTable dt) { M_UserInfo mu = buser.GetLogin(); double allmoney = 0; for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; M_Cart cartMod = new M_Cart().GetModelFromReader(dr); M_Product proMod = proBll.GetproductByid(Convert.ToInt32(dr["Proid"])); //if (price == proMod.LinPrice) { price = proBll.P_GetByUserType(proMod, mu); } //double price = proBll.P_GetByUserType(proMod, mu); double price = proMod.LinPrice; //--多价格编号,则使用多价格编号的价钱,ProName(已在购物车页面更新) //double price =proBll.GetPriceByCode(dr["code"], proMod.Wholesalesinfo, ref price); cartMod.AllMoney = price * cartMod.Pronum; cartMod.AllIntegral = cartMod.AllMoney; cartMod.FarePrice = price.ToString("F2"); //----检查有无价格方面的促销活动,如果有,检免多少金额 { W_Filter filter = new W_Filter(); filter.cartMod = cartMod; filter.TypeFilter = "money"; ptBll.WhereLogical(filter); cartMod.AllMoney = cartMod.AllMoney - filter.DiscountMoney; } //----计算折扣 dr["AllMoney"] = cartMod.AllMoney; dr["AllIntegral"] = cartMod.AllIntegral; //if (proMod.Recommend > 0) //{ // dr["AllMoney"] = (cartMod.AllIntegral - (cartMod.AllIntegral * ((double)proMod.Recommend / 100))); // cartMod.AllMoney = Convert.ToDouble(dr["AllMoney"]); //} cartBll.UpdateByID(cartMod); allmoney += cartMod.AllMoney; } return(allmoney); }
/// <summary> /// 拷贝一份至ZL_CartPro长久保存 /// </summary> public void CopyToCartPro(M_UserInfo mu, DataTable dt, int oid) { B_Product proBll = new B_Product(); string[] fields = "Additional,StoreID,AllMoney_Json,code".Split(','); foreach (string field in fields) { if (!dt.Columns.Contains(field)) { dt.Columns.Add(new DataColumn(field, typeof(string))); } } foreach (DataRow dr in dt.Rows) { M_Product proMod = proBll.GetproductByid(Convert.ToInt32(dr["Proid"])); M_CartPro model = new M_CartPro(); model.Orderlistid = oid; model.ProID = proMod.ID; model.Pronum = DataConverter.CLng(dr["Pronum"]); model.Proname = proMod.Proname; model.Shijia = Convert.ToDouble(dr["FarePrice"]); model.Danwei = proMod.ProUnit; model.Addtime = DateTime.Now; model.StoreID = DataConvert.CLng(dr["StoreID"]); model.code = DataConvert.CStr(dr["code"]); model.Attribute = DataConvert.CStr(dr["ProAttr"]); if (!dt.Columns.Contains("AllMoney")) { model.AllMoney = proMod.LinPrice * model.Pronum; } else { model.AllMoney = Convert.ToDouble(dr["AllMoney"]); } //后期加上记录优惠信息 //model.AllMoney_Init = DataConvert.CDouble(dr["AllMoney_Init"]); //model.AllMoney_Arrive= DataConvert.CDouble(dr["AllMoney_Arrive"]); //model.ArriveRemark = DataConvert.CStr(dr["ArriveRemark"]); //如果非促销组合,则不保存商品简介和详情 if (proMod.Class != 2) { proMod.Procontent = ""; proMod.Proinfo = ""; } #region 保存购买时用户的信息 model.Username = mu.UserName; model.Additional = DataConvert.CStr(dr["Additional"]); model.Remark = DataConvert.CStr(dr["Remark"]); //model.Additional = JsonHelper.GetJson(new string[] { "UserID", "GroupID", "PUserID" }, new object[] { mu.UserID, mu.GroupID, mu.ParentUserID }); #endregion #region 将整个商品信息备份(主要是价格和配置部分) M_Product backup = new M_Product(); backup.ID = proMod.ID; backup.ParentID = proMod.ParentID; backup.Class = proMod.Class; backup.Nodeid = proMod.Nodeid; backup.ModelID = proMod.ModelID; backup.Proname = proMod.Proname; backup.ProClass = proMod.ProClass; backup.Proinfo = proMod.Proinfo; backup.Procontent = proMod.Procontent; backup.ShiPrice = proMod.ShiPrice; backup.LinPrice = proMod.LinPrice; backup.MemberPrice = proMod.MemberPrice; backup.ActPrice = proMod.ActPrice; backup.Wholesales = proMod.Wholesales; backup.Wholesaleone = proMod.Wholesaleone; backup.Wholesalesinfo = proMod.Wholesalesinfo; backup.Thumbnails = proMod.Thumbnails; backup.Recommend = proMod.Recommend; backup.Largess = proMod.Largess; backup.GuessXML = proMod.GuessXML; backup.PointVal = proMod.PointVal; backup.UserShopID = proMod.UserShopID; backup.BookPrice = proMod.BookPrice; backup.UserType = proMod.UserType; backup.UserPrice = proMod.UserPrice; backup.Recycler = proMod.Recycler; backup.FarePrice = proMod.FarePrice; backup.BindIDS = proMod.BindIDS; model.PClass = proMod.Class.ToString(); model.ProInfo = JsonConvert.SerializeObject(backup); #endregion model.ID = GetInsert(model); #region 是否包含赠品,将赠品信息保存 { B_Shop_Present ptBll = new B_Shop_Present(); DataTable ptDT = ptBll.WhereLogical(new W_Filter(dr)); cptBll.BatInsert(model.ID, ptDT); } #endregion } }