示例#1
0
        public VM_OrderPro(M_UserInfo mu, HttpRequestBase Request)
        {
            this.SType   = DataConvert.CLng(Request.QueryString["SType"]);
            this.mu      = mu;
            this.OrderNo = Request.QueryString["OrderNo"];
            switch (SType)
            {
            case 0:    //订单
                orderMod = orderBll.SelModelByOrderNo(OrderNo);
                if (orderMod == null || orderMod.id == 0)
                {
                    function.WriteErrMsg("订单不存在");
                }
                if (orderMod.Userid != mu.UserID)
                {
                    function.WriteErrMsg("该订单不属于你,无法查看");
                }
                proDT = cartProBll.SelByOrderID(orderMod.id);
                break;

            case 1:    //购物车
                proDT = cartBll.GetCarProList(OrderNo, mu.UserID);
                break;
            }
            if (proDT.Rows.Count > 0 && !string.IsNullOrEmpty(proDT.Rows[0]["Additional"].ToString()))
            {
                M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(proDT.Rows[0]["Additional"].ToString());
                clientList = new List <M_Cart_Contract>();
                clientList.AddRange(model.Guest);
                clientList.AddRange(model.Contract);
            }
        }
示例#2
0
    //用于酒店订单等
    public string GetAddition()
    {
        string additional = Eval("Additional").ToString(), result = "", contract = "";

        if (string.IsNullOrEmpty(additional))
        {
            return("");
        }
        switch (ProClass)
        {
        case 7:    //旅游,酒店,机票
        {
            string        tlp   = "入住时间:{0}<br/>联系人:{1}";
            M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(additional);
            foreach (M_Cart_Contract m in model.Contract)
            {
                contract += m.Name + "," + m.Mobile + "|";
            }
            contract = contract.TrimEnd('|');
            string another = string.IsNullOrEmpty(model.ProList[0].Remind) ? "" : DataConvert.CDate(model.ProList[0].Remind).ToString("MM-dd HH:mm");
            result = string.Format(tlp, model.ProList[0].GoDate.ToString("MM-dd HH:mm --") + another, contract);
        }
        break;

        case 8:
        {
            string       tlp   = "订单信息:{0},{1}人,时间:{2}--{3}<br/>入住人:{4}<br/>联系人:{5}";
            M_Cart_Hotel model = JsonConvert.DeserializeObject <M_Cart_Hotel>(additional);
            foreach (M_Cart_Contract m in model.Contract)
            {
                contract += m.Name + "," + m.Mobile + "|";
            }
            contract = contract.TrimEnd('|');
            result   = string.Format(tlp, model.HotelName, model.PeopleNum, model.ProList[0].GoDate, model.ProList[0].OutDate, model.Guest[0].Name, contract);
        }
        break;

        case 9:
            break;

        default:
            break;
        }
        return(result);
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!B_ARoleAuth.Check(ZLEnum.Auth.shop, "OrderList"))
            {
                function.WriteErrMsg("没有权限进行此项操作");
            }
            if (Mid < 1 && string.IsNullOrEmpty(OrderNO))
            {
                function.WriteErrMsg("未指定订单");
            }
            if (!IsPostBack)
            {
                if (Mid > 0)
                {
                    orderinfo = oll.GetOrderListByid(Mid);
                }
                else if (!string.IsNullOrEmpty(Request["OrderNo"]))
                {
                    orderinfo = oll.GetByOrder(Request["OrderNo"], "0");
                }
                if (orderinfo == null || orderinfo.id < 1)
                {
                    function.WriteErrMsg("订单不存在");
                }
                OrderNO = orderinfo.OrderNo;
                //----------------------------------------------------------
                M_UserInfo mu = buser.SelReturnModel(orderinfo.Userid);
                HeadTitle_L.Text = "订 单 信 息(订单编号:" + orderinfo.OrderNo + ")";
                string giveurl = customPath2 + "User/Userexp.aspx?UserID=" + orderinfo.Userid
                                 + "&orderid=" + orderinfo.id;
                give_score_a.HRef   = giveurl + "&type=" + (int)M_UserExpHis.SType.Point;
                give_purse_a.HRef   = giveurl + "&type=" + (int)M_UserExpHis.SType.Purse;
                OrderNo_L.Text      = orderinfo.OrderNo;
                Orderamounts_L.Text = orderinfo.Ordersamount.ToString("f2");
                isCheckRe_L.Text    = orderinfo.Guojia;
                Cdate_L.Text        = orderinfo.AddTime.ToString("yyyy年MM月dd日 HH:mm");
                Reuser.Text         = StringHelper.SubStr(orderinfo.Reuser, 12);
                UName_L.Text        = "<a href='javascript:;' onclick='showuinfo(" + mu.UserID + ");' title='查看用户'>" + mu.UserName + "</a>";
                if (orderinfo.StateLogistics != 0)
                {
                    Exp_Send_Btn.Enabled = false;
                }
                if (orderinfo.StateLogistics == 1)
                {
                    Exp_ClientSign_Btn.Enabled = true;
                }
                if (orderinfo.StateLogistics == 0)
                {
                    function.Script(this, "hiddLogistics();");
                }
                if (orderinfo.Paymentstatus >= (int)M_OrderList.PayEnum.HasPayed)
                {
                    Paymentstatus.Text   = "<span  style='color:green';>已经汇款</span>";
                    Pay_Has_Btn.Disabled = true;
                }
                else
                {
                    Paymentstatus.Text   = "<span style='color:red;'>等待汇款</span>";
                    Pay_Has_Btn.Disabled = false;
                    Exp_Send_Btn.Enabled = false;
                }
                switch ((M_OrderList.StatusEnum)orderinfo.OrderStatus)
                {
                case M_OrderList.StatusEnum.Normal:
                    OS_Sure_Btn.Enabled = true;
                    break;

                case M_OrderList.StatusEnum.DrawBack:
                    OS_Sure_Btn.Enabled       = false;
                    OS_NoSure_Btn.Enabled     = false;
                    CheckReturn.Enabled       = true;
                    UnCheckRetrun.Enabled     = true;
                    Exp_Send_Btn.Enabled      = false;
                    CompleteOrder_Btn.Enabled = false;
                    break;

                case M_OrderList.StatusEnum.UnDrawBack:
                case M_OrderList.StatusEnum.CheckDrawBack:
                    OS_Invoice_Btn.Enabled    = false;
                    OS_Sure_Btn.Enabled       = false;
                    OS_NoSure_Btn.Enabled     = false;
                    Exp_Send_Btn.Enabled      = false;
                    CompleteOrder_Btn.Enabled = false;
                    break;

                case M_OrderList.StatusEnum.OrderFinish:
                case M_OrderList.StatusEnum.UnitFinish:
                    CompleteOrder_Btn.Enabled = false;
                    break;

                default:
                    break;
                }
                #region 物流信息
                ExpStatus_L.Text = OrderHelper.GetExpStatus(orderinfo.StateLogistics);
                M_Order_Exp expMod = expBll.SelReturnModel(DataConverter.CLng(orderinfo.ExpressNum));
                if (expMod != null)
                {
                    ExpName_L.Text    = expMod.ExpComp;
                    ExpCode_L.Text    = expMod.ExpNo;
                    ExpStatus_L.Text += "(公司:" + expMod.ExpComp + "/单号:" + expMod.ExpNo + ")";
                }
                switch ((M_OrderList.ExpEnum)orderinfo.StateLogistics)
                {
                case M_OrderList.ExpEnum.NoSend:
                    Exp_Cancel_Btn.Enabled = false;
                    ExpPrint_B.Disabled    = true;
                    break;

                case M_OrderList.ExpEnum.HasSend:
                    Exp_ClientSign_Btn.Enabled = true;
                    break;

                case M_OrderList.ExpEnum.HasReceived:
                    Exp_Send_Btn.Enabled = false;
                    break;
                }
                DrawBackStr.Text  = orderinfo.Merchandiser;
                Deliverytime.Text = orderinfo.Deliverytime.ToString();//送货时间
                switch (orderinfo.Deliverytime)
                {
                case 1:
                    Deliverytime.Text = "对送货时间没有特殊要求";
                    break;

                case 2:
                    Deliverytime.Text = "双休日或者周一至周五的晚上送达";
                    break;

                case 3:
                    Deliverytime.Text = "周一至周五的白天送达";
                    break;

                default:
                    break;
                }
                Phone.Text   = orderinfo.Phone.ToString();                  //联系电话
                ZipCode.Text = orderinfo.ZipCode.ToString();                //邮政编码
                Mobile.Text  = orderinfo.MobileNum;                         //手机
                Reusers.Text = orderinfo.Reuser.ToString();                 //订货人
                Jiedao.Text  = orderinfo.Shengfen + " " + orderinfo.Jiedao; //地址
                #endregion
                OrderStatus.Text = OrderHelper.GetOrderStatus(orderinfo.OrderStatus);
                adddate.Text     = orderinfo.AddTime.ToShortDateString();
                OrderType_L.Text = orderinfo.AddTime.ToString();

                Invoiceneeds.Text   = orderinfo.Invoiceneeds == 1 ? ComRE.Icon_OK : ComRE.Icon_Error;
                Developedvotes.Text = orderinfo.Developedvotes == 1 ? ComRE.Icon_OK : ComRE.Icon_Error;
                //如果已支付
                if (orderinfo.Integral > 0 && orderinfo.Paymentstatus >= (int)M_OrderList.PayEnum.HasPayed)
                {
                    if (orderinfo.SendPointStatus == 1)
                    {
                        ISsend.Text = "已送出";
                    }
                }
                Pay_Has_Btn.Disabled  = orderinfo.Paymentstatus == 1 ? true : false; //更改状态,已支付
                OS_Freeze_Btn.Enabled = orderinfo.Settle == 1 ? false : true;        //冻结
                OS_Pause_Btn.Enabled  = orderinfo.Suspended == 1 ? false : true;     //暂停
                if (orderinfo.Aside == 1)                                            //已作废
                {
                    Pay_Has_Btn.Disabled = true;
                    //ShowSend_Btn.Enabled = false;
                    OS_Sure_Btn.Enabled             = false;
                    OS_NoSure_Btn.Enabled           = false;
                    CompleteOrder_Btn.Enabled       = false;
                    Exp_ClientSign_Btn.Enabled      = false;
                    OS_Freeze_Btn.Enabled           = false;
                    OS_Invoice_Btn.Enabled          = false;
                    OS_Pause_Btn.Enabled            = false;
                    OS_Aside_Btn.Enabled            = false;
                    Pay_Cancel_Btn.Enabled          = false;
                    Refund_B.Attributes["disabled"] = "disabled";
                }
                else
                {
                    OS_Aside_Btn.Enabled = true;
                }
                if (orderinfo.Settle == 1)//结清
                {
                    Pay_Has_Btn.Disabled = true;
                    //ShowSend_Btn.Enabled = false;
                    OS_Sure_Btn.Enabled        = false;
                    OS_NoSure_Btn.Enabled      = false;
                    OS_Aside_Btn.Enabled       = false;
                    Exp_ClientSign_Btn.Enabled = false;
                    OS_Invoice_Btn.Enabled     = false;
                    OS_Pause_Btn.Enabled       = false;
                }
                if (!string.IsNullOrEmpty(orderinfo.PaymentNo))//支付后才有值
                {
                    M_Payment payMod = payBll.SelModelByPayNo(orderinfo.PaymentNo);
                    if (payMod.PayPlatID == 0)
                    {
                        Payment.Text = "虚拟币支付";
                    }
                    else
                    {
                        M_PayPlat payPlatMod = platBll.GetPayPlatByid(payMod.PayPlatID);
                        Payment.Text = payPlatMod.PayPlatName.ToString();
                    }
                }
                Email.Text   = orderinfo.Email.ToString();   //电子信
                Invoice.Text = orderinfo.Invoice.ToString(); //发票信息
                if (orderinfo.Outstock == 1)
                {
                    Outstock.Text = "缺货时,取消此订单";
                }
                else
                {
                    Outstock.Text = "缺货时,将有货的商品发出,取消无货商品的订购";
                }
                AddUser.Text           = orderinfo.AddUser.ToString();         //负责跟单人员
                Internalrecords_T.Text = orderinfo.Internalrecords.ToString(); //内部记录
                Ordermessage_T.Text    = orderinfo.Ordermessage;               //订货留言
                LabScore.Text          = orderinfo.Integral.ToString();        //积分
                                                                               //-------购物车
                DataTable cplist = cartProBll.GetCartProOrderID(Mid);
                Procart_RPT.DataSource = cplist;
                Procart_RPT.DataBind();
                if (cplist.Rows.Count > 0 && !string.IsNullOrEmpty(cplist.Rows[0]["Additional"].ToString()))
                {
                    M_Cart_Travel          model     = JsonConvert.DeserializeObject <M_Cart_Travel>(cplist.Rows[0]["Additional"].ToString());
                    List <M_Cart_Contract> modelList = new List <M_Cart_Contract>();
                    modelList.AddRange(model.Guest);
                    modelList.AddRange(model.Contract);
                    UserRPT.DataSource = modelList;
                    UserRPT.DataBind();
                }
                DataTable newtable = cplist.DefaultView.ToTable(false, "Shijia", "Pronum");
                double    allmoney = 0;
                for (int i = 0; i < newtable.Rows.Count; i++)
                {
                    allmoney = allmoney + DataConverter.CDouble(cplist.Rows[i]["Allmoney"]);
                }
                //-------
                Label2.Text      = orderinfo.Ordersamount.ToString();
                Label29.Text     = orderinfo.Ordersamount.ToString("f2");
                Label31.Text     = (orderinfo.Ordersamount).ToString("f2") + "元";
                ReceMoney_L.Text = orderinfo.Receivablesamount.ToString("f2") + "元";
                //判断订单所处状态
                {
                    if (orderinfo.OrderStatus < (int)M_OrderList.StatusEnum.Normal || orderinfo.Aside == 1)
                    {
                        prog_order_div.InnerHtml = OrderHelper.GetOrderStatus(orderinfo.OrderStatus, orderinfo.Aside, orderinfo.StateLogistics);
                    }
                    else
                    {
                        int current = 2;
                        if (orderinfo.OrderStatus >= (int)M_OrderList.StatusEnum.OrderFinish)
                        {
                            current = 5;
                        }
                        else if (orderinfo.Paymentstatus >= (int)M_OrderList.PayEnum.HasPayed)
                        {
                            current++;
                            switch (orderinfo.StateLogistics)
                            {
                            case (int)M_OrderList.ExpEnum.HasSend:
                                current++;
                                break;

                            case (int)M_OrderList.ExpEnum.HasReceived:
                                current += 2;
                                break;
                            }
                        }
                        function.Script(this, "$('#prog_order_div').ZLSteps('订单生成,等待用户支付,等待商户发货,等待用户签收,订单完结'," + current + ")");
                    }
                }
                Call.SetBreadCrumb(Master, "<li><a href='" + CustomerPageAction.customPath2 + "Main.aspx'>工作台</a></li><li><a href='ProductManage.aspx'>商城管理</a></li><li><a href='OrderList.aspx'>订单管理</a></li><li class='active'><a href='" + Request.RawUrl + "'>订单详情</a></li>");
            }
        }
