public ResultModel Invalid(UserModel user, int allotId) { ResultModel result = new ResultModel(); try { DAL.CashInAllotDAL cashInAllotDAL = new CashInAllotDAL(); DAL.CashInCorpDAL cashInCorpDAL = new CashInCorpDAL(); DAL.CashInContractDAL cashInContractDAL = new CashInContractDAL(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = cashInAllotDAL.Get(user, allotId); if (result.ResultStatus != 0) return result; Model.CashInAllot cashInAllot = result.ReturnValue as Model.CashInAllot; if (cashInAllot == null) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } //作废付款分配 result = cashInAllotDAL.Invalid(user, cashInAllot); if (result.ResultStatus != 0) return result; result = cashinstcokDAL.LoadByAllot(user, allotId, StatusEnum.已生效); if (result.ResultStatus != 0) return result; List<Model.CashInStcok> cashInStcoks = result.ReturnValue as List<Model.CashInStcok>; if (cashInStcoks == null || !cashInStcoks.Any()) { result.ResultStatus = -1; result.Message = "获取明细失败"; return result; } foreach (Model.CashInStcok cashInStcok in cashInStcoks) { //作废明细 result = cashinstcokDAL.Invalid(user, cashInStcok); if (result.ResultStatus != 0) return result; result = cashInContractDAL.Get(user, cashInStcok.ContractRefId); if (result.ResultStatus != 0) return result; Model.CashInContract cashInContract = result.ReturnValue as Model.CashInContract; if (cashInContract == null) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } result = cashInContractDAL.Invalid(user, cashInContract); if (result.ResultStatus != 0) return result; result = cashInCorpDAL.Get(user, cashInContract.CorpRefId); if (result.ResultStatus != 0) return result; Model.CashInCorp cashInCorp = result.ReturnValue as Model.CashInCorp; if (cashInCorp == null) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } result = cashInCorpDAL.Invalid(user, cashInCorp); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } finally { if (result.ResultStatus != 0) this.Log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (this.Log.IsInfoEnabled) this.Log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }