コード例 #1
0
        public void GetDonate(double Money)
        {
            if (Money < 0.01)
            {
                function.WriteErrMsg("请输入有效的金额");
            }
            //mu = buser.SelReturnModel(Identity);
            mu = buser.GetLogin();
            M_OrderList Odata = orderBll.NewOrder(mu, M_OrderList.OrderEnum.Donate);

            Odata.Ordermessage   = "打赏:" + Money + "元";
            Odata.Ordersamount   = Money;
            Odata.Userid         = mu.IsNull ? Int32.MaxValue : mu.UserID;
            Odata.Balance_price  = Odata.Ordersamount;
            Odata.Specifiedprice = Odata.Ordersamount;
            Odata.id             = orderBll.Adds(Odata);

            M_Payment payMod = payBll.CreateByOrder(Odata);

            payMod.Remark    = "打赏:" + Money + "元";
            payMod.SysRemark = "donate";
            payMod.PaymentID = payBll.Add(payMod);

            //判断是不是来自微信
            if (DeviceHelper.GetBrower() == DeviceHelper.Brower.Micro)
            {
                //弹出微信支付窗口
                Response.Redirect("/PayOnline/wxpay_mp.aspx?PayNo=" + payMod.PayNo);
            }
            else
            {
                Response.Redirect("/PayOnline/Orderpay.aspx?PayNo=" + payMod.PayNo + "&OrderCode=" + Odata.OrderNo);
            }
        }
コード例 #2
0
        protected void Submit_B_Click(object sender, EventArgs e)
        {
            M_UserInfo mu = buser.SelReturnModel(DataConvert.CLng(UserID_Hid.Value));

            if (mu.IsNull)
            {
                function.WriteErrMsg("订单所绑定的用户[" + UserID_T.Text + "]不存在");
            }
            if (string.IsNullOrEmpty(ProID_Hid.Value) || string.IsNullOrEmpty(ProTime_Hid.Value))
            {
                function.WriteErrMsg("请先选择需要绑定的商品");
            }
            M_Product proMod = proBll.GetproductByid(Convert.ToInt32(ProID_Hid.Value));

            if (proMod == null)
            {
                function.WriteErrMsg("商品不存在");
            }
            DataRow timeMod = idcBll.GetSelTime(proMod, ProTime_Hid.Value);

            M_OrderList Odata = orderBll.NewOrder(mu, M_OrderList.OrderEnum.IDC);

            Odata.Ordermessage = Ordermessage_T.Text;//订货留言
            Odata.Ordersamount = DataConvert.CFloat(Price_T.Text);
            if (Odata.Ordersamount <= 0)
            {
                Odata.Ordersamount = Convert.ToDouble(timeMod["price"]);
            }
            Odata.Balance_price  = Odata.Ordersamount;
            Odata.Specifiedprice = Odata.Ordersamount;
            if (Odata.Ordersamount <= 0)
            {
                function.WriteErrMsg("未为商品指定价格");
            }
            Odata.id = orderBll.Adds(Odata);
            //-----------------------------
            M_Order_IDC idcMod = new M_Order_IDC();

            idcMod.ProID     = proMod.ID;
            idcMod.OrderNo   = Odata.OrderNo;
            idcMod.ProInfo   = idcBll.ToProInfoStr(timeMod);
            idcMod.Domain    = Domain_T.Text;
            idcMod.AdminName = "webmater@" + idcMod.Domain;
            idcMod.STime     = Convert.ToDateTime(STime_T.Text);
            idcMod.ETime     = idcMod.STime;
            idcMod.ID        = idcBll.Insert(idcMod);
            //-----------------------------
            DataTable prodt = new DataTable();

            prodt.Columns.Add(new DataColumn("proid", typeof(int)));
            prodt.Columns.Add(new DataColumn("pronum", typeof(int)));
            DataRow dr = prodt.NewRow();

            dr["proid"]  = proMod.ID;
            dr["pronum"] = 1;
            prodt.Rows.Add(dr);
            cartProBll.CopyToCartPro(mu, prodt, Odata.id);
            function.WriteSuccessMsg("订单添加成功!", "IDCOrder.aspx?OrderType=" + OrderType);
        }