示例#4
0
    public void MyBind()
    {
        CartDT = cartBll.SelByCookID(CartCookID, ProClass, ids);
        if (CartDT.Rows.Count < 1)
        {
            function.WriteErrMsg("你尚未选择商品,<a href='/User/Order/OrderList.aspx'>查看我的订单</a>");
        }
        //旅游,酒店等不需要检测地址栏
        switch (DataConvert.CLng(CartDT.Rows[0]["ProClass"]))
        {
        case (int)M_Product.ClassType.LY:
        {
            userli.Visible = true;
            M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(CartDT.Rows[0]["Additional"].ToString());
            model.Guest.AddRange(model.Contract);
            UserRPT.DataSource = model.Guest;
            UserRPT.DataBind();
        }
        break;

        case (int)M_Product.ClassType.JD:
        {
            userli.Visible = true;
            M_Cart_Hotel model = JsonConvert.DeserializeObject <M_Cart_Hotel>(CartDT.Rows[0]["Additional"].ToString());
            model.Guest.AddRange(model.Contract);
            UserRPT.DataSource = model.Guest;
            UserRPT.DataBind();
        }
        break;

        default:     //------地址
            DataTable addressDT = receBll.SelByUID(buser.GetLogin().UserID);
            AddressRPT.DataSource = addressDT;
            AddressRPT.DataBind();
            EmptyDiv.Visible = addressDT.Rows.Count < 1;    //地址为空提醒
            break;
        }
        //------核算费用
        double allmoney = UpdateCartAllMoney(CartDT);

        //------费用统计
        itemnum_span.InnerText     = CartDT.Rows.Count.ToString();
        totalmoney_span1.InnerText = allmoney.ToString("f2");
        //------店铺
        Store_RPT.DataSource = orderCom.SelStoreDT(CartDT);
        Store_RPT.DataBind();
        //------发票绑定
        DataTable invoceDT = new DataTable();//orderBll.SelInvoByUser(buser.GetLogin().UserID);

        if (invoceDT.Rows.Count > 0)
        {
            Invoice_RPT.DataSource = invoceDT;
            Invoice_RPT.DataBind();
        }
        else
        {
            Invoice_RPT.Visible = false;
        }
        //------积分抵扣
        if (SiteConfig.ShopConfig.PointRatiot > 0 && SiteConfig.ShopConfig.PointRatiot < 100 && SiteConfig.ShopConfig.PointRate > 0)
        {
            point_body.Visible = true;
            M_UserInfo usermod = buser.GetLogin();
            Point_L.Text = usermod.UserExp.ToString();
            int usepoint = (int)(allmoney * (SiteConfig.ShopConfig.PointRatiot * 0.01) / SiteConfig.ShopConfig.PointRate);
            function.Script(this, "SumByPoint(" + usepoint + ");");
            PointRate_Hid.Value = SiteConfig.ShopConfig.PointRate.ToString();
        }
        else
        {
            point_tips.Visible = true;
        }
    }
