Пример #1
0
        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");
        }
Пример #2
0
        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;
        }
Пример #3
0
        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");
            }
        }