public ActionResult PersonnelManagersAddComments(PersonnelManagersModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (!string.IsNullOrEmpty(model.Comment)) { if (!EmploymentBl.SaveComments(model.UserId, (int)EmploymentCommentTypeEnum.PersonnelManagers, model.Comment, out error)) { model = EmploymentBl.GetPersonnelManagersModel(model); if (Session["PersonnelManagersM" + SPPath] != null) Session.Remove("PersonnelManagersM" + SPPath); if (Session["PersonnelManagersM" + SPPath] == null) Session.Add("PersonnelManagersM" + SPPath, model); ModelState.AddModelError("IsValidate", error); if (Session["PersonnelManagersMS" + SPPath] != null) Session.Remove("PersonnelManagersMS" + SPPath); if (Session["PersonnelManagersMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("PersonnelManagersMS" + SPPath, mst); } } } return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=12"); }
protected bool ValidateModel(PersonnelManagersModel model) { bool isFixedTermContract = EmploymentBl.IsFixedTermContract(model.UserId); model.IsFixedTermContract = isFixedTermContract; bool flgError = false; if (AuthenticationService.CurrentUser.UserRole == UserRole.PersonnelManager && !EmploymentBl.IsUnlimitedEditAvailable()) { ModelState.AddModelError("MessageStr", "У вас нет прав для редактирования данных!"); } if (model.ContractEndDate == null && isFixedTermContract && model.ContractPoint_1_Id.Value == 1) { ModelState.AddModelError("ContractEndDate", "*"); ModelState.AddModelError("MessageStr", "Укажите дату окончания ТД"); flgError = true; } if (model.ContractEndDate != null && !isFixedTermContract) { ModelState.AddModelError("ContractEndDate", "Не заполняется при бессрочном ТД"); ModelState.AddModelError("MessageStr", "Не заполняется при бессрочном ТД"); flgError = true; } if (model.ContractPoint_1_Id == 2) { if (model.ContractPointsFio == null || model.ContractPointsFio.Trim().Length == 0) { ModelState.AddModelError("ContractPointsFio", "Заполните поле!"); ModelState.AddModelError("MessageStr", "Заполните поле!"); flgError = true; } } if (model.ContractPoint_2_Id == 4) { if (model.ContractPointsAddress == null || model.ContractPointsAddress.Trim().Length == 0) { ModelState.AddModelError("ContractPointsAddress", "Заполните поле!"); ModelState.AddModelError("MessageStr", "Заполните поле!"); flgError = true; } } if (!model.IsHourlySalaryBasis && model.ScheduleId != 48) { ModelState.AddModelError("ScheduleId", "Для оклада по дням доступен только основной график работы!"); ModelState.AddModelError("MessageStr", "Для оклада по дням доступен только основной график работы!"); flgError = true; } if (model.IsHourlySalaryBasis && model.ScheduleId == 48) { ModelState.AddModelError("ScheduleId", "Для оклада по часам основной график работы не доступен!"); ModelState.AddModelError("MessageStr", "Для оклада по часам основной график работы не доступен!"); flgError = true; } if (!model.SendTo1C.HasValue) { //на время теста разрешили не раньше 1 апреля //if (model.EmploymentDate.HasValue && model.EmploymentDate.Value < DateTime.Today) if (model.EmploymentDate.HasValue && model.EmploymentDate.Value < Convert.ToDateTime("01/04/2015")) { ModelState.AddModelError("EmploymentDate", "Дата принятия на работу не должна быть меньше текущей даты!"); ModelState.AddModelError("MessageStr", "Дата принятия на работу не должна быть меньше текущей даты!"); flgError = true; } //if (model.ContractDate.HasValue && model.ContractDate.Value < DateTime.Today) if (model.ContractDate.HasValue && model.ContractDate.Value < Convert.ToDateTime("01/04/2015"))//на время теста { ModelState.AddModelError("EmploymentDate", "Дата приказа принятия на работу и дата ТД не должна быть меньше текущей даты!"); ModelState.AddModelError("MessageStr", "Дата приказа принятия на работу и дата ТД не должна быть меньше текущей даты!"); flgError = true; } if (model.ContractDate.HasValue && model.EmploymentDate.HasValue) { if (model.ContractDate.Value > model.EmploymentDate.Value) { ModelState.AddModelError("EmploymentDate", "Дата принятия на работу не должна быть меньше даты приказа принятия на работу и даты ТД!"); ModelState.AddModelError("MessageStr", "Дата принятия на работу не должна быть меньше даты приказа принятия на работу и даты ТД!"); flgError = true; } } if (model.ContractEndDate.HasValue) { if (model.ContractEndDate.Value < model.ContractDate.Value) { ModelState.AddModelError("ContractEndDate", "Дата окончания ТД не должна быть меньше, чем дата ТД!"); ModelState.AddModelError("MessageStr", "Дата окончания ТД не должна быть меньше, чем дата ТД!"); } } } if (model.NorthExperienceType == 3) { if (model.NorthExperienceYears == 0 && model.NorthExperienceMonths == 0 && model.NorthExperienceDays == 0) { ModelState.AddModelError("NorthExperienceYears", "*"); ModelState.AddModelError("NorthExperienceMonths", "*"); ModelState.AddModelError("NorthExperienceDays", "*"); ModelState.AddModelError("MessageStr", "Введите северный стаж!"); } if (!model.NorthernAreaAddition.HasValue) { ModelState.AddModelError("NorthernAreaAddition", "*"); ModelState.AddModelError("MessageStr", "Укажите северную надбавку!"); } } if (!ModelState.IsValid && flgError) ModelState.AddModelError("MessageStr", "Проверьте правильность заполнени полей!"); //if (!model.Level.HasValue || model.Level > 7 || model.Level < 2) //{ // ModelState.AddModelError("Level", "Требуется число от 2 до 7"); //} return ModelState.IsValid; }
public ActionResult PersonnelManagers(PersonnelManagersModel model, IEnumerable<HttpPostedFileBase> files) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (model.IsReject) { EmploymentBl.SavePersonnelManagersRejecting(model, out error); ModelState.Clear(); ModelState.AddModelError("MessageStr", string.IsNullOrEmpty(error) ? "Кандидат отклонен!" : error); } else { if (ValidateModel(model)) { if (model.IsDraftPM) { EmploymentBl.ProcessSaving<PersonnelManagersModel, PersonnelManagers>(model, out error); ModelState.AddModelError("MessageStr", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error); } else { EmploymentBl.SavePersonnelManagersReport(model, out error); ModelState.AddModelError("MessageStr", string.IsNullOrEmpty(error) ? "Кандидат утвержден! Данные готовы к выгрузке в 1С!" : error); } model = EmploymentBl.GetPersonnelManagersModel(model.UserId); } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии model = EmploymentBl.GetPersonnelManagersModel(model); if (Session["PersonnelManagersM" + SPPath] != null) Session.Remove("PersonnelManagersM" + SPPath); if (Session["PersonnelManagersM" + SPPath] == null) Session.Add("PersonnelManagersM" + SPPath, model); } } if (Session["PersonnelManagersMS" + SPPath] != null) Session.Remove("PersonnelManagersMS" + SPPath); if (Session["PersonnelManagersMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("PersonnelManagersMS" + SPPath, mst); } if (!string.IsNullOrEmpty(error) || !ModelState.IsValid) { if ((AuthenticationService.CurrentUser.UserRole & UserRole.PersonnelManager) > 0) return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=12"); else { ViewBag.Error = error; return View(model); } } else { return RedirectToAction("Roster"); } }