示例#5
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);
    }
示例#6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            B_User.CheckIsLogged(Request.RawUrl);
            if (!IsPostBack)
            {
                M_UserInfo mu = buser.GetLogin(false);
                switch (SType)
                {
                case 1:    //酒店
                //{
                //    M_Cart_Hotel model = new M_Cart_Hotel();
                //    model.UserID = buser.GetLogin().UserID;
                //    //model.HotelName = Request["HotelName"];
                //    model.GoDate = Convert.ToDateTime(Request["GoDate"]);
                //    model.OutDate = Convert.ToDateTime(Request["OutDate"]);
                //    //-------------联系人(全部都进行一定的规范)
                //    model.Guest.Add(new M_Cart_Contract(Server.UrlDecode(Request["GuestName"]), Request["GuestMobile"], "", ""));
                //    for (int i = 0; i < Request["ContractName"].Split(',').Length; i++)
                //    {
                //        string name = Request["ContractName"].Split(',')[i];
                //        string mobile = Request["ContractMobile"].Split(',')[i];
                //        model.Contract.Add(new M_Cart_Contract(Server.UrlDecode(name), Request["ContractMobile"], "", ""));
                //    }
                //    //-------------购物车
                //    ProModel pro = new ProModel() { ProID = DataConvert.CLng(Request["ProID"]), Pronum = DataConvert.CLng(Request["Pronum"]) };
                //    string addition = JsonConvert.SerializeObject(model);
                //    int cartid = AddCart(pro, mu, addition);
                //    Response.Redirect("/Cart/GetOrderInfo.aspx?ProClass=8&ids=" + cartid);
                //}
                //break;

                case 2:    //旅游
                {
                    M_Cart_Travel model       = new M_Cart_Travel();
                    JArray        proArr      = (JArray)JsonConvert.DeserializeObject(Pros_Hid);
                    JArray        guestArr    = (JArray)JsonConvert.DeserializeObject(Guest_Hid);
                    JArray        contractArr = (JArray)JsonConvert.DeserializeObject(Contract_Hid);
                    if (string.IsNullOrEmpty(Pros_Hid) || string.IsNullOrEmpty(Guest_Hid) || string.IsNullOrEmpty(Contract_Hid))
                    {
                        function.WriteErrMsg("生成订单失败,提交的信息不完全!");
                    }
                    foreach (JObject pro in proArr)        //赋值店铺信息
                    {
                        ProModel  proMod  = JsonConvert.DeserializeObject <ProModel>(pro.ToString());
                        M_Product proInfo = proBll.GetproductByid(proMod.ProID);
                        proMod.ProName = proInfo.Proname;
                        proMod.StoreID = proInfo.UserShopID;
                        double  price   = proInfo.LinPrice;
                        DataRow priceDR = proBll.GetPriceByCode(proMod.code, proInfo.Wholesalesinfo, ref price);
                        if (priceDR != null)
                        {
                            proMod.ProName += "(" + priceDR["Proname"] + ")";
                        }
                        model.ProList.Add(proMod);
                    }
                    foreach (JObject guest in guestArr)
                    {
                        model.Guest.Add(JsonConvert.DeserializeObject <M_Cart_Contract>(guest.ToString()));
                    }
                    foreach (JObject contract in contractArr)
                    {
                        model.Contract.Add(JsonConvert.DeserializeObject <M_Cart_Contract>(contract.ToString()));
                    }
                    //-------------购物车
                    string addition = JsonConvert.SerializeObject(model);
                    if (!string.IsNullOrEmpty(Request.Form["ctl00$Content$IDS_Hid"]))
                    {
                        cartBll.DelByIDS(CartCookID, mu.UserName, Request.Form["ctl00$Content$IDS_Hid"]);
                    }
                    //-------------跳转
                    string ids = "";
                    foreach (ProModel pro in model.ProList)
                    {
                        ids += AddCart(pro, mu, addition) + ",";
                    }
                    ids = ids.TrimEnd(',');
                    int proclass = (SType == 1 ? 8 : 7);
                    Response.Redirect("/Cart/GetOrderInfo.aspx?ProClass=" + proclass + "&ids=" + ids);
                }
                break;

                case 3:    //航班
                           //Response.Redirect("/Cart/GetOrderInfo.aspx?ProClass=&ids=" + ids);
                    break;

                default:
                    function.WriteErrMsg("未知的提交类型");
                    break;
                }
            }
        }
