protected bool ValidateEmploymentEditModel(EmploymentEditModel model/*, UploadFilesDto filesDto*/) { if (model.Id > 0) { int attachmentCount = RequestBl.GetAttachmentsCount(model.Id,RequestAttachmentTypeEnum.Employment); if(attachmentCount < 4) { UserRole role = AuthenticationService.CurrentUser.UserRole; if ((role == UserRole.Employee && model.IsApprovedByUser) || (role == UserRole.Manager && model.IsApprovedByManager) || (role == UserRole.PersonnelManager && model.IsApprovedByPersonnelManager)) { ModelState.AddModelError(string.Empty, "Заявка не может быть одобрена без прикрепления 4 обязательных файлов (копии паспорта, пенсионного, ИНН, 2НДФЛ)."); if (role == UserRole.Employee && model.IsApprovedByUser) { ModelState.Remove("IsApprovedByUser"); model.IsApprovedByUser = false; } if (role == UserRole.Manager && model.IsApprovedByManager) { ModelState.Remove("IsApprovedByManager"); model.IsApprovedByManager = false; } if (role == UserRole.PersonnelManager && model.IsApprovedByPersonnelManager) { ModelState.Remove("IsApprovedByPersonnelManager"); model.IsApprovedByPersonnelManager = false; } } } } if (!string.IsNullOrEmpty(model.Probaion)) { int probation; if (!Int32.TryParse(model.Probaion, out probation) || probation <= 0 || probation > 24) ModelState.AddModelError("Probaion", "Поле 'Испытательный срок' должно быть положительным целым числом не больше 3."); } CheckDecimalNotNegativeValue("Salary", "'Оклад (тарифная ставка)'",model.Salary); CheckDecimalNotNegativeValue("RegionFactor", "'Районный коэффициент'", model.RegionFactor); CheckDecimalNotNegativeValue("NorthFactor", "'Северный коэффициент'", model.NorthFactor); CheckIntValue("RegionAddition", "'Надбавка территориальная'", model.RegionAddition, 1, 100000); CheckIntValue("PersonalAddition", "'Надбавка персональная'", model.PersonalAddition, 1, 100000); CheckIntValue("TravelWorkAddition", "'Надбавка за разъездной характер работы'", model.TravelWorkAddition, 1, 100000); CheckIntValue("SkillAddition", "'Надбавка за квалификацию'", model.SkillAddition, 1, 100000); CheckIntValue("LongWorkAddition", "'Надбавка за выслугу лет рабочим и служащим'", model.LongWorkAddition, 1, 100000); /*if (!string.IsNullOrEmpty(model.Salary)) { decimal salary; if (!Decimal.TryParse(model.Salary, out salary) || salary <= 0) ModelState.AddModelError("Salary", "Поле 'Оклад (тарифная ставка)' должно быть неотрицательным числом."); }*/ //if(model.BeginDate.HasValue && model.EndDate.HasValue && model.BeginDate.Value > model.EndDate.Value) // ModelState.AddModelError("BeginDate", "Поле 'Дата начало Т Д' должно быть не больше поля 'Дата окончания Т Д.'."); return ModelState.IsValid; }
public ActionResult EmploymentEdit(EmploymentEditModel model) { CorrectCheckboxes(model); CorrectDropdowns(model); //UploadFilesDto filesDto = GetFilesContexts(); if (!ValidateEmploymentEditModel(model/*,filesDto*/)) { RequestBl.ReloadDictionariesToModel(model); return View(model); } string error; if (!RequestBl.SaveEmploymentEditModel(model, /*filesDto,*/out error)) { if (model.ReloadPage) { ModelState.Clear(); if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); return View(RequestBl.GetEmploymentEditModel(model.Id, model.UserId)); } if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); } return View(model); }
protected void CorrectDropdowns(EmploymentEditModel model) { if (!model.IsTypeEditable) model.TypeId = model.TypeIdHidden; if (!model.IsTimesheetStatusEditable) model.TimesheetStatusId = model.TimesheetStatusIdHidden; if (!model.IsTypeEditable) model.GraphicTypeId = model.GraphicTypeIdHidden; if (!model.IsTypeEditable) model.AdditionId = model.AdditionIdHidden; if (!model.IsTypeEditable) model.PositionId = model.PositionIdHidden; }