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); } }
//用于酒店订单等 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>"); } }
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; } }
//提交订单 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); }
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; } } }
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(); }
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; } }
//提交订单 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); }
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)); }
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)); }
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(); }
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) + ");"); } }