protected bool ValidateModel(ManagersModel model) { if (AuthenticationService.CurrentUser.UserRole == UserRole.PersonnelManager && !EmploymentBl.IsUnlimitedEditAvailable()) { ModelState.AddModelError("MessageStr", "У вас нет прав для редактирования данных!"); } if (model.UserLinkId == 0) { ModelState.AddModelError("UserLinkId", "Выберите штатную единицу!"); } if (!model.IsDraftM) { if (!model.SalaryBasis.HasValue || model.SalaryBasis.Value == 0) ModelState.AddModelError("SalaryBasis", "Штатная единица имеет оклад с значением 0! Измените оклад в штатной единице!"); } //if (model.PositionId == 0) // ModelState.AddModelError("PositionId", "Укажите должность кандидата!"); //if (!model.SalaryBasis.HasValue) // ModelState.AddModelError("SalaryBasis", "Укажите должностной оклад!"); //else //{ // if (model.SalaryBasis.Value <= 0) // { // ModelState.AddModelError("SalaryBasis", "Должностной оклад должен иметь значение больше нуля!"); // } //} if (!model.SalaryMultiplier.HasValue) ModelState.AddModelError("SalaryMultiplier", "Заполните поле 'Ставка'!"); else { if (model.SalaryMultiplier.Value <= 0) ModelState.AddModelError("SalaryMultiplier", "Ставка должна иметь значение больше нуля!"); if (model.SalaryMultiplier.Value > 1) ModelState.AddModelError("SalaryMultiplier", "Ставка не может быть больше единицы!"); } //проверка на задачу в пайрусе if ((model.PersonalAddition.HasValue && model.PersonalAddition.Value != 0) //|| (model.PositionAddition.HasValue && model.PositionAddition.Value != 0) || (model.AreaAddition.HasValue && model.AreaAddition.Value != 0) || (model.TravelRelatedAddition.HasValue && model.TravelRelatedAddition.Value != 0) || (model.CompetenceAddition.HasValue && model.CompetenceAddition.Value != 0) || (model.FrontOfficeExperienceAddition.HasValue && model.FrontOfficeExperienceAddition.Value != 0)) { if(string.IsNullOrEmpty(model.PyrusNumber) || string.IsNullOrWhiteSpace(model.PyrusNumber)) ModelState.AddModelError("PyrusNumber", "Введите номер задачи в системе Pyrus!"); } if (!string.IsNullOrEmpty(model.PyrusNumber) || !string.IsNullOrWhiteSpace(model.PyrusNumber)) { try { Convert.ToInt32(model.PyrusNumber); } catch { ModelState.AddModelError("PyrusNumber", "Номер задачи в системе Пайрус должен содержать только цифры!"); } } //model.PyrusNumber; if (!model.SendTo1C.HasValue) { if (!model.RegistrationDate.HasValue) ModelState.AddModelError("RegistrationDate", "Укажите дату оформления!"); else { if (DateTime.Today >= new DateTime(2015, 8, 1).Date) { if (model.RegistrationDate.Value.Year != DateTime.Today.Year || model.RegistrationDate.Value.Month != DateTime.Today.Month) { //если дата приема стоит прошлым месяцем относительно текущей даты, то можно принять только до 5 числа текущего месяца (Экспресс-Волга до 8 числа) if (model.RegistrationDate.Value.AddMonths(1).Year == DateTime.Today.Year && model.RegistrationDate.Value.AddMonths(1).Month == DateTime.Today.Month && DateTime.Today.Day > 5/*(model.IsVolga ? 8 : 5)*/) { ModelState.AddModelError("RegistrationDate", "Прием сотрудника в прошлом периоде запрещен!"); } else //if (model.RegistrationDate.Value.Year == DateTime.Today.Year && model.RegistrationDate.Value.Month == DateTime.Today.Month) { if (model.RegistrationDate.Value < DateTime.Today && (model.RegistrationDate.Value.AddMonths(1).Year != DateTime.Today.Year || model.RegistrationDate.Value.AddMonths(1).Month != DateTime.Today.Month)) ModelState.AddModelError("RegistrationDate", "Дата оформления не должна быть меньше текущей даты!"); } } } else { if (model.RegistrationDate.Value < Convert.ToDateTime("01/04/2015") /*< DateTime.Today*/)//на время теста ModelState.AddModelError("RegistrationDate", "Дата оформления не должна быть меньше текущей даты!"); } } } if (!string.IsNullOrEmpty(model.ProbationaryPeriod)) { try { Convert.ToInt32(model.ProbationaryPeriod); } catch { ModelState.AddModelError("ProbationaryPeriod", "Испытательный срок должен содержать только цифры!"); } } if (!ModelState.IsValid) { model.ManagerApprovalStatus = null; } return ModelState.IsValid; }
public ActionResult Managers(ManagersModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (ValidateModel(model)) { if (model.IsDraftM) { EmploymentBl.ProcessSaving<ManagersModel, Managers>(model, out error); ModelState.AddModelError("MessageStr", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error); } else { EmploymentBl.ApproveCandidateByManager(model, out error); ModelState.AddModelError("MessageStr", string.IsNullOrEmpty(error) ? "Кандидат утвержден!" : error); } model = EmploymentBl.GetManagersModel(model.UserId); } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии //EmploymentBl.LoadDictionaries(model); model = EmploymentBl.GetManagersModel(model); if (Session["ManagersM" + SPPath] != null) Session.Remove("ManagersM" + SPPath); if (Session["ManagersM" + SPPath] == null) Session.Add("ManagersM" + SPPath, model); } if (Session["ManagersMS" + SPPath] != null) Session.Remove("ManagersMS" + SPPath); if (Session["ManagersMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("ManagersMS" + SPPath, mst); } if (!string.IsNullOrEmpty(error) || !ModelState.IsValid) { ViewBag.Error = error; //return View(model); return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=11"); } else { //model = EmploymentBl.GetManagersModel(model.UserId); //return PartialView(model); return RedirectToAction("Roster"); } }
public ActionResult ManagersAddComments(ManagersModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (!string.IsNullOrEmpty(model.Comment)) { if (!EmploymentBl.SaveComments(model.UserId, (int)EmploymentCommentTypeEnum.Managers, model.Comment, out error)) { model = EmploymentBl.GetManagersModel(model); if (Session["ManagersM" + SPPath] != null) Session.Remove("ManagersM" + SPPath); if (Session["ManagersM" + SPPath] == null) Session.Add("ManagersM" + SPPath, model); ModelState.AddModelError("IsValidate", error); if (Session["ManagersMS" + SPPath] != null) Session.Remove("ManagersMS" + SPPath); if (Session["ManagersMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("ManagersMS" + SPPath, mst); } } } return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=11"); }
public ActionResult GetStaffEstablishmentPostDetails(bool IsSP, int DepartmentId, int UserLinkId, int UserId) { string error = String.Empty; bool result = false; ManagersModel model = new ManagersModel(); model.IsSP = IsSP; model.DepartmentId = DepartmentId; model.UserLinkId = UserLinkId; model.UserId = UserId; EmploymentBl.GetStaffEstablishmentPostDetails(model); result = true; if (model.IsSP) return Json(new { ok = result, msg = error, UserLinkId = model.UserLinkId, model.PostUserLinks }); else return Json(new { ok = result, msg = error, model.SalaryBasis, model.AreaMultiplier }); }