示例#7
0
    public void MyBind()
    {
        DataTable  dt = new DataTable();
        M_UserInfo mu = buser.GetLogin();

        switch (SType)
        {
        case 0:    //订单
            orderMod = orderBll.SelModelByOrderNo(OrderNo);

            //Total_L.Text = orderMod.Balance_price.ToString("f2") + "+" + orderMod.Freight.ToString("f2") + "=" + orderMod.Ordersamount.ToString("f2") + "元 (金额+运费)";

            labelmoney01.Text      = orderMod.Receivablesamount.ToString("f2");
            ExpressNum_T.Text      = orderMod.ExpressNum;
            ExpressDelivery_T.Text = orderMod.ExpressDelivery;
            if (orderMod == null || orderMod.id == 0)
            {
                function.WriteErrMsg("订单不存在");
            }
            if (orderMod.Userid != mu.UserID)
            {
                function.WriteErrMsg("该订单不属于你,无法查看");
            }
            dt        = SelByOrderID(orderMod.id);
            price     = orderMod.Balance_price;
            fare      = orderMod.Freight;
            allamount = orderMod.Ordersamount;
            DataTable dt1 = SqlHelper.ExecuteTable("select * from ZL_Payment where PaymentNum='" + orderMod.OrderNo + "' order by PayTime DESC");
            if (dt1.Rows.Count > 0)
            {
                payMod    = payBll.SelModelByPayNo(dt1.Rows[0]["PayNo"].ToString());
                allamount = (double)payMod.MoneyPay;
                arrive    = payMod.ArriveMoney;
                point     = payMod.UsePoint;
            }
            Total_L.Text = price.ToString("f2") + " + " + fare.ToString("f2") + " - " + arrive.ToString("f2") + "-" + (point * 0.01).ToString("f2") + "(" + point + ")" + " = " + allamount.ToString("f2");
            Total_L.Text = Total_L.Text + " (商品总价+运费-优惠券-积分兑换=总额)";
            break;

        case 1:    //购物车
            dt = cartBll.GetCarProList(OrderNo);
            break;
        }
        if (orderMod.Paymentstatus != (int)M_OrderList.PayEnum.HasPayed)
        {
            PayUrl_A.Visible = true;
            DataTable dt1    = SqlHelper.ExecuteTable("select * from ZL_Payment where PaymentNum='" + orderMod.OrderNo + "' order by PayTime DESC");
            string    payurl = "&OrderCode=" + orderMod.OrderNo;
            if (dt1.Rows.Count > 0)
            {
                payurl = "&PayNo=" + dt1.Rows[0]["PayNo"];
            }
            uappMod = uappBll.SelModelByUid(buser.GetLogin().UserID, "wechat");
            if (uappMod != null)
            {
                M_WX_User wxuserMod1 = wxuserBll.SelForOpenid(1, uappMod.OpenID);
                M_WX_User wxuserMod2 = wxuserBll.SelForOpenid(2, uappMod.OpenID);
                if (wxuserMod1 != null && wxuserMod2 == null)
                {
                    PayUrl_A.HRef = "/PayOnline/OrderPay.aspx?appid=1" + payurl;
                }
                else if (wxuserMod2 != null && wxuserMod1 == null)
                {
                    PayUrl_A.HRef = "/PayOnline/OrderPay.aspx?appid=2" + payurl;
                }
                else if (wxuserMod1 == null && wxuserMod2 == null)
                {
                    PayUrl_A.HRef = "/PayOnline/OrderPay.aspx?" + payurl;
                }
            }
            else
            {
                PayUrl_A.HRef = "/PayOnline/OrderPay.aspx?" + payurl;
            }
        }
        if (dt.Rows.Count > 0 && !string.IsNullOrEmpty(dt.Rows[0]["Additional"].ToString()))
        {
            User_Div.Visible = true;
            M_Cart_Travel          model     = JsonConvert.DeserializeObject <M_Cart_Travel>(dt.Rows[0]["Additional"].ToString());
            List <M_Cart_Contract> modelList = new List <M_Cart_Contract>();
            modelList.AddRange(model.Guest);
            modelList.AddRange(model.Contract);
            UserRPT.DataSource = modelList;
            UserRPT.DataBind();
        }
        pronum         = dt.Rows.Count;
        RPT.DataSource = dt;
        RPT.DataBind();
    }
