Example #1
0
        public void CheckValidationForForm()
        {
            // Null-空白check
            if (string.IsNullOrWhiteSpace(SHAIN_CD))
            {
                throw new KinmuException("社員コードが空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_Y))
            {
                throw new KinmuException("年が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_M))
            {
                throw new KinmuException("月が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_D))
            {
                throw new KinmuException("日が空白です。");
            }
            if (string.IsNullOrWhiteSpace(PROJ_CD))
            {
                throw new KinmuException("プロジェクトコードが空白です。");
            }
            if (string.IsNullOrWhiteSpace(SAGYO_CD))
            {
                throw new KinmuException("作業コードが空白です。");
            }

            // 日付妥当性
            try
            {
                KinmuSystemDB.ValidationDate(DATA_Y, DATA_M, DATA_D);
            }
            catch (InvalidCastException e)
            {
                throw new KinmuException(e.Message, e);
            }

            // 作業時間妥当性
            if (SAGYO_MIN <= 0)
            {
                throw new KinmuException("作業時間が0以下です。");
            }
            if (1440 <= SAGYO_MIN)
            {
                throw new KinmuException("作業時間が24時間を超過しています。");
            }
        }
Example #2
0
        public void CheckValidationForForm()
        {
            // Null-空白check
            if (string.IsNullOrWhiteSpace(SHAIN_CD))
            {
                throw new KinmuException("社員コードが空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_Y))
            {
                throw new KinmuException("年が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_M))
            {
                throw new KinmuException("月が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_D))
            {
                throw new KinmuException("日が空白です。");
            }
            if (string.IsNullOrWhiteSpace(YOTEI_CD))
            {
                throw new KinmuException("勤務認証コード(予定)が空白です。");
            }
            if (string.IsNullOrWhiteSpace(END_Y_PAR))
            {
                throw new KinmuException("翌日フラグが空白です。");
            }
            if (string.IsNullOrWhiteSpace(SHONIN_FLG))
            {
                throw new KinmuException("承認フラグが空白です。");
            }

            // 日付妥当性
            try
            {
                KinmuSystemDB.ValidationDate(DATA_Y, DATA_M, DATA_D);
            }
            catch (Exception e)
            {
                throw new KinmuException(e.Message, e);
            }

            // 翌日フラグ妥当性
            if (END_Y_PAR != "0" && END_Y_PAR != "1")
            {
                throw new KinmuException("翌日フラグに「" + END_Y_PAR + "」が指定されました。翌日フラグは0か1を指定します。");
            }
            if (END_Y_PAR == "1" && GetWorkTimeRange() == null)
            {
                throw new KinmuException("翌日フラグが設定されましたが、有効な勤務時間が設定されていませんでした。");
            }

            // 勤務時間
            TimeRange _workTime = null;

            if (YOTEI_CD == ((int)CommonDefine.NinsyoCD.出勤).ToString("00") || !string.IsNullOrWhiteSpace(STR_Y_HR) || !string.IsNullOrWhiteSpace(STR_Y_MIN) || !string.IsNullOrWhiteSpace(END_Y_HR) || !string.IsNullOrWhiteSpace(END_Y_MIN))
            {
                // 勤務時間帯を作れなかったらエラー
                _workTime = GetWorkTimeRange() ?? throw new KinmuException("有効な勤務時間が設定されていませんでした。0:00~23:59を指定してください。");
                // 勤務時間が0以下ならエラー
                if (_workTime.GetRangeMinutes() <= 0)
                {
                    throw new KinmuException("有効な勤務時間が設定されていませんでした。0:00~23:59を指定してください。");
                }
                // 勤務時間が24時間を超過した場合はエラー
                if (24 * 60 < _workTime.GetRangeMinutes())
                {
                    throw new KinmuException("勤務時間が24時間を超過しました。24時間を超過する場合は翌日の勤務として入力してください。");
                }
            }
            // 認証コードは今後変更になる場合があるため、ここで存在するかのバリデーションせず、入力時にバリデーションする。
        }
Example #3
0
        /// <summary>
        /// フォームから入力した値をセットしたあとに実施するバリデーションです。
        /// </summary>
        public void CheckValidationForForm()
        {
            // Null-空白check
            if (string.IsNullOrWhiteSpace(SHAIN_CD))
            {
                throw new KinmuException("社員コードが空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_Y))
            {
                throw new KinmuException("年が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_M))
            {
                throw new KinmuException("月が空白です。");
            }
            if (string.IsNullOrWhiteSpace(DATA_D))
            {
                throw new KinmuException("日が空白です。");
            }
            //つかわない
            //if (string.IsNullOrWhiteSpace(NINYO_CD)) { throw new KinmuException("勤務認証コード(予定)が空白です。"); }
            if (string.IsNullOrWhiteSpace(NINKA_CD))
            {
                throw new KinmuException("勤務認証コード(確定)が空白です。");
            }

            //if (string.IsNullOrWhiteSpace(STR_HR)) { throw new KinmuException("始業時刻(時)が空白です。"); }
            //if (string.IsNullOrWhiteSpace(STR_MIN)) { throw new KinmuException("始業時刻(分)が空白です。"); }
            //if (string.IsNullOrWhiteSpace(END_HR)) { throw new KinmuException("終業時刻(時)が空白です。"); }
            //if (string.IsNullOrWhiteSpace(END_MIN)) { throw new KinmuException("終業時刻(分)が空白です。"); }
            if (string.IsNullOrWhiteSpace(END_PAR))
            {
                throw new KinmuException("翌日フラグが空白です。");
            }

            // 日付妥当性
            try
            {
                KinmuSystemDB.ValidationDate(DATA_Y, DATA_M, DATA_D);
            }
            catch (InvalidCastException e)
            {
                throw new KinmuException(e.Message, e);
            }

            // 翌日フラグ妥当性
            if (END_PAR != "0" && END_PAR != "1")
            {
                throw new KinmuException("翌日フラグに「" + END_PAR + "」が指定されました。翌日フラグは0か1を指定します。");
            }
            if (END_PAR == "1" && GetWorkTimeRange() == null)
            {
                throw new KinmuException("翌日フラグが設定されましたが、有効な勤務時間が設定されていませんでした。");
            }

            // 勤務時間
            TimeRange _workTime = null;

            if (!string.IsNullOrWhiteSpace(STR_HR) || !string.IsNullOrWhiteSpace(STR_MIN) || !string.IsNullOrWhiteSpace(END_HR) || !string.IsNullOrWhiteSpace(END_MIN))
            {
                // 勤務時間帯を作れなかったらエラー
                _workTime = GetWorkTimeRange() ?? throw new KinmuException("有効な勤務時間が設定されていませんでした。0:00~23:59を指定してください。");
                // 勤務時間が0以下ならエラー
                if (_workTime.GetRangeMinutes() <= 0)
                {
                    throw new KinmuException("有効な勤務時間が設定されていませんでした。0:00~23:59を指定してください。");
                }
                // 勤務時間が24時間を超過した場合はエラー
                if (24 * 60 < _workTime.GetRangeMinutes())
                {
                    throw new KinmuException("勤務時間が24時間を超過しました。24時間を超過する場合は翌日の勤務として入力してください。");
                }
            }

            // 休憩時間の妥当性
            TimeRange[] _rests = GetRestTimeRanges();

            // 休憩時間同士の重複チェックと勤務時間内に設定されているかのチェック
            for (int i = 0; i < _rests.Length; i++)
            {
                if (_rests[i] == null)
                {
                    continue;
                }
                if (_rests[i].IsOverlap(_rests[(i + 1) % 3]))
                {
                    throw new KinmuException("休憩時間" + (i + 1) + "と休憩時間" + (i + 2) % 3 + "が重複しています。");
                }
                if (_rests[i].GetOverlapMinutes(_workTime) != _rests[i].GetRangeMinutes())
                {
                    throw new KinmuException("休憩時間" + (i + 1) + "が勤務時間外に設定されています。");
                }
                if (_rests[i].Begin == _workTime.Begin || _rests[i].Last == _workTime.Last)
                {
                    throw new KinmuException("休憩時間" + (i + 1) + "が勤務時間の開始、もしくは終了時刻に取られています。");
                }
            }

            // 認証コードは今後変更になる場合があるため、ここで存在するかのバリデーションせず、入力時にバリデーションする。
        }