예제 #1
0
        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;
        }
예제 #2
0
 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);
 }
예제 #3
0
 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;
 }