示例#8
0
        public void MyBind()
        {
            M_UserInfo mu = buser.GetLogin();

            CartDT = cartBll.SelByCartID(B_Cart.GetCartID(), mu.UserID, ProClass, ids);
            if (CartDT.Rows.Count < 1)
            {
                function.WriteErrMsg("你尚未选择商品,<a href='/User/Order/OrderList'>查看我的订单</a>");
            }
            //旅游,酒店等不需要检测地址栏
            switch (DataConvert.CLng(CartDT.Rows[0]["ProClass"]))
            {
            case (int)M_Product.ClassType.LY:
            {
                userli.Visible = true;
                M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                UserRPT.DataSource = model.Guest;
                UserRPT.DataBind();
            }
            break;

            case (int)M_Product.ClassType.JD:
            {
                userli.Visible = true;
                M_Cart_Hotel model = JsonConvert.DeserializeObject <M_Cart_Hotel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                UserRPT.DataSource = model.Guest;
                UserRPT.DataBind();
            }
            break;

            default:     //------地址
                DataTable addressDT = receBll.SelByUID(buser.GetLogin().UserID);
                AddressRPT.DataSource = addressDT;
                AddressRPT.DataBind();
                EmptyDiv.Visible = addressDT.Rows.Count < 1;    //地址为空提醒
                break;
            }
            //------核算费用
            allmoney = UpdateCartAllMoney(CartDT);
            //------费用统计
            itemnum_span.InnerText     = CartDT.Rows.Count.ToString();
            totalmoney_span1.InnerText = allmoney.ToString("f2");
            //------店铺
            Store_RPT.DataSource = orderCom.SelStoreDT(CartDT);
            Store_RPT.DataBind();
            //------发票绑定
            DataTable invoceDT = new DataTable();//orderBll.SelInvoByUser(buser.GetLogin().UserID);

            if (invoceDT.Rows.Count > 0)
            {
                Invoice_RPT.DataSource = invoceDT;
                Invoice_RPT.DataBind();
            }
            else
            {
                Invoice_RPT.Visible = false;
            }
            //------积分抵扣
            if (SiteConfig.ShopConfig.PointRatiot > 0 && SiteConfig.ShopConfig.PointRatiot < 100 && SiteConfig.ShopConfig.PointRate > 0)
            {
                point_body.Visible = true;
                M_UserInfo usermod = buser.GetLogin();
                Point_L.Text = usermod.UserExp.ToString();
                int usepoint = (int)(allmoney * (SiteConfig.ShopConfig.PointRatiot * 0.01) / SiteConfig.ShopConfig.PointRate);
                function.Script(this, "SumByPoint(" + usepoint + ");");
                PointRate_Hid.Value = SiteConfig.ShopConfig.PointRate.ToString();
            }
            else
            {
                point_tips.Visible = true;
            }
            //------用户有哪些优惠券
            DataTable avdt = avBll.U_Sel(mu.UserID, -100, 1);

            if (avdt.Rows.Count > 0)
            {
                arrive_div.Style.Add("display", "block");
                arrive_data_div.Visible = true;
                avdt.Columns.Add("enable", typeof(int));
                avdt.Columns.Add("err", typeof(string));
                for (int i = 0; i < avdt.Rows.Count; i++)
                {
                    DataRow dr    = avdt.Rows[i];
                    double  money = allmoney;
                    string  err   = "";
                    dr["enable"] = avBll.U_CheckArrive(new M_Arrive().GetModelFromReader(dr), mu.UserID, ref money, ref err) ? 1 : 0;
                    dr["err"]    = err;
                }
                avdt.DefaultView.RowFilter = "enable='1'";
                //function.WriteErrMsg(avdt.DefaultView.ToTable().Rows.Count.ToString());
                Arrive_Active_RPT.DataSource = avdt.DefaultView.ToTable();
                Arrive_Active_RPT.DataBind();
                avdt.DefaultView.RowFilter    = "enable='0'";
                Arrive_Disable_RPT.DataSource = avdt.DefaultView.ToTable();
                Arrive_Disable_RPT.DataBind();
            }
            else
            {
                arrive_empty_div.Visible = true;
            }
        }
