Пример #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            Trace.WriteLine("POST /TraineeLodging/Delete/" + id);

            // 教習生データを取得
            T_TraineeLodging trainee = db.TraineeLodging.Find(id);

            if (trainee != null)
            {
                // 削除
                db.TraineeLodging.Remove(trainee);
                db.SaveChanges();
            }

            // 一覧へリダイレクト
            return(RedirectToAction("List"));
        }
Пример #2
0
        /// <summary>
        /// 詳細表示
        /// </summary>
        /// <param name="id">教習生ID</param>
        /// <returns></returns>
        public ActionResult Details(int?id)
        {
            Trace.WriteLine("GET /TraineeLodging/Details/" + id);

            // IDが空の場合、エラー
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // 教習生情報を取得
            T_TraineeLodging trainee = db.TraineeLodging.Find(id);

            if (trainee == null)
            {
                return(HttpNotFound());
            }

            return(View(trainee));
        }
Пример #3
0
        public ActionResult Regist(string cmd, int?index, [Bind(Include = "TraineeList")] V_TraineeLodgingReg traineeReg)
        {
            Trace.WriteLine("POST /TraineeLodging/Regist");

            // 確認ボタンが押下された場合(TODO:本来はDBに一時登録データを持つべき?)
            if (AppConstant.CMD_CONFIRM.Equals(cmd))
            {
                // 入力チェック
                bool validation = true;
                if (ModelState.IsValid)
                {
                    // 日付比較
                    foreach (T_TraineeLodging trainee in traineeReg.TraineeList)
                    {
                        // 入校予定日、仮免予定日の比較
                        if (trainee.EntrancePlanDate >= trainee.TmpLicencePlanDate)
                        {
                            ViewBag.ErrorMessage = "仮免予定日は入校予定日より後に設定してください。";
                            validation           = false;
                            break;
                        }

                        // 仮免予定日、卒業予定日の比較
                        if (validation == true && trainee.TmpLicencePlanDate >= trainee.GraduatePlanDate)
                        {
                            ViewBag.ErrorMessage = "卒業予定日は仮免予定日より後に設定してください。";
                            validation           = false;
                            break;
                        }
                    }
                }
                else
                {
                    // エラーメッセージを生成
                    ViewBag.ErrorMessage = new Utility().GetErrorMessage(ModelState);
                    validation           = false;
                }

                if (validation == true)
                {
                    // 確認モードに変更
                    traineeReg.EditMode = AppConstant.EditMode.Confirm;
                    // 入校予定日の最小値-10日(TODO:いったん-10日としている)
                    DateTime minEntDate = (DateTime)traineeReg.TraineeList.Select(x => x.EntrancePlanDate).Min();
                    DateTime dateFrom   = minEntDate.AddDays(-10);
                    // 卒業予定日の最大値+10日(TODO:いったん+10日としている)
                    DateTime maxGrdDate = (DateTime)traineeReg.TraineeList.Select(x => x.GraduatePlanDate).Max();
                    DateTime dateTo     = maxGrdDate.AddDays(10);
                    // 表データを作成
                    traineeReg.ChartData = new Utility().GetChartData(db, dateFrom, dateTo, traineeReg.TraineeList, null);
                }
                else
                {
                    // 編集モードに変更
                    traineeReg.EditMode = AppConstant.EditMode.Edit;
                }
            }

            // 戻るボタンが押下された場合
            else if (AppConstant.CMD_RETURN.Equals(cmd))
            {
                // 編集モードに変更
                traineeReg.EditMode = AppConstant.EditMode.Edit;
            }

            // 登録ボタンが押下された場合
            else if (AppConstant.CMD_REGIST.Equals(cmd))
            {
                // グループIDの最大値+1を取得
                int groupId = db.TraineeLodging.Count() > 0 ? db.TraineeLodging.Select(x => x.GroupId).Max() + 1 : 1;
                // 外部キーマスタのリセット&グループIDの設定
                traineeReg.TraineeList.ForEach(x => {
                    x.GroupId         = groupId;
                    x.TrainingCourse  = null;
                    x.LodgingFacility = null;
                });
                // 登録処理
                db.TraineeLodging.AddRange(traineeReg.TraineeList);
                db.SaveChanges();

                // 一覧へリダイレクト
                return(RedirectToAction("List"));
            }

            // 仮免・卒業日設定ボタンが押下された場合
            else if (AppConstant.CMD_SET_TMP_GRD.Equals(cmd))
            {
                // ステータスをクリア
                ModelState.Clear();
                // 編集モードを設定
                traineeReg.EditMode = AppConstant.EditMode.Edit;
                // インデックスを元に教習生を取得
                int i = (int)index;
                T_TraineeLodging trainee = traineeReg.TraineeList[i];

                // 教習コース、入校予定日の必須チェック
                if (!string.IsNullOrEmpty(trainee.TrainingCourseCd) && trainee.EntrancePlanDate != null)
                {
                    // カレンダーテーブルから取得
                    M_EntGrdCalendar calendar = db.EntGrdCalendar.Where(
                        x => x.TrainingCourseCd.Equals(trainee.TrainingCourseCd) && ((DateTime)x.EntrancePlanDate).Equals((DateTime)trainee.EntrancePlanDate)).FirstOrDefault();
                    if (calendar != null)
                    {
                        // 仮免予定日
                        traineeReg.TraineeList[i].TmpLicencePlanDate = calendar.TmpLicencePlanDate;
                        // 卒業予定日
                        traineeReg.TraineeList[i].GraduatePlanDate = calendar.GraduatePlanDate;
                    }
                    else
                    {
                        // エラー
                        ViewBag.ErrorMessage = "入校予定日の日付が入卒カレンダーに登録されていません。";
                    }
                }
                else
                {
                    // エラー
                    ViewBag.ErrorMessage = "教習コース、入校予定日を設定してください。";
                }
            }

            // 追加ボタンが押下された場合
            else if (AppConstant.CMD_ADD.Equals(cmd))
            {
                // ステータスをクリア
                ModelState.Clear();
                // 編集モードを設定
                traineeReg.EditMode = AppConstant.EditMode.Edit;
                // インデックスを元に教習生を追加
                int i = (int)index;
                traineeReg.TraineeList.Insert(i + 1, new T_TraineeLodging(traineeReg.TraineeList[i]));
                // 教習者名をクリア
                traineeReg.TraineeList[i + 1].TraineeName = "";
                // キャンセルフラグをクリア
                traineeReg.TraineeList[i + 1].CancelFlg = false;
            }

            // 削除ボタンが押下された場合
            else if (AppConstant.CMD_REMOVE.Equals(cmd))
            {
                // ステータスをクリア
                ModelState.Clear();
                // 編集モードを設定
                traineeReg.EditMode = AppConstant.EditMode.Edit;
                // インデックスを元に教習生を削除
                int i = (int)index;
                traineeReg.TraineeList.RemoveAt(i);
            }

            // その他
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // ドロップダウンリストの選択肢を設定
            this.SetSelectItem(traineeReg);

            return(View(traineeReg));
        }