Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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");
            }
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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 });
        }