/// <summary> /// 根据项目代码获取额度核销总金额 /// </summary> /// <param name="code"></param> /// <returns></returns> public decimal GetHXsumByCode(string code) { decimal sum = 0; var dicWhere = new Dictionary <string, object>(); new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FProjcode", code)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)); IList <ExpenseMstModel> ExpenseMstList = ExpenseMstFacade.Find(dicWhere).Data; if (ExpenseMstList.Count > 0) { for (var i = 0; i < ExpenseMstList.Count; i++) { if (ExpenseMstList[i].FIfKeyEvaluation == 1) { var dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere2).Add(ORMRestrictions <Int64> .Eq("MstPhid", ExpenseMstList[i].PhId)); IList <ExpenseHxModel> ExpenseHxList = ExpenseHxFacade.Find(dicWhere2).Data; if (ExpenseHxList.Count > 0) { for (var j = 0; j < ExpenseHxList.Count; j++) { sum += ExpenseHxList[j].FAmount; } } } } } return(sum); }
/// <summary> /// 额度逆返还 /// </summary> /// <param name="id">额度返还的单据phid</param> /// <returns></returns> public CommonResult DeleteReturn(long id) { ExpenseMstModel expenseMstEntity = base.Find(id).Data;//额度返还的单据 decimal FPlayamount = expenseMstEntity.FProjAmount - decimal.Parse(SumFSurplusamount(expenseMstEntity.FProjcode)) - expenseMstEntity.FReturnamount; var dicWhere = new Dictionary <string, object>(); new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FBillno", id.ToString())); var findedresultmst = base.Find(dicWhere).Data; //if (findedresultmst.Count > 0) //{ ExpenseMstModel expenseMstEntity2 = findedresultmst[0];//额度返还之前的单据 expenseMstEntity2.FIfpurchase = 0; expenseMstEntity2.FBillno = ""; expenseMstEntity2.FPlayamount = FPlayamount; expenseMstEntity2.PersistentState = SUP.Common.Base.PersistentState.Modified; //} var dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FProjcode", expenseMstEntity.FProjcode)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)) .Add(ORMRestrictions <System.Int64> .NotEq("PhId", expenseMstEntity.PhId)); IList <ExpenseMstModel> ExpenseMstList = base.Find(dicWhere2).Data; //List<ExpenseMstModel> ExpenseMstList = ExpenseMstList2.ToList().FindAll(t => t.FIfpurchase != 1); //只剩一条单据的时候 /*if (ExpenseMstList.Count == 1) * { * ExpenseMstList[0].FProjname = ExpenseMstList[0].FProjname.Replace("-" + ExpenseMstList[0].FIfperformanceappraisal.ToString(), ""); * ExpenseMstList[0].FIfperformanceappraisal = 1; * //删除额度返还的原单据 * if (ExpenseMstList[0].FIfpurchase == 2) * { * List<ExpenseMstModel> ExpenseMstList3 = ExpenseMstList2.ToList().FindAll(t => t.FBillno == ExpenseMstList[0].PhId.ToString()); * if (ExpenseMstList3.Count > 0) * { * ExpenseMstList3[0].FProjname.Replace("-" + ExpenseMstList3[0].FIfperformanceappraisal.ToString(), ""); * ExpenseMstList3[0].FIfperformanceappraisal = 1; * ExpenseMstFacade.Save<Int64>(ExpenseMstList3); * } * } * }*/ for (var i = 0; i < ExpenseMstList.Count; i++) { ExpenseMstList[i].FPlayamount = FPlayamount; ExpenseMstList[i].PersistentState = SUP.Common.Base.PersistentState.Modified; //base.Save<Int64>(ExpenseMstList[i]); } ExpenseMstFacade.Save <Int64>(ExpenseMstList); ExpenseMstFacade.Save <Int64>(expenseMstEntity2); CommonResult result = base.Delete <System.Int64>(id); return(result); }
/// <summary> /// 删除正常单据 可编报数变更 /// </summary> /// <param name="id"></param> /// <returns></returns> public CommonResult Delete2(long id) { ExpenseMstModel expenseMstEntity = base.Find(id).Data; if (expenseMstEntity.FIfpurchase == 0) { decimal FPlayamount = expenseMstEntity.FPlayamount + expenseMstEntity.FSurplusamount; var dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FProjcode", expenseMstEntity.FProjcode)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) //.Add(ORMRestrictions<System.Int32>.NotEq("FIfpurchase", 1)) .Add(ORMRestrictions <System.Int64> .NotEq("PhId", expenseMstEntity.PhId)); IList <ExpenseMstModel> ExpenseMstList2 = base.Find(dicWhere2).Data; List <ExpenseMstModel> ExpenseMstList = ExpenseMstList2.ToList().FindAll(t => t.FIfpurchase != 1); //只剩一条单据的时候 if (ExpenseMstList.Count == 1) { ExpenseMstList[0].FProjname = ExpenseMstList[0].FProjname.Replace("-" + ExpenseMstList[0].FIfperformanceappraisal.ToString(), ""); ExpenseMstList[0].FIfperformanceappraisal = 1; //删除额度返还的原单据 if (ExpenseMstList[0].FIfpurchase == 2) { List <ExpenseMstModel> ExpenseMstList3 = ExpenseMstList2.ToList().FindAll(t => t.FBillno == ExpenseMstList[0].PhId.ToString()); if (ExpenseMstList3.Count > 0) { ExpenseMstList3[0].FProjname.Replace("-" + ExpenseMstList3[0].FIfperformanceappraisal.ToString(), ""); ExpenseMstList3[0].FIfperformanceappraisal = 1; ExpenseMstList3[0].PersistentState = PersistentState.Modified; ExpenseMstFacade.Save <Int64>(ExpenseMstList3); } } } for (var i = 0; i < ExpenseMstList.Count; i++) { ExpenseMstList[i].FPlayamount = FPlayamount; ExpenseMstList[i].PersistentState = SUP.Common.Base.PersistentState.Modified; } ExpenseMstFacade.Save <Int64>(ExpenseMstList); } CommonResult result = base.Delete(id); return(result); }
/// <summary> /// 根据主表phid取明细剩余金额 /// </summary> /// <param name="id"></param> /// <param name="code"></param> /// <returns></returns> public string RestOfAmount(long id, string code) { List <string> YskmList = new List <string>(); List <Decimal> AmountList = new List <Decimal>(); IList <BudgetDtlBudgetDtlModel> dtl = BudgetDtlBudgetDtlFacade.FindByForeignKey(id).Data; for (var a = 0; a < dtl.Count; a++) { if (YskmList.IndexOf(dtl[a].FBudgetAccounts) < 0) { YskmList.Add(dtl[a].FBudgetAccounts); AmountList.Add(dtl[a].FAmount + dtl[a].FAmountEdit); } else { AmountList[YskmList.IndexOf(dtl[a].FBudgetAccounts)] += dtl[a].FAmount + dtl[a].FAmountEdit; } } var dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FProjcode", code)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)); IList <ExpenseMstModel> ExpenseMstList = ExpenseMstFacade.Find(dicWhere2).Data; for (var i = 0; i < ExpenseMstList.Count; i++) { IList <ExpenseDtlModel> ExpenseDtlList = ExpenseDtlFacade.FindByForeignKey(ExpenseMstList[i].PhId).Data; for (var j = 0; j < ExpenseDtlList.Count; j++) { var yskmindex = YskmList.IndexOf(ExpenseDtlList[j].FBudgetaccounts); AmountList[yskmindex] = AmountList[yskmindex] - ExpenseDtlList[j].FAmount + ExpenseDtlList[j].FReturnamount; } } var data = new { YskmList = YskmList, AmountList = AmountList }; //return DataConverterHelper.EntityListToJson(findedresultbudgetdtlbudgetdtl.Data, findedresultbudgetdtlbudgetdtl.Data.Count); return(DataConverterHelper.SerializeObject(data)); }
/// <summary> /// 额度核销执行完毕确认 /// </summary> /// <param name="id"></param> /// <param name="FPlayamount"></param> /// <param name="FReturnamount"></param> /// <param name="dtls"></param> /// <returns></returns> public CommonResult SaveHXgo(long id, Decimal FPlayamount, Decimal FReturnamount, List <ExpenseDtlModel> dtls) { CommonResult result = new CommonResult(); ExpenseMstModel mst = ExpenseMstFacade.Find(id).Data; mst.FPlayamount = FPlayamount; mst.FIfKeyEvaluation = 1; mst.FReturnamount = FReturnamount; mst.PersistentState = PersistentState.Modified; var dicWhere = new Dictionary <string, object>(); new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FProjcode", mst.FProjcode)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)) .Add(ORMRestrictions <System.Int64> .NotEq("PhId", mst.PhId)); IList <ExpenseMstModel> ExpenseMstList = ExpenseMstFacade.Find(dicWhere).Data; for (var i = 0; i < ExpenseMstList.Count; i++) { ExpenseMstList[i].FPlayamount = FPlayamount; ExpenseMstList[i].PersistentState = PersistentState.Modified; } ExpenseMstList.Add(mst); result = ExpenseMstFacade.FacadeHelper.Save <long>(ExpenseMstList); List <ExpenseDtlModel> ExpenseDtlList = new List <ExpenseDtlModel>(); for (var j = 0; j < dtls.Count; j++) { ExpenseDtlModel dtl = ExpenseDtlFacade.Find(dtls[j].PhId).Data; dtl.FReturnamount = dtls[j].FReturnamount; dtl.PersistentState = PersistentState.Modified; ExpenseDtlList.Add(dtl); } result = ExpenseDtlFacade.FacadeHelper.Save <long>(ExpenseDtlList); return(result); }
/// <summary> /// 保存数据 /// </summary> /// <param name="expenseMstEntity"></param> /// <param name="expenseDtlEntities"></param> /// <param name="NCmoney">年初预算金额</param> /// <param name="beforeSum">本单据初始预计支出金额</param> /// <param name="beforeFReturnamount">本单据初始预计返还金额</param> /// <param name="Ifreturn">是否额度返还</param> /// <returns></returns> public SavedResult <Int64> SaveExpenseMst(ExpenseMstModel expenseMstEntity, List <ExpenseDtlModel> expenseDtlEntities, string NCmoney, string beforeSum, string beforeFReturnamount, string Ifreturn) { return(ExpenseMstFacade.SaveExpenseMst(expenseMstEntity, expenseDtlEntities, NCmoney, SumFSurplusamount(expenseMstEntity.FProjcode), beforeSum, beforeFReturnamount, Ifreturn)); }
/// <summary> /// 根据预算主键获取信息 /// </summary> /// <param name="YsPhid"></param> /// <returns></returns> public object GetinfoByProjCode(long YsPhid) { //一些必要数据加入中文名 RichHelpDac helpdac = new RichHelpDac(); BudgetMstModel budgetMst = BudgetMstFacade.Find(YsPhid).Data; helpdac.CodeToName <BudgetMstModel>(budgetMst, "FExpenseCategory", "FExpenseCategory_EXName", "GHExpenseCategory"); string FExpenseCategory = budgetMst.FExpenseCategory; //项目类型 string FExpenseCategory_EXName = budgetMst.FExpenseCategory_EXName; Decimal FProjAmount = budgetMst.FBudgetAmount; //核定预算数 IList <BudgetDtlBudgetDtlModel> budgetDtls = BudgetDtlBudgetDtlFacade.FacadeHelper.FindByForeignKey(YsPhid).Data; helpdac.CodeToName <BudgetDtlBudgetDtlModel>(budgetDtls, "FSourceOfFunds", "FSourceOfFunds_EXName", "GHSourceOfFunds", ""); helpdac.CodeToName <BudgetDtlBudgetDtlModel>(budgetDtls, "FPaymentMethod", "FPaymentMethod_EXName", "GHPaymentMethod", ""); helpdac.CodeToName <BudgetDtlBudgetDtlModel>(budgetDtls, "FExpensesChannel", "FExpensesChannel_EXName", "GHExpensesChannel", ""); helpdac.CodeToName <BudgetDtlBudgetDtlModel>(budgetDtls, "FBudgetAccounts", "FBudgetAccounts_EXName", "GHBudgetAccounts", ""); helpdac.CodeToName <BudgetDtlBudgetDtlModel>(budgetDtls, "FQtZcgnfl", "FQtZcgnfl_EXName", "GHQtZcgnfl", ""); var dicWhere = new Dictionary <string, object>(); new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FProjcode", budgetMst.FProjCode)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)); //去除被额度返还的原单据 var findedresultmst = base.Find(dicWhere).Data; Decimal FrozenSum = 0; //冻结数 Decimal UsedSum = 0; //已使用数 for (var i = 0; i < findedresultmst.Count; i++) { if (findedresultmst[i].FApprovestatus == "3" || findedresultmst[i].FApprovestatus == "4") { UsedSum += findedresultmst[i].FSurplusamount; UsedSum -= findedresultmst[i].FReturnamount; } else { FrozenSum += findedresultmst[i].FSurplusamount; FrozenSum -= findedresultmst[i].FReturnamount; } } Decimal FPlayamount = FProjAmount - FrozenSum - UsedSum;//可编报数 Dictionary <string, Decimal> Yskm_Amount = new Dictionary <string, Decimal>(); List <Decimal> AmountList = new List <Decimal>(); for (var a = 0; a < budgetDtls.Count; a++) { if (!Yskm_Amount.ContainsKey(budgetDtls[a].FBudgetAccounts)) { Yskm_Amount.Add(budgetDtls[a].FBudgetAccounts, budgetDtls[a].FBudgetAmount); } else { Yskm_Amount[budgetDtls[a].FBudgetAccounts] += budgetDtls[a].FBudgetAmount; } } //去除已经做的单据 var dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FProjcode", budgetMst.FProjCode)) .Add(ORMRestrictions <System.Int32> .Eq("FLifeCycle", 0)) .Add(ORMRestrictions <System.Int32> .NotEq("FIfpurchase", 1)); IList <ExpenseMstModel> ExpenseMstList = ExpenseMstFacade.Find(dicWhere2).Data; for (var i = 0; i < ExpenseMstList.Count; i++) { IList <ExpenseDtlModel> ExpenseDtlList = ExpenseDtlFacade.FindByForeignKey(ExpenseMstList[i].PhId).Data; for (var j = 0; j < ExpenseDtlList.Count; j++) { if (!string.IsNullOrEmpty(ExpenseDtlList[j].FBudgetaccounts) && Yskm_Amount.ContainsKey(ExpenseDtlList[j].FBudgetaccounts)) { Yskm_Amount[ExpenseDtlList[j].FBudgetaccounts] = Yskm_Amount[ExpenseDtlList[j].FBudgetaccounts] - ExpenseDtlList[j].FAmount + ExpenseDtlList[j].FReturnamount; } } } object result = new { FExpenseCategory = FExpenseCategory, FExpenseCategory_EXName = FExpenseCategory_EXName, FProjAmount = FProjAmount, FrozenSum = FrozenSum, UsedSum = UsedSum, FPlayamount = FPlayamount, Yskm_Amount = Yskm_Amount, budgetDtls = budgetDtls }; return(result); }
/* * /// <summary> * /// 项目支出预算情况查询 * /// </summary> * /// <param name="userID"></param> * /// <param name="pageIndex"></param> * /// <param name="pageSize"></param> * /// <returns></returns> * public PagedResult<ExpenseMstModel> GetXmZcYs(string userID, int pageIndex, int pageSize) * { * var dicWhere = new Dictionary<string, object>(); * new CreateCriteria(dicWhere).Add(ORMRestrictions<string>.Eq("FYear", DateTime.Now.Year.ToString())); * //PagedResult<ExpenseMstModel> expenseMsts= ExpenseMstFacade.LoadWithPageForDept("GYS.YS.getZCbudget", dicWhere); * PagedResult<ExpenseMstModel> expenseMsts = ExpenseMstFacade.LoadWithPage(pageIndex, pageSize, "GYS.YS.getZCbudget", dicWhere); * PagedResult<ExpenseMstModel> expenseMsts2 = ExpenseMstFacade.GetSJFSS(userID, expenseMsts); * return expenseMsts2; * }*/ /// <summary> /// 通过项目代码和操作员获取财务实际发生数 /// </summary> /// <param name="userID"></param> /// <param name="code"></param> /// <returns></returns> public string GetSJFSSbyCode(string userID, string code) { return(ExpenseMstFacade.GetSJFSSbyCode(userID, code)); }