void ExecCreateVoucher(string taskId, string procName, Dictionary <string, object> filter) { DataSet ds = null; if (filter == null) { ds = (DataSet)mBDBHelper.RunDataSetProc(procName); } else { var prams = new SqlParameter[filter.Keys.Count]; var i = 0; foreach (var kv in filter) { prams[i++] = new SqlParameter(kv.Key, kv.Value); } ds = (DataSet)mBDBHelper.RunDataSetProc(procName, prams); } var lstHeader = EntityConvertor <VoucherHeader> .ToList(ds.Tables[0]); var lstEntries = EntityConvertor <VoucherEntry> .ToList(ds.Tables[1]); var dtUdefenties = ds.Tables[1]; var lstUdefenties = new Dictionary <string, Dictionary <string, Dictionary <string, object> > >(); Auxiliary auxfilter = new Auxiliary(); var lstAuxiliary = DataManager.GetInstance(mContext).Query(auxfilter); foreach (DataRow dr in dtUdefenties.Rows) { var map = EntityConvertor <Object> .ToMap(dr); GenerateActItemGrp(taskId, ref map, ref lstAuxiliary); var linkNo = map["linkNo"].ToString(); if (lstUdefenties.ContainsKey(linkNo)) { lstUdefenties[linkNo].Add(map["uniqueKey"].ToString(), map); } else { var val = new Dictionary <string, Dictionary <string, object> >(); val.Add(map["uniqueKey"].ToString(), map); lstUdefenties.Add(linkNo, val); } } RefreshTaskResult(taskId, ExecTaskType.CreateVoucher.ToString(), 0, "开始执行", ""); //这里需要异步 var lstAccountSubjectNo = lstEntries.Select(e => e.accountSubjectNo).Distinct().ToList(); var bRnt = GenerateAccoutSubject(taskId, lstAccountSubjectNo); if (bRnt) { GenerateVoucher(taskId, lstHeader, lstEntries, lstUdefenties); } }
public Dictionary <string, Dictionary <string, object> > FindUdefEntrys(long id) { var result = new Dictionary <string, Dictionary <string, object> >(); DataTable dt = DBHelper.GetInstance(mContext).ExecuteDt("select * from _VoucherEntryUdef where _id =" + id); if (dt == null) { return(result); } foreach (DataRow dr in dt.Rows) { var map = EntityConvertor <int> .ToMap(dr); var key = dr["_uniqueKey"].ToString(); result.Add(key, map); } return(result); }