//保存
 protected void btn_Click(object sender, EventArgs e)
 {
     int         id         = DataConverter.CLng(hforderid.Value);
     M_OrderList orderinfo  = orderBll.GetOrderListByid(id);//GetCartProOrderID
     B_CartPro   cartproBll = new B_CartPro();
     DataTable   dts        = cartproBll.GetCartProOrderID(id);
 }
Пример #2
0
        public static string TlpDeal(string tlp, DataRow dr)
        {
            B_CartPro cartProBll = new B_CartPro();
            string    result     = tlp;

            if (dr != null)
            {
                #region dt中字段替换
                DataTable dt = dr.Table;
                //遍历表格字段并替换
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    string colname = dt.Columns[i].ColumnName;
                    string value   = dr[colname].ToString();
                    if (dt.Columns[i].DataType.ToString().Equals("System.Decimal"))
                    {
                        value = DataConvert.CDouble(dr[colname]).ToString("f2");
                    }
                    result = result.Replace("{" + colname + "}", value);
                }
                #endregion
                #region CartPro扩展字段
                //CartPro字段,只取第一条信息循环输出
                if (tlp.Contains("{CartPro."))
                {
                    DataTable cartDT = new DataTable();
                    cartDT = cartProBll.SelByOrderID(Convert.ToInt32(dt.Rows[0]["ID"]));
                    if (cartDT.Rows.Count > 0)
                    {
                        dr = cartDT.Rows[0];
                        for (int i = 0; i < cartDT.Columns.Count; i++)
                        {
                            string colname = cartDT.Columns[i].ColumnName;
                            string value   = dr[colname].ToString();
                            if (cartDT.Columns[i].DataType.ToString().Equals("System.Decimal"))
                            {
                                value = Convert.ToDouble(dr[colname]).ToString("f2");
                            }
                            result = result.Replace("{CartPro." + colname + "}", value);
                        }
                    }
                }
                #endregion
                //    #region Extend扩展字段
                //    if (dt.Columns.Contains("Extend") && (!string.IsNullOrEmpty(dr["Extend"].ToString())))//扩展字段,可自由定义
                //    {
                //        JObject model = (JObject)JsonConvert.DeserializeObject(dr["Extend"].ToString());
                //        foreach (var item in model)
                //        {
                //            result = result.Replace("{Extend."+item.Key+"}",item.Value.ToString());
                //        }
                //    }
                //#endregion
            }
            //标签解析
            //B_CreateHtml createBll = new B_CreateHtml(HttpContext.Current.Request);
            //result = createBll.CreateHtml(result);
            return(result);
        }
Пример #3
0
    public string GetProname(int orderid)
    {
        B_CartPro cartProBll = new B_CartPro();
        string    result     = "";
        DataTable dt         = cartProBll.SelByOrderID(orderid);

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            result += dt.Rows[i]["Proname"].ToString() + "x" + dt.Rows[i]["Pronum"].ToString() + " ¥" + DataConvert.CDouble(dt.Rows[i]["AllMoney"].ToString()).ToString("0.00") + "元 ";
        }
        return(result);
    }
Пример #4
0
        private string GetProName(M_OrderList orderMod)
        {
            B_CartPro cartBll = new B_CartPro();
            DataTable dt      = cartBll.SelByOrderID(orderMod.id);
            string    result  = "";

            foreach (DataRow dr in dt.Rows)
            {
                result += "[" + dr["ProName"] + "(数量:" + dr["ProNum"] + ")]<br />";
            }
            return(result);
        }
