Ejemplo n.º 1
0
        /// <summary>
        /// сохраняем изменения заявки заявки.
        /// </summary>
        /// <param name="Id">Id заявки.</param>
        /// <returns></returns>
        public bool SaveStaffTemporaryReleaseVacancyRequest(StaffTemporaryReleaseVacancyRequestModel model, out string error)
        {
            error = string.Empty;
            StaffTemporaryReleaseVacancyRequest entity = StaffTemporaryReleaseVacancyRequestDao.Get(model.Id);

            if (entity == null)
            {
                error = "Произошла ошибка при редактировании данных! Обратитесь к разработчикам!";
                return false;
            }

            if (!ValidateModel(new StaffListArrangementModel() { DateBegin = model.DateBegin,
                                                                 DateEnd = model.DateEnd,
                                                                 UserLinkId = entity.EstablishedPostUserLinks.Id}, out error))
                return false;

            entity.DateBegin = model.DateBegin;
            entity.DateEnd = model.DateEnd;
            entity.AbsencesType = StaffLongAbsencesTypesDao.Get(model.AbsencesTypeId);
            entity.Note = model.Note;
            entity.IsUsed = model.IsUsed;
            entity.Editor = UserDao.Get(AuthenticationService.CurrentUser.Id);
            entity.EditDate = DateTime.Now;

            if (model.Id != 0)
            {
                try
                {
                    StaffTemporaryReleaseVacancyRequestDao.SaveAndFlush(entity);
                    model.Id = entity.Id;
                    if (model.IsUsed)
                        error = "Данные сохранены!";
                    else
                        error = "Заявка отклонена!";
                }
                catch (Exception ex)
                {
                    StaffTemporaryReleaseVacancyRequestDao.RollbackTran();
                    error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                    return false;
                }

                return true;
            }

            return true;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Загрузка справочников модели для заявок на создание временных вакансий при длительном отсутствии сотрудников.
        /// </summary>
        /// <param name="model">Модель заявки.</param>
        public void LoadDictionaries(StaffTemporaryReleaseVacancyRequestModel model)
        {
            //реквизиты инициатора
            model.AbsencesTypes = StaffLongAbsencesTypesDao.LoadAll().ToList().ConvertAll(x => new IdNameDto { Id = x.Id, Name = x.Name });

            //список руководителей
            IList<User> managers = DepartmentDao.GetDepartmentManagersWithManualLinks(model.DepartmentId);
            //model.InitiatorId
            StringBuilder managersBuilder = new StringBuilder();
            foreach (var manager in managers)
            {
                managersBuilder.AppendFormat("{0} ({1}), ", manager.Name, manager.Position == null ? "<не указана>" : manager.Position.Name);
            }
            model.Managers = managersBuilder.ToString();
        }
Ejemplo n.º 3
0
 protected bool ValidateModel(StaffTemporaryReleaseVacancyRequestModel model)
 {
     return ModelState.IsValid;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Заполняем модель заявки.
        /// </summary>
        /// <param name="Id">Id заявки.</param>
        /// <returns></returns>
        public StaffTemporaryReleaseVacancyRequestModel GetStaffTemporaryReleaseVacancyRequest(int Id)
        {
            StaffTemporaryReleaseVacancyRequestModel model = new StaffTemporaryReleaseVacancyRequestModel();
            StaffTemporaryReleaseVacancyRequest entity = StaffTemporaryReleaseVacancyRequestDao.Get(Id);

            model.CreateDate = entity.CreateDate;
            model.Id = entity.Id;
            model.RequestInitiator = entity.Creator != null ? entity.Creator.Name + (entity.Creator.Position != null ? " - " + entity.Creator.Position.Name : "") : "Автозагрузка";
            model.SEPId = entity.EstablishedPostUserLinks.StaffEstablishedPost.Id;
            model.DepartmentId = entity.EstablishedPostUserLinks.StaffEstablishedPost.Department.Id;
            model.DepartmentName = entity.EstablishedPostUserLinks.StaffEstablishedPost.Department.Name;
            model.AccessoryName = entity.EstablishedPostUserLinks.StaffEstablishedPost.Department.DepartmentAccessory != null ? entity.EstablishedPostUserLinks.StaffEstablishedPost.Department.DepartmentAccessory.Name : "";
            model.PositionId = entity.EstablishedPostUserLinks.StaffEstablishedPost.Position.Id;
            model.PositionName = entity.EstablishedPostUserLinks.StaffEstablishedPost.Position.Name;
            model.Surname = entity.ReplacedUser.Name;
            model.AbsencesTypeId = entity.AbsencesType.Id;
            model.DateBegin = entity.DateBegin;
            model.DateEnd = entity.DateEnd;
            model.Note = entity.Note;
            model.IsUsed = entity.IsUsed;

            //кнопки
            //model.IsDraftButtonAvailable = entity.DeleteDate.HasValue ? false : true;
            //model.IsAgreeButtonAvailable = entity.DeleteDate.HasValue ? false : !entity.DateAccept.HasValue;

            LoadDictionaries(model);

            return model;
        }
Ejemplo n.º 5
0
        public ActionResult StaffTemporaryReleaseVacancyRequest(StaffTemporaryReleaseVacancyRequestModel model)
        {
            ModelState.Clear();
            string error = string.Empty;
            bool IsComplete = false;

            if (ValidateModel(model))//проверки
            {
                IsComplete = StaffListBl.SaveStaffTemporaryReleaseVacancyRequest(model, out error);
                if(IsComplete)
                    model = StaffListBl.GetStaffTemporaryReleaseVacancyRequest(model.Id);
                else
                    StaffListBl.LoadDictionaries(model);

                ModelState.AddModelError("MessageStr", error);
            }
            else
                StaffListBl.LoadDictionaries(model);

            return View(model);
        }