コード例 #3
0
        protected void Submit_Btn_Click(object sender, EventArgs e)
        {
            M_UserInfo mu      = buser.GetLogin();
            M_Product  proMod  = proBll.GetproductByid(ProID);
            DataRow    timeMod = idcBll.GetSelTime(proMod, IDCTime_DP.SelectedValue);
            //-----------------------------------
            M_OrderList Odata = orderBll.NewOrder(mu, M_OrderList.OrderEnum.IDC);

            Odata.Balance_price = DataConvert.CDouble(timeMod["price"]);//需付金额
            Odata.Ordersamount  = Odata.Balance_price;
            //-----------------------------
            M_Order_IDC idcMod = new M_Order_IDC();

            idcMod.OrderNo   = Odata.OrderNo;
            idcMod.ProID     = proMod.ID;
            idcMod.ProInfo   = idcBll.ToProInfoStr(timeMod);
            idcMod.Domain    = BindDomain_T.Text;
            idcMod.AdminName = "webmater@" + idcMod.Domain;
            idcMod.AdminPwd  = Pwd_T.Text;
            idcMod.Remind    = OPSys_DP.SelectedValue + "|" + ServerPos_DP.SelectedValue + "|" + Record_T.Text;
            idcMod.ID        = idcBll.Insert(idcMod);
            Odata.id         = orderBll.Adds(Odata);
            //-----------------------------
            M_CartPro cpMod = new M_CartPro();

            cpMod.Orderlistid = Odata.id;
            cpMod.ProID       = proMod.ID;
            cpMod.Pronum      = 1;
            cpMod.Proname     = proMod.Proname;
            cpMod.Username    = mu.UserName;
            cpMod.Shijia      = Convert.ToDouble(timeMod["price"]);
            cpMod.AllMoney    = Convert.ToDouble(timeMod["price"]);
            cpMod.code        = timeMod["time"].ToString();
            cartProBll.GetInsert(cpMod);
            //-----------------------------
            M_Payment payMod = payBll.CreateByOrder(Odata);

            payBll.Add(payMod);
            Response.Redirect("/PayOnline/Orderpay.aspx?PayNo=" + payMod.PayNo);
        }
コード例 #4
0
        //确定购买
        protected void sureBtn_Click(object sender, EventArgs e)
        {
            M_UserInfo mu = buser.GetLogin();

            proModel = proBll.GetproductByid(Convert.ToInt32(dataField.Value));
            int num = Convert.ToInt32(proNum.Text.Trim());

            Odata.Ordersamount = Convert.ToDouble(num * proModel.LinPrice);
            Odata.OrderNo      = B_OrderList.CreateOrderNo(M_OrderList.OrderEnum.IDC);
            Odata.Ordertype    = (int)M_OrderList.OrderEnum.IDC;;//服务,主机等订单
            Odata.Receiver     = mu.UserName;
            Odata.Reuser       = mu.UserName;
            Odata.Userid       = mu.UserID;
            //Odata.AddUser = siteListDP.SelectedValue;//跟单员,此处记录对应ID
            //Odata.Internalrecords = siteListDP.SelectedItem.Text;//内部记录,此处用来存与主机的关联信息
            //添加订单,添加数据库购物车
            Odata.id = OCl.Adds(Odata);
            if (Odata.id > 0)
            {
                //写入购物车记录
                M_CartPro cartModel = new M_CartPro();
                cartModel.Orderlistid = Odata.id;
                cartModel.ProID       = proModel.ID;
                cartModel.Proname     = proModel.Proname;
                cartModel.Shijia      = proModel.LinPrice;
                cartModel.Pronum      = num;
                cartModel.AllMoney    = Odata.Ordersamount;
                cartModel.EndTime     = DateTime.Now;//支付时再更新日期, proBll.GetEndTime(proModel, num);
                cartModel.type        = (int)M_OrderList.OrderEnum.IDC;
                bcart.Add(cartModel);
                Response.Redirect("~/PayOnline/Orderpay.aspx?OrderCode=" + Odata.OrderNo);
            }
            else
            {
                function.WriteErrMsg("目标订单:" + Odata.OrderNo + "不存在!!!");
            }
        }