示例#9
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);
        }
示例#10
0
        public IActionResult GetOrderInfo_Submit()
        {
            //1,生成订单,2,关联购物车中商品为已绑定订单
            string     ids    = GetParam("ids");
            M_UserInfo mu     = buser.GetLogin(false);
            DataTable  cartDT = cartBll.SelByCartID(B_Cart.GetCartID(HttpContext), mu.UserID, ProClass, ids);//需要购买的商品

            if (cartDT.Rows.Count < 1)
            {
                return(WriteErr("你尚未选择商品,<a href='/User/Order/OrderList'>查看我的订单</a>"));
            }
            VM_CartOrder vmMod = new VM_CartOrder();

            vmMod.IsShowAddress(DataConvert.CLng(cartDT.Rows[0]["ProClass"]));
            //------------------------------
            #region 检测缓存中的值与数据库中是否匹配
            //string refreshTip = ",请点击<a href='" + Request.RawUrl() + "'>刷新页面</a>";
            //if (VerifyDT == null || VerifyDT.Rows.Count < 1 || VerifyDT.Rows.Count != cartDT.Rows.Count)
            //{ return WriteErr("验证失效" + refreshTip, Request.RawUrl()); }
            //for (int i = 0; i < VerifyDT.Rows.Count; i++)
            //{
            //    //检测每一个商品,是否发生了ID/金额/数量/价格/总金额上面的差异或缺少
            //    DataRow verifyDR = VerifyDT.Rows[i];
            //    DataRow cartDR = GetDRFromDT(cartDT, Convert.ToInt32(verifyDR["ID"]));
            //    if (cartDR == null) { return WriteErr("购物车信息不匹配" + refreshTip, Request.RawUrl()); }
            //    foreach (string field in verifyFields)
            //    {
            //        double verifyVal = DataConvert.CDouble(verifyDR[field]);
            //        double cartVal = DataConvert.CDouble(cartDR[field]);
            //        if (verifyVal != cartVal) { return WriteErr("购物车的[" + field + "]不匹配" + refreshTip, Request.RawUrl()); }
            //    }
            //}
            #endregion
            //------生成订单前检测区
            foreach (DataRow dr in cartDT.Rows)
            {
                if (!HasStock(dr["Allowed"], DataConvert.CLng(dr["stock"]), Convert.ToInt32(dr["Pronum"])))
                {
                    return(WriteErr("购买失败," + dr["proname"] + "的库存数量不足"));
                }
            }
            //------检测End
            //按店铺生成订单
            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 (vmMod.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.Phone     = user.Mobile;
                    Odata.MobileNum = user.Mobile;
                    Odata.Email     = user.Email;
                    break;

                default:
                    if (vmMod.ShowAddress)
                    {
                        int    arsID  = DataConvert.CLng(GetParam("address_rad"));
                        string arsChk = GetParam("ars_chk");
                        if (!string.IsNullOrEmpty(arsChk))
                        {
                            #region 自提或微信共享地址
                            switch (arsChk)
                            {
                            case "self":
                            {
                                Odata.Receiver  = "[用户自提]" + GetParam("arsInfo_name");           //用户上门购买,然后自提取商品
                                Odata.MobileNum = GetParam("arsInfo_mobile");
                            }
                            break;

                            case "wechat":
                            {
                                Odata.Receiver  = GetParam("wxad_name");
                                Odata.MobileNum = GetParam("wxad_mobile");
                                Odata.Shengfen  = GetParam("wxad_city");
                                Odata.Jiedao    = GetParam("address");
                            }
                            break;
                            }
                            #endregion
                        }
                        else
                        {
                            M_UserRecei receMod = receBll.GetSelect(arsID, mu.UserID);
                            if (receMod == null)
                            {
                                return(WriteErr("用户尚未选择送货地址,或地址不存在"));
                            }
                            Odata.Receiver  = 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(GetParam("invoice_rad"));//是否需开发票
                Odata.Rename       = mu.UserName;
                Odata.AddUser      = mu.UserName;;
                Odata.Userid       = mu.UserID;
                Odata.Ordermessage = GetParam("ORemind_T");//订货留言
                //-----金额计算
                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.OrderStatus    = (int)M_OrderList.StatusEnum.Normal;       //订单状态
                Odata.Paymentstatus  = (int)M_OrderList.PayEnum.NoPay;           //付款状态
                //Odata.Integral = DataConverter.CLng(Request.QueryString["jifen"]);
                Odata.ExpTime = GetParam("exptime_hid");
                Odata.id      = orderBll.insert(Odata);
                //是否需要开发票
                if (Odata.Invoiceneeds == 1)
                {
                    M_Order_Invoice invMod = new M_Order_Invoice();
                    invMod.OrderID    = Odata.id;
                    invMod.InvHead    = GetParam("InvoTitle_T").Trim(',');
                    invMod.UserCode   = GetParam("InvoUserCode_T").Trim(',');
                    invMod.InvClass   = GetParam("invUseType_rad");
                    invMod.InvContent = GetParam("Invoice_T").Trim(',');
                    invMod.UserID     = Odata.Userid;
                    invBll.Insert(invMod);
                    new B_Order_InvTlp().Sync(invMod);
                }
                cpBll.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(GetParam("Arrive_Hid")))
            {
                M_Arrive        avMod  = avBll.SelModelByFlow(GetParam("Arrive_Hid"), mu.UserID);
                double          money  = payMod.MoneyPay;
                string          remind = "支付单抵扣[" + payMod.PayNo + "]";
                M_Arrive_Result retMod = avBll.U_UseArrive(avMod, mu.UserID, cartDT, money, remind);
                if (retMod.enabled)
                {
                    payMod.MoneyPay     = retMod.money;
                    payMod.ArriveMoney  = retMod.amount;
                    payMod.ArriveDetail = avMod.ID.ToString();
                }
                else
                {
                    payMod.ArriveDetail = "优惠券[" + avMod.ID + "]异常 :" + retMod.err;
                }
            }
            //积分处理
            int maxPoint = Point_CanBeUse(payMod.MoneyPay + payMod.ArriveMoney);
            if (maxPoint > 0 && DataConvert.CLng(GetParam("Point_T")) > 0)
            {
                int point = DataConvert.CLng(GetParam("Point_T"));
                //此处需咨询,上限额度是否要扣减掉优惠券
                //if (point <= 0) {  return WriteErr("积分数值不正确"); }
                if (point > mu.UserExp)
                {
                    return(WriteErr("您的积分不足!"));
                }
                if (point > maxPoint)
                {
                    return(WriteErr("积分不能大于可兑换金额[" + maxPoint + "]!"));
                }
                //生成支付单时扣除用户积分
                buser.ChangeVirtualMoney(mu.UserID, new M_UserExpHis()
                {
                    ScoreType = (int)M_UserExpHis.SType.Point, score = -point, detail = "积分抵扣,支付单号:" + payMod.PayNo
                });
                payMod.UsePoint       = point;
                payMod.UsePointArrive = Point_ToMoney(point);
                payMod.MoneyPay       = payMod.MoneyPay - payMod.UsePointArrive;
            }
            payMod.MoneyReal = payMod.MoneyPay;
            payMod.Remark    = cartDT.Rows.Count > 1 ? "[" + cartDT.Rows[0]["ProName"] as string + "]等" : cartDT.Rows[0]["ProName"] as string;
            payMod.PaymentID = payBll.Add(payMod);
            {
                string notify_url = CustomerPageAction.customPath2 + "Shop/Orderlistinfo?ID=" + orderList[0].id;
                ZoomLa.BLL.User.M_User_Notify notify = new ZoomLa.BLL.User.M_User_Notify();
                notify.Title   = "有新的订单了";
                notify.Content = "<a href='" + notify_url + "' target='main_right' style='font-size:12px;' title='查看详情'>新订单:" + orderList[0].OrderNo + "</a>";
                notify.NType   = 1;
                notify.Gid     = orderList[0].id.ToString();
                notify.AppendReceUser("admin");
                ZoomLa.BLL.User.B_User_Notify.Add(notify);
            }
            return(Redirect("/PayOnline/Orderpay?PayNo=" + payMod.PayNo));
        }
示例#11
0
        public IActionResult GetOrderInfo()
        {
            M_UserInfo mu = buser.GetLogin(false);

            if (mu.Status != 0)
            {
                return(WriteErr("你的帐户未通过验证或被锁定"));
            }
            if (string.IsNullOrEmpty(ids))
            {
                return(WriteErr("请先选定需要购买的商品"));
            }
            //--------------------MyBind
            //StringWriter sw = new StringWriter();
            VM_CartOrder vmMod  = new VM_CartOrder();
            DataTable    CartDT = vmMod.CartDT = cartBll.SelByCartID(CartCookID, mu.UserID, ProClass, ids);

            if (vmMod.CartDT.Rows.Count < 1)
            {
                return(WriteErr("你尚未选择商品,<a href='/User/Order/OrderList'>查看我的订单</a>"));
            }
            #region 旅游,酒店等不需要检测地址栏
            switch (DataConvert.CLng(vmMod.CartDT.Rows[0]["ProClass"]))
            {
            case (int)M_Product.ClassType.LY:
            {
                M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                vmMod.Guest = model.Guest;
            }
            break;

            case (int)M_Product.ClassType.JD:
            {
                M_Cart_Hotel model = JsonConvert.DeserializeObject <M_Cart_Hotel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                vmMod.Guest = model.Guest;
            }
            break;

            default:     //------地址
                break;
            }
            #endregion
            //------核算费用
            vmMod.StoreDT  = orderCom.SelStoreDT(CartDT);
            vmMod.ProClass = DataConvert.CLng(vmMod.CartDT.Rows[0]["ProClass"]);
            vmMod.mu       = mu;
            vmMod.allmoney = UpdateCartAllMoney(vmMod.CartDT);
            vmMod.usepoint = Point_CanBeUse(vmMod.allmoney);
            vmMod.IsShowAddress(vmMod.ProClass);
            vmMod.StoreDT.Columns.Add(new DataColumn("fareHtml", typeof(string)));
            for (int i = 0; i < vmMod.StoreDT.Rows.Count; i++)
            {
                CartDT.DefaultView.RowFilter = "StoreID=" + vmMod.StoreDT.Rows[i]["ID"];
                DataTable dt = CartDT.DefaultView.ToTable();
                if (dt.Rows.Count < 1)
                {
                    continue;
                }
                DataTable fareDT = GetFareDT(dt);
                vmMod.StoreDT.Rows[i]["fareHtml"] = CreateFareHtml(fareDT);
            }
            //VerifyDT = CartDT.DefaultView.ToTable(false, verifyFields);
            return(View(vmMod));
        }
示例#12
0
        public void MyBind()
        {
            StringWriter sw = new StringWriter();
            M_UserInfo   mu = buser.GetLogin(false);

            CartDT = cartBll.SelByCartID(B_Cart.GetCartID(), mu.UserID, ProClass, ids);
            if (CartDT.Rows.Count < 1)
            {
                function.WriteErrMsg("你尚未选择商品,<a href='/User/Order/OrderList'>查看我的订单</a>");
            }
            #region 旅游,酒店等不需要检测地址栏
            switch (DataConvert.CLng(CartDT.Rows[0]["ProClass"]))
            {
            case (int)M_Product.ClassType.LY:
            {
                userli.Visible = true;
                M_Cart_Travel model = JsonConvert.DeserializeObject <M_Cart_Travel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                UserRPT.DataSource = model.Guest;
                UserRPT.DataBind();
            }
            break;

            case (int)M_Product.ClassType.JD:
            {
                userli.Visible = true;
                M_Cart_Hotel model = JsonConvert.DeserializeObject <M_Cart_Hotel>(CartDT.Rows[0]["Additional"].ToString());
                model.Guest.AddRange(model.Contract);
                UserRPT.DataSource = model.Guest;
                UserRPT.DataBind();
            }
            break;

            default:     //------地址
                break;
            }
            #endregion
            //------核算费用
            allmoney = UpdateCartAllMoney(CartDT);
            //------费用统计
            itemnum_span.InnerText     = CartDT.Rows.Count.ToString();
            totalmoney_span1.InnerText = allmoney.ToString("f2");
            //------店铺
            Store_RPT.DataSource = orderCom.SelStoreDT(CartDT);
            Store_RPT.DataBind();
            //------发票绑定
            Server.Execute("/Cart/Comp/Invoice.aspx", sw);
            Invoice_Lit.Text = sw.ToString();
            sw = new StringWriter();
            //------积分抵扣
            {
                int usepoint = Point_CanBeUse(allmoney);
                if (usepoint > 0)
                {
                    point_body.Visible = true;
                    Point_L.Text       = mu.UserExp.ToString();
                    //int usepoint = (int)(allmoney * (SiteConfig.ShopConfig.PointRatiot * 0.01));
                    function.Script(this, "SumByPoint(" + usepoint + ");");
                    PointRate_Hid.Value = SiteConfig.ShopConfig.PointRate.ToString("F2");
                }
                else
                {
                    point_tips.Visible = true;
                }
            }
            //------优惠券
            Server.Execute("/Cart/Comp/ArriveList.aspx?allmoney=" + allmoney + "&ids=" + ids, sw);
            Arrive_Lit.Text = sw.ToString();
        }
示例#13
0
        private void MyBind()
        {
            int guestnum = 0, totalnum = 0;

            if (!string.IsNullOrEmpty(ids))
            {
                M_Cart        cartMod  = cartBll.SelReturnModel(DataConvert.CLng(ids.Split(',')[0]));
                M_Cart_Travel traveMod = JsonConvert.DeserializeObject <M_Cart_Travel>(cartMod.Additional);
                Pros                = JsonConvert.SerializeObject(traveMod.ProList);
                Guest_Hid2.Value    = JsonConvert.SerializeObject(traveMod.Guest);
                Contract_Hid2.Value = JsonConvert.SerializeObject(traveMod.Contract);
                guestnum            = traveMod.Guest.Count;
            }
            //绑定显示商品
            if (!string.IsNullOrEmpty(Pros))
            {
                JArray    proArr      = (JArray)JsonConvert.DeserializeObject(Pros);
                DataTable proDT       = CreateProDT();//仅用于展示,不参与逻辑
                double    proAllMoney = 0;
                for (int i = 0; i < proArr.Count; i++)
                {
                    DataRow   proDR  = proDT.NewRow();
                    M_Product proMod = proBll.GetproductByid(Convert.ToInt32(proArr[i]["ProID"].ToString()));
                    switch ((M_Product.ClassType)proMod.ProClass)
                    {
                    case M_Product.ClassType.LY:
                    case M_Product.ClassType.JD:
                        break;

                    default:
                        function.WriteErrMsg("[" + proMod.Proname + "]商品类型不正确");
                        break;
                    }
                    if (proMod.ID > 0)
                    {
                        proDR["ID"]      = proMod.ID;
                        proDR["ProName"] = proMod.Proname;
                        proDR["Pronum"]  = proArr[i]["Pronum"].ToString();
                        //----如果传递了编号,则读取多价格信息
                        double  price   = proMod.LinPrice;
                        DataRow priceDR = proBll.GetPriceByCode(proArr[i]["code"], proMod.Wholesalesinfo, ref price);
                        proDR["Price"] = price;
                        if (priceDR != null)
                        {
                            proDR["ProName"] += "(" + priceDR["Proname"] + ")";
                        }
                        //----
                        proDR["AllMoney"] = Convert.ToInt32(proDR["Pronum"]) * Convert.ToDouble(proDR["Price"]);
                        proDR["GoDate"]   = DataConvert.CDate(proArr[i]["GoDate"]);
                        proDR["Remind"]   = HttpUtility.UrlDecode(proArr[i]["Remind"].ToString());
                        proDT.Rows.Add(proDR);
                        proAllMoney += Convert.ToDouble(proDR["AllMoney"]);
                        totalnum    += Convert.ToInt32(proDR["Pronum"]);
                    }
                }
                AllMoney_sp.InnerText  = proAllMoney.ToString("0.00");
                ProList_RPT.DataSource = proDT;
                ProList_RPT.DataBind();
                function.Script(this, "AddGuests(" + (string.IsNullOrEmpty(ids) ? totalnum : guestnum) + ");");
            }
        }