public ResultModel ConfirmCancel(UserModel user, int payApplyId) { ResultModel result = new ResultModel(); try { PayApplyDAL payApplyDAL = new PayApplyDAL(); ApplyDAL applyDAL = new ApplyDAL(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证付款申请 result = payApplyDAL.Get(user, payApplyId); if (result.ResultStatus != 0) return result; PayApply payApply = result.ReturnValue as PayApply; if (payApply == null || payApply.PayApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款申请不存在"; return result; } //验证主申请 result = applyDAL.Get(user, payApply.ApplyId); if (result.ResultStatus != 0) return result; Apply apply = result.ReturnValue as Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "主申请不存在"; return result; } //完成撤销付款申请 result = applyDAL.ConfirmCancel(user, apply); if (result.ResultStatus != 0) return result; if (payApply.PayApplySource == (int)FundsStyleEnum.ContractPayApply) { //获取付款申请下合约申请明细 ContractPayApplyDAL payApplyContractDAL = new ContractPayApplyDAL(); result = payApplyContractDAL.GetByPayApplyId(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; ContractPayApply payApplyContract = result.ReturnValue as ContractPayApply; if (payApplyContract == null || payApplyContract.RefId <= 0) { result.ResultStatus = -1; result.Message = "获取明细失败"; return result; } //完成撤销明细 //result = payApplyContractDAL.ConfirmCancel(user, payApplyContract); //if (result.ResultStatus != 0) // return result; } else if (payApply.PayApplySource == (int)FundsStyleEnum.StockPayApply) { //获取付款申请下库存申请明细 StockPayApplyDAL payApplyStockDAL = new StockPayApplyDAL(); result = payApplyStockDAL.Load(user, payApply.PayApplyId, StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<StockPayApply> payApplyStocks = result.ReturnValue as List<StockPayApply>; if (payApplyStocks == null) { result.ResultStatus = -1; result.Message = "获取付款申请库存明细失败"; return result; } foreach (StockPayApply payApplyStock in payApplyStocks) { //明细完成撤销 result = payApplyStockDAL.ConfirmCancel(user, payApplyStock); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }