/// <summary> /// 1日単位の勤務実績を作成します。 /// </summary> /// <param name="_EmployeeCD">勤務情報の所有者社員コード</param> /// <param name="_KinmuJisseki">勤務実績</param> /// <param name="_SagyoNisshi">作業日誌</param> /// <param name="_KinmuYotei">勤務予定</param> /// <param name="_CalendarMaster">カレンダーマスタ</param> public KinmuRecordRow(string _EmployeeCD, KNS_D01 _KinmuJisseki, KNS_D13 _KinmuYotei, List <KNS_D02> _SagyoNisshi, KNS_M05 _CalendarMaster) { EmployeeCD = _EmployeeCD ?? throw new ArgumentNullException("_EmployeeCD", "社員コードは必須のため、Nullでオブジェクトを作成することはできません。"); KinmuJisseki = _KinmuJisseki ?? new KNS_D01(); KinmuYotei = _KinmuYotei ?? new KNS_D13(); SagyoNisshi = _SagyoNisshi ?? new List <KNS_D02>(); CalendarMaster = _CalendarMaster ?? throw new ArgumentNullException("_CalendarMaster", "カレンダーマスタをNullでオブジェクトを作成することはできません。KNS_M05テーブルを参照し、対象日付のカレンダーマスタが作成されているか確認してください。"); }
/// <summary> /// このインスタンスと引数の<see cref="KNS_D01"/>が重複している実労働時間を分換算で取得します。重複していない場合は戻り値は0になります。 /// </summary> /// <param name="KinmuJisseki">確認したい勤務実績</param> /// <returns>重複している時間</returns> public int GetOverlapMinutes(KNS_D01 KinmuJisseki) { int time = 0; time += GetOverlapMinutes(KinmuJisseki.GetWorkTimeRange()); time -= GetOverlapMinutes(KinmuJisseki.GetRest1TimeRange()); time -= GetOverlapMinutes(KinmuJisseki.GetRest2TimeRange()); time -= GetOverlapMinutes(KinmuJisseki.GetRest3TimeRange()); return(time); }