Пример #5
0
        public void fahuo(int id, String Email)
        {
            B_CartPro   cpl = new B_CartPro();
            B_OrderList oll = new B_OrderList();
            B_Product   pll = new B_Product();
            B_Stock     Sll = new B_Stock();

            //历遍清单所有商品数量,查找库存///////////////////
            DataTable   Unew   = cpl.GetCartProOrderID(id); //获得详细清单列表
            M_OrderList orlist = oll.GetOrderListByid(id);

            for (int s = 0; s < Unew.Rows.Count; s++)
            {
                int Onum = ZoomLa.Common.DataConverter.CLng(Unew.Rows[s]["Pronum"]);
                int Opid = ZoomLa.Common.DataConverter.CLng(Unew.Rows[s]["ProID"]);

                M_Product pdin = pll.GetproductByid(Opid);//获得商品信息

                if (pdin.JisuanFs == 0)
                {
                    int pstock = pdin.Stock - Onum;//库存结果,返回的商品数量
                    pll.ProUpStock(Opid, pstock);
                }
                M_Stock SData = new M_Stock();
                SData.id        = 0;
                SData.proid     = Opid;
                SData.stocktype = 1;
                SData.proname   = pdin.Proname;
                SData.danju     = "CK" + orlist.OrderNo.ToString();
                SData.adduser   = orlist.Reuser.ToString();
                SData.addtime   = DateTime.Now;
                SData.content   = "订单:" + orlist.Reuser.ToString() + "发货";
                SData.Pronum    = ZoomLa.Common.DataConverter.CLng(Unew.Rows[0]["Pronum"]);
                Sll.AddStock(SData);
            }

            string str = "StateLogistics=1";

            if (!string.IsNullOrEmpty(Email))
            {
                str += ",ExpressDelivery='" + Email + "'";
            }
            oll.UpOrderinfo(str, id);
            PromotionComfirm(orlist);
        }
Пример #6
0
        /// <summary>
        /// 如果是推广商品就添加推广信息
        /// </summary>
        /// <param name="orlist"></param>
        public void PromotionComfirm(M_OrderList orlist)
        {
            B_ArticlePromotion bap = new B_ArticlePromotion();
            B_CartPro          cpl = new B_CartPro();
            DataTable          mcp;

            mcp = cpl.GetCartProOrderID(orlist.id);
            if (mcp != null && mcp.Rows.Count > 0)
            {
                if (orlist.Settle == 1)
                {
                    for (int i = 0; i < mcp.Rows.Count; i++)
                    {
                        Response.Write(mcp.Rows[i]["id"].ToString());
                        M_ArticlePromotion map = bap.GetSelectBySqlParams("select * from ZL_ArticlePromotion where cartproid=" + mcp.Rows[i]["id"].ToString(), null);
                        if (map.Id > 0)
                        {
                            map.IsEnable = true;
                            bap.GetUpdate(map);
                        }
                    }
                }
            }
        }
Пример #7
0
    /// <summary>
    /// 异步回调后-->验证支付单状态-->如果正常,更新订单状态
    /// </summary>
    /// <param name="mod">订单模型</param>
    /// <param name="paylogMod">订单支付日志模型</param>
    public static void FinalStep(M_Payment pinfo, M_OrderList mod, M_Order_PayLog paylogMod)
    {
        B_OrderList    orderBll  = new B_OrderList();
        B_CartPro      cartBll   = new B_CartPro();
        B_Order_PayLog paylogBll = new B_Order_PayLog();
        B_User         buser     = new B_User();

        //订单已处理,避免重复(如已处理过,则继续处理下一张订单)
        if (mod.OrderStatus >= 99)
        {
            ZLLog.L(ZoomLa.Model.ZLEnum.Log.safe, new M_Log()
            {
                Action  = "支付回调异常,订单状态已为99",
                Message = "订单号:" + mod.OrderNo + ",支付单:" + pinfo.PayNo
            });
            return;
        }
        //已经收到钱了,所以先执行
        orderBll.UpOrderinfo("Paymentstatus=1,Receivablesamount=" + pinfo.MoneyTrue, mod.id);
        if (mod.Ordertype == (int)M_OrderList.OrderEnum.Domain)//域名订单
        {
            orderBll.UpOrderinfo("OrderStatus=1", mod.id);
            //Response.Redirect("~/Plugins/Domain/DomReg2.aspx?OrderNo=" + mod.OrderNo);
        }
        else if (mod.Ordertype == (int)M_OrderList.OrderEnum.IDC)//IDC服务
        {
            orderBll.UpOrderinfo("OrderStatus=99", mod.id);
            cartBll.IDC_UpdateEndTimeByOid(mod.id);
        }
        else if (mod.Ordertype == (int)M_OrderList.OrderEnum.Purse)//余额充值,不支持银币
        {
            buser.ChangeVirtualMoney(mod.Userid, new M_UserExpHis()
            {
                score     = (int)mod.Ordersamount,
                ScoreType = (int)M_UserExpHis.SType.Purse,
                detail    = "余额充值,订单号:" + mod.OrderNo
            });
            orderBll.UpOrderinfo("OrderStatus=99", mod.id);            //成功的订单
        }
        else if ((mod.Ordertype == (int)M_OrderList.OrderEnum.IDCRen)) //IDC服务续费
        {
            orderBll.UpOrderinfo("OrderStatus=99", mod.id);
            B_Product proBll = new B_Product();
            //更新旧订单的期限
            if (string.IsNullOrEmpty(mod.Ordermessage))//购物车ID
            {
                //function.WriteErrMsg("出错,无需续费订单信息,请联系管理员!!!");
                throw new Exception("出错,无续费订单信息,请联系管理员");
            }
            M_CartPro newCartMod = cartBll.SelModByOrderID(mod.id);//新购物车只是取其商品ID与数量等
            M_Product proMod     = proBll.GetproductByid(newCartMod.ProID);
            //更新延长旧服务的到期时间,旧服务是存在CartPro的EndTime当中
            M_CartPro oldCartMod = cartBll.SelReturnModel(Convert.ToInt32(mod.Ordermessage));
            if (oldCartMod.EndTime < DateTime.Now)
            {
                oldCartMod.EndTime = DateTime.Now;                                   //如已过期,则将时间更新至今日
            }
            oldCartMod.EndTime = proBll.GetEndTime(proMod, newCartMod.Pronum, oldCartMod.EndTime);
            cartBll.UpdateByID(oldCartMod);
            //paylogMod.Remind = "为" + mod.Ordermessage + "订单续费(购物车)";
        }
        else if (mod.Ordertype == (int)M_OrderList.OrderEnum.Cloud)//云购订单
        {
            //根据份数生成幸运码,写入表中,并减去库存 ZL_Order_LuckCode
        }
        else//其他旅游订单等,只更新状态
        {
            orderBll.UpOrderinfo("OrderStatus=99", mod.id);//成功的订单
        }
        //-------支付成功处理,并写入日志
        paylogMod.Remind   += "订单" + mod.OrderNo + "购买生效";
        paylogMod.OrderID   = mod.id;
        paylogMod.PayMoney  = mod.Ordersamount;
        paylogMod.PayMethod = (int)M_Order_PayLog.PayMethodEnum.Other;//外部指定
        paylogMod.PayPlatID = pinfo.PayPlatID;
        paylogBll.insert(paylogMod);
    }