コード例 #5
0
        protected void Submit_B_Click(object sender, EventArgs e)
        {
            M_OrderList Odata = new M_OrderList();

            //int uid = DataConvert.CLng(UserID_Hid.Value);
            M_UserInfo mu = buser.SelReturnModel(DataConvert.CLng(UserID_Hid.Value));

            if (mu.IsNull)
            {
                function.WriteErrMsg("订单所绑定的用户[" + UserID_T.Text + "]不存在");
            }
            Odata.Ordertype         = DataConvert.CLng(OrderType_DP.SelectedValue);
            Odata.OrderNo           = B_OrderList.CreateOrderNo((M_OrderList.OrderEnum)Odata.Ordertype);
            Odata.StoreID           = DataConvert.CLng(StoreID_T.Text);
            Odata.Receiver          = ReceUser_T.Text;
            Odata.Reuser            = ReceUser_T.Text;
            Odata.Phone             = Mobile_T.Text;
            Odata.MobileNum         = Mobile_T.Text;
            Odata.Shengfen          = Request.Form["province_dp"];
            Odata.Chengshi          = Request.Form["city_dp"];
            Odata.Diqu              = Request.Form["county_dp"];
            Odata.Jiedao            = Address_T.Text;
            Odata.ZipCode           = ZipCode_T.Text;
            Odata.Invoiceneeds      = Invoiceneeds.Checked ? 1 : 0;
            Odata.Rename            = mu.UserName;
            Odata.Outstock          = 0;                   //缺货处理
            Odata.Ordermessage      = Ordermessage_T.Text; //订货留言
            Odata.Balance_price     = DataConvert.CFloat(Price_T.Text);
            Odata.Freight           = DataConvert.CFloat(Freight_T.Text);
            Odata.Ordersamount      = Odata.Balance_price + Odata.Freight; //订单金额
            Odata.Specifiedprice    = Odata.Ordersamount;
            Odata.Receivablesamount = 0;                                   //收款金额
            Odata.Developedvotes    = 0;
            Odata.OrderStatus       = DataConvert.CLng(OrderStatus_DP.SelectedValue);
            Odata.PayType           = DataConvert.CLng(PayType_Rad.SelectedValue);
            Odata.Paymentstatus     = DataConvert.CLng(Pay_Rad.SelectedValue);
            Odata.StateLogistics    = DataConvert.CLng(Exp_Rad.SelectedValue);
            Odata.AddTime           = DateTime.Now;
            Odata.AddUser           = mu.UserName;;
            Odata.Userid            = mu.UserID;
            Odata.Merchandiser      = "";                //跟单员
            Odata.Internalrecords   = "";                //内部记录
            Odata.id             = orderBll.Adds(Odata); //添加到订单表
            Odata.IsCount        = false;
            Odata.Freight_remark = " ";
            Odata.Balance_remark = "";
            Odata.Promoter       = 0;
            //将数据添加至zl_cartpro永久保存
            CopyToCartPro(Odata);
            string rurl = "";

            if (OrderType == (int)M_OrderList.OrderEnum.IDC || OrderType == (int)M_OrderList.OrderEnum.IDCRen)
            {
                rurl = "OtherOrder/IDCOrder.aspx?OrderType=" + OrderType;
            }
            else
            {
                rurl = "OrderList.aspx?OrderType=" + OrderType;
            }
            function.WriteSuccessMsg("订单添加成功!", rurl);
        }
