public ActionResult RegistrateMaterialActive() { var activeTypes = activeTypesService.GetAllActiveTypes(); var incomeSources = incomeSourceService.GetAllIncomeSource(); var persons = personService.GetAllPersons(); var locations = locationPlaceService.GetAllLocationPlaces(); var model = new MaterialActiveRegisterModel(activeTypes, incomeSources, persons, locations); return(View(model)); }
public ActionResult RegistrateMaterialActive(MaterialActiveRegisterModel model) { //область проверок значений с формы if (model.ResponsiblePersonId == 0) { ModelState.AddModelError("ResponsiblePersonId", "Необходимо указать материально ответственного"); } if (model.AmmortizateDate.HasValue && model.AmmortizateDate.Value.Date < model.IncomeDate.Date) { ModelState.AddModelError("AmmortizateDate", "Дата амортизации должна быть больше даты регистрации"); } if (ModelState.IsValid) { var registerMaterial = new MaterialActive { Code = model.Code, ActiveTypeId = model.ActiveTypeId, Name = model.Name, Manufacturer = model.Manufacturer, IncomeSourceId = model.IncomeSourceId, IncomeDate = model.IncomeDate, AmmortizateDate = model.AmmortizateDate, ResponsiblePersonId = model.ResponsiblePersonId, Price = model.Price, ActiveSpecifications = model.Specifications }; //бизнес валидация var validation = materialActiveValidator.BeforeRegistrateValidation(registerMaterial); if (validation.IsValid) { materialActiveService.RegistrateMaterialActive(registerMaterial); materialActiveStatusHistoryService.SetStatusByMaterialId(registerMaterial.Id, null, StatusState.Warehouse, DateTime.Now, "Постановка на учет"); return(Json(new { Status = "OK", Message = "МЦ с кодом " + registerMaterial.Code + " успешно зарегистрирован" })); } else { return(Json(new { Status = "ERROR", Message = validation.ValidationMessage })); } } var errorMessage = string.Join(".\n", ModelState.Values.SelectMany(v => v.Errors) .Select(e => e.ErrorMessage)) + "."; var htmlErrorMessage = string.Join(".</br>", ModelState.Values.SelectMany(v => v.Errors) .Select(e => e.ErrorMessage)) + "."; return(Json(new { Status = "ERROR", Message = errorMessage, HtmlMessage = htmlErrorMessage })); }