///----------------------------------------------------------------------------- /// <summary> /// 勤務時間を取得する </summary> /// <param name="item"> /// ryowaDataSet.T_勤怠Row </param> /// <returns> /// 勤務時間・分</returns> ///----------------------------------------------------------------------------- public static double getWorkTime(kintaiDataSet.T_勤怠Row item) { int cSH = Utility.StrtoInt(item.開始時刻時); int cSM = Utility.StrtoInt(item.開始時刻分); int cEH = Utility.StrtoInt(item.終了時刻時); int cEM = Utility.StrtoInt(item.終了時刻分); if (cEH == 24) { cEH = 0; } DateTime stTM = DateTime.Parse(cSH.ToString() + ":" + cSM.ToString()); DateTime edTM = DateTime.Parse(cEH.ToString() + ":" + cEM.ToString()); double spanMin = 0; bool rtn = false; int sTime = cSH * 100 + cSM; int eTime = cEH * 100 + cEM; // 勤務時間取得 if (sTime >= eTime) { // 終了が翌日のとき spanMin += Utility.GetTimeSpan(stTM, edTM.AddDays(1)).TotalMinutes; } else { // 終了が当日のとき spanMin += Utility.GetTimeSpan(stTM, edTM).TotalMinutes; } // 休憩時間を差し引く int rTM = Properties.Settings.Default.restTime + item.休憩; if (spanMin > rTM) { spanMin -= rTM; } return(spanMin); }
///------------------------------------------------------------------ /// <summary> /// データ登録 </summary> ///------------------------------------------------------------------ private void dataAdd() { kintaiDataSet.T_勤怠Row s = dts.T_勤怠.NewT_勤怠Row(); rowDataSet(s); dts.T_勤怠.AddT_勤怠Row(s); }
///------------------------------------------------------------------ /// <summary> /// T_勤怠Rowにデータをセットします </summary> /// <param name="s"> /// kintaiDataSet.T_勤怠Row </param> ///------------------------------------------------------------------ private void rowDataSet(kintaiDataSet.T_勤怠Row s) { s.日付 = _pDate; s.社員ID = _pNUm; s.工事ID = Utility.StrtoInt(cmbKouji.SelectedValue.ToString()); if (rBtnWork.Checked) { s.出勤印 = global.flgOn; } else { s.出勤印 = global.flgOff; } if (rBtnWork.Checked || rBtnHolWork.Checked) { s.出社時刻時 = txtInH.Text; s.出社時刻分 = txtInM.Text; s.開始時刻時 = txtSH.Text; s.開始時刻分 = txtSM.Text; s.終了時刻時 = txtEH.Text; s.終了時刻分 = txtEM.Text; s.退出時刻時 = txtOutH.Text; s.退出時刻分 = txtOutM.Text; s.休憩 = Utility.StrtoInt(txtRH.Text) * 60 + Utility.StrtoInt(txtRM.Text); s.普通残業 = Utility.StrtoInt(txtZH.Text) * 60 + Utility.StrtoInt(txtZM.Text); s.深夜残業 = Utility.StrtoInt(txtSiH.Text) * 60 + Utility.StrtoInt(txtSiM.Text); s.早出残業 = Utility.StrtoInt(txtHH.Text) * 60 + Utility.StrtoInt(txtHM.Text); // 2018/07/11 } else { s.出社時刻時 = string.Empty; s.出社時刻分 = string.Empty; s.開始時刻時 = string.Empty; s.開始時刻分 = string.Empty; s.終了時刻時 = string.Empty; s.終了時刻分 = string.Empty; s.退出時刻時 = string.Empty; s.退出時刻分 = string.Empty; s.休憩 = global.flgOff; s.普通残業 = global.flgOff; s.深夜残業 = global.flgOff; s.早出残業 = global.flgOff; // 2018/07/11 } if (rBtnHolWork.Checked) { s.休日出勤 = global.flgOn; } else { s.休日出勤 = global.flgOff; } if (rBtnDaiOff.Checked) { s.代休 = global.flgOn; } else { s.代休 = global.flgOff; } if (rBtnOffDay.Checked) { s.休日 = global.flgOn; } else { s.休日 = global.flgOff; } if (rBtnYasumi.Checked) { s.勤 = global.flgOn; } else { s.勤 = global.flgOff; } if (chkStay.Checked) { s.宿泊 = global.flgOn; } else { s.宿泊 = global.flgOff; } s.備考 = txtMemo.Text.Replace(",", ""); if (chkJyosetsu.Checked) { s.除雪当番 = global.flgOn; } else { s.除雪当番 = global.flgOff; } if (chkTokushu.Checked) { s.特殊出勤 = global.flgOn; } else { s.特殊出勤 = global.flgOff; } if (chkTooshi.Checked) { s.通し勤務 = global.flgOn; } else { s.通し勤務 = global.flgOff; } if (chkYakan.Checked) { s.夜間手当 = global.flgOn; } else { s.夜間手当 = global.flgOff; } if (chkShokumu.Checked) { s.職務手当 = global.flgOn; } else { s.職務手当 = global.flgOff; } s.通勤業務走行 = Utility.StrtoInt(txtKmTuukin.Text); s.私用走行 = Utility.StrtoInt(txtKmShiyou.Text); if (dtDDay.Checked) { s.代休対象日 = dtDDay.Value.Year.ToString() + dtDDay.Value.Month.ToString().PadLeft(2, '0') + dtDDay.Value.Day.ToString().PadLeft(2, '0'); } else { s.代休対象日 = string.Empty; } // 2016/04/13 確認印はチェックした管理者の個人コードを書き込む s.確認印 = _chkManager; //if (chkManager.Checked) //{ // s.確認印 = global.flgOn; //} //else //{ // s.確認印 = global.flgOff; //} if (fMode.Mode == global.FORM_ADDMODE) { s.登録年月日 = DateTime.Now; s.登録ユーザーID = global.loginUserID; } s.更新年月日 = DateTime.Now; s.更新ユーザーID = global.loginUserID; }
///------------------------------------------------------------------ /// <summary> /// データ更新 </summary> ///------------------------------------------------------------------ private void dataUpdate(int sID) { kintaiDataSet.T_勤怠Row s = dts.T_勤怠.Single(a => a.ID == sID); rowDataSet(s); }