/// <summary> /// 予定情報に応じた<see cref="TableCell"/>を作成します /// </summary> /// <param name="yotei">勤務予定データ</param> /// <param name="cell"><see cref="KNS_D13"/> <paramref name="yotei"/>に応じ作成された<see cref="TableCell"/>が格納されます。</param> private void SetTableCellData(KNS_D13 yotei, out TableCell cell) { try { logger.Debug(LOG_START); cell = new TableCell() { CssClass = "notConfirmYotei", Text = ninsyoCD[yotei.YOTEI_CD] }; // 勤務時間があればテキストを書き換える TimeRange tr = yotei.GetWorkTimeRange(); if (tr != null) { cell.Text = tr.ToString(timeFormat); } // 承認フラグがあればCSSを書き換える if (yotei.SHONIN_FLG == "1") { cell.CssClass = "confirmYotei"; } } catch (KinmuException) { throw; } catch (Exception ex) { throw new KinmuException(ex.Message, ex); } }
private void CopyPlans() { logger.Debug(LOG_START); // コピー元の勤務データを取得 KNS_D13 origin = GetLocalKinmuYotei(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, GetOriginDayFromRequest()); //コピー先の勤務データを取得 int[] destDays = GetCopytoDaysFromRequest(); List <KNS_D13> copytoList = new List <KNS_D13>(); foreach (int dest in destDays) { if (origin == null) { // コピー元にデータがない場合は削除用リストの作成を行う。 KNS_D13 copyto = GetLocalKinmuYotei(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, dest); if (copyto != null) { copytoList.Add(copyto); } } else { KNS_D13 copytod13 = origin.Clone(); copytod13.DATA_D = dest.ToString(); copytod13.SHONIN_FLG = "0"; // 都度DBに更新処理をかけるが、業務ルールのcheckをかけたいのでExecuteUpdateを使っている。 KinmuManager.ExecuteUpdate(ref copytod13); } } // 予定の削除はここで一括してやる if (origin == null) { dbManager.DeleteKinmuYotei(copytoList); } SetInformationPanel(ref InformationPanel, ref InfoIcon, ref InfoText, "勤務予定のコピーが完了しました。", InformationLevel.Highlight); }
public void SetKinmuYoteiParameterTest1() { KNS_D13 _d13 = new KNS_D13 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "1", YOTEI_CD = "01", STR_Y_HR = "9", STR_Y_MIN = "20", END_Y_HR = "18", END_Y_MIN = "0", END_Y_PAR = "0", KAKN_FLG = "0", SHONIN_FLG = "0" }; bool res = KinmuManager.ExecuteUpdate(ref _d13); Assert.IsTrue(res); }
protected void Page_Load(object sender, EventArgs e) { try { logger.Debug(LOG_START); KinmuSystem.SetSessionData(ref loginShainInfo, ref viewShainInfo, ref viewDateTime, Response, Request, Session); int workTimeTotal = 0; List <KinmuGridViewWorkResultsRow> data = new List <KinmuGridViewWorkResultsRow>(); KinmuManager kinmuManager = new KinmuManager(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month); DateTimeStringLabel.Text = viewDateTime.ToString("yyyy年MM月"); CompanyNameLabel.Text = companyName; EmployeeCodeLabel.Text = viewShainInfo.SHAIN_CD; NameLabel.Text = viewShainInfo.SHAIN_NM; Title = "勤務実績整理簿 " + viewShainInfo.SHAIN_NM + " " + viewDateTime.ToString("yyyy年MM月"); //メインの表をバインド for (int i = 1; i <= DateTime.DaysInMonth(kinmuManager.Year, kinmuManager.Month); i++) { // 本当はKinmuRecordRowを取得しておきたかったが、処理の関係上こうなってる // なんか良い方法あったら教えてください KNS_D01 KinmuJisseki = kinmuManager.KinmuJisseki.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D01(); KNS_D13 KinmuYotei = kinmuManager.KinmuYotei.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D13(); KNS_M05 CalendarMaster = kinmuManager.CalendarMaster.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_M05(); workTimeTotal += KinmuJisseki.DKINM ?? 0; data.Add( new KinmuGridViewWorkResultsRow( new KinmuRecordRow(kinmuManager.EmployeeCD, KinmuJisseki, KinmuYotei, new List <KNS_D02>(), CalendarMaster), workTimeTotal ) ); } WorkResultsGridView.DataSource = data; WorkResultsGridView.DataBind(); // 所定日数 A1Label.Text = kinmuManager.CalcGekkanSyoteiNissu().ToString(); // 出勤日数 A2Label.Text = kinmuManager.CalcGekkanSyukkinNissu().ToString(); // 休労日数 A3Label.Text = kinmuManager.CalcGekkanKyujitsuRoudouNissu().ToString(); // -日数 A4Label.Text = kinmuManager.CalcBarNissu().ToString(); // 代休日数 A5Label.Text = kinmuManager.CalcGekkanDaikyuNissu().ToString(); // 非番日数 A6Label.Text = kinmuManager.CalcGekkanHibanNissu().ToString(); // 有給日数 A7Label.Text = kinmuManager.CalcGekkanYukyuNissu().ToString(); // 無休日数 A8Label.Text = kinmuManager.CalcGekkanMukyuNissu().ToString(); // 組休日数 B1Label.Text = kinmuManager.CalcGekkanKumikyuNissu().ToString(); // 公休日労働回数 B2Label.Text = kinmuManager.CalcGekkanKokyuRoudouNissu().ToString(); // 所定労働日数 B3Label.Text = kinmuManager.CalcGekkanSyoteiRoudoNissu().ToString(); // 労働日数 B4Label.Text = kinmuManager.CalcGekkanRoudouNissu().ToString(); // 特休日数 予定 B5Label.Text = kinmuManager.CalcGekkanTokkyuYoteiNissu().ToString(); // 特休日数 確定 B6Label.Text = kinmuManager.CalcGekkanTokkyuKakuteiNissu().ToString(); // 公休日数 予定 B7Label.Text = kinmuManager.CalcGekkanKoukyuYoteiNissu().ToString(); // 公休日数 確定 B8Label.Text = kinmuManager.CalcGekkanKoukyuKakuteiNissu().ToString(); // 実総労働時間 int tmp = kinmuManager.CalcGekkanTotalJitsuRoudoJikan(); C1Label1.Text = MinutesToStringFormat(tmp); C1Label2.Text = tmp.ToString(); // みなし2 tmp = kinmuManager.CalcGekkanYukyuJikan(); C2Label1.Text = MinutesToStringFormat(tmp); C2Label2.Text = tmp.ToString(); // 超勤A tmp = kinmuManager.CalcGekkanTankaAJikan(); C3Label1.Text = MinutesToStringFormat(tmp); C3Label2.Text = tmp.ToString(); // 超勤B tmp = kinmuManager.CalcGekkanTankaBJikan(); C4Label1.Text = MinutesToStringFormat(tmp); C4Label2.Text = tmp.ToString(); // 超勤D(特休) tmp = kinmuManager.CalcGekkanTankaTokkyuDJikan(); C5Label1.Text = MinutesToStringFormat(tmp); C5Label2.Text = tmp.ToString(); // 超勤D(公休) tmp = kinmuManager.CalcGekkanTankaKoukyuDJikan(); C6Label1.Text = MinutesToStringFormat(tmp); C6Label2.Text = tmp.ToString(); // 夜勤C tmp = kinmuManager.CalcGekkanTankaCJikan(); C7Label1.Text = MinutesToStringFormat(tmp); C7Label2.Text = tmp.ToString(); // 控除A tmp = kinmuManager.CalcGekkanKoujyoAJikan(); C8Label1.Text = MinutesToStringFormat(tmp); C8Label2.Text = tmp.ToString(); // 減額A tmp = kinmuManager.CalcGekkanGengakuAjikan(); D1Label1.Text = MinutesToStringFormat(tmp); D1Label2.Text = tmp.ToString(); // 時間外労働時間 tmp = kinmuManager.CalcGekkanJikangaiRoudoJikan(); D2Label1.Text = MinutesToStringFormat(tmp); D2Label2.Text = tmp.ToString(); // 経営公休日労働時間 tmp = kinmuManager.CalcGekkanKeieiKokyuRoudoJikan(); D3Label1.Text = MinutesToStringFormat(tmp); D3Label2.Text = tmp.ToString(); // 法定労働時間 tmp = kinmuManager.CalcGekkanHouTeiRoudoJikan(); D4Label1.Text = MinutesToStringFormat(tmp); D4Label2.Text = tmp.ToString(); // 所定労働時間 tmp = kinmuManager.CalcGekkanSyoteiRoudoJikan(); D5Label1.Text = MinutesToStringFormat(tmp); D5Label2.Text = tmp.ToString(); // みなし1 tmp = kinmuManager.CalcGekkanMinashi1Jikan(); D6Label1.Text = MinutesToStringFormat(tmp); D6Label2.Text = tmp.ToString(); // 超勤E tmp = kinmuManager.CalcGekkanTankaEJikan(); D7Label1.Text = MinutesToStringFormat(tmp); D7Label2.Text = tmp.ToString(); // 祝日C tmp = kinmuManager.CalcGekkanSyukujituRoudoJikan(); D8Label1.Text = MinutesToStringFormat(tmp); D8Label2.Text = tmp.ToString(); } catch (KinmuException ex) { WorkResultsPanel.Visible = false; ErrorPanel.Visible = true; ErrorMessageLabel.Text = dataErrorMessage + "ErrorMessage:" + ex.Message + "StackTrace:" + ex.StackTrace; } }
/// <summary> /// 社員コード、年、月をもとにDBから勤務予定を取得し、帳票にバインドできる形に変換して返します。 /// </summary> /// <returns>バインドできる形に成形した勤務予定に記入するデータ</returns> private void RenderWorkPlansTableBody() { logger.Debug(LOG_START); for (int i = 1; i <= DateTime.DaysInMonth(kinmuManager.Year, kinmuManager.Month); i++) { // 本当はKinmuRecordRowを取得しておきたかったが、処理の関係上こうなってる // なんか良い方法あったら教えてください KNS_D01 KinmuJisseki = kinmuManager.KinmuJisseki.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D01(); KNS_D13 KinmuYotei = kinmuManager.KinmuYotei.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D13(); KNS_M05 CalendarMaster = kinmuManager.CalendarMaster.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_M05(); workTimeTotal += KinmuJisseki.DKINM ?? 0; minashiTimeTotal += KinmuJisseki.DMINA1 ?? 0; minashiTimeTotal += KinmuJisseki.DMINA2 ?? 0; restTimeTotal += KinmuJisseki.GetTotalRestTime(); KinmuGridViewWorkPlansRow a = new KinmuGridViewWorkPlansRow(new KinmuRecordRow(kinmuManager.EmployeeCD, KinmuJisseki, KinmuYotei, new List <KNS_D02>(), CalendarMaster), workTimeTotal); TableRow row = new TableRow(); row.Cells.AddRange(new TableCell[] { new TableCell() { Text = a.Date, CssClass = "Date" }, new TableCell() { Text = a.Day, CssClass = "Day" }, new TableCell() { Text = a.NinsyoSchedule, CssClass = "Plan" }, new TableCell() { Text = a.NinsyoResult, CssClass = "Result" }, new TableCell() { Text = a.OpeningTimeToClosingTimeSchedule, CssClass = "OpeningTimeToClosingTimeSchedule" }, new TableCell() { Text = a.OpeningTimeToClosingTimeResult, CssClass = "OpeningTimeToClosingTimeResult" }, new TableCell() { Text = a.NextDayFlag, CssClass = "NextDay" }, new TableCell() { Text = a.RestTime, CssClass = "BreakTime" }, new TableCell() { Text = a.WorkTime, CssClass = "WorkTime" }, new TableCell() { Text = a.Minashi, CssClass = "Minashi" }, new TableCell() { Text = a.WorkTimeTotal, CssClass = "WorkTimeTotal" }, new TableCell() { Text = a.Article, CssClass = "Article" } }); WorkPlansTable.Rows.Add(row); } }