/// <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; }
/// <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(); }
protected bool ValidateModel(StaffTemporaryReleaseVacancyRequestModel model) { return ModelState.IsValid; }
/// <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; }
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); }