Example #1
0
    /// <summary>
    /// 修改订单
    /// </summary>
    /// <param name="OrderInfoModel"></param>
    /// <param name="OrderDetailList"></param>
    /// <returns></returns>
    public static int UpdateOrder(DateTime dts, Hi.Model.DIS_Order OrderInfoModel, Hi.Model.DIS_OrderExt OrderExt, List <Hi.Model.DIS_OrderDetail> OrderDetailList, string delOrderD)
    {
        //判断订单时间
        if (new Hi.BLL.DIS_Order().Getts("Dis_Order", OrderInfoModel.ID, dts) == 0)
        {
            return(-1);
        }

        int OrderId = 0;

        //返回修改库存的sql
        System.Text.StringBuilder sqlInven = new System.Text.StringBuilder();
        int IsInve = OrderInfoType.rdoOrderAudit("商品是否启用库存", OrderInfoModel.CompID).ToInt(0);

        if (IsInve == 0)
        {
            //修改商品库存,先返还订单明细删除的商品库存
            sqlInven.AppendFormat(new Hi.BLL.DIS_Order().GetSqlInventory(delOrderD, OrderDetailList));
        }

        //SqlConnection con = new SqlConnection(LocalSqlServer);
        //con.Open();
        //System.Data.IsolationLevel.RepeatableRead
        SqlTransaction sqlTrans = DBUtility.SqlHelper.CreateStoreTranSaction();

        //可以做循环

        try
        {
            //private object thislock = OrderInfoModel.ID as object;
            //lock (thislock)
            //{
            OrderId = OrderBll.UpdateOrder(sqlTrans.Connection, OrderInfoModel, sqlTrans);
            if (OrderDetailList.Count <= 0)
            {
                OrderId = 0;
                sqlTrans.Rollback();
            }
            else
            {
                if (OrderExt != null)
                {
                    //修改订单扩展表
                    if (!OrderExtBll.Update(sqlTrans.Connection, OrderExt, sqlTrans))
                    {
                        OrderId = 0;
                        sqlTrans.Rollback();
                    }
                }

                if (!delOrderD.Equals(""))
                {
                    //修改时 删除商品后 清除在数据库中存在的该商品
                    if (OrderDetailBll.GetDel(delOrderD, sqlTrans.Connection, sqlTrans) < 0)
                    {
                        OrderId = 0;
                        sqlTrans.Rollback();
                    }
                }

                foreach (Hi.Model.DIS_OrderDetail item in OrderDetailList)
                {
                    Hi.Model.DIS_OrderDetail OrderDeModel = OrderDetailBll.GetModel(item.ID);
                    int count = 0;
                    if (OrderDeModel != null)
                    {
                        if (IsInve == 0)
                        {
                            //修改订单明细时,先返还商品库存
                            sqlInven.AppendFormat("update BD_GoodsInfo set Inventory+={0} where ID={1};", OrderDeModel.GoodsNum + Convert.ToDecimal(OrderDeModel.ProNum), OrderDeModel.GoodsinfoID);
                        }

                        item.OrderID = OrderInfoModel.ID;
                        //修改订单时,订单明细里存在该商品 修改商品信息
                        count = OrderDetailBll.UpdateOrderDetail(sqlTrans.Connection, item, sqlTrans);
                        if (count == 0)
                        {
                            OrderId = 0;
                            sqlTrans.Rollback();
                        }
                    }
                    else
                    {
                        //修改订单时,订单明细里不存在该商品新增商品信息
                        item.OrderID = OrderInfoModel.ID;
                        count        = OrderDetailBll.AddOrderDetail(sqlTrans.Connection, item, sqlTrans);
                        if (count == 0)
                        {
                            OrderId = 0;
                            sqlTrans.Rollback();
                        }
                    }
                }
                if (IsInve == 0)
                {
                    //修改商品库存,先返还订单明细删除的商品库存
                    //sqlInven.AppendFormat(new Hi.BLL.DIS_Order().GetSqlInventory(delOrderD,  OrderDetailList));
                    if (new Hi.BLL.DIS_OrderDetail().GetUpdateInventory(sqlInven.ToString(), sqlTrans.Connection, sqlTrans) <= 0)
                    {
                        OrderId = 0;
                        sqlTrans.Rollback();
                    }
                }

                if (OrderInfoType.rdoOrderAudit("订单支付返利是否启用", OrderInfoModel.CompID) == "1")
                {
                    //订单支付返利启用
                    if (bate.TransEditRebate(OrderInfoModel.DisID, OrderInfoModel.bateAmount, OrderInfoModel.ID, OrderInfoModel.CreateUserID, sqlTrans))
                    {
                        sqlTrans.Commit();
                        return(OrderId);
                    }
                }
                sqlTrans.Commit();
            }
            //}
        }
        catch
        {
            OrderId = 0;
            sqlTrans.Rollback();
        }
        finally
        {
        }

        return(OrderId);
    }