コード例 #6
0
    //提交订单
    protected void AddOrder_Btn_Click(object sender, EventArgs e)
    {
        if (Address_Div.Visible && DataConvert.CLng(Request.Form["address_rad"]) < 1)
        {
            function.WriteErrMsg("尚未选定收货地址");
        }
        //1,生成订单,2,关联购物车中商品为已绑定订单
        M_UserInfo  mu      = buser.GetLogin(false);
        M_UserRecei receMod = receBll.GetSelect(Convert.ToInt32(Request.Form["address_rad"]), mu.UserID);
        DataTable   cartDT  = cartBll.SelByCookID(CartCookID, ProClass, ids);//需要购买的商品

        if (cartDT.Rows.Count < 1)
        {
            function.WriteErrMsg("你尚未选择商品,<a href='/User/Order/OrderList.aspx'>查看我的订单</a>");
        }
        //------生成订单前检测区
        foreach (DataRow dr in cartDT.Rows)
        {
            if (!HasStock(dr["Allowed"], DataConvert.CLng(dr["stock"]), Convert.ToInt32(dr["Pronum"])))
            {
                function.WriteErrMsg("购买失败," + dr["proname"] + "的库存数量不足");
            }
        }
        //------检测End
        //按店铺生成订单,统一存ZL_Orderinfo
        DataTable storeDT = cartDT.DefaultView.ToTable(true, "StoreID");
        M_Payment payMod  = new M_Payment();

        payMod.PayNo = payBll.CreatePayNo();
        List <M_OrderList> orderList = new List <M_OrderList>();//用于生成临时订单,统计计算(Disuse)

        foreach (DataRow dr in storeDT.Rows)
        {
            #region 暂不使用字段
            //Odata.province = this.DropDownList1.SelectedValue;
            //Odata.city = this.DropDownList2.SelectedValue;//将地址省份与市ID存入,XML数据源
            //Odata.Guojia = "";//国家
            //Odata.Chengshi = DropDownList2.SelectedItem.Text;//城市
            //Odata.Diqu = DropDownList3.SelectedItem.Text;//地区
            //Odata.Delivery = DataConverter.CLng(Request.Form["Delivery"]);
            //Odata.Deliverytime = DataConverter.CLng(this.Deliverytime.Text);
            //Odata.Mobile = receMod.MobileNum;
            #endregion
            M_OrderList Odata = new M_OrderList();
            Odata.Ordertype = OrderHelper.GetOrderType(ProClass);
            Odata.OrderNo   = B_OrderList.CreateOrderNo((M_OrderList.OrderEnum)Odata.Ordertype);
            Odata.StoreID   = Convert.ToInt32(dr["StoreID"]);
            cartDT.DefaultView.RowFilter = "StoreID=" + Odata.StoreID;
            DataTable storeCartDT = cartDT.DefaultView.ToTable();
            switch (ProClass)//旅游机票等,以联系人信息为地址
            {
            case 7:
            case 8:
                M_Cart_Travel   model = JsonConvert.DeserializeObject <M_Cart_Travel>(storeCartDT.Rows[0]["Additional"].ToString());
                M_Cart_Contract user  = model.Contract[0];
                Odata.Receiver  = user.Name;
                Odata.Reuser    = user.Name;
                Odata.Phone     = user.Mobile;
                Odata.MobileNum = user.Mobile;
                Odata.Email     = user.Email;
                break;

            default:    //普通订单
                Odata.Receiver  = receMod.ReceivName;
                Odata.Reuser    = receMod.ReceivName;
                Odata.Phone     = receMod.phone;
                Odata.MobileNum = receMod.MobileNum;
                Odata.Email     = receMod.Email;
                Odata.Shengfen  = receMod.Provinces;
                Odata.Jiedao    = receMod.Street;
                Odata.ZipCode   = receMod.Zipcode;
                break;
            }
            Odata.Invoiceneeds    = DataConverter.CLng(Request.Form["invoice_rad"]);//是否需开发票
            Odata.Invoice         = Odata.Invoiceneeds == 0 ? "" : InvoTitle_T.Text + "||" + Invoice_T.Text;
            Odata.Rename          = mu.UserName;
            Odata.Outstock        = 0;              //缺货处理
            Odata.Ordermessage    = ORemind_T.Text; //订货留言
            Odata.Merchandiser    = "";             //跟单员
            Odata.Internalrecords = "";             //内部记录
            Odata.IsCount         = false;
            //-----金额计算
            Odata.Balance_price     = GetTotalMoney(storeCartDT);
            Odata.Freight           = GetFarePrice(storeCartDT, Odata.StoreID); //运费计算
            Odata.Ordersamount      = Odata.Balance_price + Odata.Freight;      //订单金额
            Odata.AllMoney_Json     = orderCom.GetTotalJson(storeCartDT);       //附加需要的虚拟币
            Odata.Specifiedprice    = Odata.Ordersamount;                       //订单金额;
            Odata.Receivablesamount = 0;                                        //收款金额
            Odata.Developedvotes    = 0;
            Odata.OrderStatus       = (int)M_OrderList.StatusEnum.Normal;       //订单状态
            Odata.Paymentstatus     = (int)M_OrderList.PayEnum.NoPay;           //付款状态
            Odata.StateLogistics    = 0;                                        //物流状态
            Odata.Signed            = 0;                                        //签收
            Odata.Settle            = 0;                                        //结清
            Odata.Aside             = 0;                                        //作废
            Odata.Suspended         = 0;                                        //暂停
            Odata.AddTime           = DateTime.Now;
            Odata.AddUser           = mu.UserName;;
            Odata.Userid            = mu.UserID;
            Odata.Integral          = DataConverter.CLng(Request.QueryString["jifen"]);
            Odata.Freight_remark    = " ";
            Odata.Balance_remark    = "";
            Odata.Promoter          = 0;
            Odata.id = orderBll.Adds(Odata);
            cartProBll.CopyToCartPro(mu, storeCartDT, Odata.id);
            orderList.Add(Odata);
            orderCom.SendMessage(Odata, null, "ordered");
            userappMod = userappBll.SelModelByUid(buser.GetLogin().UserID, "wechat");
            if (userappMod != null)
            {
                //function.WriteErrMsg(Odata.AddTime.ToString("yyyy年MM月dd日 HH:mm:ss"));
                WxAPI  wxapi = WxAPI.Code_Get(1);
                string json  = "{ \"touser\":\"" + userappMod.OpenID + "\",\"template_id\":\"6kw4rUCX3IpE7k8_kn3ocmaaQBZF4blWq25ualnz1qw\",\"url\":\"http://www.wodian8.com/User/Order/OrderList1.aspx\",\"data\":{\"first\": {\"value\":\"订单提交成功!\",\"color\":\"#173177\"},\"keyword1\":{\"value\":\"" + Odata.AddTime.ToString("yyyy年MM月dd日 HH:mm:ss") + "\",\"color\":\"#173177\"},\"keyword2\": {\"value\":\"" + Odata.Ordersamount.ToString("0.00") + "元\",\"color\":\"#173177\"},\"keyword3\": {\"value\":\"" + GetProname(Odata.id) + "\",\"color\":\"#173177\"},\"keyword4\": {\"value\":\"" + Odata.Shengfen + Odata.Jiedao + "\",\"color\":\"#173177\"},\"remark\":{\"value\":\"您好,订单提交成功,请尽快付款!\",\"color\":\"#173177\"}}}";
                wxapi.SendTlpMsg(json);
                //wxapi.SendMsg(userappMod.OpenID, "你已下订单,订单号为:" + Odata.OrderNo);
            }
        }
        cartBll.DelByids(ids);
        //-----------------订单生成后处理
        //进行减库存等操作
        foreach (DataRow dr in cartDT.Rows)
        {
            M_Product model = proBll.GetproductByid(Convert.ToInt32(dr["Proid"]));
            model.Stock = model.Stock - DataConvert.CLng(dr["Pronum"]);
            SqlHelper.ExecuteSql("Update ZL_Commodities Set Stock=" + model.Stock + " Where ID=" + model.ID);
        }
        //生成支付单,处理优惠券,并进入付款步骤
        foreach (M_OrderList model in orderList)
        {
            payMod.PaymentNum += model.OrderNo + ",";
            payMod.MoneyPay   += model.Ordersamount;
        }
        //优惠券
        if (!string.IsNullOrEmpty(Arrive_T.Text))
        {
            double arriveAmount = arriveBll.UserArrive(Arrive_T.Text, Arrive_Pwd.Text);
            payMod.MoneyPay     = payMod.MoneyPay - arriveAmount;
            payMod.ArriveMoney  = arriveAmount;
            payMod.ArriveDetail = Arrive_T.Text + "|" + Arrive_Pwd.Text;
        }
        //积分处理
        if (point_body.Visible && DataConvert.CLng(Point_T.Text) > 0)
        {
            int point    = DataConvert.CLng(Point_T.Text);
            int maxPoint = (int)((SiteConfig.ShopConfig.PointRatiot * 0.01) * (double)payMod.MoneyPay / SiteConfig.ShopConfig.PointRate);
            //if (point <= 0) { function.WriteErrMsg("积分数值不正确"); }
            if (point > mu.UserExp)
            {
                function.WriteErrMsg("您的积分不足!");
            }
            if (point > maxPoint)
            {
                function.WriteErrMsg("积分不能大于可兑换金额!");
            }
            //生成支付单时扣除用户积分
            buser.ChangeVirtualMoney(mu.UserID, new M_UserExpHis()
            {
                ScoreType = (int)M_UserExpHis.SType.Point, score = -point, detail = "积分抵扣,支付单号:" + payMod.PayNo
            });
            payMod.MoneyPay = payMod.MoneyPay - (point * SiteConfig.ShopConfig.PointRate);
            payMod.UsePoint = point;
        }
        if (payMod.MoneyPay <= 0)
        {
            payMod.MoneyPay = 0.01;
        }
        payMod.PaymentNum = payMod.PaymentNum.TrimEnd(',');
        payMod.Remark     = cartDT.Rows.Count > 1 ? "[" + cartDT.Rows[0]["ProName"] as string + "]等" : cartDT.Rows[0]["ProName"] as string;
        payMod.UserID     = mu.UserID;
        payMod.Status     = 1;
        payMod.PaymentID  = payBll.Add(payMod);

        string redirect_uri = HttpUtility.UrlEncode("http://www.wodian8.com/Payonline/wxpayonline.aspx?PayNo=" + payMod.PayNo);
        string url          = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8c5c2dc7b10a36f3&redirect_uri=" + redirect_uri + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        //Response.Redirect(url);
        Response.Redirect("/PayOnline/Orderpay.aspx?PayNo=" + payMod.PayNo);
    }
