public ActionResult DeductionEdit(DeductionEditModel model) { CorrectCheckboxes(model); CorrectDropdowns(model); //UploadFileDto fileDto = GetFileContext(); if (!ValidateDeductionEditModel(model)) { //model.IsApproved = false; //model.IsApprovedForAll = false; RequestBl.ReloadDictionariesToModel(model); return View(model); } string error; //чтобы письма рассылались только когда идет работа с рабочей базой bool EnableSendEmail = Request.Url.Port == 8002 || Request.Url.Port == 500 ? true : false; if (!RequestBl.SaveDeductionEditModel(model, EnableSendEmail, out error)) { if (model.ReloadPage) { ModelState.Clear(); if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); return View(RequestBl.GetDeductionEditModel(model.Id)); } if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); } return View(model); }
protected void CorrectDropdowns(DeductionEditModel model) { if (!model.IsEditable) { //model.TypeId = model.TypeIdHidden; //model.KindId = model.KindIdHidden; //model.MonthId = model.MonthIdHidden; model.UserId = model.UserIdHidden; } }
protected bool ValidateDeductionEditModel(DeductionEditModel model) { if (model.Id == 0) { if (model.UserId != 0) { User DeductionUser = RequestBl.GetUser(model.UserId); if ((DeductionUser.UserRole & UserRole.DismissedEmployee) > 0 && DeductionUser.DateRelease <= DateTime.Today.AddMonths(-3)) { ModelState.AddModelError("Surname", "Нельзя создать заявку на удержание, так как выбранный сотрудник уволен более 3 месяцев назад!"); } } else { ModelState.AddModelError("Surname", "Укажите сотрудника!"); } } if(string.IsNullOrEmpty(model.Sum)) ModelState.AddModelError("Sum", "'Сумма' - обязательное поле."); else { decimal sum; if(!Decimal.TryParse(model.Sum,out sum)) ModelState.AddModelError("Sum", "Поле 'Сумма' должно быть числом."); else if (sum <= 0) ModelState.AddModelError("Sum", "Поле 'Сумма' должно быть положительным числом."); } if (Convert.ToDateTime(model.DateEdited).Month == DateTime.Today.Month && Convert.ToDateTime(model.DateEdited).Year == DateTime.Today.Year) { if (model.TypeId != (int)DeductionTypeEnum.Deduction) { if (!model.DismissalDate.HasValue) ModelState.AddModelError("DismissalDate", "'Дата увольнения' - обязательное поле."); } } else { ModelState.AddModelError("DismissalDate", "Отклонение заявки в прошлом периоде запрещено!"); } return ModelState.IsValid; }
protected void CorrectCheckboxes(DeductionEditModel model) { if (!model.IsEditable && model.IsFastDismissalHidden) { if (ModelState.ContainsKey("IsFastDismissal")) ModelState.Remove("IsFastDismissal"); model.IsFastDismissal = model.IsFastDismissalHidden; } }