예제 #1
0
 /// <summary>
 /// ドロップダウンリストの選択肢を設定
 /// </summary>
 /// <param name="traineeEdt">教習生編集情報</param>
 private void SetSelectItem(V_TraineeLodgingEdt traineeEdt)
 {
     // 編集モードの場合
     if (AppConstant.EditMode.Edit.Equals(traineeEdt.EditMode))
     {
         // 性別の選択肢設定
         traineeEdt.Trainee.SelectGender = new SelectList(new List <SelectListItem> {
             new SelectListItem()
             {
                 Text = AppConstant.GENDER_MALE, Value = AppConstant.GENDER_MALE
             },
             new SelectListItem()
             {
                 Text = AppConstant.GENDER_FEMALE, Value = AppConstant.GENDER_FEMALE
             }
         }, "Value", "Text", traineeEdt.Trainee.Gender);
         // 教習コースの選択肢設定
         traineeEdt.Trainee.SelectTrainingCourse = new SelectList(db.TrainingCourse.OrderBy(x => x.TrainingCourseCd).ToList(), "TrainingCourseCd", "TrainingCourseName", traineeEdt.Trainee.TrainingCourseCd);
         // 宿泊施設の選択肢設定
         traineeEdt.Trainee.SelectLodging = new SelectList(db.LodgingFacility.OrderBy(x => x.LodgingCd).ToList(), "LodgingCd", "LodgingName", traineeEdt.Trainee.LodgingCd);
     }
     // 確認モードの場合
     else
     {
         // 教習コースを設定
         traineeEdt.Trainee.TrainingCourse = db.TrainingCourse.Find(traineeEdt.Trainee.TrainingCourseCd);
         // 宿泊施設を設定
         traineeEdt.Trainee.LodgingFacility = db.LodgingFacility.Find(traineeEdt.Trainee.LodgingCd);
     }
 }
예제 #2
0
        /// <summary>
        /// 更新表示
        /// </summary>
        /// <param name="id">教習生ID</param>
        /// <returns></returns>
        public ActionResult Edit(int id)
        {
            Trace.WriteLine("GET /TraineeLodging/Edit/" + id);

            V_TraineeLodgingEdt traineeEdt = new V_TraineeLodgingEdt();

            // DBから教習生情報を取得
            traineeEdt.Trainee = db.TraineeLodging.Find(id);
            if (traineeEdt.Trainee == null)
            {
                return(HttpNotFound());
            }

            // 編集モードを設定
            traineeEdt.EditMode = AppConstant.EditMode.Edit;

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

            return(View(traineeEdt));
        }
예제 #3
0
        public ActionResult Edit(string cmd, [Bind(Include = "Trainee")] V_TraineeLodgingEdt traineeEdt)
        {
            Trace.WriteLine("POST /TraineeLodging/Edit/" + traineeEdt.Trainee.TraineeId);

            // 確認ボタンが押下された場合
            if (AppConstant.CMD_CONFIRM.Equals(cmd))
            {
                // 入力チェック
                bool validation = true;
                if (ModelState.IsValid)
                {
                    // 入校予定日、仮免予定日の比較
                    if (traineeEdt.Trainee.EntrancePlanDate >= traineeEdt.Trainee.TmpLicencePlanDate)
                    {
                        ViewBag.ErrorMessage = "仮免予定日は入校予定日より後に設定してください。";
                        validation           = false;
                    }

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

                if (validation == true)
                {
                    // 確認モードに設定
                    traineeEdt.EditMode = AppConstant.EditMode.Confirm;
                    // 入校予定日-10日(TODO:いったん-10日としている)
                    DateTime dateFrom = ((DateTime)traineeEdt.Trainee.EntrancePlanDate).AddDays(-10);
                    // 卒業予定日+10日(TODO:いったん+10日としている)
                    DateTime dateTo = ((DateTime)traineeEdt.Trainee.GraduatePlanDate).AddDays(10);
                    // 表データを作成
                    traineeEdt.ChartData = new Utility().GetChartData(db, dateFrom, dateTo, new List <T_TraineeLodging> {
                        traineeEdt.Trainee
                    }, null);
                }
                else
                {
                    // 編集モードに変更
                    traineeEdt.EditMode = AppConstant.EditMode.Edit;
                }
            }

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

            // 更新ボタンが押下された場合
            else if (AppConstant.CMD_UPDATE.Equals(cmd))
            {
                // マスタは更新しないため、データをクリア(TODO:他に良い方法があるか…?)
                traineeEdt.Trainee.TrainingCourse  = null;
                traineeEdt.Trainee.LodgingFacility = null;
                // 更新処理
                db.Entry(traineeEdt.Trainee).State = EntityState.Modified;
                db.SaveChanges();
                // 一覧へリダイレクト
                return(RedirectToAction("List"));
            }

            // 仮免・卒業日設定ボタンが押下された場合
            else if (AppConstant.CMD_SET_TMP_GRD.Equals(cmd))
            {
                // ステータスをクリア
                ModelState.Clear();
                // 編集モードを設定
                traineeEdt.EditMode = AppConstant.EditMode.Edit;

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

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

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

            return(View(traineeEdt));
        }