Beispiel #1
0
        public ActionResult Task(Guid id)
        {
            var expResult = repo.GetStageExpDocumentResult(id);

            if (expResult == null || !expResult.ExpResult)
            {
                ViewBag.Message = "Заявка не соотвествует требованиями";
                return(PartialView("ShowMessage"));
            }
            //string[] code = { "00" };
            //заявление
            var declarant = repo.GetAssessmentDeclaration(id);

            if (declarant == null)
            {
                ViewBag.Message = "Заявка не найдена";
                return(PartialView("ShowMessage"));
            }
            ViewBag.DecalrationType = declarant.TypeId;
            var tasks        = repo.GetTasks(id);
            var taskMaterial = repo.GetTaskMaterial(tasks);

            ViewData["Units"]         = new SelectList(repo.GetUnits(OrganizationConsts.Filials), "Id", "ShortName");
            ViewData["ActReceptions"] = new SelectList(declarant.OBK_ActReception, "Id", "Number");

            var task = new OBKCreateTaskViewModel
            {
                AssessmentDeclarationId = id
            };

            var labs = repo.GeLaboratoryTypes();

            task.LaboratoryTypeList = new MultiSelectList(labs, "Id", "NameRu", task.LaboratoryTypeIds);

            var productViewModel = new List <OBKProductViewModel>();
            var modalViewModel   = new List <OBKProductViewModel>();

            var taskViewModel = new List <OBKTaskViewModel>();

            foreach (var t in tasks)
            {
                var tvm = new OBKTaskViewModel
                {
                    TaskNumber   = t.TaskNumber,
                    RegisterDate = t.RegisterDate,
                    ExecutorName = t.OBK_TaskExecutor.FirstOrDefault(e => e.TaskId == t.Id && e.StageId == 3)?.Employee.ShortName,
                    UnitName     = repo.GetUnit(t.UnitId)?.ShortName
                };
                taskViewModel.Add(tvm);
            }

            foreach (var product in declarant.OBK_Contract.OBK_RS_Products)
            {
                foreach (var productSeries in product.OBK_Procunts_Series)
                {
                    // все серии продукции
                    var productView = new OBKProductViewModel
                    {
                        ProductNameRu  = product.NameRu,
                        ProductNameKz  = product.NameKz,
                        Series         = productSeries.Series,
                        TaskNumber     = tasks.Any() ? productSeries.OBK_TaskMaterial?.Where(e => e.ProductSeriesId == productSeries.Id).Select(x => x.OBK_Tasks.TaskNumber).FirstOrDefault() : null,
                        LaboratoryName = tasks.Any() ? string.Join(", ", taskMaterial.Where(e => e.ProductSeriesId == productSeries.Id).Select(x => x.OBK_Ref_LaboratoryType.NameRu).GroupBy(x => x).Select(g => g.Key)) : null
                    };
                    productViewModel.Add(productView);

                    var count = taskMaterial.Count(e => e.ProductSeriesId == productSeries.Id);

                    // для создания задания(не отмеченные ранее)
                    if (count != 0)
                    {
                        continue;
                    }
                    var modalView = new OBKProductViewModel
                    {
                        Id              = productSeries.Id,
                        ProductId       = product.Id,
                        ActReceptionId  = product.ActReceptionId,
                        ProductNameRu   = product.NameRu,
                        ProductNameKz   = product.NameKz,
                        Series          = productSeries.Series,
                        SeriesMeasure   = productSeries.sr_measures.name,
                        SeriesStartdate = productSeries.SeriesStartdate,
                        SeriesEndDate   = productSeries.SeriesEndDate,
                        Quantity        = productSeries.Quantity
                    };
                    modalViewModel.Add(modalView);
                }
            }
            task.ProductViewModels = productViewModel;
            task.ModalViewModels   = modalViewModel;
            task.TaskViewModels    = taskViewModel;

            return(PartialView("Index", task));
        }
Beispiel #2
0
 public ActionResult SaveTask(OBKCreateTaskViewModel model)
 {
     repo.SaveTask(model);
     return(Json(new { isSuccess = true }));
 }