Example #2
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(Hi.Model.DIS_OrderExt model)
 {
     return(dal.Update(model));
 }
Example #3
0
    /// <summary>
    /// 新增订单
    /// </summary>
    /// <param name="OrderInfoModel"></param>
    /// <param name="OrderDetailList"></param>
    /// <returns></returns>
    public static int TansOrder(Hi.Model.DIS_Order OrderInfoModel, Hi.Model.DIS_OrderExt OrderExt, List <Hi.Model.DIS_OrderDetail> OrderDetailList)
    {
        int OrderId    = 0;
        int OrderExtId = 0;

        System.Text.StringBuilder sqlInven = new System.Text.StringBuilder();
        int IsInve = rdoOrderAudit("商品是否启用库存", OrderInfoModel.CompID).ToInt(0);

        SqlTransaction sqlTrans = DBUtility.SqlHelper.CreateStoreTranSaction();

        //可以做循环
        try
        {
            OrderId = OrderBll.AddOrder(sqlTrans.Connection, OrderInfoModel, sqlTrans);
            if (OrderId == 0)
            {
                OrderId = 0;
                sqlTrans.Rollback();
                return(OrderId);
            }
            OrderExt.OrderID = OrderId;
            OrderExtId       = OrderExtBll.Add(sqlTrans.Connection, OrderExt, sqlTrans);
            if (OrderExtId == 0)
            {
                OrderId = 0;
                sqlTrans.Rollback();
                return(OrderId);
            }
            if (OrderDetailList.Count <= 0)
            {
                OrderId = 0;
                sqlTrans.Rollback();
            }
            else
            {
                foreach (Hi.Model.DIS_OrderDetail item in OrderDetailList)
                {
                    item.OrderID = OrderId;
                    int count = OrderDetailBll.AddOrderDetail(sqlTrans.Connection, item, sqlTrans);
                    if (count == 0)
                    {
                        OrderId = 0;
                        sqlTrans.Rollback();
                    }
                }
                if (IsInve == 0)
                {
                    //新增订单,减商品库存
                    sqlInven.AppendFormat(new Hi.BLL.DIS_Order().GetSqlInventory("", OrderDetailList));
                    if (new Hi.BLL.DIS_OrderDetail().GetUpdateInventory(sqlInven.ToString(), sqlTrans.Connection, sqlTrans) <= 0)
                    {
                        OrderId = 0;
                        //sqlTrans.Rollback();
                    }
                }

                if (rdoOrderAudit("订单支付返利是否启用", OrderInfoModel.CompID) == "1")
                {
                    //订单支付返利启用
                    if (OrderInfoModel.bateAmount > 0)
                    {
                        //使用返利大于0;
                        if (bate.TransRebate(OrderInfoModel.DisID, OrderInfoModel.bateAmount, OrderId, OrderInfoModel.CreateUserID, sqlTrans))
                        {
                            sqlTrans.Commit();
                            return(OrderId);
                        }
                        else
                        {
                            sqlTrans.Rollback();
                            OrderId = 0;
                            return(OrderId);
                        }
                    }
                }
                sqlTrans.Commit();
            }
        }
        catch
        {
            OrderId = 0;
            sqlTrans.Rollback();
        }
        finally
        {
            //sqlTrans.Connection.Close();
        }

        return(OrderId);
    }
Example #4
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Add(Hi.Model.DIS_OrderExt model)
 {
     return(dal.Add(model));
 }