/// <summary> /// 根据用款计划的主键获取相关数据集合 /// </summary> /// <param name="phid">主键</param> /// <returns></returns> public ExpenseAllModel GetExpenseAllModel(long phid) { ExpenseAllModel expenseAll = new ExpenseAllModel(); ExpenseMstModel expenseMst = new ExpenseMstModel(); List <ExpenseDtlModel> expenseDtls = new List <ExpenseDtlModel>(); List <ExpenseHxModel> expenseHxes = new List <ExpenseHxModel>(); var expenses = this.ExpenseMstRule.Find(t => t.PhId == phid); if (expenses != null && expenses.Count > 0) { RichHelpDac helpdac = new RichHelpDac(); helpdac.CodeToName <ExpenseMstModel>(expenses, "FDeclarationunit", "FDeclarationunit_EXName", "sb_orglist", ""); helpdac.CodeToName <ExpenseMstModel>(expenses, "FDeclarationDept", "FDeclarationDept_EXName", "dept4ocode", ""); helpdac.CodeToName <ExpenseMstModel>(expenses, "FBudgetDept", "FBudgetDept_EXName", "ys_orglist", ""); helpdac.CodeToName <ExpenseMstModel>(expenses, "FExpenseCategory", "FExpenseCategory_EXName", "GHExpenseCategory", ""); helpdac.CodeToName <ExpenseMstModel>(expenses, "FApprover", "FApprover_EXName", "fg3_user", ""); expenseMst = expenses[0]; if (expenseMst.FApprovestatus != "3") { throw new Exception("已审批的单据才能进行核销!"); } if (expenseMst.FIfpurchase == 1 || expenseMst.FLifeCycle != 0) { throw new Exception("作废据不能进行核销!"); } decimal returnAllAmount = 0; decimal payAllAmount = 0; expenseDtls = this.ExpenseDtlRule.Find(t => t.MstPhid == phid).ToList(); //明细数据也就是额度返回的数据 if (expenseDtls != null && expenseDtls.Count > 0) { //RichHelpDac helpdac = new RichHelpDac(); helpdac.CodeToName <ExpenseDtlModel>(expenseDtls, "FBudgetaccounts", "FBudgetaccounts_EXName", "GHBudgetAccounts", ""); helpdac.CodeToName <ExpenseDtlModel>(expenseDtls, "FExpenseschannel", "FExpenseschannel_EXName", "GHExpensesChannel", ""); helpdac.CodeToName <ExpenseDtlModel>(expenseDtls, "FSourceoffunds", "FSourceoffunds_EXName", "GHSourceOfFunds", ""); foreach (var dtl in expenseDtls) { returnAllAmount = returnAllAmount + dtl.FAmount; payAllAmount = payAllAmount + dtl.FAmount; } } expenseHxes = this.ExpenseHxRule.Find(t => t.MstPhid == phid).ToList();//核销明细数据 if (expenseHxes != null && expenseHxes.Count > 0) { foreach (var hx in expenseHxes) { returnAllAmount = returnAllAmount - hx.FAmount; } } expenseAll.ExpenseMst = expenseMst; expenseAll.ExpenseDtls = expenseDtls; expenseAll.ExpenseHxs = expenseHxes; expenseAll.ReturnAllAmount = returnAllAmount; expenseAll.PayAllAmount = payAllAmount; } else { throw new Exception("此用款计划数据不存在!"); } return(expenseAll); }
public string GetExpenseMstInfo([FromUri] long id) { ExpenseAllModel ExpenseAll = new ExpenseAllModel(); ExpenseAll.ExpenseMst = ExpenseMstService.Find(id).Data; ExpenseAll.ExpenseDtls = ExpenseMstService.FindExpenseDtlByForeignKey(id).Data.ToList(); ExpenseAll.ExpenseHxs = ExpenseMstService.FindExpenseHxByForeignKey(id).Data.ToList(); //用款计划对应的附件 var qtAttachments = this.QtAttachmentService.Find(t => t.RelPhid == id && t.BTable == "YS3_EXPENSEMST").Data; if (qtAttachments != null && qtAttachments.Count > 0) { ExpenseAll.QtAttachments = qtAttachments.ToList(); } return(DataConverterHelper.SerializeObject(ExpenseAll)); }