コード例 #7
0
        //自由拆分订单
        protected void confirm_Click(object sender, EventArgs e)
        {
            M_OrderList list   = new M_OrderList();
            int         ordid  = Convert.ToInt32(Request["id"]);
            M_OrderList row    = oll.SelReturnModel(ordid);
            string      ordno  = row.OrderNo;
            string      ordno1 = ordno + "01";
            string      ordno2 = ordno + "02";
            DataTable   dt     = Sql.Sel("ZL_CartPro", "Orderlistid=" + ordid, "");

            if (dt.Rows.Count <= 1)
            {
                Response.Write("<script type=text/javascript>alert('只有一个商品,不能再拆分了!');</script>");
                return;
            }
            else
            {
                string id         = Request["Item"];
                int    ordlistid1 = 0;
                int    ordlistid2 = 0;
                if (string.IsNullOrEmpty(Request["Item"]))
                {
                    return;
                }
                else
                {
                    string[] pid = id.Split(',');
                    if (CB_Yes.Checked)
                    {
                        for (int k = 0; k < dt.Rows.Count; k++)
                        {
                            string carpid  = dt.Rows[k]["ProID"].ToString();
                            int    cartpid = DataConverter.CLng(carpid);
                            int    arr     = Array.IndexOf(pid, carpid);
                            if (arr != -1)
                            {
                                //throw new Exception(Array.IndexOf(pid, carpid).ToString());
                            }
                            else
                            {
                            }
                        }
                        function.WriteSuccessMsg("恭喜,订单分拆成功!", "/manage/Shop/Orderlist.aspx?type=0");
                    }
                    else if (CB_No.Checked)
                    {
                        for (int k = 0; k < dt.Rows.Count; k++)
                        {
                            string carpid  = dt.Rows[k]["ProID"].ToString();
                            int    cartpid = DataConverter.CLng(carpid);
                            int    arr     = Array.IndexOf(pid, carpid);
                            if (arr != -1)
                            {
                                if (ordlistid1 == 0)
                                {
                                    row.OrderNo = ordno1;
                                    ordlistid1  = oll.Adds(row);
                                    Sql.Update("ZL_CartPro", "Orderlistid=" + ordlistid1, "Orderlistid=" + ordid + " and ProID=" + carpid, null);
                                }
                                else
                                {
                                    Sql.Update("ZL_CartPro", "Orderlistid=" + ordlistid1, "Orderlistid=" + ordid + " and ProID=" + carpid, null);
                                }
                            }
                            else
                            {
                                if (ordlistid2 == 0)
                                {
                                    row.OrderNo = ordno2;
                                    ordlistid2  = oll.Adds(row);
                                    Sql.Update("ZL_CartPro", "Orderlistid=" + ordlistid2, "Orderlistid=" + ordid + " and ProID=" + carpid, null);
                                }
                                else
                                {
                                    Sql.Update("ZL_CartPro", "Orderlistid=" + ordlistid2, "Orderlistid=" + ordid + " and ProID=" + carpid, null);
                                }
                            }
                        }
                        oll.UpdateByField("Aside", "1", ordid);
                        function.WriteSuccessMsg("恭喜,订单分拆成功!", "/manage/Shop/Orderlist.aspx?type=0");
                    }
                }
            }
        }
