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