public ResultModel PledgeApplyUpdateHandle(UserModel user, NFMT.Operate.Model.Apply apply, Model.PledgeApply pledgeApply, List<Model.PledgeApplyDetail> details) { ResultModel result = new ResultModel(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = pledgeapplyDAL.Get(user, pledgeApply.PledgeApplyId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.PledgeApply pledgeApplyRe = result.ReturnValue as NFMT.WareHouse.Model.PledgeApply; if (pledgeApplyRe == null || pledgeApplyRe.PledgeApplyId <= 0) { result.ResultStatus = -1; return result; } result = applyDAL.Get(user, apply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply applyRe = result.ReturnValue as NFMT.Operate.Model.Apply; if (result.ResultStatus != 0) return result; applyRe.EmpId = apply.EmpId; applyRe.ApplyTime = apply.ApplyTime; applyRe.ApplyDept = apply.ApplyDept; applyRe.ApplyCorp = apply.ApplyCorp; applyRe.ApplyDesc = apply.ApplyDesc; //更新主申请 result = applyDAL.Update(user, applyRe); if (result.ResultStatus != 0) return result; NFMT.WareHouse.DAL.PledgeApplyDetailDAL pledgeApplyDetailDAL = new PledgeApplyDetailDAL(); //作废所有明细 result = pledgeApplyDetailDAL.InvalidAll(user, pledgeApply.PledgeApplyId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.DAL.StockDAL stockDAL = new StockDAL(); foreach(Model.PledgeApplyDetail detail in details) { //写入质押申请明细 detail.PledgeApplyId = pledgeApply.PledgeApplyId; result = pledgeApplyDetailDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel PaymentStockUpdate(UserModel user, Model.Payment payment, List<Model.PaymentStockDetail> paymentStockDetails) { ResultModel result = new ResultModel(); try { DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); DAL.StockPayApplyDAL stockPayApplyDAL = new StockPayApplyDAL(); DAL.PaymentStockDetailDAL paymentStockDetailDAL = new PaymentStockDetailDAL(); DAL.PaymentContractDetailDAL paymentContractDetailDAL = new PaymentContractDetailDAL(); DAL.ContractPayApplyDAL payApplyContractDAL = new ContractPayApplyDAL(); NFMT.WareHouse.DAL.StockLogDAL stockLogDAL = new WareHouse.DAL.StockLogDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //设置库存明细付款总额 foreach (Model.PaymentStockDetail d in paymentStockDetails) { d.PayBala = d.FundsBala + d.VirtualBala; } //验证付款总额是否等于财务付款金额+虚拟付款金额 if (payment.PayBala != payment.FundsBala + payment.VirtualBala) { result.ResultStatus = -1; result.Message = "付款总额必须等于财务付款金额+虚拟付款金额"; return result; } //验证财务付款 result = paymentDAL.Get(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.Payment resultObj = result.ReturnValue as Model.Payment; if (resultObj == null || resultObj.PaymentId <= 0) { result.ResultStatus = -1; result.Message = "财务付款不存在,不能进行修改"; return result; } //验证付款申请 result = payApplyDAL.Get(user, resultObj.PayApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.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; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款主申请不存在"; return result; } //判断申请状态是否已生效 if (apply.ApplyStatus != NFMT.Common.StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请非已生效状态,不能进行付款"; return result; } //获取当前付款申请中的所有付款 result = paymentDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.Payment> payments = result.ReturnValue as List<Model.Payment>; if (payments == null) { result.ResultStatus = -1; result.Message = "获取当前付款申请的付款执行失败"; return result; } //判断付款申请可付余额 decimal payedBala = payments.Sum(temp => temp.PayBala); if (payApply.ApplyBala - payedBala - payment.PayBala + resultObj.PayBala < 0) { result.ResultStatus = -1; result.Message = "当前付款金额大于可付余额"; return result; } //获取付款申请对应库存明细列表 result = stockPayApplyDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.StockPayApply> stockPayApplies = result.ReturnValue as List<Model.StockPayApply>; if (stockPayApplies == null) { result.ResultStatus = -1; result.Message = "付款申请关联合约获取失败"; return result; } //修改付款表 resultObj.PayBala = payment.PayBala; resultObj.FundsBala = payment.FundsBala; resultObj.VirtualBala = payment.VirtualBala; resultObj.PayStyle = payment.PayStyle; resultObj.PayBankId = payment.PayBankId; resultObj.PayBankAccountId = payment.PayBankAccountId; resultObj.PayCorp = payment.PayCorp; resultObj.PayDatetime = payment.PayDatetime; resultObj.RecevableCorp = payment.RecevableCorp; resultObj.ReceBankId = payment.ReceBankId; resultObj.ReceBankAccountId = payment.ReceBankAccountId; resultObj.ReceBankAccount = payment.ReceBankAccount; resultObj.FlowName = payment.FlowName; resultObj.Memo = payment.Memo; result = paymentDAL.Update(user, resultObj); if (result.ResultStatus != 0) return result; //获取付款库存明细列表 result = paymentStockDetailDAL.LoadByPaymentId(user, payment.PaymentId); if (result.ResultStatus != 0) return result; List<Model.PaymentStockDetail> resultDetails = result.ReturnValue as List<PaymentStockDetail>; if (resultDetails == null) { result.ResultStatus = -1; result.Message = "财务付款库存明细信息获取失败"; return result; } //作废现有库存明细 foreach (Model.PaymentStockDetail detail in resultDetails) { if (detail.DetailStatus == StatusEnum.已生效) detail.DetailStatus = StatusEnum.已录入; result = paymentStockDetailDAL.Invalid(user, detail); if (result.ResultStatus != 0) return result; } //获取执行对应合约明细 result = paymentContractDetailDAL.GetByPaymentId(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.PaymentContractDetail paymentContractDetail = result.ReturnValue as Model.PaymentContractDetail; if (paymentContractDetail == null || paymentContractDetail.DetailId <= 0) { result.ResultStatus = -1; result.Message = "获取对应合约明细失败"; return result; } //更新合约明细 paymentContractDetail.PayBala = resultObj.PayBala; paymentContractDetail.FundsBala = resultObj.FundsBala; paymentContractDetail.VirtualBala = resultObj.VirtualBala; result = paymentContractDetailDAL.Update(user, paymentContractDetail); if (result.ResultStatus != 0) return result; //新增付款执行库存明细 foreach (PaymentStockDetail d in paymentStockDetails) { if (d.PayBala > 0) { //获取当前库存申请付款明细列表 result = paymentStockDetailDAL.LoadByStockPayApplyId(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; List<Model.PaymentStockDetail> details = result.ReturnValue as List<Model.PaymentStockDetail>; decimal detailPayedBala = details.Sum(temp => temp.PayBala); var ls = paymentStockDetails.Where(temp => temp.PayApplyDetailId == d.PayApplyDetailId); decimal detailPayingBala = ls.Sum(temp => temp.PayBala); //获取对应的申请明细 result = stockPayApplyDAL.Get(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; StockPayApply stockPayApply = result.ReturnValue as StockPayApply; if (stockPayApply == null || stockPayApply.RefId <= 0) { result.ResultStatus = -1; result.Message = string.Format("库存明细获取失败"); return result; } //验证明细付款是否超额 if (stockPayApply.ApplyBala - detailPayedBala - detailPayingBala < 0) { result.ResultStatus = -1; result.Message = string.Format("库存明细付款超额"); return result; } //新增明细 d.DetailStatus = StatusEnum.已生效; d.PayApplyId = resultObj.PayApplyId; d.PaymentId = resultObj.PaymentId; d.ContractDetailId = paymentContractDetail.DetailId; d.ContractId = paymentContractDetail.ContractId; d.PayApplyDetailId = stockPayApply.RefId; d.SubId = paymentContractDetail.ContractSubId; result = paymentStockDetailDAL.Insert(user, d); if (result.ResultStatus != 0) return result; } } //虚拟收付款 //获取虚拟收付款明细 DAL.PaymentVirtualDAL paymentVirtualDAL = new PaymentVirtualDAL(); result = paymentVirtualDAL.GetByPaymentId(user, payment.PaymentId); if (result.ResultStatus == 0) { Model.PaymentVirtual paymentVirtual = result.ReturnValue as Model.PaymentVirtual; if (paymentVirtual == null) { result.ResultStatus = -1; result.Message = "获取虚拟收付款信息失败"; return result; } if (payment.VirtualBala == 0) { if (paymentVirtual.VirtualId > 0) { //作废原有虚拟收付款 result = paymentVirtualDAL.Invalid(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } else { if (payment.VirtualBala > payment.PayBala) { result.ResultStatus = -1; result.Message = "虚拟付款金额不能大于付款总额"; return result; } if (paymentVirtual.VirtualId > 0) { //更新虚拟收付款 paymentVirtual.PayBala = payment.VirtualBala; result = paymentVirtualDAL.Update(user, paymentVirtual); if (result.ResultStatus != 0) return result; } else { //新增虚拟收付款 paymentVirtual.PayApplyId = resultObj.PayApplyId; paymentVirtual.PayBala = payment.VirtualBala; paymentVirtual.PaymentId = resultObj.PaymentId; paymentVirtual.DetailStatus = StatusEnum.已录入; result = paymentVirtualDAL.Insert(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel CompleteCancel(UserModel user, int paymentId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证付款 result = paymentDAL.Get(user, paymentId); if (result.ResultStatus != 0) return result; Payment payment = result.ReturnValue as Payment; if (payment == null || payment.PaymentId <= 0) { result.ResultStatus = -1; result.Message = "该数据不存在,不能进行执行完成操作"; return result; } //获取对应的付款申请 DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); result = payApplyDAL.Get(user, payment.PayApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.PayApply; if (payApply == null || payApply.PayApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款申请不存在"; return result; } //验证对应付款申请状态 //获取主申请 NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); result = applyDAL.Get(user, payApply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "主申请不存在"; return result; } if (apply.ApplyStatus != StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请状态非已生效,不能进行执行完成撤销"; return result; } //更新付款状态至已生效 result = paymentDAL.CompleteCancel(user, payment); if (result.ResultStatus != 0) return result; if (payApply.PayApplySource == (int)Funds.FundsStyleEnum.InvoicePayApply) { DAL.PaymentInvioceDetailDAL paymentInvoiceDetailDAL = new PaymentInvioceDetailDAL(); result = paymentInvoiceDetailDAL.Load(user, payment.PaymentId, Common.StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.PaymentInvioceDetail> details = result.ReturnValue as List<Model.PaymentInvioceDetail>; if (details == null) { result.ResultStatus = -1; result.Message = "财务付款发票明细获取失败"; return result; } foreach (Model.PaymentInvioceDetail detail in details) { //更新已完成状态的明细至已生效 result = paymentInvoiceDetailDAL.CompleteCancel(user, detail); if (result.ResultStatus != 0) return result; } } else if (payApply.PayApplySource == (int)Funds.FundsStyleEnum.StockPayApply) { DAL.PaymentStockDetailDAL paymentStockDetailDAL = new PaymentStockDetailDAL(); result = paymentStockDetailDAL.LoadByPaymentId(user, payment.PaymentId, Common.StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.PaymentStockDetail> details = result.ReturnValue as List<Model.PaymentStockDetail>; if (details == null) { result.ResultStatus = -1; result.Message = "财务付款库存明细获取失败"; return result; } foreach (Model.PaymentStockDetail detail in details) { //更新已完成状态的明细至已生效 result = paymentStockDetailDAL.CompleteCancel(user, detail); if (result.ResultStatus != 0) return result; } } //更新财务流水至已生效 DAL.FundsLogDAL fundsLogDAL = new FundsLogDAL(); result = fundsLogDAL.Get(user, payment.FundsLogId); if (result.ResultStatus != 0) return result; Model.FundsLog fundsLog = result.ReturnValue as Model.FundsLog; if (fundsLog == null || fundsLog.FundsLogId <= 0) { result.ResultStatus = -1; result.Message = "付款流水获取失败"; return result; } result = fundsLogDAL.CompleteCancel(user, fundsLog); if (result.ResultStatus != 0) return result; scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel PaymentInvoiceUpdate(UserModel user, Model.Payment payment, List<Model.PaymentInvioceDetail> paymentInvoiceDetails) { ResultModel result = new ResultModel(); try { DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); DAL.InvoicePayApplyDAL invoicePayApplyDAL = new InvoicePayApplyDAL(); DAL.PaymentInvioceDetailDAL paymentInvoiceDetailDAL = new PaymentInvioceDetailDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { if (paymentInvoiceDetails == null || paymentInvoiceDetails.Count == 0) { result.ResultStatus = -1; result.Message = "未填写任何发票明细"; return result; } foreach (Model.PaymentInvioceDetail d in paymentInvoiceDetails) { d.PayBala = d.FundsBala + d.VirtualBala; } //验证付款总额是否等于财务付款金额+虚拟付款金额 if (payment.PayBala != payment.FundsBala + payment.VirtualBala) { result.ResultStatus = -1; result.Message = "付款总额必须等于财务付款金额+虚拟付款金额"; return result; } //获取财务付款 result = this.paymentDAL.Get(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.Payment resultPayment = result.ReturnValue as Model.Payment; if (resultPayment == null || resultPayment.PaymentId <= 0) { result.ResultStatus = -1; result.Message = "财务付款不存在,不能进行修改"; return result; } //验证付款申请 result = payApplyDAL.Get(user, resultPayment.PayApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.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; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款主申请不存在"; return result; } //判断申请状态是否已生效 if (apply.ApplyStatus != NFMT.Common.StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请非已生效状态,不能进行付款"; return result; } //获取当前付款申请中的所有付款 result = paymentDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.Payment> payments = result.ReturnValue as List<Model.Payment>; if (payments == null) { result.ResultStatus = -1; result.Message = "获取当前付款申请的付款执行失败"; return result; } //判断付款申请可付余额 decimal payedBala = payments.Sum(temp => temp.PayBala); if (payApply.ApplyBala - payedBala < 0) { result.ResultStatus = -1; result.Message = "当前付款申请已无余款可付"; return result; } if (payApply.ApplyBala - payedBala - payment.PayBala + resultPayment.PayBala < 0) { result.ResultStatus = -1; result.Message = "当前付款金额大于可付余额"; return result; } //获取付款申请对应发票明细列表 result = invoicePayApplyDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.InvoicePayApply> invoicePayApplies = result.ReturnValue as List<Model.InvoicePayApply>; if (invoicePayApplies == null) { result.ResultStatus = -1; result.Message = "付款申请明细失败"; return result; } //作废原有财务付款发票明细 result = paymentInvoiceDetailDAL.Load(user, payment.PaymentId); if (result.ResultStatus != 0) return result; List<Model.PaymentInvioceDetail> resultDetails = result.ReturnValue as List<Model.PaymentInvioceDetail>; if (resultDetails == null) { result.ResultStatus = -1; result.Message = "获取财务付款明细失败"; return result; } foreach (PaymentInvioceDetail d in resultDetails) { d.Status = StatusEnum.已录入; result = paymentInvoiceDetailDAL.Invalid(user, d); if (result.ResultStatus != 0) return result; } foreach (Model.PaymentInvioceDetail d in paymentInvoiceDetails) { if (d.PayBala > 0) { //获取当前发票付款明细列表 result = paymentInvoiceDetailDAL.LoadByInvoicePayApplyId(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; List<Model.PaymentInvioceDetail> details = result.ReturnValue as List<Model.PaymentInvioceDetail>; decimal detailPayedBala = details.Sum(temp => temp.PayBala); var ls = paymentInvoiceDetails.Where(temp => temp.PayApplyDetailId == d.PayApplyDetailId); decimal detailPayingBala = ls.Sum(temp => temp.PayBala); //获取对应的申请明细 result = invoicePayApplyDAL.Get(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; InvoicePayApply invoicePayApply = result.ReturnValue as InvoicePayApply; if (invoicePayApply == null || invoicePayApply.RefId <= 0) { result.ResultStatus = -1; result.Message = string.Format("发票申请明细获取失败"); return result; } if (invoicePayApply.ApplyBala - detailPayedBala - detailPayingBala < 0) { result.ResultStatus = -1; result.Message = string.Format("发票申请明细付款超额"); return result; } } } decimal sumPayBala = paymentInvoiceDetails.Sum(temp => temp.PayBala); decimal sumFundsBala = paymentInvoiceDetails.Sum(temp => temp.FundsBala); decimal sumVirtualBala = paymentInvoiceDetails.Sum(temp => temp.VirtualBala); //添加付款表 resultPayment.PayEmpId = user.EmpId; resultPayment.PayDept = apply.ApplyDept; resultPayment.PayApplyId = payApply.PayApplyId; resultPayment.PayBala = sumPayBala; resultPayment.FundsBala = sumFundsBala; resultPayment.VirtualBala = sumVirtualBala; resultPayment.CurrencyId = payment.CurrencyId; resultPayment.PayStyle = payment.PayStyle; resultPayment.PayBankId = payment.PayBankId; resultPayment.PayBankAccountId = payment.PayBankAccountId; resultPayment.PayCorp = payment.PayCorp; resultPayment.PayDatetime = payment.PayDatetime; resultPayment.RecevableCorp = payment.RecevableCorp; resultPayment.ReceBankId = payment.ReceBankId; resultPayment.ReceBankAccountId = payment.ReceBankAccountId; resultPayment.ReceBankAccount = payment.ReceBankAccount; resultPayment.FlowName = payment.FlowName; resultPayment.Memo = payment.Memo; result = paymentDAL.Update(user, resultPayment); if (result.ResultStatus != 0) return result; //添加付款发票明细表 foreach (PaymentInvioceDetail d in paymentInvoiceDetails) { if (d.PayBala > 0) { //获取发票付款申请 result = invoicePayApplyDAL.Get(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; Model.InvoicePayApply dp = result.ReturnValue as Model.InvoicePayApply; if (dp == null || dp.RefId <= 0) { result.ResultStatus = -1; result.Message = "对应付款申请获取失败"; return result; } d.DetailStatus = Common.StatusEnum.已生效; d.PaymentId = resultPayment.PaymentId; d.InvoiceId = dp.InvoiceId; d.PayApplyId = dp.PayApplyId; d.PayApplyDetailId = dp.RefId; result = paymentInvoiceDetailDAL.Insert(user, d); if (result.ResultStatus != 0) return result; } } //虚拟收付款 //获取虚拟收付款明细 DAL.PaymentVirtualDAL paymentVirtualDAL = new PaymentVirtualDAL(); result = paymentVirtualDAL.GetByPaymentId(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.PaymentVirtual paymentVirtual = result.ReturnValue as Model.PaymentVirtual; if (paymentVirtual == null) { result.ResultStatus = -1; result.Message = "获取虚拟收付款信息失败"; return result; } if (payment.VirtualBala == 0) { if (paymentVirtual.VirtualId > 0) { //作废原有虚拟收付款 result = paymentVirtualDAL.Invalid(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } else { if (payment.VirtualBala > payment.PayBala) { result.ResultStatus = -1; result.Message = "虚拟付款金额不能大于付款总额"; return result; } if (paymentVirtual.VirtualId > 0) { //更新虚拟收付款 paymentVirtual.PayBala = payment.VirtualBala; result = paymentVirtualDAL.Update(user, paymentVirtual); if (result.ResultStatus != 0) return result; } else { //新增虚拟收付款 paymentVirtual.PayApplyId = resultPayment.PayApplyId; paymentVirtual.PayBala = payment.VirtualBala; paymentVirtual.PaymentId = resultPayment.PaymentId; paymentVirtual.DetailStatus = StatusEnum.已录入; result = paymentVirtualDAL.Insert(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel PaymentStockCreate(UserModel user, Model.Payment payment, List<Model.PaymentStockDetail> paymentStockDetails, int payApplyId) { ResultModel result = new ResultModel(); try { DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); DAL.StockPayApplyDAL stockPayApplyDAL = new StockPayApplyDAL(); DAL.PaymentStockDetailDAL paymentStockDetailDAL = new PaymentStockDetailDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //设置库存明细付款总额 foreach (Model.PaymentStockDetail d in paymentStockDetails) { d.PayBala = d.FundsBala + d.VirtualBala; } //验证付款总额是否等于财务付款金额+虚拟付款金额 if (payment.PayBala != payment.FundsBala + payment.VirtualBala) { result.ResultStatus = -1; result.Message = "付款总额必须等于财务付款金额+虚拟付款金额"; return result; } //验证付款申请 result = payApplyDAL.Get(user, payApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.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; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款主申请不存在"; return result; } //判断申请状态是否已生效 if (apply.ApplyStatus != NFMT.Common.StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请非已生效状态,不能进行付款"; return result; } //获取当前付款申请中的所有付款 result = paymentDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.Payment> payments = result.ReturnValue as List<Model.Payment>; if (payments == null) { result.ResultStatus = -1; result.Message = "获取当前付款申请的付款执行失败"; return result; } //判断付款申请可付余额 decimal payedBala = payments.Sum(temp => temp.PayBala); if (payApply.ApplyBala - payedBala < 0) { result.ResultStatus = -1; result.Message = "当前付款申请已无余款可付"; return result; } if (payApply.ApplyBala - payedBala - payment.PayBala < 0) { result.ResultStatus = -1; result.Message = "当前付款金额大于可付余额"; return result; } //获取付款申请对应库存明细列表 result = stockPayApplyDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.StockPayApply> stockPayApplies = result.ReturnValue as List<Model.StockPayApply>; if (stockPayApplies == null) { result.ResultStatus = -1; result.Message = "付款申请关联合约获取失败"; return result; } foreach (PaymentStockDetail d in paymentStockDetails) { if (d.PayBala > 0) { //获取当前库存付款明细列表 result = paymentStockDetailDAL.LoadByStockPayApplyId(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; List<Model.PaymentStockDetail> details = result.ReturnValue as List<Model.PaymentStockDetail>; decimal detailPayedBala = details.Sum(temp => temp.PayBala); var ls = paymentStockDetails.Where(temp => temp.PayApplyDetailId == d.PayApplyDetailId); decimal detailPayingBala = ls.Sum(temp => temp.PayBala); //获取对应的申请明细 result = stockPayApplyDAL.Get(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; StockPayApply stockPayApply = result.ReturnValue as StockPayApply; if (stockPayApply == null || stockPayApply.RefId <= 0) { result.ResultStatus = -1; result.Message = string.Format("库存明细获取失败"); return result; } if (stockPayApply.ApplyBala - detailPayedBala - detailPayingBala < 0) { result.ResultStatus = -1; result.Message = string.Format("库存明细付款超额"); return result; } } } decimal sumFundsBala = paymentStockDetails.Sum(temp => temp.FundsBala); decimal sumVirtualBala = paymentStockDetails.Sum(temp => temp.VirtualBala); decimal sumPayBala = sumFundsBala + sumVirtualBala; //添加付款表 payment.PayEmpId = user.EmpId; payment.PayDept = apply.ApplyDept; payment.PayApplyId = payApply.PayApplyId; payment.PayBala = sumPayBala; payment.FundsBala = sumFundsBala; payment.VirtualBala = sumVirtualBala; payment.PaymentStatus = StatusEnum.已录入; result = paymentDAL.Insert(user, payment); if (result.ResultStatus != 0) return result; int paymentId = 0; if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out paymentId)) { result.ResultStatus = -1; result.Message = "付款新增失败"; return result; } payment.PaymentId = paymentId; //添加付款合约明细表 Model.StockPayApply payApplyStock = stockPayApplies[0]; Model.PaymentContractDetail paymentContractDetail = new PaymentContractDetail(); paymentContractDetail.ContractId = payApplyStock.ContractId; paymentContractDetail.ContractSubId = payApplyStock.SubId; paymentContractDetail.PayApplyDetailId = payApplyStock.ContractRefId; paymentContractDetail.PayApplyId = payApplyStock.PayApplyId; paymentContractDetail.PayBala = sumPayBala; paymentContractDetail.FundsBala = sumFundsBala; paymentContractDetail.VirtualBala = sumVirtualBala; paymentContractDetail.PaymentId = paymentId; DAL.PaymentContractDetailDAL paymentContractDetailDAL = new PaymentContractDetailDAL(); result = paymentContractDetailDAL.Insert(user, paymentContractDetail); if (result.ResultStatus != 0) return result; int contractRefId = 0; if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out contractRefId) || contractRefId <= 0) { result.ResultStatus = -1; result.Message = "财务付款失败"; return result; } //添加付款库存明细表 foreach (PaymentStockDetail d in paymentStockDetails) { if (d.PayBala > 0) { //获取库存付款申请 result = stockPayApplyDAL.Get(user, d.PayApplyDetailId); if (result.ResultStatus != 0) return result; Model.StockPayApply dp = result.ReturnValue as Model.StockPayApply; if (dp == null || dp.RefId <= 0) { result.ResultStatus = -1; result.Message = "对应付款申请获取失败"; return result; } d.DetailStatus = Common.StatusEnum.已生效; d.PayApplyId = payApply.PayApplyId; d.PaymentId = paymentId; d.ContractDetailId = contractRefId; d.ContractId = paymentContractDetail.ContractId; d.SubId = paymentContractDetail.ContractSubId; d.StockId = dp.StockId; d.StockLogId = dp.StockLogId; d.PayBala = d.FundsBala + d.VirtualBala; result = paymentStockDetailDAL.Insert(user, d); if (result.ResultStatus != 0) return result; } } //添加虚拟收付款 if (payment.VirtualBala > 0) { if (payment.VirtualBala > payment.PayBala) { result.ResultStatus = -1; result.Message = "虚拟付款金额不能大于付款总额"; return result; } DAL.PaymentVirtualDAL virtualDAL = new PaymentVirtualDAL(); Model.PaymentVirtual paymentVirtual = new PaymentVirtual(); paymentVirtual.PayApplyId = payApply.PayApplyId; paymentVirtual.PayBala = payment.VirtualBala; paymentVirtual.PaymentId = paymentId; paymentVirtual.DetailStatus = StatusEnum.已录入; result = virtualDAL.Insert(user, paymentVirtual); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel PaymentContractUpdate(UserModel user, Model.Payment payment) { ResultModel result = new ResultModel(); try { DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); DAL.ContractPayApplyDAL contractPayApplyDAL = new ContractPayApplyDAL(); DAL.PaymentContractDetailDAL paymentContractDetailDAL = new PaymentContractDetailDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证付款总额是否等于财务付款金额+虚拟付款金额 if (payment.PayBala != payment.FundsBala + payment.VirtualBala) { result.ResultStatus = -1; result.Message = "付款总额必须等于财务付款金额+虚拟付款金额"; return result; } //验证财务付款 result = paymentDAL.Get(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.Payment resultObj = result.ReturnValue as Model.Payment; if (resultObj == null || resultObj.PaymentId <= 0) { result.ResultStatus = -1; result.Message = "财务付款不存在,不能进行修改"; return result; } //验证付款申请 result = payApplyDAL.Get(user, resultObj.PayApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.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; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款主申请不存在"; return result; } //判断申请状态是否已生效 if (apply.ApplyStatus != NFMT.Common.StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请非已生效状态,不能进行付款"; return result; } //获取当前付款申请中的所有付款 result = paymentDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.Payment> payments = result.ReturnValue as List<Model.Payment>; if (payments == null) { result.ResultStatus = -1; result.Message = "获取当前付款申请的付款执行失败"; return result; } //判断付款申请可付余额 decimal payedBala = payments.Sum(temp => temp.PayBala); if (payApply.ApplyBala - payedBala - payment.PayBala + resultObj.PayBala < 0) { result.ResultStatus = -1; result.Message = "当前付款金额大于可付余额"; return result; } //获取付款申请对应合约明细表 result = contractPayApplyDAL.GetByPayApplyId(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; Model.ContractPayApply contractPayApply = result.ReturnValue as Model.ContractPayApply; if (contractPayApply == null || contractPayApply.RefId <= 0) { result.ResultStatus = -1; result.Message = "付款申请关联合约获取失败"; return result; } //修改付款表 resultObj.PayBala = payment.PayBala; resultObj.FundsBala = payment.FundsBala; resultObj.VirtualBala = payment.VirtualBala; resultObj.PayStyle = payment.PayStyle; resultObj.PayBankId = payment.PayBankId; resultObj.PayBankAccountId = payment.PayBankAccountId; resultObj.PayCorp = payment.PayCorp; resultObj.PayDatetime = payment.PayDatetime; resultObj.RecevableCorp = payment.RecevableCorp; resultObj.ReceBankId = payment.ReceBankId; resultObj.ReceBankAccountId = payment.ReceBankAccountId; resultObj.ReceBankAccount = payment.ReceBankAccount; resultObj.FlowName = payment.FlowName; resultObj.Memo = payment.Memo; result = paymentDAL.Update(user, resultObj); if (result.ResultStatus != 0) return result; //获取付款合约明细 result = paymentContractDetailDAL.GetByPaymentId(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.PaymentContractDetail resultDetail = result.ReturnValue as PaymentContractDetail; if (resultDetail == null || resultDetail.DetailId <= 0) { result.ResultStatus = -1; result.Message = "财务付款合约明细信息获取失败"; return result; } //修改付款合约明细 resultDetail.PaymentId = payment.PaymentId; resultDetail.PayBala = payment.PayBala; resultDetail.VirtualBala = payment.VirtualBala; resultDetail.FundsBala = payment.FundsBala; result = paymentContractDetailDAL.Update(user, resultDetail); if (result.ResultStatus != 0) return result; //虚拟收付款 //获取虚拟收付款明细 DAL.PaymentVirtualDAL paymentVirtualDAL = new PaymentVirtualDAL(); result = paymentVirtualDAL.GetByPaymentId(user, payment.PaymentId); if (result.ResultStatus != 0) return result; Model.PaymentVirtual paymentVirtual = result.ReturnValue as Model.PaymentVirtual; if (paymentVirtual == null) { result.ResultStatus = -1; result.Message = "获取虚拟收付款信息失败"; return result; } if (payment.VirtualBala == 0) { if (paymentVirtual.VirtualId > 0) { //作废原有虚拟收付款 result = paymentVirtualDAL.Invalid(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } else { if (payment.VirtualBala > payment.PayBala) { result.ResultStatus = -1; result.Message = "虚拟付款金额不能大于付款总额"; return result; } if (paymentVirtual.VirtualId > 0) { //更新虚拟收付款 paymentVirtual.PayBala = payment.VirtualBala; result = paymentVirtualDAL.Update(user, paymentVirtual); if (result.ResultStatus != 0) return result; } else { //新增虚拟收付款 paymentVirtual.PayApplyId = resultObj.PayApplyId; paymentVirtual.PayBala = payment.VirtualBala; paymentVirtual.PaymentId = resultObj.PaymentId; paymentVirtual.DetailStatus = StatusEnum.已录入; result = paymentVirtualDAL.Insert(user, paymentVirtual); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel PaymentContractCreate(UserModel user, Model.Payment payment) { ResultModel result = new ResultModel(); try { DAL.PayApplyDAL payApplyDAL = new PayApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); DAL.ContractPayApplyDAL contractPayApplyDAL = new ContractPayApplyDAL(); DAL.PaymentContractDetailDAL paymentContractDetailDAL = new PaymentContractDetailDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证付款总额是否等于财务付款金额+虚拟付款金额 if (payment.PayBala != payment.FundsBala + payment.VirtualBala) { result.ResultStatus = -1; result.Message = "付款总额必须等于财务付款金额+虚拟付款金额"; return result; } //验证付款申请 result = payApplyDAL.Get(user, payment.PayApplyId); if (result.ResultStatus != 0) return result; Model.PayApply payApply = result.ReturnValue as Model.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; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "付款主申请不存在"; return result; } //判断申请状态是否已生效 if (apply.ApplyStatus != NFMT.Common.StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "付款申请非已生效状态,不能进行付款"; return result; } //获取当前付款申请中的所有付款 result = paymentDAL.Load(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; List<Model.Payment> payments = result.ReturnValue as List<Model.Payment>; if (payments == null) { result.ResultStatus = -1; result.Message = "获取当前付款申请的付款执行失败"; return result; } //判断付款申请可付余额 decimal payedBala = payments.Sum(temp => temp.PayBala); if (payApply.ApplyBala - payedBala < 0) { result.ResultStatus = -1; result.Message = "当前付款申请已无余款可付"; return result; } if (payApply.ApplyBala - payedBala - payment.PayBala < 0) { result.ResultStatus = -1; result.Message = "当前付款金额大于可付余额"; return result; } //获取付款申请对应合约明细表 result = contractPayApplyDAL.GetByPayApplyId(user, payApply.PayApplyId); if (result.ResultStatus != 0) return result; Model.ContractPayApply contractPayApply = result.ReturnValue as Model.ContractPayApply; if (contractPayApply == null || contractPayApply.RefId <= 0) { result.ResultStatus = -1; result.Message = "付款申请关联合约获取失败"; return result; } //添加付款表 payment.PayEmpId = user.EmpId; payment.PayDept = apply.ApplyDept; payment.PayApplyId = payApply.PayApplyId; payment.PaymentStatus = StatusEnum.已录入; result = paymentDAL.Insert(user, payment); if (result.ResultStatus != 0) return result; int paymentId = 0; if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out paymentId)) { result.ResultStatus = -1; result.Message = "付款新增失败"; return result; } payment.PaymentId = paymentId; //添加付款合约明细表 Model.PaymentContractDetail paymentContractDetail = new PaymentContractDetail(); paymentContractDetail.ContractId = contractPayApply.ContractId; paymentContractDetail.ContractSubId = contractPayApply.ContractSubId; paymentContractDetail.PayApplyDetailId = contractPayApply.RefId; paymentContractDetail.PaymentId = paymentId; paymentContractDetail.PayApplyId = payApply.PayApplyId; paymentContractDetail.PayBala = payment.PayBala; paymentContractDetail.FundsBala = payment.FundsBala; paymentContractDetail.VirtualBala = payment.VirtualBala; result = paymentContractDetailDAL.Insert(user, paymentContractDetail); if (result.ResultStatus != 0) return result; //添加虚拟收付款 if (payment.VirtualBala > 0) { if (payment.VirtualBala > payment.PayBala) { result.ResultStatus = -1; result.Message = "虚拟付款金额不能大于付款总额"; return result; } DAL.PaymentVirtualDAL virtualDAL = new PaymentVirtualDAL(); Model.PaymentVirtual paymentVirtual = new PaymentVirtual(); paymentVirtual.PayApplyId = payApply.PayApplyId; paymentVirtual.PayBala = payment.VirtualBala; paymentVirtual.PaymentId = paymentId; paymentVirtual.DetailStatus = StatusEnum.已录入; result = virtualDAL.Insert(user, paymentVirtual); if (result.ResultStatus != 0) return result; } if (result.ResultStatus == 0) result.ReturnValue = paymentId; scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel ContractOutInvalidStockOperate(UserModel user, int subId) { ResultModel result = new ResultModel(); try { NFMT.WareHouse.DAL.StockOutApplyDAL stockOutApplyDAL = new NFMT.WareHouse.DAL.StockOutApplyDAL(); NFMT.WareHouse.DAL.StockOutApplyDetailDAL stockOutApplyDetailDAL = new NFMT.WareHouse.DAL.StockOutApplyDetailDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); NFMT.WareHouse.DAL.StockExclusiveDAL stockExclusiveDAL = new NFMT.WareHouse.DAL.StockExclusiveDAL(); //获取子合约出库申请 result = stockOutApplyDAL.LoadBySubId(user, subId); if (result.ResultStatus != 0) return result; List<NFMT.WareHouse.Model.StockOutApply> outApplies = result.ReturnValue as List<NFMT.WareHouse.Model.StockOutApply>; if (outApplies == null || outApplies.Count == 0) { result.ResultStatus = -1; result.Message = "获取出库申请失败"; return result; } foreach (NFMT.WareHouse.Model.StockOutApply outApply in outApplies) { result = applyDAL.Get(user, outApply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "获取主申请失败"; return result; } //申请作废 result = applyDAL.Invalid(user, apply); if (result.ResultStatus != 0) return result; //获取出库申请明细 result = stockOutApplyDetailDAL.Load(user, outApply.StockOutApplyId); if (result.ResultStatus != 0) return result; List<NFMT.WareHouse.Model.StockOutApplyDetail> details = result.ReturnValue as List<NFMT.WareHouse.Model.StockOutApplyDetail>; if (details == null) { result.ResultStatus = -1; result.Message = "获取出库申请明细失败"; return result; } foreach (NFMT.WareHouse.Model.StockOutApplyDetail detail in details) { detail.DetailStatus = StatusEnum.已录入; result = stockOutApplyDetailDAL.Invalid(user, detail); if (result.ResultStatus != 0) return result; //获取排他明细 result = stockExclusiveDAL.Get(user, apply.ApplyId, outApply.StockOutApplyId, detail.DetailId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.StockExclusive stockExclusive = result.ReturnValue as NFMT.WareHouse.Model.StockExclusive; if (stockExclusive == null || stockExclusive.ExclusiveId <= 0) { result.ResultStatus = -1; result.Message = "获取排他明细失败"; return result; } //作废排他明细 stockExclusive.ExclusiveStatus = StatusEnum.已录入; result = stockExclusiveDAL.Invalid(user, stockExclusive); if (result.ResultStatus != 0) return result; } } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel ContractOutAuditStockOperate(UserModel user, int subId, bool isPass) { ResultModel result = new ResultModel(); try { NFMT.WareHouse.DAL.StockOutApplyDAL stockOutApplyDAL = new NFMT.WareHouse.DAL.StockOutApplyDAL(); NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); //获取子合约出库申请 result = stockOutApplyDAL.LoadBySubId(user, subId); if (result.ResultStatus != 0) return result; List<NFMT.WareHouse.Model.StockOutApply> outApplies = result.ReturnValue as List<NFMT.WareHouse.Model.StockOutApply>; if (outApplies == null || outApplies.Count == 0) { result.ResultStatus = -1; result.Message = "获取出库申请失败"; return result; } foreach (NFMT.WareHouse.Model.StockOutApply outApply in outApplies) { result = applyDAL.Get(user, outApply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply apply = result.ReturnValue as NFMT.Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "获取主申请失败"; return result; } //审核出库申请 result = applyDAL.Audit(user, apply, isPass); if (result.ResultStatus != 0) return result; } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel Update(UserModel user, NFMT.Operate.Model.Apply apply, Model.InvoiceApply invoiceApply, List<Model.InvoiceApplyDetail> details) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { NFMT.Operate.DAL.ApplyDAL applyDAL = new NFMT.Operate.DAL.ApplyDAL(); result = applyDAL.Get(user, apply.ApplyId); if (result.ResultStatus != 0) return result; NFMT.Operate.Model.Apply applyRes = result.ReturnValue as NFMT.Operate.Model.Apply; if (applyRes == null) { result.ResultStatus = -1; result.Message = "获取申请信息失败"; return result; } applyRes.ApplyCorp = apply.ApplyCorp; applyRes.ApplyDept = apply.ApplyDept; applyRes.EmpId = user.EmpId; applyRes.ApplyTime = DateTime.Now; applyRes.ApplyDesc = apply.ApplyDesc; result = applyDAL.Update(user, applyRes); if (result.ResultStatus != 0) return result; invoiceApply.TotalBala = details.Sum(a => a.InvoiceBala); result = invoiceapplyDAL.Update(user, invoiceApply); if (result.ResultStatus != 0) return result; DAL.InvoiceApplyDetailDAL invoiceApplyDetailDAL = new InvoiceApplyDetailDAL(); result = invoiceApplyDetailDAL.InvalidAll(user, invoiceApply.InvoiceApplyId); if (result.ResultStatus != 0) return result; foreach (Model.InvoiceApplyDetail detail in details) { result = invoiceApplyDetailDAL.Insert(user, detail); 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; }