Ejemplo n.º 1
0
        public static string UpdateMemberOrder(string OrderId, IList <MemberDetailsModel> list, MemberOrderModel memberOrderModel, string StoreID)
        {
            SqlConnection    conn  = new SqlConnection(DBHelper.connString);
            MemberOrderModel order = MemberOrderBLL.GetMemberOrder(memberOrderModel.OrderId);
            SqlTransaction   tran  = null;

            try
            {
                conn.Open();
                tran = conn.BeginTransaction();

                SqlCommand cmd = new SqlCommand();
                cmd.Transaction = tran;
                cmd.Connection  = conn;


                DataTable dhpv = DBHelper.ExecuteDataTable(tran, "select totalpv,LackProductMoney from MemberOrder where OrderID='" + OrderId + "'");

                if (memberOrderModel.PayExpect != -1 && memberOrderModel.DefrayState == 1)
                {
                    if (Convert.ToDecimal(dhpv.Rows[0]["totalpv"]) != memberOrderModel.TotalPv)
                    {
                        //修改后需重新结算
                        cmd.CommandText = "update config set jsflag='0' where ExpectNum>='" + memberOrderModel.PayExpect + "'";
                        cmd.CommandType = CommandType.Text;

                        cmd.ExecuteNonQuery();
                    }
                }

                if (memberOrderModel.DefrayState == 1)
                {
                    decimal oldlackproductmoney = Convert.ToDecimal(dhpv.Rows[0]["LackProductMoney"]);
                    if (memberOrderModel.LackProductMoney != oldlackproductmoney)
                    {
                        D_AccountBLL.AddAccount(StoreID, Convert.ToDouble(oldlackproductmoney), D_AccountSftype.StoreType, D_AccountKmtype.OrderUpdateIn, DirectionEnum.AccountsIncreased, "店铺[" + StoreID + "]修改订单[" + order.OrderId + "]退回钱[" + oldlackproductmoney + "]", tran);
                        //D_AccountBLL.AddAccount(StoreID, Convert.ToDouble(memberOrderModel.LackProductMoney), D_AccountSftype.StoreType, D_AccountKmtype.OrderUpdateOut, DirectionEnum.AccountReduced, "店铺[" + StoreID + "]修改订单[" + memberOrderModel.OrderId + "]扣除钱[" + memberOrderModel.LackProductMoney + "]", tran);

                        if (order.DefrayType == 2)
                        {
                            new MemberOrderBLL().IsElecPay(tran, order);
                            D_AccountBLL.AddAccount(order.Number, Convert.ToDouble(order.LackProductMoney), D_AccountSftype.MemberType, D_AccountKmtype.OrderUpdateIn, DirectionEnum.AccountsIncreased, "会员【" + order.Number + "】报单修改现金扣添加,订单号为【" + order.OrderId + "】", tran);
                            D_AccountBLL.AddAccount(order.StoreId, Convert.ToDouble(order.LackProductMoney), D_AccountSftype.StoreType, D_AccountKmtype.OrderUpdateOut, DirectionEnum.AccountReduced, "会员【" + order.Number + "】报单修改现金添加扣,订单号为【" + order.OrderId + "】", tran, true);
                        }
                    }
                }

                int res = 0;

                SqlParameter[] del_parm =
                {
                    new SqlParameter("@OrderID", OrderId),
                    new SqlParameter("@StoreID", StoreID),
                    new SqlParameter("@Type",                                 1),
                    new SqlParameter("@res",     res),
                    new SqlParameter("@opnum",   memberOrderModel.OperateNumber),
                    new SqlParameter("@opip",    memberOrderModel.OperateIp),
                };

                BLL.CommonClass.ChangeLogs cl_h_info = new BLL.CommonClass.ChangeLogs("MemberOrder", "ltrim(rtrim(OrderID))");
                cl_h_info.AddRecordtran(tran, OrderId);

                BLL.CommonClass.ChangeLogs cl_h_info1 = new BLL.CommonClass.ChangeLogs("MemberDetails", "ltrim(rtrim(OrderID))");
                cl_h_info1.AddRecordtran(tran, OrderId);

                DBHelper.ExecuteNonQuery(tran, "Delete_H_Order", del_parm, CommandType.StoredProcedure);

                if (Convert.ToInt32(del_parm[3].Value) == 0)
                {
                    //添加订单
                    new AddOrderBLL().SaveHOrder(tran, list, memberOrderModel);

                    cl_h_info.AddRecordtran(tran, OrderId);
                    cl_h_info1.AddRecordtran(tran, OrderId);

                    if (Convert.ToInt32(DAL.DBHelper.ExecuteScalar(tran, "select count(1) from MemberDetails where OrderId='" + OrderId + "'", CommandType.Text)) > 0)
                    {
                        cl_h_info.ModifiedIntoLogstran(tran, ChangeCategory.Order, OrderId, ENUM_USERTYPE.objecttype5);
                        cl_h_info1.ModifiedIntoLogstran(tran, ChangeCategory.Order, OrderId, ENUM_USERTYPE.objecttype5);
                    }

                    tran.Commit();
                    return("1");
                }
                else
                {
                    tran.Rollback();
                    return("-2");
                }
            }
            catch (Exception ee)
            {
                tran.Rollback();
                return("-2");
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 修改推荐或者安置编号
        /// </summary>
        /// <param name="number">会员编号</param>
        /// <param name="placement">新安置</param>
        /// <param name="direct">新推荐</param>
        /// <param name="oldplacement">原安置</param>
        /// <param name="olddirect">原推荐</param>
        /// <returns></returns>
        public static string UpdateNet(string number, string placement, string direct, string oldplacement, string olddirect, int qushu, int flag, out bool isPass)
        {
            BLL.CommonClass.ChangeLogs cl_h_info = new BLL.CommonClass.ChangeLogs("MemberInfo", "Number");//申明日志对象
            using (SqlConnection conn = new SqlConnection(DBHelper.connString))
            {
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();
                try
                {
                    int xs = 0;

                    string info = "";

                    try
                    {
                        /*
                         * @bianhao     nvarchar(20),   --调网编号
                         * @srcAnZhi	nvarchar(20),	--原安置
                         * @dirAnZhi	nvarchar(20),	--新安置
                         * @srcTuiJian	nvarchar(20),	--原推荐
                         * @dirTuiJian	nvarchar(20),   --新推荐
                         * @azXianShu	int,		--0:表示无限制,大于0则表示最大的线数
                         * @info		nvarchar(200) output --失败时返回错误信息,反之返回'OK'
                         */
                        info = TempHistoryDAL.ChangeCheck(number, placement, direct, oldplacement, olddirect, qushu, tran, xs, info);
                        if (info != "OK")
                        {
                            isPass = false;
                            return(info);
                        }

                        int maxExpectNum = CommonDataBLL.GetNumberRegExpect(number);
                        //调层位序号
                        //@bianhao varchar(20), --编号
                        //@old varchar(20),--原位置
                        //@new varchar(20),--新位置
                        //@IsAz bit, --0:推荐;1:安置
                        //@qishu int	--调网期
                        TempHistoryDAL.UpdateNet(number, placement, direct, tran, maxExpectNum, flag);
                        int count = TempHistoryDAL.UpdateMemberinfo(number, placement, direct, tran);

                        if (count == 0)
                        {
                            isPass = false;
                            tran.Rollback();
                            return("修改失败!");
                        }

                        count = TempHistoryDAL.UpdateConfig(maxExpectNum, tran);

                        if (count == 0)
                        {
                            isPass = false;
                            tran.Rollback();
                            return("修改失败!");
                        }

                        cl_h_info.AddRecordtran(tran, number);
                        if (System.Web.HttpContext.Current.Session["Company"] != null)
                        {
                            cl_h_info.ModifiedIntoLogstran(tran, CommonClass.ChangeCategory.Order, number, BLL.CommonClass.ENUM_USERTYPE.objecttype5);
                        }
                        else if (System.Web.HttpContext.Current.Session["Store"] != null)
                        {
                            cl_h_info.ModifiedIntoLogstran(tran, CommonClass.ChangeCategory.Order, number, BLL.CommonClass.ENUM_USERTYPE.objecttype5);
                        }
                    }
                    catch (Exception ex)
                    {
                        isPass = false;
                        string assdgs = ex.Message;
                        tran.Rollback();
                        return(assdgs);
                    }

                    tran.Commit();
                    isPass = true;
                    return("修改成功!");
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 确认订单按钮
        /// </summary>
        /// <param name="storeId"></param>
        /// <returns></returns>
        public Boolean OrderSubmit(string storeId, List <OrderDetailModel> orderDetails, OrderGoodsMedel storeItem, bool IsEdit)
        {
            using (SqlConnection conn = new SqlConnection(DBHelper.connString))
            {
                conn.Open();
                SqlTransaction tr = conn.BeginTransaction();//开启事务

                try
                {
                    if (IsEdit)                                                                                              //如果是修改订单,先删除原来的订单并还原原来的信息
                    {
                        BLL.CommonClass.ChangeLogs cl_h_info = new BLL.CommonClass.ChangeLogs("OrderGoods", "OrderGoodsID"); //实例日志类
                        cl_h_info.AddRecordtran(tr, storeItem.OrderGoodsID);                                                 //添加日志,修改前记录原来数据

                        StoreOrderDAL.DelStoreOrderItemProc(tr, storeItem.OrderGoodsID);
                        //StockDAL.DelStoreOrder(tr, OrderDetailDAL.GetOrderGoodsDetail(storeItem.StoreorderId), storeItem.StoreId);//还原店库存
                        //OrderDetailDAL.DelOrderGoodsDetail(tr, storeItem.StoreorderId);//明细表删除失败回滚
                        //StoreOrderDAL.DelOrderGoods(storeItem.StoreorderId, tr); //订单表删除失败回滚

                        cl_h_info.AddRecordtran(tr, storeItem.OrderGoodsID);                                                                                           //添加日志,修改后记录原来数据
                        cl_h_info.ModifiedIntoLogstran(tr, BLL.CommonClass.ChangeCategory.store10, storeItem.OrderGoodsID, BLL.CommonClass.ENUM_USERTYPE.objecttype2); //插入日志
                    }

                    //插入订单
                    if (new StoreOrderDAL().AddOrderGoods(storeItem, tr))
                    {
                        //订单表插入成功插入明细表
                        foreach (OrderDetailModel orderDetailItem in orderDetails)
                        {
                            if (!OrderDetailDAL.AddOrderGoodsDetail(tr, orderDetailItem, storeItem.OrderGoodsID))
                            {
                                tr.Rollback();
                                return(false);
                            }
                        }
                        //修改库存信息(预订数量)
                        foreach (OrderDetailModel orderDetailItem in orderDetails)
                        {
                            if (!StockDAL.UpdStockHasOrderCount(tr, storeItem.StoreId, orderDetailItem.ProductId, orderDetailItem.Quantity))
                            {
                                tr.Rollback();
                                return(false);
                            }
                        }

                        tr.Commit();//插入订单信息完成
                    }
                    else
                    {//订单插入失败回滚数据
                        tr.Rollback();
                        return(false);
                    }
                }
                catch
                {
                    //订单插入失败回滚数据
                    tr.Rollback();
                    return(false);
                }
                finally
                {
                    conn.Close();
                }
            }
            return(true);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 添加订单信息
        /// </summary>
        /// <param name="mode"></param>
        /// <param name="memberOrderModel"></param>
        /// <param name="totalPv"></param>
        /// <param name="except"></param>
        /// <param name="memberDetailsModel"></param>
        /// <param name="storeInfoModel"></param>
        public static bool AddOrderData(bool isEdit, MemberOrderModel memberOrderModel, IList <MemberDetailsModel> list)
        {
            bool state = false;

            using (SqlConnection conn = new SqlConnection(DBHelper.connString))
            {
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();
                try
                {
                    //如果是编辑
                    if (isEdit)
                    {
                        BLL.CommonClass.ChangeLogs cl_h_info = new BLL.CommonClass.ChangeLogs("memberorder", "orderid"); //实例日志类
                        cl_h_info.AddRecordtran(tran, memberOrderModel.OrderId);                                         //添加日志,修改前记录原来数据

                        MemberOrderModel order = MemberOrderBLL.GetMemberOrder(memberOrderModel.OrderId);

                        if (order.LackProductMoney > 0)
                        {
                            D_AccountBLL.AddAccount(order.StoreId, Convert.ToDouble(order.LackProductMoney), D_AccountSftype.StoreType, D_AccountKmtype.OrderUpdateIn, DirectionEnum.AccountsIncreased, "会员【" + order.Number + "】报单修改现金扣添加,订单号为【" + order.OrderId + "】", tran);
                            if (order.DefrayType == 2)
                            {
                                new Registration_declarations.MemberOrderAgainBLL().IsElecPay(tran, order);
                                D_AccountBLL.AddAccount(order.Number, Convert.ToDouble(order.LackProductMoney), D_AccountSftype.MemberType, D_AccountKmtype.OrderUpdateIn, DirectionEnum.AccountsIncreased, "会员【" + order.Number + "】报单修改现金扣添加,订单号为【" + order.OrderId + "】", tran);
                                D_AccountBLL.AddAccount(order.StoreId, Convert.ToDouble(order.LackProductMoney), D_AccountSftype.StoreType, D_AccountKmtype.OrderUpdateOut, DirectionEnum.AccountReduced, "会员【" + order.Number + "】报单修改现金添加扣,订单号为【" + order.OrderId + "】", tran, true);
                            }
                        }

                        int delResult = new AddOrderDataDAL().Del_Horder(tran, memberOrderModel.OrderId, memberOrderModel.StoreId, CommonDataBLL.OperateBh, CommonDataBLL.OperateIP);

                        if (memberOrderModel.DefrayState == 1)//店铺复消减去业绩
                        {
                            int js_delfuxiao_Result = new AddOrderDataDAL().Js_delfuxiao(memberOrderModel.Number, Convert.ToDouble(memberOrderModel.TotalPv), memberOrderModel.PayExpect, memberOrderModel.DefrayState, tran);
                        }

                        cl_h_info.ModifiedIntoLogstran(tran, ChangeCategory.Order, memberOrderModel.OrderId, ENUM_USERTYPE.objecttype5);//插入日志
                    }

                    //添加订单
                    new AddOrderBLL().SaveHOrder(tran, list, memberOrderModel);

                    //顾客购物业绩上传(注意支付money要改)
                    if (memberOrderModel.DefrayState == 1)
                    {
                        new AddOrderDataDAL().Js_addfuxiao(memberOrderModel.Number, Convert.ToDouble(memberOrderModel.TotalPv), memberOrderModel.PayExpect, memberOrderModel.DefrayState, tran);
                        CommonDataBLL.SetMemberLevel(tran, memberOrderModel.Number, memberOrderModel.OrderId);
                    }
                    state = true;
                    tran.Commit();
                }
                catch
                {
                    tran.Rollback();
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }

            return(state);
        }