/// <summary> /// 実績コピー処理を行います。 /// </summary> private void CopyResults() { KNS_D01 origin_01 = GetLocalKinmuJisseki(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, GetOriginDayFromRequest()); List <KNS_D02> origin_02 = GetLocalSagyoNisshi(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, GetOriginDayFromRequest()); int[] copyToValues = GetCopytoDaysFromRequest(); List <KNS_D01> copytoList_01 = new List <KNS_D01>(); List <KNS_D02> copytoList_02 = new List <KNS_D02>(); foreach (int copyToValue in copyToValues) { if (origin_01 == null) { KNS_D01 tmp = GetLocalKinmuJisseki(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, copyToValue); if (tmp != null) { copytoList_01.Add(tmp); } } else { KNS_D01 copytod01 = origin_01.Clone(); copytod01.DATA_D = copyToValue.ToString(); KinmuManager.ExecuteUpdate(ref copytod01); } if (origin_01 == null || origin_02 == null) { List <KNS_D02> tmp = GetLocalSagyoNisshi(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, copyToValue); if (tmp.Any()) { copytoList_02.AddRange(tmp); } } else { List <KNS_D02> copytod02 = new List <KNS_D02>(); origin_02.ForEach(item => { KNS_D02 tmp = item.Clone(); tmp.DATA_D = copyToValue.ToString(); copytod02.Add(tmp); }); KinmuManager.ExecuteUpdate(ref copytod02); } } try { // 削除対象がなくても実施。Listの有無の判断をマネージャ側でいい感じにやってくれる dbManager.DeleteKinmuJisseki(copytoList_01); dbManager.DeleteSagyoNisshi(copytoList_02); } catch (Exception ex) { throw new KinmuException(ex.Message, ex); } SetInformationPanel(ref InformationPanel, ref InfoIcon, ref InfoText, "勤務実績のコピーが完了しました。", InformationLevel.Highlight); }
/// <summary> /// 実績情報に応じた<see cref="TableCell"/>を作成します /// </summary> /// <param name="jisseki">勤務実績データ</param> /// <param name="cell"><see cref="KNS_D01"/> <paramref name="jisseki"/>に応じ作成された<see cref="TableCell"/>が格納されます。</param> private void SetTableCellData(KNS_D01 jisseki, out TableCell cell) { try { logger.Debug(LOG_START); cell = new TableCell() { CssClass = "jisseki", Text = ninsyoCD[jisseki.NINKA_CD] }; // 勤務時間があればテキストを書き換える TimeRange tr = jisseki.GetWorkTimeRange(); if (tr != null) { cell.Text = tr.ToString(timeFormat); } } catch (KinmuException) { throw; } catch (Exception ex) { throw new KinmuException(ex.Message, ex); } }
public void CalcSyukujituCTest3() { KNS_D01 _d01 = new KNS_D01 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "11", NINYO_CD = "01", NINKA_CD = "10", STR_HR = "9", STR_MIN = "20", END_HR = "1", END_MIN = "0", END_PAR = "1", RESTS1_HR = "12", RESTS1_MIN = "00", RESTE1_HR = "13", RESTE1_MIN = "0", RESTS2_HR = "22", RESTS2_MIN = "30", RESTE2_HR = "23", RESTE2_MIN = "30" }; int res = KinmuManager.CalcSyukujituC(ref _d01); Assert.IsTrue(res == 760, "失敗:res = " + res); }
public void ValidationD01AndD02Test1() { KNS_D01 _d01 = new KNS_D01 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "1", NINYO_CD = "01", NINKA_CD = "10", STR_HR = "9", STR_MIN = "20", END_HR = "18", END_MIN = "0", END_PAR = "0", RESTS1_HR = "12", RESTS1_MIN = "00", RESTE1_HR = "13", RESTE1_MIN = "0", //RESTS2_HR = "24", //RESTS2_MIN = "30", //RESTE2_HR = "25", //RESTE2_MIN = "0" }; List <KNS_D02> _d02s = new List <KNS_D02>(); KNS_D02 _d02 = new KNS_D02 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "1", PROJ_CD = "V00303010A", SAGYO_CD = "01", SAGYO_MIN = 460 }; _d02s.Add(_d02); KinmuManager.ValidationD01AndD02(ref _d01, ref _d02s); }
/// <summary> /// 実績クリアの処理を行います /// </summary> private void ClearResults() { logger.Debug(LOG_START); int[] clearValue = GetClearFlagFromRequest(); List <KNS_D01> cleartoList_01 = new List <KNS_D01>(); List <KNS_D02> cleartoList_02 = new List <KNS_D02>(); // 削除対象の作成 foreach (int day in clearValue) { KNS_D01 tmp = GetLocalKinmuJisseki(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, day); if (tmp != null) { cleartoList_01.Add(tmp); } var tmp2 = GetLocalSagyoNisshi(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, day); if (tmp2.Any()) { cleartoList_02.AddRange(tmp2); } } // 削除の実行 int cnt = 0; cnt = dbManager.DeleteKinmuJisseki(cleartoList_01); cnt += dbManager.DeleteSagyoNisshi(cleartoList_02); if (0 < cnt) { SetInformationPanel(ref InformationPanel, ref InfoIcon, ref InfoText, "勤務実績のクリアが完了しました。", InformationLevel.Highlight); } else { SetInformationPanel(ref InformationPanel, ref InfoIcon, ref InfoText, "クリア対象の勤務実績がありませんでした。", InformationLevel.Error); } }
public void CalcTankaDTest2() { KNS_D01 _d01 = new KNS_D01 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "3", NINYO_CD = "01", NINKA_CD = "10", STR_HR = "9", STR_MIN = "20", END_HR = "18", END_MIN = "0", END_PAR = "0", RESTS1_HR = "12", RESTS1_MIN = "00", RESTE1_HR = "13", RESTE1_MIN = "0", }; int res = KinmuManager.CalcTankaD(ref _d01); Assert.IsTrue(res == 460, "失敗:res = " + res); }
public void SetKinmuJissekiParameterTest1() { KNS_D01 _d01 = new KNS_D01 { SHAIN_CD = "9999999", DATA_Y = "2019", DATA_M = "2", DATA_D = "1", NINYO_CD = "01", NINKA_CD = "10", STR_HR = "9", STR_MIN = "20", END_HR = "18", END_MIN = "0", END_PAR = "0", RESTS1_HR = "12", RESTS1_MIN = "00", RESTE1_HR = "13", RESTE1_MIN = "0", }; bool res = KinmuManager.ExecuteUpdate(ref _d01); 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); } }