Пример #8
0
        public static void OrderFinish(M_OrderList mod, M_Payment pinfo)
        {
            B_OrderList orderBll = new B_OrderList();
            B_CartPro   cpBll    = new B_CartPro();
            B_User      buser    = new B_User();

            //B_User_Card cdBll = new B_User_Card();
            //B_User_StoreUser suBll = new B_User_StoreUser();
            switch (mod.Ordertype)
            {
            case (int)M_OrderList.OrderEnum.Domain:
            {
                B_Shop_MoneyRegular regBll = new B_Shop_MoneyRegular();
                //M_User_StoreUser suMod = suBll.SelReturnModel(Convert.ToInt32(mod.Receiver));
                //M_User_Card cdMod = cdBll.SelModelByUid(suMod.ID);
                //cdMod.CardPurse += mod.Ordersamount;
                //cdBll.UpdateByID(cdMod);
                int regular = DataConvert.CLng(mod.Money_code);
                M_Shop_MoneyRegular regMod = null;
                if (regular > 0)
                {
                    regMod = regBll.SelReturnModel(regular);
                }
                else
                {
                    regMod     = new M_Shop_MoneyRegular();
                    regMod.Min = mod.Ordersamount;
                }
                buser.AddMoney(DataConvert.CLng(mod.Receiver), regMod.Min + regMod.Purse, M_UserExpHis.SType.Purse, "充值,订单号:" + mod.OrderNo + ",充值:" + regMod.Min + ",赠送:" + regMod.Purse);
                if (regMod.Point > 0)
                {
                    buser.AddMoney(DataConvert.CLng(mod.Receiver), regMod.Point, M_UserExpHis.SType.Point, "充值赠送积分,订单号:" + mod.OrderNo);
                }
            }
            break;

            case (int)M_OrderList.OrderEnum.Cloud:    //通过微信下的预约订单
            {
                //付款后增加预约记录,由收银员完成开单
                //{ id: 0, proid: 0, proname: "", empid: 0, empname: "" };
                DataTable cpDT = cpBll.SelByOrderID(mod.id);
                List <M_Ex_PreOrder_Item> itemList = new List <M_Ex_PreOrder_Item>();
                foreach (DataRow dr in cpDT.Rows)
                {
                    M_Ex_PreOrder_Item model = new M_Ex_PreOrder_Item();
                    model.proid   = Convert.ToInt32(dr["ProID"]);
                    model.proname = DataConvert.CStr(dr["Proname"]);
                    model.empid   = DataConvert.CLng(dr["code"]);
                    model.empname = DataConvert.CStr(dr["Proinfo"]);
                    itemList.Add(model);
                }
                B_Ex_PreOrder poBll = new B_Ex_PreOrder();
                M_Ex_PreOrder poMod = new M_Ex_PreOrder();
                poMod.ClientMobile = mod.Mobile.ToString();
                poMod.ClientName   = mod.Rename;
                poMod.ClientDate   = DataConvert.CDate(mod.ExpTime);
                poMod.ClientNeed   = JsonConvert.SerializeObject(itemList);
                poMod.Remark       = mod.Ordermessage;
                poMod.Source       = "微信";
                poMod.OrderID      = mod.id;
                poMod.ID           = poBll.Insert(poMod);
            }
            break;

            default:    //普通订单,计算提成,赠送积分
            {
                B_Shop_Bonus bnBll = new B_Shop_Bonus();
                DataTable    cpDT  = cpBll.SelByOrderID(mod.id);
                foreach (DataRow dr in cpDT.Rows)
                {
                    int    code     = DataConvert.CLng(dr["code"]);
                    int    proid    = DataConvert.CLng(dr["Proid"]);
                    double allMoney = DataConvert.CDouble(dr["AllMoney"]);
                    if (code < 1)
                    {
                        continue;
                    }
                    #region 技师计算提成
                    //技师绑定了何种分成方案,
                    M_UserInfo   jsMod = buser.SelReturnModel(code);
                    M_Shop_Bonus bnMod = null;
                    if (jsMod.VIP < 1)
                    {
                        bnMod = bnBll.SelModelByDefault();
                    }
                    else
                    {
                        bnMod = bnBll.SelReturnModel(jsMod.VIP);
                    }
                    //无提成方案则不计算
                    if (bnMod != null)
                    {
                        //根据商品ID,看有无匹配的子数据类型
                        M_Shop_Bonus bnMod2 = bnBll.SelModelByProID(bnMod.ID, proid);
                        if (bnMod2 != null)
                        {
                            bnMod = bnMod2;
                        }
                        //-------计算提成,写入CartPro中
                        double bonus = 0;
                        switch (bnMod.BonusType)
                        {
                        case 0:
                            bonus = allMoney * (DataConvert.CDouble(bnMod.BonusValue1) * 0.01);
                            break;

                        case 1:
                            bonus = DataConvert.CDouble(bnMod.BonusValue1);
                            break;
                        }
                        DBCenter.UpdateSQL("ZL_CartPro", "AllMoney_Json='" + bonus.ToString("F2") + "'", "ID=" + dr["ID"]);
                    }
                    #endregion
                }
                //-------赠送积分,默认每一元送一分
                buser.AddMoney(DataConvert.CLng(mod.Receiver), mod.Receivablesamount, M_UserExpHis.SType.Point, "订单[" + mod.id + "]赠送积分");
            }
            break;
            }
        }