/// ---------------------------------------------------------------------------- /// <summary> /// T_勤怠にデータをセットする </summary> /// <param name="r"> /// ryowaDataSet.T_勤怠Row </param> /// <param name="c"> /// CSVデータ配列</param> /// <returns> /// ryowaDataSet.T_勤怠Row</returns> /// ---------------------------------------------------------------------------- private mailReceiveDataSet.T_勤怠Row setMasterRow(mailReceiveDataSet.T_勤怠Row r, string[] c) { r.日付 = DateTime.Parse(c[0]); r.社員ID = Utility.StrtoInt(c[1]); r.工事ID = Utility.StrtoInt(c[2]); r.出勤印 = Utility.StrtoInt(c[3]); r.出社時刻時 = c[4]; r.出社時刻分 = c[5]; r.開始時刻時 = c[6]; r.開始時刻分 = c[7]; r.終了時刻時 = c[8]; r.終了時刻分 = c[9]; r.退出時刻時 = c[10]; r.退出時刻分 = c[11]; r.休憩 = Utility.StrtoInt(c[12]); r.普通残業 = Utility.StrtoInt(c[13]); r.深夜残業 = Utility.StrtoInt(c[14]); r.休日出勤 = Utility.StrtoInt(c[15]); r.代休 = Utility.StrtoInt(c[16]); r.休日 = Utility.StrtoInt(c[17]); r.勤 = Utility.StrtoInt(c[18]); r.宿泊 = Utility.StrtoInt(c[19]); r.備考 = c[20]; // ローカルデータから特殊勤務チェックしないので更新対象外 //r.除雪当番 = Utility.StrtoInt(c[21]); //r.特殊出勤 = Utility.StrtoInt(c[22]); //r.通し勤務 = Utility.StrtoInt(c[23]); //r.夜間手当 = Utility.StrtoInt(c[24]); //r.職務手当 = Utility.StrtoInt(c[25]); r.全走行 = Utility.StrtoInt(c[26]); r.通勤業務走行 = Utility.StrtoInt(c[27]); r.私用走行 = Utility.StrtoInt(c[28]); r.代休対象日 = c[29]; //r.確認印 = Utility.StrtoInt(c[30]); // ローカルデータから確認印チェックしないので更新対象外 r.登録年月日 = DateTime.Parse(c[31]); r.登録ユーザーID = Utility.StrtoInt(c[32]); r.更新年月日 = DateTime.Parse(c[33]); r.更新ユーザーID = Utility.StrtoInt(c[34]); // 早出残業:2018/07/13 if (c.Length > 36) { r.早出残業 = Utility.StrtoInt(c[36]); } else { r.早出残業 = 0; } return(r); }
///----------------------------------------------------------------------------- /// <summary> /// 勤務時間を取得する </summary> /// <param name="item"> /// ryowaDataSet.T_勤怠Row </param> /// <returns> /// 勤務時間・分</returns> ///----------------------------------------------------------------------------- public static double getWorkTime(mailReceiveDataSet.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> /// T_勤怠に確認チェックをセットする </summary> /// <param name="r"> /// ryowaDataSet.T_勤怠Row </param> /// <param name="c"> /// CSVデータ配列</param> /// <returns> /// ryowaDataSet.T_勤怠Row</returns> /// ---------------------------------------------------------------------------- private mailReceiveDataSet.T_勤怠Row setCheckedRow(mailReceiveDataSet.T_勤怠Row r, string[] c) { r.確認印 = Utility.StrtoInt(c[2]); r.更新年月日 = DateTime.Now; return(r); }