新公司的异常回滚处理

//#region 插入出库主表
        /// <summary>
        /// 插入出库主表
        /// </summary>
        /// <param name="param">出库主表对象</param>
        /// <param name="ValidateGuid">验证码</param>
        /// <returns></returns>
        object IPublicWork.Insert(object param, Guid ValidateGuid)
        {
            string UserCode = ValidateCode.Validate(ValidateGuid);
            if (!PublicStringTool.IsEmpty(UserCode))
            {
                OutStorageMainList outstorageobject = (OutStorageMainList)param;
                //#region 开始事务
                DbTransaction sqltrans = SqlExec.BeginTransaction(SystemType.WMS);
                WMS_OutStorage.InsertWMS_OutStorage(outstorageobject.StorageMainObject, sqltrans);
                //插入主表失败
                if (PublicStringTool.IsEmpty(outstorageobject.StorageMainObject.OutStorage_Id))
                {
                    //回滚
                    SqlExec.endTransactionRollback(sqltrans);
                    //异常
                    ExceptionManage ex = new ExceptionManage();
                    ex.ThrowException(110, SystemType.WMS);

                    return null;
                }
                else
                {
                    //#region 出库明细
                    if (outstorageobject.ListObject != null)
                    {
                        foreach (ListObject listobject in outstorageobject.ListObject)
                        {
                            if (!DataAccess.WMS_OutStorageList.Insert_WMS_OutStorageList(listobject, sqltrans))
                            {
                                //回滚
                                SqlExec.endTransactionRollback(sqltrans);
                                //异常
                                ExceptionManage ex = new ExceptionManage();
                                ex.ThrowException(112, SystemType.WMS);
                                return null;
                            }

                        }
                    }
                    //#endregion
                    //#region 收货方信息
                    if (outstorageobject.StorageMainObject.IsIncludeAccept == 1)
                    {
                        if (outstorageobject.outStorage_Accept != null)
                        {

                            if (!DataAccess.WMS_OutStorage_Accept.InsertWMS_OutStorage_Accept(outstorageobject.outStorage_Accept, sqltrans))
                            {
                                //回滚
                                SqlExec.endTransactionRollback(sqltrans);
                                //异常
                                ExceptionManage ex = new ExceptionManage();
                                ex.ThrowException(1000, SystemType.WMS);
                                return null;
                            }


                        }

                    }
                    //#endregion
                    //#region 加工信息
                    if (outstorageobject.StorageMainObject.IsIncludeMachining == 1)
                    {
                        if (outstorageobject.outStorage_Maching != null)
                        {
                            foreach (OutStorage_Maching outStorage_Maching in outstorageobject.outStorage_Maching)
                            {
                                if (!DataAccess.WMS_OutStorage_Machining.Insert_WMS_OutStorage_Machining(outStorage_Maching, sqltrans))
                                {
                                    SqlExec.endTransactionRollback(sqltrans);
                                    ExceptionManage ex = new ExceptionManage();
                                    ex.ThrowException(10001, SystemType.WMS);
                                    return null;
                                }
                            }

                        }

                    }
                    //#endregion
                    //#region 运输方信息
                    if (outstorageobject.StorageMainObject.IsIncludeTransport == 1)
                    {
                        if (!DataAccess.WMS_OutStorage_Transport.InsertWMS_OutStorage_Transport(outstorageobject.outStorage_Transport, sqltrans))
                        {
                            SqlExec.endTransactionRollback(sqltrans);
                            ExceptionManage ex = new ExceptionManage();
                            ex.ThrowException(10003, SystemType.WMS);
                            return null;
                        }
                    }
                    //#endregion

                    //#region 提交事务
                    SqlExec.endTransactionCommit(sqltrans);
                    DataAccess.LOGWrite.WriteIMS_log(new IMS_LogObject(UserCode, SystemType.WMS, "insert", "插入", "", "WMS_OutStorage", outstorageobject.StorageMainObject.OutStorage_Id));
                    return null;
                    //#endregion


                }
                //#endregion
            }
            else
            {
                return null;
            }
        } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值