Beispiel #1
0
        //更新购物车中的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);
        }
Beispiel #2
0
    /*----------------------------------------------------------------------------------------------------*/
    #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);
    }
Beispiel #3
0
        /// <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
            }
        }