/// <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); } }
/// <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)); }
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)); }