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)); }
public ActionResult SaveTask(OBKCreateTaskViewModel model) { repo.SaveTask(model); return(Json(new { isSuccess = true })); }