/// <summary> /// 都度請求締集計処理 /// </summary> /// <param name="paramDic"></param> /// <param name="userId"></param> public void BillingAggregation(Dictionary <string, string> paramDic, int userId) { string companyCd, startDate, endDate; try { // 画面パラメータ展開 companyCd = paramDic[PARAMS_NAME_COMPANY]; startDate = paramDic[PARAMS_NAME_CREATE_DATE_START]; endDate = paramDic[PARAMS_NAME_CREATE_DATE_END]; } catch (Exception e) { throw e; } using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); using (DbTransaction tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { TKS01010 tok01010 = new TKS01010(); // パラメータ型変換 int iCompany = int.Parse(companyCd); DateTime tStartDate = DateTime.Parse(startDate), tEndDate = DateTime.Parse(endDate); // 得意先取得 List <M01_TOK> tokList = getTargetTOK(context, iCompany); foreach (M01_TOK tok in tokList) { DateTime targetDate = tStartDate; while (targetDate <= tEndDate) { TKS01010.TKS01010_SearchMember mem = new TKS01010.TKS01010_SearchMember(); mem.ID = string.Format("{0} - {1}", tok.取引先コード, tok.枝番); mem.得意先コード = tok.取引先コード; mem.得意先枝番 = tok.枝番; mem.得意先名 = tok.得意先名1; mem.締日 = targetDate.Day; mem.区分 = string.Empty; mem.開始日付1 = targetDate; mem.終了日付1 = targetDate; mem.開始日付2 = null; mem.終了日付2 = null; mem.開始日付3 = null; mem.終了日付3 = null; mem.クリア開始日付 = targetDate; mem.クリア終了日付 = targetDate; mem.入金日 = targetDate; // 締集計の処理に投げる tok01010.getAggregateData(context, iCompany, targetDate.Year * 100 + targetDate.Month, mem, 1, userId); targetDate = targetDate.AddDays(1); } // -- end loop date } // -- end loop tok context.SaveChanges(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw ex; } } } }