コード例 #8
0
        //提交订单
        protected void AddOrder_Btn_Click(object sender, EventArgs e)
        {
            if (Address_Div.Visible && DataConvert.CLng(Request.Form["address_rad"]) < 1)
            {
                function.WriteErrMsg("尚未选定收货地址");
            }
            //1,生成订单,2,关联购物车中商品为已绑定订单
            M_UserInfo  mu      = buser.GetLogin(false);
            M_UserRecei receMod = receBll.GetSelect(Convert.ToInt32(Request.Form["address_rad"]), mu.UserID);
            DataTable   cartDT  = cartBll.SelByCartID(B_Cart.GetCartID(), mu.UserID, ProClass, ids);//需要购买的商品

            if (cartDT.Rows.Count < 1)
            {
                function.WriteErrMsg("你尚未选择商品,<a href='/User/Order/OrderList'>查看我的订单</a>");
            }
            //------生成订单前检测区
            foreach (DataRow dr in cartDT.Rows)
            {
                if (!HasStock(dr["Allowed"], DataConvert.CLng(dr["stock"]), Convert.ToInt32(dr["Pronum"])))
                {
                    function.WriteErrMsg("购买失败," + dr["proname"] + "的库存数量不足");
                }
            }
            //------检测End
            //按店铺生成订单,统一存ZL_Orderinfo
            DataTable          storeDT   = cartDT.DefaultView.ToTable(true, "StoreID");
            List <M_OrderList> orderList = new List <M_OrderList>();//用于生成临时订单,统计计算(Disuse)

            foreach (DataRow dr in storeDT.Rows)
            {
                #region 暂不使用字段
                //Odata.province = this.DropDownList1.SelectedValue;
                //Odata.city = this.DropDownList2.SelectedValue;//将地址省份与市ID存入,XML数据源
                //Odata.Guojia = "";//国家
                //Odata.Chengshi = DropDownList2.SelectedItem.Text;//城市
                //Odata.Diqu = DropDownList3.SelectedItem.Text;//地区
                //Odata.Delivery = DataConverter.CLng(Request.Form["Delivery"]);
                //Odata.Deliverytime = DataConverter.CLng(this.Deliverytime.Text);
                //Odata.Mobile = receMod.MobileNum;
                #endregion
                M_OrderList Odata = new M_OrderList();
                Odata.Ordertype = OrderHelper.GetOrderType(ProClass);
                Odata.OrderNo   = B_OrderList.CreateOrderNo((M_OrderList.OrderEnum)Odata.Ordertype);
                Odata.StoreID   = Convert.ToInt32(dr["StoreID"]);
                cartDT.DefaultView.RowFilter = "StoreID=" + Odata.StoreID;
                DataTable storeCartDT = cartDT.DefaultView.ToTable();
                switch (ProClass)//旅游机票等,以联系人信息为地址
                {
                case 7:
                case 8:
                    M_Cart_Travel   model = JsonConvert.DeserializeObject <M_Cart_Travel>(storeCartDT.Rows[0]["Additional"].ToString());
                    M_Cart_Contract user  = model.Contract[0];
                    Odata.Receiver  = user.Name;
                    Odata.Reuser    = user.Name;
                    Odata.Phone     = user.Mobile;
                    Odata.MobileNum = user.Mobile;
                    Odata.Email     = user.Email;
                    break;

                default:
                    if (Address_Div.Visible)
                    {
                        Odata.Receiver  = receMod.ReceivName;
                        Odata.Reuser    = receMod.ReceivName;
                        Odata.Phone     = receMod.phone;
                        Odata.MobileNum = receMod.MobileNum;
                        Odata.Email     = receMod.Email;
                        Odata.Shengfen  = receMod.Provinces;
                        Odata.Jiedao    = receMod.Street;
                        Odata.ZipCode   = receMod.Zipcode;
                    }
                    break;
                }
                Odata.Invoiceneeds    = DataConverter.CLng(Request.Form["invoice_rad"]);//是否需开发票
                Odata.Invoice         = Odata.Invoiceneeds == 0 ? "" : InvoTitle_T.Text + "||" + Invoice_T.Text;
                Odata.Rename          = mu.UserName;
                Odata.Outstock        = 0;              //缺货处理
                Odata.Ordermessage    = ORemind_T.Text; //订货留言
                Odata.Merchandiser    = "";             //跟单员
                Odata.Internalrecords = "";             //内部记录
                Odata.IsCount         = false;
                //-----金额计算
                Odata.Balance_price     = GetTotalMoney(storeCartDT);
                Odata.Freight           = GetFarePrice(storeCartDT, Odata.StoreID); //运费计算
                Odata.Ordersamount      = Odata.Balance_price + Odata.Freight;      //订单金额
                Odata.AllMoney_Json     = orderCom.GetTotalJson(storeCartDT);       //附加需要的虚拟币
                Odata.Specifiedprice    = Odata.Ordersamount;                       //订单金额;
                Odata.Receivablesamount = 0;                                        //收款金额
                Odata.Developedvotes    = 0;
                Odata.OrderStatus       = (int)M_OrderList.StatusEnum.Normal;       //订单状态
                Odata.Paymentstatus     = (int)M_OrderList.PayEnum.NoPay;           //付款状态
                Odata.StateLogistics    = 0;                                        //物流状态
                Odata.Signed            = 0;                                        //签收
                Odata.Settle            = 0;                                        //结清
                Odata.Aside             = 0;                                        //作废
                Odata.Suspended         = 0;                                        //暂停
                Odata.AddUser           = mu.UserName;;
                Odata.Userid            = mu.UserID;
                Odata.Integral          = DataConverter.CLng(Request.QueryString["jifen"]);
                Odata.Freight_remark    = " ";
                Odata.Balance_remark    = "";
                Odata.Promoter          = 0;
                Odata.id = orderBll.Adds(Odata);
                cartProBll.CopyToCartPro(mu, storeCartDT, Odata.id);
                orderList.Add(Odata);
                orderCom.SendMessage(Odata, null, "ordered");
            }
            cartBll.DelByids(ids);
            //-----------------订单生成后处理
            //进行减库存等操作
            foreach (DataRow dr in cartDT.Rows)
            {
                M_Product model = proBll.GetproductByid(Convert.ToInt32(dr["Proid"]));
                model.Stock = model.Stock - DataConvert.CLng(dr["Pronum"]);
                SqlHelper.ExecuteSql("Update ZL_Commodities Set Stock=" + model.Stock + " Where ID=" + model.ID);
            }
            //生成支付单,处理优惠券,并进入付款步骤
            M_Payment payMod = payBll.CreateByOrder(orderList);
            //优惠券
            if (!string.IsNullOrEmpty(Arrive_Hid.Value))
            {
                M_Arrive avMod  = avBll.SelModelByFlow(Arrive_Hid.Value, mu.UserID);
                double   money  = payMod.MoneyPay;
                string   err    = "";
                string   remind = "支付单抵扣[" + payMod.PayNo + "]";
                if (avBll.U_UseArrive(avMod, mu.UserID, ref money, ref err, remind))
                {
                    payMod.MoneyPay     = money;
                    payMod.ArriveMoney  = avMod.Amount;
                    payMod.ArriveDetail = avMod.ID.ToString();
                }
                else
                {
                    payMod.ArriveDetail = "优惠券[" + avMod.ID + "]异常 :" + err;
                }
            }
            //积分处理
            if (point_body.Visible && DataConvert.CLng(Point_T.Text) > 0)
            {
                int point    = DataConvert.CLng(Point_T.Text);
                int maxPoint = (int)((SiteConfig.ShopConfig.PointRatiot * 0.01) * (double)payMod.MoneyPay / SiteConfig.ShopConfig.PointRate);
                //if (point <= 0) { function.WriteErrMsg("积分数值不正确"); }
                if (point > mu.UserExp)
                {
                    function.WriteErrMsg("您的积分不足!");
                }
                if (point > maxPoint)
                {
                    function.WriteErrMsg("积分不能大于可兑换金额!");
                }
                //生成支付单时扣除用户积分
                buser.ChangeVirtualMoney(mu.UserID, new M_UserExpHis()
                {
                    ScoreType = (int)M_UserExpHis.SType.Point, score = -point, detail = "积分抵扣,支付单号:" + payMod.PayNo
                });
                payMod.MoneyPay = payMod.MoneyPay - (point * SiteConfig.ShopConfig.PointRate);
                payMod.UsePoint = point;
            }
            if (payMod.MoneyPay <= 0)
            {
                payMod.MoneyPay = 0.01;
            }
            payMod.Remark    = cartDT.Rows.Count > 1 ? "[" + cartDT.Rows[0]["ProName"] as string + "]等" : cartDT.Rows[0]["ProName"] as string;
            payMod.PaymentID = payBll.Add(payMod);
            Response.Redirect("/PayOnline/Orderpay.aspx?PayNo=" + payMod.PayNo);
        }