Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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 }));
        }