Example #1
0
        public override ActionResult AppDosage(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var dosageRepository = new AppDosageRepository();
            var model            = dosageRepository.GetStageByAppDosageId(id.Value);

            if (model == null)
            {
                return(HttpNotFound());
            }
            FillDosageControl(model);
            var safetyReportDosageStage = dosageRepository.GetStageDosage(model.DosageId, CodeConstManager.STAGE_SAFETYREPORT);

            model.ExpertiseSafetyreportFinalDoc = safetyReportDosageStage != null?safetyReportDosageStage.EXP_ExpertiseSafetyreportFinalDoc.FirstOrDefault() : null;

            model.EXP_DrugDosage.EXP_DrugDeclaration.ExpDicPrimaryOtds = new ReadOnlyDictionaryRepository().GetExpDicPrimaryOTDs().Where(e => e.ParentId == null).ToList();
            var repository = new ReadOnlyDictionaryRepository();

            ViewData["FinalyDocResultList" + model.EXP_DrugDosage.DrugDeclarationId] = new SelectList(repository.GetStageResultsByStage(model.EXP_ExpertiseStage.StageId), "Id", "NameRu",
                                                                                                      model.ResultId);

            var stageName = ExpStageNameHelper.GetName(GetStage());

            ActionLogger.WriteInt(stageName + ": Получение заявки №" + model.EXP_DrugDosage.RegNumber);
            return(PartialView("~/Views/DrugDeclaration/AppDosage.cshtml", model));
        }
Example #2
0
        public FileLink SendToApplicant(string id, Employee getCurrentEmployee)
        {
            var file = AppContext.FileLinks.FirstOrDefault(e => e.Id == new Guid(id));

            if (file == null)
            {
                return(null);
            }
            var status = new ReadOnlyDictionaryRepository().GetDicFileLinkStatusByCode(CodeConstManager.STATUS_FILE_CODE_SENDED);

            file.StatusId = status.Id;
            AppContext.SaveChanges();

            var declaraion = AppContext.EXP_DrugDeclaration.FirstOrDefault(e => e.Id == file.DocumentId);

            if (declaraion != null)
            {
                declaraion.DesignDate = DateTime.Now;
                declaraion.StatusId   = CodeConstManager.STATUS_EXP_SEND_INSTRUCTION_ID;
                new DrugDeclarationRepository().Update(declaraion);
                var history = new EXP_DrugDeclarationHistory()
                {
                    DateCreate        = DateTime.Now,
                    DrugDeclarationId = declaraion.Id,
                    StatusId          = declaraion.StatusId,
                    UserId            = getCurrentEmployee.Id,
                    Note = "Инструкция для согласования"
                };
                new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            }
            file.DIC_FileLinkStatus = status;
            return(file);
        }
        public virtual string GetTreeData(Guid id, bool withRemarks = false, bool disabled = false)
        {
            var model       = GetExpertiseStage(id);
            var dicRepo     = new ReadOnlyDictionaryRepository();
            var flatObjects = model.EXP_DrugDeclaration.EXP_DIC_Type.Code == EXP_DIC_Type.ReRegistration
                ? dicRepo.GetExpDicPrimaryOTDs(new[] { EXP_DIC_PrimaryOTD.Module4, EXP_DIC_PrimaryOTD.Module5 }).ToArray()
                : dicRepo.GetExpDicPrimaryOTDs().ToArray();

            if (model.OtdIds == null)
            {
                model.OtdIds = "";
            }
            var odtIds = model.OtdIds.Split(',');
            Dictionary <long, string> otdRemarks = new Dictionary <long, string>();

            if (withRemarks && !string.IsNullOrEmpty(model.OtdRemarks))
            {
                foreach (var rmStr in model.OtdRemarks.Split(new[] { "+++" }, StringSplitOptions.RemoveEmptyEntries))
                {
                    var items = rmStr.Split(new[] { "-->" }, StringSplitOptions.None);
                    otdRemarks.Add(long.Parse(items[0]), items[1]);
                }
            }
            List <RecursiveObject> recursiveObjects = FillRecursive(flatObjects, null, odtIds, withRemarks, otdRemarks, disabled);

            return(new JavaScriptSerializer().Serialize(recursiveObjects));
        }
Example #4
0
        public void CreateLetter(int stageId, Guid authorId, Guid declarationId, string subjectCode, string text)
        {
            var subject =
                AppContext.EXP_DIC_CorespondenceSubject.FirstOrDefault(e => e.Code == subjectCode && !e.IsDeleted);
            var mail = new EXP_DrugCorespondence
            {
                Id                = Guid.NewGuid(),
                AuthorId          = authorId,
                DateCreate        = DateTime.Now,
                DrugDeclarationId = declarationId,
                KindId            = CodeConstManager.CORESPONDENCE_KIND_ELECTRONIC,
                TypeId            = CodeConstManager.CORESPONDENCE_TYPE_INBOX,
                StageId           = stageId,
                SubjectId         = subject.Id,
                Subject           = subject.NameRu,
                Note              = text
            };
            var status =
                new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.STATUS_DRAFT).FirstOrDefault();

            if (status != null)
            {
                mail.StatusId = status.Id;
            }
            AppContext.EXP_DrugCorespondence.Add(mail);
            AppContext.SaveChanges();
        }
Example #5
0
        public ActionResult SubTaskResult(Guid taskMaterialId, string type)
        {
            var model = repo.SubTaskResult(taskMaterialId, type);

            if (type == "create")
            {
                ViewData["LabMarks"]   = new SelectList(repo.GetLaboratoryMark(), "Id", "NameRu");
                ViewData["SearchTask"] = new SelectList(repo.GetSearchTaskId(), "Id", "TaskNumber");
                //ViewData["SearchTask"] = new SelectList(repo.GetSearchTaskId(), "TaskNumber");
                ViewData["SearchProduct"] = new SelectList(repo.GetSearchProductId(), "Id", "NameRu");
                //ViewData["SearchProduct"] = new SelectList(repo.GetSearchProductId(), "NameRu");
                ViewData["SearchLaboratoryTypeId"] = new SelectList(repo.GetSearchLaboratoryTypeId(), "Id", "NameRu");
                //ViewData["SearchLaboratoryTypeId"] = new SelectList(repo.GetSearchLaboratoryTypeId(), "NameRu");
                ViewData["SearchPRId"] = new SelectList(repo.GetSearchPRId(), "SubTaskNumber");
                ViewData["LabMaskNd"]  = new SelectList(repo.GetRegulation(), "Id", "NameRu");
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["ExpertiseResults"] = new SelectList(booleans, "ExpertiseResult", "Name", "");
            }
            else
            {
                ViewData["LabMarks"]  = new SelectList(repo.GetLaboratoryMark(), "Id", "NameRu");
                ViewData["LabMaskNd"] = new SelectList(repo.GetRegulation(), "Id", "NameRu");
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["ExpertiseResults"] = new SelectList(booleans, "ExpertiseResult", "Name");
            }
            return(PartialView(model));
        }
Example #6
0
        public ActionResult SendToApplicant(Guid stageId)
        {
            var repo       = new ExpertiseStageRepository();
            var stage      = repo.GetStage(stageId);
            var repository = new DrugDeclarationRepository();
            var declaraion = repository.GetById(stage.DeclarationId.ToString());

            if (declaraion == null)
            {
                return(Json(new
                {
                    isSuccess = false,
                }));
            }
            declaraion.DesignDate = DateTime.Now;
            declaraion.StatusId   = CodeConstManager.STATUS_EXP_SEND_INSTRUCTION_ID;
            new DrugDeclarationRepository().Update(declaraion);
            var history = new EXP_DrugDeclarationHistory()
            {
                DateCreate        = DateTime.Now,
                DrugDeclarationId = declaraion.Id,
                StatusId          = declaraion.StatusId,
                UserId            = UserHelper.GetCurrentEmployee().Id,
                Note = "Инструкция для согласования"
            };

            new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            var status = new ReadOnlyDictionaryRepository().GetDicStatusById(CodeConstManager.STATUS_EXP_SEND_INSTRUCTION_ID);

            return(Json(new
            {
                isSuccess = true,
                statusName = status.NameRu
            }));
        }
Example #7
0
        public ActionResult ExpDocumentView(Guid id)
        {
            var stage = expRepo.GetAssessmentStage(id);
            var model = stage.OBK_AssessmentDeclaration;

            var expDocResult = expRepo.GetStageExpDocResult(model.Id);

            if (expDocResult != null)
            {
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["UObkExpertiseResult"] = new SelectList(booleans, "ExpertiseResult", "Name", expDocResult.ExpResult);
            }
            else
            {
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["UObkExpertiseResult"] = new SelectList(booleans, "ExpertiseResult", "Name");
            }

            //// номерклатура
            //var nomeclature = new AssessmentStageRepository().GetRefNomenclature();
            //ViewData["UObkNomenclature"] = new SelectList(nomeclature, "Id", "Name");
            ////основание
            //var reasons = new SafetyAssessmentRepository().GetRefReasons();
            //ViewData["UObkReasons"] = new SelectList(reasons, "ExpertiseResult", "Name");

            return(PartialView(model));
        }
Example #8
0
        public ActionResult PartyExpDocumentView(Guid id)
        {
            var stage = expRepo.GetAssessmentStage(id);
            var model = stage.OBK_AssessmentDeclaration;


            var expDocResult = expRepo.GetStageExpDocResult(model.Id);

            if (expDocResult != null)
            {
                ViewBag.HasExpDocumentResult = true;
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["UObkExpertiseResult"] = new SelectList(booleans, "ExpertiseResult", "Name", expDocResult.ExpResult);
            }
            else
            {
                ViewBag.HasExpDocumentResult = false;
                var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();
                ViewData["UObkExpertiseResult"] = new SelectList(booleans, "ExpertiseResult", "Name");
            }

            ViewData["OBKRefReasonList"] = new SelectList(expRepo.OBKRefReasonList(), "Id", "NameRu");

            ViewData["ExecutorType"]    = expRepo.ExecutorType(model.Id);
            ViewData["SignExpDocument"] = expRepo.checkSignData(stage.Id);


            return(PartialView(model));
        }
Example #9
0
        public override ActionResult AppDosage(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var model = new AppDosageRepository().GetStageByAppDosageId(id.Value);

            if (model == null)
            {
                return(HttpNotFound());
            }
            FillDosageControl(model);

            model.EXP_DrugDosage.EXP_DrugDeclaration.ExpDicPrimaryOtds = new ReadOnlyDictionaryRepository().GetExpDicPrimaryOTDs().Where(e => e.ParentId == null).ToList();
            model.ExpertisePharmacologicalFinalDoc = model.EXP_ExpertisePharmacologicalFinalDoc.FirstOrDefault();
            if (model.ExpertisePharmacologicalFinalDoc == null)
            {
                model.ExpertisePharmacologicalFinalDoc = new EXP_ExpertisePharmacologicalFinalDoc();
                model.ExpertisePharmacologicalFinalDoc.EXP_ExpertiseStageDosage = model;
            }
            var repository = new ReadOnlyDictionaryRepository();

            ViewData["FinalyDocResultList" + model.EXP_DrugDosage.DrugDeclarationId] = new SelectList(repository.GetStageResultsByStage(model.EXP_ExpertiseStage.StageId), "Id", "NameRu",
                                                                                                      model.ResultId);

            var stageName = ExpStageNameHelper.GetName(GetStage());

            ActionLogger.WriteInt(stageName + ": Получение заявки №" + model.EXP_DrugDosage.RegNumber); //todo во всех контроллерах так, позже можно замутить через наследование
            return(PartialView("~/Views/DrugDeclaration/AppDosage.cshtml", model));
        }
        public bool CreateRemark(string id, Employee employee, int dicStageId)
        {
            var model = GetExpertiseStageById(new Guid(id));

            if (model == null)
            {
                return(true);
            }

            var otdIds      = (model.OtdIds ?? "").Split(',').ToList();
            var otds        = AppContext.EXP_ExpertiseStageRemark.Where(e => e.OtdId > 0 && e.EXP_ExpertiseStage.StageId == dicStageId && e.EXP_ExpertiseStage.Id == model.Id).Select(e => e.OtdId);
            var dicRepo     = new ReadOnlyDictionaryRepository();
            var dicOtdQuery = model.EXP_DrugDeclaration.EXP_DIC_Type.Code == EXP_DIC_Type.ReRegistration
                ? dicRepo.GetExpDicPrimaryOTDs(null, new[] { EXP_DIC_PrimaryOTD.Module4, EXP_DIC_PrimaryOTD.Module5 })
                : dicRepo.GetExpDicPrimaryOTDs();
            var dicotds           = dicOtdQuery.Where(e => !otdIds.Contains(e.Id.ToString()) && !otds.Contains(e.Id) && e.EXP_DIC_PrimaryOTD1.Count == 0);
            var expDicPrimaryOtds = dicotds as EXP_DIC_PrimaryOTD[] ?? dicotds.ToArray();

            var deleteList = AppContext.EXP_ExpertiseStageRemark.Where(e => e.OtdId > 0 && e.EXP_ExpertiseStage.StageId == dicStageId && e.EXP_ExpertiseStage.Id == model.Id && otdIds.Contains(e.OtdId.ToString()));

            foreach (var expDrugPrimaryRemark in deleteList)
            {
                AppContext.EXP_ExpertiseStageRemark.Remove(expDrugPrimaryRemark);
            }
            AppContext.SaveChanges();
            if (!expDicPrimaryOtds.Any())
            {
                return(true);
            }
            var otdRemarks = (model.OtdRemarks ?? "").Split(new[] { "+++" }, StringSplitOptions.RemoveEmptyEntries)
                             .Select(e =>
            {
                var items = e.Split(new[] { "-->" }, StringSplitOptions.RemoveEmptyEntries);
                return(new { id = int.Parse(items[0]), remark = (items.Length > 1 ?items[1] : "") });
            }).ToList();

            foreach (var dicotd in expDicPrimaryOtds)
            {
                if (dicotd.EXP_DIC_PrimaryOTD1.Count != 0)
                {
                    continue;
                }
                var remark = otdRemarks.FirstOrDefault(e => e.id == dicotd.Id);
                var entity = new EXP_ExpertiseStageRemark
                {
                    OtdId      = dicotd.Id,
                    NameRemark = remark != null?string.Format("{0} - {1}", dicotd.FullName, remark.remark) : dicotd.FullName,
                                     ExecuterId = employee.Id,
                                     StageId    = model.Id,
                                     RemarkDate = DateTime.Now
                };
                AppContext.EXP_ExpertiseStageRemark.Add(entity);
            }


            AppContext.SaveChanges();
            return(true);
        }
Example #11
0
        public ActionResult GetPriceType3(ModelRequest request, Guid id)
        {
            var items = db.PricesViews.Where(o => o.PriceProjectId == id && o.Type == 3);

            /*  var count = items.Count();
             *
             * var data = new
             * {
             *    draw = request.Draw,
             *    recordsFiltered = count,
             *    recordsTotal = count,
             *    Data = items.ToList()
             * };*/
            var countyDics = new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.DIC_COUNTRY_TYPE);
            var list       = countyDics.Where(e => CodeConstManager.LIST_COUNTY_CODE_FOR_PRICE.Contains(e.Code));
            var prices     = new ArrayList();

            var ids = new List <Guid>();

            foreach (var country in list)
            {
                var exist = items.FirstOrDefault(e => e.CountryId == country.Id);
                if (exist != null)
                {
                    prices.Add(exist);
                    ids.Add(exist.Id);
                }
                else
                {
                    var price = new
                    {
                        Id                    = Guid.NewGuid(),
                        CountryName           = country.Name,
                        ManufacturerPrice     = "",
                        ManufacturerPriceNote = "",
                        Type                  = (int)PriceType.ImnPrice,
                        PriceProjectId        = id,
                        CountryId             = country.Id,
                    };
                    prices.Add(price);
                }
            }
            foreach (var item in items.Where(e => !ids.Contains(e.Id)))
            {
                prices.Add(item);
            }
            var count = prices.Count;
            var data  = new
            {
                draw            = request.Draw,
                recordsFiltered = count,
                recordsTotal    = count,
                Data            = prices
            };

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Example #12
0
        public ActionResult SendToNextStage(Guid expStageId, int[] nextStageIds, int?stageResultId = null)
        {
            var repository = new ExpertiseStageRepository();

            if (repository.HasNotFixedRemarks(expStageId))
            {
                return(Json(
                           new
                {
                    failed = true,
                    msg = "Невозможно передать на следующий этап так как есть не исправленные замечания"
                }, JsonRequestBehavior.AllowGet));
            }
            string resultDescription;

            var expertiseStage = repository.GetById(expStageId);
            var dec            = repository.GetDeclarationByStage(expStageId);

            if (expertiseStage.EXP_DIC_Stage.Code == CodeConstManager.STAGE_SAFETYREPORT.ToString())
            {
                var rDictionary = new ReadOnlyDictionaryRepository();
                EXP_DIC_StageResult stageResult = null;
                if (stageResultId.HasValue)
                {
                    stageResult = rDictionary.GetStageResultById(stageResultId.Value);
                }

                if (stageResult != null && stageResult.Code == EXP_DIC_StageResult.DoesNotMatchCode)
                {
                    repository.ToBackStage(dec.Id, expStageId, nextStageIds, out resultDescription);
                }
                else
                {
                    repository.ToNextStage(dec.Id, expStageId, nextStageIds, out resultDescription);
                }
            }
            else
            {
                repository.ToNextStage(dec.Id, expStageId, nextStageIds, out resultDescription);
            }
            var from = ExpStageNameHelper.GetName(expertiseStage.StageId);
            var to   = "";

            foreach (var nextStageId in nextStageIds)
            {
                if (!String.IsNullOrEmpty(to))
                {
                    to += ", ";
                }
                var stageName = ExpStageNameHelper.GetName(nextStageId);
                to += stageName;
            }
            ActionLogger.WriteInt(" Отправка заявления №" + dec.Number + " на другой этап", "from: " + from + "; to:" + to);
            return(Json("OK", JsonRequestBehavior.AllowGet));
        }
Example #13
0
        public ActionResult AnaliticPageView(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var expertiseStage = new ExpertiseStageRepository().GetById(id);

            if (expertiseStage == null)
            {
                return(HttpNotFound());
            }
            var repository = new ReadOnlyDictionaryRepository();
            var employee   = UserHelper.GetCurrentEmployee();
            var model      = new DrugAnaliticEntity
            {
                EXP_DrugDeclaration = expertiseStage.EXP_DrugDeclaration,
                DrugDeclarationId   = expertiseStage.DeclarationId.ToString(),
                Applicant           = new EmployeesRepository().GetById(expertiseStage.EXP_DrugDeclaration.OwnerId),
                Editor = employee,
                ExpExpertiseStageRemarks = new List <EXP_ExpertiseStageRemark>(),
                ExpStageId   = expertiseStage.Id,
                CurrentStage = new StageModel()
                {
                    CurrentStage = GetExpertiseStage(expertiseStage.Id),
                    StageResults = repository.GetStageResultsByStage(expertiseStage.StageId)
                }
            };
            var employeName = "";

            if (UserHelper.GetCurrentEmployee() != null)
            {
                employeName = UserHelper.GetCurrentEmployee().DisplayName;
            }
            ViewBag.CurrentEmployeeName = employeName;
            var markList    = new DrugDeclarationRepository().GetPrimaryMarkList(expertiseStage.DeclarationId, CodeConstManager.STAGE_ANALITIC);
            var remarkTypes = repository.GetRemarkTypes().ToArray();

            ViewData["RemarkTypes" + model.DrugDeclarationId] = new SelectList(remarkTypes, "Id", "NameRu",
                                                                               null);
            foreach (var expDrugPrimaryRemark in markList)
            {
                model.ExpExpertiseStageRemarks.Add(expDrugPrimaryRemark);
            }
            foreach (var expDrugPrimaryRemark in model.ExpExpertiseStageRemarks)
            {
                ViewData["RemarkTypes" + model.DrugDeclarationId + "_" + expDrugPrimaryRemark.Id] = new SelectList(remarkTypes, "Id", "NameRu",
                                                                                                                   expDrugPrimaryRemark.RemarkTypeId);
            }
            model.ExpDrugCorespondences = new DrugDeclarationRepository().GetDrugCorespondences(expertiseStage.DeclarationId);


            return(PartialView(model));
        }
Example #14
0
        public override ActionResult AppDosage(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var model = new AppDosageRepository().GetStageByAppDosageId(id.Value);

            if (model == null)
            {
                return(HttpNotFound());
            }
            FillDosageControl(model);

            var repositoryDic = new ReadOnlyDictionaryRepository();
            var repository    = new SafetyreportRepository();

            model.EXP_DrugDosage.EXP_DrugDeclaration.ExpDicPrimaryOtds = repositoryDic.GetExpDicPrimaryOTDs().Where(e => e.ParentId == null).ToList();
            model.ExpertiseSafetyreportFinalDoc = model.EXP_ExpertiseSafetyreportFinalDoc.FirstOrDefault();

            if (model.ExpertiseSafetyreportFinalDoc == null)
            {
                model.ExpertiseSafetyreportFinalDoc = CreateExpertiseSafetyreportFinalDoc(model);
                repository.CreateExpertiseSafetyreportFinalDoc(model.ExpertiseSafetyreportFinalDoc);

                model.ExpertiseSafetyreportFinalDoc.EXP_ExpertiseStageDosage = model;
            }
            else
            {
                var newExpertiseSafetyreport = CreateExpertiseSafetyreportFinalDoc(model);

                if (string.IsNullOrEmpty(model.ExpertiseSafetyreportFinalDoc.Conclusion))
                {
                    model.ExpertiseSafetyreportFinalDoc.Conclusion = newExpertiseSafetyreport.Conclusion;
                }
                if (string.IsNullOrEmpty(model.ExpertiseSafetyreportFinalDoc.ConclusionKz))
                {
                    model.ExpertiseSafetyreportFinalDoc.ConclusionKz = newExpertiseSafetyreport.ConclusionKz;
                }

                repository.UpdateExpertiseSafetyreportFinalDoc(model.ExpertiseSafetyreportFinalDoc);
            }

            ViewData["FinalyDocResultList" + model.EXP_DrugDosage.DrugDeclarationId] = new SelectList(repositoryDic.GetStageResultsByStage(model.EXP_ExpertiseStage.StageId), "Id", "NameRu",
                                                                                                      model.ResultId);

            var stageName = ExpStageNameHelper.GetName(GetStage());

            ActionLogger.WriteInt(stageName + ": Получение заявки №" + model.EXP_DrugDosage.RegNumber);
            return(PartialView("~/Views/DrugDeclaration/AppDosage.cshtml", model));
        }
Example #15
0
        public IQueryable <EXP_DIC_Stage> ListStages(int currentDicStageId, int regTypeId, int stageResultId = 0)
        {
            var query = AppContext.EXP_DIC_Stage.Where(e => !e.IsDeleted && e.Code != EXP_DIC_Stage.ProcCenter && e.Code != EXP_DIC_Stage.ExpertCouncil &&
                                                       e.Id != currentDicStageId);
            var regType = AppContext.EXP_DIC_Type.FirstOrDefault(e => e.Id == regTypeId);

            if (regType.Code != EXP_DIC_Type.Registration)
            {
                return(query);
            }
            var rep   = new ExpertiseStageRepository();
            var stage = rep.GetDicStageById(currentDicStageId);

            switch (stage.Code)
            {
            case EXP_DIC_Stage.PharmacologicalExp:
                query = query.Where(e => e.Code == EXP_DIC_Stage.Translate);
                break;

            case EXP_DIC_Stage.PharmaceuticalExp:
                query = query.Where(e => e.Code == EXP_DIC_Stage.AnalyticalExp || e.Code == EXP_DIC_Stage.Translate);
                break;

            case EXP_DIC_Stage.AnalyticalExp:
                query = query.Where(e => e.Code == EXP_DIC_Stage.PharmaceuticalExp);
                break;

            case EXP_DIC_Stage.Translate:
                query = query.Where(e => e.Code == EXP_DIC_Stage.SafetyConclusion);
                break;

            case EXP_DIC_Stage.SafetyConclusion:
                var dictionaryRepo = new ReadOnlyDictionaryRepository();
                var stageResult    = dictionaryRepo.GetStageResultById(stageResultId);
                if (stageResult.Code == EXP_DIC_StageResult.MatchesCode)
                {
                    query = query.Where(e => e.Code == EXP_DIC_Stage.Translate);
                }
                else
                {
                    query = query.Where(e => e.Code == EXP_DIC_Stage.Translate || e.Code == EXP_DIC_Stage.PharmaceuticalExp || e.Code == EXP_DIC_Stage.PharmacologicalExp);
                }
                break;
            }
            return(query);
        }
        public bool UpdateOtd(Guid stageId, int noteId, bool isChecked, Guid id)
        {
            var repository = new ReadOnlyDictionaryRepository().GetExpDicPrimaryOTDs();
            var model      = GetExpertiseStageById(stageId);

            if (model == null)
            {
                return(false);
            }
            var dic = repository.FirstOrDefault(e => e.Id == noteId);

            if (model.OtdIds == null)
            {
                model.OtdIds = "";
            }
            var otdIds     = model.OtdIds.Split(',').ToList();
            var prevOtdIds = new List <string>(otdIds);

            GetOtdChildren(otdIds, dic, isChecked);
            GetOtdParent(otdIds, dic, isChecked);
            var uncheckedOtIds = prevOtdIds.Except(otdIds).ToList();
            var checkedOtIds   = otdIds.Except(prevOtdIds).ToList();
            var addLogInfo     = "";

            if (uncheckedOtIds.Count > 0)
            {
                var uncheckedOtIdsStr = String.Join(",", uncheckedOtIds);
                addLogInfo += "снята галочка с пунктов: " + uncheckedOtIdsStr;
            }
            if (checkedOtIds.Count > 0)
            {
                var checkedOtIdsStr = String.Join(",", checkedOtIds);
                addLogInfo += "поставлена галочка в пунктах: " + checkedOtIdsStr;
            }
            var stageName = ExpStageNameHelper.GetName(model.StageId);

            ActionLogger.WriteInt(AppContext, stageName + ": Заявление №" + model.EXP_DrugDeclaration.Number + ":  изменения значений экспертизы(галочки)", addLogInfo);

            model.OtdIds = string.Join(",", otdIds);
            AppContext.SaveChanges();

            return(true);
        }
Example #17
0
        public virtual ActionResult GetChangeType(int?id)
        {
            var model = new ReadOnlyDictionaryRepository().GetDicChangeTypeById(id);

            if (model == null)
            {
                return(Json(new
                {
                    isSuccess = false
                }));
            }

            return(Json(new
            {
                changeName = model.ChangeName,
                changeType = model.ChangeType,
                isSuccess = true
            }));
        }
        public ActionResult ExpDocView(Guid id)
        {
            var stage = GetAssessmentStage(id);
            var model = stage.OBK_AssessmentDeclaration;

            //Результат
            var booleans = new ReadOnlyDictionaryRepository().GetUOBKCheck();

            ViewData["UObkExpertiseResult"] = new SelectList(booleans, "ExpertiseResult", "Name");
            // номерклатура
            var nomeclature = new AssessmentStageRepository().GetRefNomenclature();

            ViewData["UObkNomenclature"] = new SelectList(nomeclature, "Id", "NameRu");
            //основание
            var reasons = new SafetyAssessmentRepository().GetRefReasons();

            ViewData["UObkReasons"] = new SelectList(reasons, "Id", "Name", "ExpertiseResult");

            return(PartialView(model));
        }
Example #19
0
        public override ActionResult AppDosage(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var model = new AppDosageRepository().GetStageByAppDosageId(id.Value);

            if (model == null)
            {
                return(HttpNotFound());
            }
            FillDosageControl(model);
            model.ExpDrugAnaliseIndicators = new List <EXP_DrugAnaliseIndicator>();
            var list        = model.EXP_DrugAnaliseIndicator.OrderBy(e => e.PositionNumber);
            var repository  = new ReadOnlyDictionaryRepository();
            var remarkTypes = repository.GetDicAnalyseIndicators().ToArray();

            ViewData["AnalyseIndicatorList" + model.Id] = new SelectList(remarkTypes, "Id", "NameRu", null);
            var booleans = repository.GetBooleanList();

            ViewData["Booleans" + model.Id] = new SelectList(booleans, "IsSign", "NameRu", null);

            foreach (var expDrugAnaliseIndicator in list)
            {
                // ViewData["AnalyseIndicatorList"+ expDrugAnaliseIndicator.Id] = new SelectList(remarkTypes, "Id", "NameRu", expDrugAnaliseIndicator.AnalyseIndicator);
                model.ExpDrugAnaliseIndicators.Add(expDrugAnaliseIndicator);
            }
            ViewData["FinalyDocResultList" + model.EXP_DrugDosage.DrugDeclarationId] = new SelectList(repository.GetStageResultsByStage(model.EXP_ExpertiseStage.StageId), "Id", "NameRu",
                                                                                                      model.ResultId);

            var stageName = ExpStageNameHelper.GetName(GetStage());

            ActionLogger.WriteInt(stageName + ": Получение заявки №" + model.EXP_DrugDosage.RegNumber);
            return(PartialView("~/Views/DrugAnalitic/AppDosage.cshtml", model));
        }
Example #20
0
        protected void FillViewBag(EXP_DrugDeclaration model)
        {
            var drugPrimaryRepo = new DrugPrimaryRepository();

            ViewData["ContractList"] =
                new SelectList(new ContractRepository(false).GetActiveContractListWithInfo(model.OwnerId), "Id",
                               "ContractInfo", model.ContractId);
            var repository = new ReadOnlyDictionaryRepository();

            ViewData["AccelerationTypeList"] = new SelectList(repository.GetAccelerationTypes(), "Id",
                                                              "NameRu", model.AccelerationTypeId);

            ViewData["TypeList"] = new SelectList(repository.GetDicTypes(), "Id",
                                                  "NameRu", model.TypeId);

            if (model.RegisterId > 0 && model.sr_register != null)
            {
                model.ReestrNumber  = model.sr_register.reg_number + "/" + model.sr_register.reg_number_kz;
                model.ReestrRegDate = model.sr_register.reg_date.ToShortDateString();
                if (model.sr_register.expiration_date != null)
                {
                    model.ReestrExpirationDate = model.sr_register.expiration_date.Value.ToShortDateString();
                }
                var reestrDrug = new ExternalRepository().GEtRegisterDrugById(model.RegisterId);
                if (reestrDrug != null)
                {
                    model.NumberNd = reestrDrug.nd_number;
                }
            }

            if (model.ExpDrugChangeTypes.Count == 0)
            {
                model.ExpDrugChangeTypes.Add(new EXP_DrugChangeType());
            }
            if (model.ExpDrugProtectionDocs.Count == 0)
            {
                model.ExpDrugProtectionDocs.Add(new EXP_DrugProtectionDoc());
            }
            if (model.ExpDrugOtherCountries.Count == 0)
            {
                model.ExpDrugOtherCountries.Add(new EXP_DrugOtherCountry());
            }
            if (model.ExpDrugExportTrades.Count == 0)
            {
                model.ExpDrugExportTrades.Add(new EXP_DrugExportTrade());
            }
            if (model.ExpDrugPatents.Count == 0)
            {
                model.ExpDrugPatents.Add(new EXP_DrugPatent());
            }
            if (model.ExpDrugTypes.Count == 0)
            {
                model.ExpDrugTypes.Add(new EXP_DrugType());
            }

            /*  if (model.ExpDrugWrappings.Count == 0)
             * {
             *    model.ExpDrugWrappings.Add(new EXP_DrugWrapping());
             * }*/

            if (model.ExpDrugOrganizationses.Count == 0)
            {
                model.ExpDrugOrganizationses.Add(new EXP_DrugOrganizations());
            }
            if (model.ExpDrugDosages.Count == 0)
            {
                model.ExpDrugDosages.Add(new EXP_DrugDosage());
            }

            /*if (model.ExpDrugPrices.Count == 0)
             * {
             *  model.ExpDrugPrices.Add(new EXP_DrugPrice());
             * }*/
            var externalRepository = new ExternalRepository();
            var countries          = externalRepository.GetCounties().ToArray();

            ViewData["Counties"] = new SelectList(countries, "Id", "name", 0);
            for (var i = 0; i < model.ExpDrugExportTrades.Count; i++)
            {
                ViewData["Counties" + i] = new SelectList(countries, "Id", "name",
                                                          model.ExpDrugExportTrades[i].CountryId);
            }

            var types     = repository.GetDrugType().ToArray();
            var typeKinds = repository.GetDrugTypeKinds().ToArray();

            ViewData["DrugTypes"]     = new SelectList(types, "Id", "NameRu", 0);
            ViewData["DrugTypeKinds"] = new SelectList(typeKinds, "Id", "NameRu", 0);
            for (var i = 0; i < model.ExpDrugTypes.Count; i++)
            {
                ViewData["DrugTypes" + i]     = new SelectList(types, "Id", "NameRu", model.ExpDrugTypes[i].DrugTypeId);
                ViewData["DrugTypeKinds" + i] = new SelectList(typeKinds, "Id", "NameRu",
                                                               model.ExpDrugTypes[i].DrugTypeKind);
            }

            model.AtcCodeses = externalRepository.GetAtcList();

            var methods = externalRepository.GetUseMethods();

            model.MethodUseList = new MultiSelectList(methods, "id", "name", model.MethodUseIds);

            /*  ViewData["SaleTypeList"] = new SelectList(repository.GetSaleType(), "Id",
             *    "NameRu", model.SaleTypeId);*/

            var measures = externalRepository.GetMeasures();

            ViewData["MeasureList"] = new SelectList(measures, "Id",
                                                     "name", null);
            var wrappingTypes = repository.GetWrappingTypes().ToArray();
            var boxes         = externalRepository.GetBoxes().ToArray();

            ViewData["WrappingTypes"]     = new SelectList(wrappingTypes, "Id", "NameRu", 0);
            ViewData["Boxes"]             = new SelectList(boxes, "id", "name", 0);
            ViewData["MeasureShortList"]  = new SelectList(measures, "id", "short_name", 0);
            ViewData["SizeMeasureList"]   = new SelectList(measures, "id", "short_name", 0);
            ViewData["VolumeMeasureList"] = new SelectList(measures, "id", "short_name", 0);

            var booleans = repository.GetBooleanList();

            ViewData["Booleans"] = new SelectList(booleans, "IsSign", "NameRu", false);

            var origins        = repository.GetOrigins().ToArray();
            var plantKinds     = repository.GetPlantKinds().ToArray();
            var normDocs       = repository.GetExpDicNormDocFarms().ToArray();
            var substanceTypes = externalRepository.GetSubstanceTypes().ToArray();

            ViewData["SubstanceTypes"]       = new SelectList(substanceTypes, "Id", "name", null);
            ViewData["Origins"]              = new SelectList(origins, "Id", "NameRu", null);
            ViewData["NormDocs"]             = new SelectList(normDocs, "Id", "NameRu", null);
            ViewData["PlantKinds"]           = new SelectList(plantKinds, "Id", "NameRu", null);
            ViewData["IsControlList"]        = new SelectList(booleans, "IsSign", "NameRu", null);
            ViewData["IsPoisonList"]         = new SelectList(booleans, "IsSign", "NameRu", null);
            ViewData["SubstanceCounties"]    = new SelectList(countries, "Id", "name", 0);
            ViewData["SubstanceMeasureList"] = new SelectList(measures, "id", "short_name", 0);
            var sales = repository.GetSaleType().ToList();

            ViewData["SaleTypeList"] = new SelectList(sales, "Id", "NameRu", null);
            ViewData["BestBeforeMeasureTypeList"] = new SelectList(measures, "id", "short_name",
                                                                   null);
            ViewData["AppPeriodMixMeasureList"] = new SelectList(measures, "id", "short_name",
                                                                 null);
            ViewData["AppPeriodOpenMeasureList"] = new SelectList(measures, "id", "short_name",
                                                                  null);



            var drugDeclarationRepository = new DrugDeclarationRepository();

            for (var i = 0; i < model.ExpDrugDosages.Count; i++)
            {
                var dosage = model.ExpDrugDosages[i];
                if (dosage.ExpDrugWrappings == null || dosage.ExpDrugWrappings.Count == 0)
                {
                    dosage.ExpDrugWrappings = new List <EXP_DrugWrapping> {
                        new EXP_DrugWrapping()
                    };
                }
                if (dosage.ExpDrugSubstances == null || dosage.ExpDrugSubstances.Count == 0)
                {
                    dosage.ExpDrugSubstances = new List <EXP_DrugSubstance> {
                        new EXP_DrugSubstance()
                        {
                            ExpDrugSubstanceManufactures = new List <EXP_DrugSubstanceManufacture>()
                            {
                                new EXP_DrugSubstanceManufacture()
                            }
                        }
                    };
                }
                if (dosage.ExpDrugPrices == null)
                {
                    dosage.ExpDrugPrices = new List <EXP_DrugPrice>();
                }

                ViewData["MeasureList" + dosage.Id] = new SelectList(measures, "Id", "name",
                                                                     model.ExpDrugDosages[i].DosageMeasureTypeId);
                ViewData["SaleTypeList" + dosage.Id] = new SelectList(sales, "Id", "NameRu", model.ExpDrugDosages[i].SaleTypeId);
                ViewData["BestBeforeMeasureTypeList" + dosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                   model.ExpDrugDosages[i].BestBeforeMeasureTypeDicId);
                ViewData["AppPeriodMixMeasureList" + dosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                 model.ExpDrugDosages[i].AppPeriodMixMeasureDicId);
                ViewData["AppPeriodOpenMeasureList" + dosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                  model.ExpDrugDosages[i].AppPeriodOpenMeasureDicId);
                for (var j = 0; j < dosage.ExpDrugWrappings.Count; j++)
                {
                    var wrap = dosage.ExpDrugWrappings[j];
                    ViewData["WrappingTypes" + wrap.Id] = new SelectList(wrappingTypes, "Id", "NameRu",
                                                                         wrap.WrappingTypeId);
                    ViewData["Boxes" + wrap.Id]           = new SelectList(boxes, "Id", "name", wrap.WrappingKindId);
                    ViewData["SizeMeasureList" + wrap.Id] = new SelectList(measures, "Id", "short_name",
                                                                           wrap.SizeMeasureId);
                    ViewData["VolumeMeasureList" + wrap.Id] = new SelectList(measures, "Id", "short_name",
                                                                             wrap.VolumeMeasureId);
                }

                for (var j = 0; j < dosage.ExpDrugPrices.Count; j++)
                {
                    var price = dosage.ExpDrugPrices[j];
                    model.ExpDrugDosages[i].ExpDrugPrices[j].PrimaryText      = drugDeclarationRepository.GetNameByWrappingNames(price.PrimaryValue);
                    model.ExpDrugDosages[i].ExpDrugPrices[j].SecondaryText    = drugDeclarationRepository.GetNameByWrappingNames(price.SecondaryValue);
                    model.ExpDrugDosages[i].ExpDrugPrices[j].IntermediateText = drugDeclarationRepository.GetNameByWrappingNames(price.IntermediateValue);
                }

                for (var j = 0; j < dosage.ExpDrugSubstances.Count; j++)
                {
                    var id = dosage.ExpDrugSubstances[j].Id.ToString();
                    dosage.ExpDrugSubstances[j].CategoryName = GetCategoryName(dosage.ExpDrugSubstances[j].sr_substances);
                    dosage.ExpDrugSubstances[j].CategoryPos  = dosage.ExpDrugSubstances[j].sr_substances?.category_pos;
                    ViewData["SubstanceTypes" + id]          = new SelectList(substanceTypes, "Id", "name",
                                                                              dosage.ExpDrugSubstances[j].SubstanceTypeId);
                    ViewData["Origins" + id]    = new SelectList(origins, "Id", "NameRu", dosage.ExpDrugSubstances[j].OriginId);
                    ViewData["NormDocs" + id]   = new SelectList(normDocs, "Id", "NameRu", dosage.ExpDrugSubstances[j].NormDocFarmId);
                    ViewData["PlantKinds" + id] = new SelectList(plantKinds, "Id", "NameRu",
                                                                 dosage.ExpDrugSubstances[j].PlantKindId);
                    ViewData["SubstanceMeasureList" + id] = new SelectList(measures, "Id", "short_name",
                                                                           dosage.ExpDrugSubstances[j].MeasureId);

                    /*          ViewData["SubstanceCounties" + id] = new SelectList(countries, "Id", "name",
                     *            dosage.ExpDrugSubstances[j].CountryId);*/
                    ViewData["IsControlList" + id] = new SelectList(booleans, "IsSign", "NameRu",
                                                                    dosage.ExpDrugSubstances[j].IsControl);
                    ViewData["IsPoisonList" + id] = new SelectList(booleans, "IsSign", "NameRu",
                                                                   dosage.ExpDrugSubstances[j].IsPoison);

                    /*  ViewData["SubstanceCounties" + i] = new SelectList(countries, "Id", "name",
                     *    dosage.ExpDrugSubstances[j].CountryId);*/
                    if (dosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures != null)
                    {
                        for (var k = 0; k < dosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures.Count; k++)
                        {
                            ViewData[
                                "SubstanceCounties" + dosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures[k].Id
                            ] =
                                new SelectList(countries, "Id", "name",
                                               dosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures[k].CountryId);
                        }
                    }
                    else
                    {
                        dosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures =
                            new List <EXP_DrugSubstanceManufacture> {
                            new EXP_DrugSubstanceManufacture()
                        };
                    }
                }
            }



            ViewData["IsGrlsList"] = new SelectList(booleans, "IsSign", "NameRu", model.IsGrls);
            ViewData["IsGmpList"]  = new SelectList(booleans, "IsSign", "NameRu", model.IsGmp);

            var manufactures = repository.GetManufactureTypeList();

            ViewData["ManufactureTypeList"] = new SelectList(manufactures, "Id", "NameRu", model.ManufactureTypeId);

            /*    ViewData["BestBeforeMeasureTypeList"] = new SelectList(measures, "id", "short_name",
             *      model.BestBeforeMeasureTypeDicId);
             *  ViewData["AppPeriodMixMeasureList"] = new SelectList(measures, "id", "short_name",
             *      model.AppPeriodMixMeasureDicId);
             *  ViewData["AppPeriodOpenMeasureList"] = new SelectList(measures, "id", "short_name",
             *      model.AppPeriodOpenMeasureDicId);
             */
            for (var i = 0; i < model.ExpDrugOtherCountries.Count; i++)
            {
                ViewData["OtherCounties" + i] = new SelectList(countries, "Id", "name",
                                                               model.ExpDrugOtherCountries[i].CountryId);
            }

            var orgManufactureTypes = repository.GetDictionaries(CodeConstManager.DIC_ORG_MANUFACTURE_TYPE);
            var countyDics          = repository.GetDictionaries(CodeConstManager.DIC_COUNTRY_TYPE);
            var opfTypeDics         = repository.GetDictionaries(CodeConstManager.DIC_OPF_TYPE);

            ViewData["OrgManufactureTypes"] = new SelectList(orgManufactureTypes, "Id", "Name", null);
            ViewData["CountryDics"]         = new SelectList(countyDics, "Id", "Name", null);
            ViewData["OpfTypeDics"]         = new SelectList(opfTypeDics, "Id", "Name", null);

            for (var i = 0; i < model.ExpDrugOrganizationses.Count; i++)
            {
                var id = model.ExpDrugOrganizationses[i].Id.ToString();
                ViewData["OrgManufactureTypes" + id] = new SelectList(orgManufactureTypes, "Id", "name",
                                                                      model.ExpDrugOrganizationses[i].OrgManufactureTypeDicId);
                ViewData["CountryDics" + id] = new SelectList(countyDics, "Id", "name",
                                                              model.ExpDrugOrganizationses[i].CountryDicId);
                ViewData["OpfTypeDics" + id] = new SelectList(opfTypeDics, "Id", "name",
                                                              model.ExpDrugOrganizationses[i].OpfTypeDicId);
                var manufacture = repository.GetDictionaryById(CodeConstManager.DIC_ORG_MANUFACTURE_TYPE,
                                                               model.ExpDrugOrganizationses[i].OrgManufactureTypeDicId);
                if (manufacture != null)
                {
                    model.ExpDrugOrganizationses[i].ManufactureName = manufacture.Name;
                }
            }
            var changeTypes = repository.GetDicChangeTypes().ToArray();

            ViewData["ChangeTypes"] = new SelectList(changeTypes, "Id", "Code", 0);
            for (var i = 0; i < model.ExpDrugChangeTypes.Count; i++)
            {
                ViewData["ChangeTypes" + i] = new SelectList(changeTypes, "Id", "Code",
                                                             model.ExpDrugChangeTypes[i].ChangeTypeId);
            }

            var markList = drugPrimaryRepo.GetPrimaryMarkList(model.Id, null);

            var remarkTypes = repository.GetRemarkTypes().ToArray();

            ViewData["RemarkTypes" + model.Id] = new SelectList(remarkTypes, "Id", "NameRu",
                                                                null);
            model.ExpExpertiseStageRemarks = new List <EXP_ExpertiseStageRemark>();
            foreach (var expDrugPrimaryRemark in markList)
            {
                model.ExpExpertiseStageRemarks.Add(expDrugPrimaryRemark);
            }

            if (model.ExpExpertiseStageRemarks.Count == 0)
            {
                model.ExpExpertiseStageRemarks.Add(new EXP_ExpertiseStageRemark());
            }
            else
            {
                model.IsShowRemark = true;
            }

            foreach (var expDrugPrimaryRemark in model.ExpExpertiseStageRemarks)
            {
                ViewData["RemarkTypes" + model.Id + "_" + expDrugPrimaryRemark.Id] = new SelectList(remarkTypes,
                                                                                                    "Id", "NameRu",
                                                                                                    expDrugPrimaryRemark.RemarkTypeId);
            }
            ViewBag.PaymentOverdue = model.EXP_DirectionToPays.Any(e => e.Type == 1 &&
                                                                   e.Status.Code == Dictionary.ExpDirectionToPayStatus.PaymentExpired);
            model.Letters = new List <EXP_DrugCorespondence>(drugPrimaryRepo.GetDrugCorespondences(model.Id, true));
        }
Example #21
0
        public CorespondenceEntity CreateMailRemark(string id, Employee employee)
        {
            var model = GetExpertiseStageById(new Guid(id));

            if (model == null)
            {
                return(new CorespondenceEntity()
                {
                    IsSuccess = false, StageType = 0
                });
            }
            var coresponce = new CorespondenceEntity {
                StageType = model.StageId
            };

            var remarks = AppContext.EXP_ExpertiseStageRemark.Where(e => e.StageId == model.Id && !e.IsReadOnly && e.CorespondenceId == null);
            var modelID = Guid.NewGuid();
            var mail    = new EXP_DrugCorespondence
            {
                Id                = modelID,
                AuthorId          = employee.Id,
                DateCreate        = DateTime.Now,
                DrugDeclarationId = model.DeclarationId,
                KindId            = CodeConstManager.CORESPONDENCE_KIND_ELECTRONIC,
                TypeId            = CodeConstManager.CORESPONDENCE_TYPE_INBOX,
                StageId           = model.StageId,
                SubjectId         = AppContext.EXP_DIC_CorespondenceSubject.FirstOrDefault(e => e.Code == EXP_DIC_CorespondenceSubject.Remarks && !e.IsDeleted).Id
            };
            var status =
                new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.STATUS_DRAFT).FirstOrDefault();

            if (status != null)
            {
                mail.StatusId = status.Id;
            }
            var builder = new StringBuilder("Список замечании:");
            var index   = 1;

            foreach (var expDrugPrimaryRemark in remarks)
            {
                var entity = new EXP_DrugCorespondenceRemark
                {
                    AnswerRemark = expDrugPrimaryRemark.AnswerRemark,
                    ExecuterId   = expDrugPrimaryRemark.ExecuterId,
                    FixedDate    = expDrugPrimaryRemark.FixedDate,
                    IsAccepted   = expDrugPrimaryRemark.IsAccepted,
                    IsFixed      = expDrugPrimaryRemark.IsFixed,
                    NameRemark   = expDrugPrimaryRemark.NameRemark,
                    Note         = expDrugPrimaryRemark.Note,
                    RemarkDate   = expDrugPrimaryRemark.RemarkDate,
                    RemarkTypeId = expDrugPrimaryRemark.RemarkTypeId,
                };
                mail.EXP_DrugCorespondenceRemark.Add(entity);
                expDrugPrimaryRemark.IsReadOnly      = true;
                expDrugPrimaryRemark.CorespondenceId = modelID.ToString();
                builder.AppendLine(index + ". " + expDrugPrimaryRemark.NameRemark + ";");
                index++;
            }
            var stageType = new ReadOnlyDictionaryRepository().GetDicStageById(model.StageId);

            mail.Subject = "Замечания с экспертизы (" + stageType.NameRu + ")";
            mail.Note    = builder.ToString();
            AppContext.EXP_DrugCorespondence.Add(mail);
            AppContext.SaveChanges();
            coresponce.IsSuccess = true;
            return(coresponce);
        }
        public EXP_DrugCorespondence SendMailRemark(string id, Employee getCurrentEmployee)
        {
            try
            {
                var model = AppContext.EXP_DrugCorespondence.FirstOrDefault(e => e.Id == new Guid(id));
                if (model == null)
                {
                    return(null);
                }
                if (!model.DateSend.HasValue)
                {
                    model.DateSend = DateTime.Now;
                }

                model.IsReadOnly = true;
                var status =
                    new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.STATUS_SEND).FirstOrDefault();

                if (status != null)
                {
                    model.StatusId = status.Id;
                }
                AppContext.SaveChanges();

                var expertiseStage = AppContext.EXP_ExpertiseStage.FirstOrDefault(x =>
                                                                                  !x.IsHistory &&
                                                                                  x.StageId == model.StageId &&
                                                                                  x.DeclarationId == model.DrugDeclarationId);
                if (expertiseStage != null)
                {
                    expertiseStage.IsSuspended        = true;
                    expertiseStage.SuspendedStartDate = DateTime.Now;
                    AppContext.SaveChanges();
                }
                else
                {
                    LogHelper.Log.ErrorFormat("Не удалось найти expertiseStage по EXP_DrugCorespondence с id {0}", model.Id);
                }

                model.Dictionary = status;

                var declaraion = AppContext.EXP_DrugDeclaration.FirstOrDefault(e => e.Id == model.DrugDeclarationId);
                if (declaraion != null)
                {
                    //                declaraion.DesignNote = model.Note;
                    declaraion.DesignDate = DateTime.Now;
                    if (model.EXP_DIC_CorespondenceSubject.Code == EXP_DIC_CorespondenceSubject.Remarks)
                    {
                        declaraion.StatusId = CodeConstManager.STATUS_EXP_REJECT_ID;
                        new DrugDeclarationRepository().Update(declaraion);
                    }
                    var history = new EXP_DrugDeclarationHistory()
                    {
                        DateCreate        = DateTime.Now,
                        DrugDeclarationId = declaraion.Id,
                        StatusId          = declaraion.StatusId,
                        UserId            = getCurrentEmployee.Id,
                        Note = model.Note
                    };
                    new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
                }
                return(model);
            }
            catch (DbEntityValidationException dbEx)
            {
                LogHelper.Log.Error("DbEntityValidationException", dbEx);
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        LogHelper.Log.ErrorFormat("Property: {0} Error: {1}",
                                                  validationError.PropertyName,
                                                  validationError.ErrorMessage);
                    }
                }
                throw;
            }
            catch (Exception ex)
            {
                LogHelper.Log.Error("SendMailRemark", ex);
                throw;
            }
        }
        protected virtual void FillDosageControl(EXP_ExpertiseStageDosage model)
        {
            var externalRepository = new ExternalRepository();
            var repository         = new ReadOnlyDictionaryRepository();
            var measures           = externalRepository.GetMeasures();

            var wrappingTypes = repository.GetWrappingTypes().ToArray();
            var boxes         = externalRepository.GetBoxes().ToArray();
            //            var remarkTypes = repository.GetRemarkTypes().ToArray();
            var sales = repository.GetSaleType().ToList();
            var drugDeclarationRepository = new DrugDeclarationRepository();

            model.EXP_DrugDosage.ExpDrugWrappings  = new List <EXP_DrugWrapping>();
            model.EXP_DrugDosage.ExpDrugPrices     = new List <EXP_DrugPrice>();
            model.EXP_DrugDosage.ExpDrugSubstances = new List <EXP_DrugSubstance>();
            //            model.EXP_DrugDosage.ExpDrugAppDosageRemarks = new List<EXP_DrugAppDosageRemark>();
            //            model.EXP_DrugDosage.ExpDrugAppDosageResults = new List<EXP_DrugAppDosageResult>();

            /*  foreach (var expDrugAppDosageRemark in model.EXP_DrugDosage.EXP_DrugAppDosageRemark)
             * {
             *  model.EXP_DrugDosage.ExpDrugAppDosageRemarks.Add(expDrugAppDosageRemark);
             * }
             * if (model.EXP_DrugDosage.ExpDrugAppDosageRemarks.Count == 0)
             * {
             *  model.EXP_DrugDosage.ExpDrugAppDosageRemarks.Add(new EXP_DrugAppDosageRemark());
             * }
             *
             * foreach (var expDrugAppDosageRemark in model.EXP_DrugDosage.EXP_DrugAppDosageResult)
             * {
             *  model.EXP_DrugDosage.ExpDrugAppDosageResults.Add(expDrugAppDosageRemark);
             * }
             * if (model.EXP_DrugDosage.ExpDrugAppDosageResults.Count == 0)
             * {
             *  model.EXP_DrugDosage.ExpDrugAppDosageResults.Add(new EXP_DrugAppDosageResult());
             * }
             */
            /*  ViewData["RemarkTypes" + model.EXP_DrugDosage.DrugDeclarationId] = new SelectList(remarkTypes, "Id", "NameRu",
             *   null);
             * foreach (var wrap in model.EXP_DrugDosage.ExpDrugAppDosageResults)
             * {
             *  ViewData["ResultTypes" + model.EXP_DrugDosage.DrugDeclarationId + "_" + wrap.Id] = new SelectList(remarkTypes, "Id", "NameRu",
             *      wrap.RemarkTypeId);
             * }
             * foreach (var wrap in model.EXP_DrugDosage.ExpDrugAppDosageRemarks)
             * {
             *  ViewData["RemarkTypes" + model.EXP_DrugDosage.DrugDeclarationId + "_" + wrap.Id] = new SelectList(remarkTypes, "Id", "NameRu",
             *      wrap.RemarkTypeId);
             * }*/

            foreach (var expDrugWrapping in model.EXP_DrugDosage.EXP_DrugWrapping)
            {
                model.EXP_DrugDosage.ExpDrugWrappings.Add(expDrugWrapping);
            }

            foreach (var expDrugWrapping in model.EXP_DrugDosage.EXP_DrugPrice)
            {
                model.EXP_DrugDosage.ExpDrugPrices.Add(expDrugWrapping);
            }
            for (var d = 0; d < model.EXP_DrugDosage.EXP_DrugSubstance.Count; d++)
            {
                model.EXP_DrugDosage.ExpDrugSubstances.Add(model.EXP_DrugDosage.EXP_DrugSubstance.ToList()[d]);
                if (model.EXP_DrugDosage.EXP_DrugSubstance.ToList()[d].ExpDrugSubstanceManufactures == null)
                {
                    model.EXP_DrugDosage.EXP_DrugSubstance.ToList()[d].ExpDrugSubstanceManufactures = new List <EXP_DrugSubstanceManufacture>();
                }

                foreach (var expDrugSubstanceManufacture in model.EXP_DrugDosage.EXP_DrugSubstance.ToList()[d].EXP_DrugSubstanceManufacture)
                {
                    model.EXP_DrugDosage.EXP_DrugSubstance.ToList()[d].ExpDrugSubstanceManufactures.Add(expDrugSubstanceManufacture);
                }
            }

            /* foreach (var expDrugWrapping in model.EXP_DrugDosage.EXP_DrugSubstance)
             * {
             *   model.EXP_DrugDosage.ExpDrugSubstances.Add(expDrugWrapping);
             *   foreach (var expDrugSubstanceManufacture in expDrugWrapping.EXP_DrugSubstanceManufacture)
             *   {
             *       model.EXP_DrugDosage.ExpDrugSubstances.Add(expDrugWrapping);
             *   }
             * }*/
            if (model.EXP_DrugDosage.ExpDrugWrappings == null || model.EXP_DrugDosage.ExpDrugWrappings.Count == 0)
            {
                model.EXP_DrugDosage.ExpDrugWrappings = new List <EXP_DrugWrapping>();
            }
            if (model.EXP_DrugDosage.ExpDrugSubstances == null || model.EXP_DrugDosage.ExpDrugSubstances.Count == 0)
            {
                model.EXP_DrugDosage.ExpDrugSubstances = new List <EXP_DrugSubstance> ();
            }
            if (model.EXP_DrugDosage.ExpDrugPrices == null)
            {
                model.EXP_DrugDosage.ExpDrugPrices = new List <EXP_DrugPrice>();
            }
            ViewData["MeasureList" + model.EXP_DrugDosage.Id] = new SelectList(measures, "Id", "name",
                                                                               model.EXP_DrugDosage.DosageMeasureTypeId);
            ViewData["SaleTypeList" + model.EXP_DrugDosage.Id] = new SelectList(sales, "Id", "NameRu", model.EXP_DrugDosage.SaleTypeId);
            ViewData["BestBeforeMeasureTypeList" + model.EXP_DrugDosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                             model.EXP_DrugDosage.BestBeforeMeasureTypeDicId);
            ViewData["AppPeriodMixMeasureList" + model.EXP_DrugDosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                           model.EXP_DrugDosage.AppPeriodMixMeasureDicId);
            ViewData["AppPeriodOpenMeasureList" + model.EXP_DrugDosage.Id] = new SelectList(measures, "id", "short_name",
                                                                                            model.EXP_DrugDosage.AppPeriodOpenMeasureDicId);
            for (var j = 0; j < model.EXP_DrugDosage.ExpDrugWrappings.Count; j++)
            {
                var wrap = model.EXP_DrugDosage.ExpDrugWrappings[j];
                ViewData["WrappingTypes" + wrap.Id] = new SelectList(wrappingTypes, "Id", "NameRu",
                                                                     wrap.WrappingTypeId);
                ViewData["Boxes" + wrap.Id]           = new SelectList(boxes, "Id", "name", wrap.WrappingKindId);
                ViewData["SizeMeasureList" + wrap.Id] = new SelectList(measures, "Id", "short_name",
                                                                       wrap.SizeMeasureId);
                ViewData["VolumeMeasureList" + wrap.Id] = new SelectList(measures, "Id", "short_name",
                                                                         wrap.VolumeMeasureId);
            }
            var origins        = repository.GetOrigins().ToArray();
            var plantKinds     = repository.GetPlantKinds().ToArray();
            var substanceTypes = externalRepository.GetSubstanceTypes().ToArray();
            var countries      = externalRepository.GetCounties().ToArray();
            var booleans       = repository.GetBooleanList();

            for (var j = 0; j < model.EXP_DrugDosage.ExpDrugSubstances.Count; j++)
            {
                var ids = model.EXP_DrugDosage.ExpDrugSubstances[j].Id.ToString();
                model.EXP_DrugDosage.ExpDrugSubstances[j].CategoryName =
                    GetCategoryName(model.EXP_DrugDosage.ExpDrugSubstances[j].sr_substances);
                model.EXP_DrugDosage.ExpDrugSubstances[j].CategoryPos =
                    model.EXP_DrugDosage.ExpDrugSubstances[j].sr_substances?.category_pos;
                ViewData["SubstanceTypes" + ids] = new SelectList(substanceTypes, "Id", "name",
                                                                  model.EXP_DrugDosage.ExpDrugSubstances[j].SubstanceTypeId);
                ViewData["Origins" + ids] = new SelectList(origins, "Id", "NameRu",
                                                           model.EXP_DrugDosage.ExpDrugSubstances[j].OriginId);
                ViewData["PlantKinds" + ids] = new SelectList(plantKinds, "Id", "NameRu",
                                                              model.EXP_DrugDosage.ExpDrugSubstances[j].PlantKindId);
                ViewData["SubstanceMeasureList" + ids] = new SelectList(measures, "Id", "short_name",
                                                                        model.EXP_DrugDosage.ExpDrugSubstances[j].MeasureId);
                ViewData["SubstanceCounties" + ids] = new SelectList(countries, "Id", "name",
                                                                     model.EXP_DrugDosage.ExpDrugSubstances[j].CountryId);
                ViewData["IsControlList" + ids] = new SelectList(booleans, "IsSign", "NameRu",
                                                                 model.EXP_DrugDosage.ExpDrugSubstances[j].IsControl);
                ViewData["NormDocs" + ids] = new SelectList(repository.GetExpDicNormDocFarms().ToArray(), "Id", "NameRu",
                                                            model.EXP_DrugDosage.ExpDrugSubstances[j].NormDocFarmId);
                ViewData["IsPoisonList" + ids] = new SelectList(booleans, "IsSign", "NameRu",
                                                                model.EXP_DrugDosage.ExpDrugSubstances[j].IsPoison);

                /*      ViewData["SubstanceCounties" + ids] = new SelectList(countries, "Id", "name",
                 *        model.EXP_DrugDosage.ExpDrugSubstances[j].CountryId);*/
                if (model.EXP_DrugDosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures != null)
                {
                    for (var k = 0;
                         k < model.EXP_DrugDosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures.Count;
                         k++)
                    {
                        ViewData["SubstanceCounties" + model.EXP_DrugDosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures[k].Id.ToString()] = new SelectList(countries, "Id", "name",
                                                                                                                                                                 model.EXP_DrugDosage.ExpDrugSubstances[j].ExpDrugSubstanceManufactures[k].CountryId);
                    }
                }
            }

            for (var j = 0; j < model.EXP_DrugDosage.ExpDrugPrices.Count; j++)
            {
                var price = model.EXP_DrugDosage.ExpDrugPrices[j];
                model.EXP_DrugDosage.ExpDrugPrices[j].PrimaryText =
                    drugDeclarationRepository.GetNameByWrappingNames(price.PrimaryValue);
                model.EXP_DrugDosage.ExpDrugPrices[j].SecondaryText =
                    drugDeclarationRepository.GetNameByWrappingNames(price.SecondaryValue);
                model.EXP_DrugDosage.ExpDrugPrices[j].IntermediateText =
                    drugDeclarationRepository.GetNameByWrappingNames(price.IntermediateValue);
            }
        }
Example #24
0
        /// <summary>
        /// Для таблицы сведения о стране в ЛС
        /// </summary>
        /// <param name="request"></param>
        /// <param name="id"></param>
        /// <returns>Json</returns>
        public ActionResult GetPriceCountry(ModelRequest request, Guid id)
        {
            var items = db.PricesViews.Where(o => o.PriceProjectId == id && o.Type == (int)PriceType.LsPrice);


            var itemsVm = items.Select(i => new
            {
                Id                             = i.Id,
                PriceProjectId                 = i.PriceProjectId,
                CountryId                      = i.CountryId,
                Type                           = i.Type,
                CountryName                    = i.CountryName,
                ManufacturerPrice              = i.ManufacturerPrice,
                ManufacturerPriceNote          = i.ManufacturerPriceNote,
                ManufacturerPriceCurrencyDicId = i.ManufacturerPriceCurrencyDicId,
                ManufacturerPriceWithLink      = i.ManufacturerPrice.ToString() + " " + i.ManufacturerPriceCurrencyName + " " + i.ManufacturerPriceNote,
                LimitPrice                     = i.LimitPrice,
                LimitPriceCurrencyDicId        = i.LimitPriceCurrencyDicId,
                LimitPriceNote                 = i.LimitPriceNote,
                LimitPriceWithLink             = i.LimitPrice.ToString() + " " + i.LimitPriceCurrencyName + " " + i.LimitPriceNote,
                AvgOptPrice                    = i.AvgOptPrice,
                AvgOptPriceCurrencyDicId       = i.AvgOptPriceCurrencyDicId,
                AvgOptPriceNote                = i.AvgOptPriceNote,
                AvgOptPriceWithLink            = i.AvgOptPrice.ToString() + " " + i.AvgOptPriceCurrencyName + " " + i.AvgOptPriceNote,
                AvgRozPrice                    = i.AvgRozPrice,
                AvgRozPriceCurrencyDicId       = i.AvgRozPriceCurrencyDicId,
                AvgRozPriceNote                = i.AvgRozPriceNote,
                AvgRozPriceWithLink            = i.AvgRozPrice.ToString() + " " + i.AvgRozPriceCurrencyName + " " + i.AvgOptPriceNote,
                IsIncluded                     = i.IsIncluded,
                i.IsAvgOptPrice,
                i.IsAvgRozPrice,
                i.IsLimitPrice,
                i.IsManufacturerPrice,
                i.IsUnitPrice
            });
            var countyDics = new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.DIC_COUNTRY_TYPE);
            var list       = countyDics.Where(e => CodeConstManager.LIST_COUNTY_CODE_FOR_PRICE.Contains(e.Code));
            var prices     = new ArrayList();

            var ids = new List <Guid>();

            foreach (var country in list)
            {
                var exist = itemsVm.FirstOrDefault(e => e.CountryId == country.Id);
                if (exist != null)
                {
                    prices.Add(exist);
                    ids.Add(exist.Id);
                }
                else
                {
                    var price = new
                    {
                        Id                        = Guid.NewGuid(),
                        CountryName               = country.Name,
                        Type                      = (int)PriceType.LsPrice,
                        PriceProjectId            = id,
                        CountryId                 = country.Id,
                        ManufacturerPriceNote     = "",
                        ManufacturerPriceWithLink = "",
                        LimitPriceNote            = "",
                        LimitPriceWithLink        = "",
                        AvgOptPriceNote           = "",
                        AvgOptPriceWithLink       = "",
                        AvgRozPriceNote           = "",
                        AvgRozPriceWithLink       = "",
                        IsIncluded                = false

                                                    /*   ManufacturerPrice = 0,
                                                     * ManufacturerPriceNote = "",
                                                     * ManufacturerPriceCurrencyDicId = Guid.Empty,
                                                     * ManufacturerPriceWithLink = "",
                                                     * LimitPrice = 0,
                                                     * LimitPriceCurrencyDicId = Guid.Empty,
                                                     * LimitPriceNote = "",
                                                     * LimitPriceWithLink = "",
                                                     * AvgOptPrice =0,
                                                     * AvgOptPriceCurrencyDicId = Guid.Empty,
                                                     * AvgOptPriceNote = "",
                                                     * AvgOptPriceWithLink = "",
                                                     * AvgRozPrice = 0,
                                                     * AvgRozPriceCurrencyDicId = i.AvgRozPriceCurrencyDicId,
                                                     * AvgRozPriceNote = i.AvgRozPriceNote,
                                                     * AvgRozPriceWithLink = i.AvgRozPrice.ToString() + " " + i.AvgRozPriceCurrencyName + " " + i.AvgOptPriceNote*/
                    };
                    prices.Add(price);
                }
            }
            foreach (var item in itemsVm.Where(e => !ids.Contains(e.Id)))
            {
                prices.Add(item);
            }
            var count = prices.Count;
            var data  = new
            {
                draw            = request.Draw,
                recordsFiltered = count,
                recordsTotal    = count,
                Data            = prices
            };

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Example #25
0
        private void FillDeclarationControl(OBK_AssessmentDeclaration model)
        {
            var safetyRepository = new SafetyAssessmentRepository();

            ViewData["ContractList"] =
                new SelectList(safetyRepository.GetActiveContractListWithInfo(model.EmployeeId, model.Type_Id), "Id",
                               "ContractInfo", model.Contract_Id);

            if (model.Type_Id == int.Parse(CodeConstManager.OBK_SA_SERIAL))
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu", model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_SERIAL).Id);
            }
            if (model.Type_Id == int.Parse(CodeConstManager.OBK_SA_PARTY))
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu", model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_PARTY).Id);
            }
            if (model.Type_Id == int.Parse(CodeConstManager.OBK_SA_DECLARATION))
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu", model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_DECLARATION).Id);
            }

            if (model.Contract_Id != null)
            {
                var contract         = safetyRepository.GetContractById(model.Contract_Id);
                var declarant        = safetyRepository.GetDeclarantById(contract.DeclarantId);
                var declarantContact = safetyRepository.GetDeclarantContactById(contract.DeclarantContactId);
                var products         = safetyRepository.GetRsProductsAndSeries(contract.Id);

                //справочник стран
                var countries = safetyRepository.GetCounties();
                if (declarant?.CountryId == null)
                {
                    ViewData["Counties"] = new SelectList(countries, "Id", "Name");
                }
                else
                {
                    ViewData["Counties"] = new SelectList(countries, "Id", "Name",
                                                          model.CountryId = declarant.CountryId);
                }

                //Валюта
                var currency = safetyRepository.GetObkCurrencies();
                if (declarantContact?.CurrencyId == null)
                {
                    ViewData["Courrency"] = new SelectList(currency, "Id", "Name");
                }
                else
                {
                    ViewData["Courrency"] = new SelectList(currency, "Id", "Name",
                                                           model.CurrencyId = declarantContact.CurrencyId);
                }

                //Наличие сертификата GMP
                var repository = new ReadOnlyDictionaryRepository();
                var booleans   = repository.GetCertificateGMPCheck();
                ViewData["IsGMPList"] = new SelectList(booleans, "CertificateGMPCheck", "NameRu",
                                                       model.CertificateGMPCheck);

                var certType = safetyRepository.GetCertificateType();
                if (model.CertificateTypeId == null)
                {
                    ViewData["CertificateType"] = new SelectList(certType, "Id", "NameRu");
                }
                else
                {
                    ViewData["CertificateType"] = new SelectList(certType, "Id", "NameRu", model.CertificateTypeId);
                }

                //организационная форма
                var orgForm = safetyRepository.GetOrganizationForm();
                if (declarant?.OrganizationFormId == null)
                {
                    ViewData["OrganizationForm"] = new SelectList(orgForm, "Id", "Name");
                }
                else
                {
                    ViewData["OrganizationForm"] = new SelectList(orgForm, "Id", "Name",
                                                                  model.OrganizationFormId = declarant.OrganizationFormId);
                }

                model.StartDate       = string.Format("{0:dd.MM.yyyy}", contract.StartDate);
                model.EndDate         = string.Format("{0:dd.MM.yyyy}", contract.EndDate);
                model.NameKz          = declarant?.NameKz ?? "нет данных";
                model.NameRu          = declarant?.NameRu ?? "нет данных";
                model.NameEn          = declarant?.NameEn ?? "нет данных";
                model.ChiefLastName   = declarantContact?.BossLastName ?? "нет данных";
                model.ChiefFirstName  = declarantContact?.BossFirstName ?? "нет данных";
                model.ChiefMiddleName = declarantContact?.BossMiddleName ?? "нет данных";
                model.ChiefPosition   = declarantContact?.BossPosition ?? "нет данных";
                model.AddressFact     = declarantContact?.AddressFact ?? "нет данных";
                model.AddressLegal    = declarantContact?.AddressLegalRu ?? "нет данных";
                model.Phone           = declarantContact?.Phone ?? "нет данных";
                model.Email           = declarantContact?.Email ?? "нет данных";
                model.BankBik         = declarantContact?.BankBik ?? "нет данных";
                model.BankIik         = declarantContact?.BankIik ?? "нет данных";
                model.BankName        = declarantContact?.BankNameRu ?? "нет данных";

                var resultProducts = new List <OBK_RS_Products>();
                foreach (var product in products)
                {
                    var prod = new OBK_RS_Products();
                    prod.Id             = product.Id;
                    prod.NameRu         = product.NameRu;
                    prod.NameKz         = product.NameKz;
                    prod.ProducerNameRu = product.ProducerNameRu;
                    prod.ProducerNameKz = product.ProducerNameKz;
                    prod.CountryNameRu  = product.CountryNameRu;
                    prod.CountryNameKZ  = product.CountryNameKZ;
                    prod.TnvedCode      = product.TnvedCode;
                    prod.KpvedCode      = product.KpvedCode;
                    prod.Price          = product.Price;
                    foreach (var productSeries in product.OBK_Procunts_Series)
                    {
                        var prodSeries = new OBK_Procunts_Series();
                        prodSeries.Id                = productSeries.Id;
                        prodSeries.Series            = productSeries.Series;
                        prodSeries.SeriesStartdate   = productSeries.SeriesStartdate;
                        prodSeries.SeriesEndDate     = productSeries.SeriesEndDate;
                        prodSeries.SeriesParty       = productSeries.SeriesParty;
                        prodSeries.SeriesShortNameRu = productSeries.sr_measures.short_name;
                        prod.OBK_Procunts_Series.Add(prodSeries);
                    }
                    resultProducts.Add(prod);
                }
                model.ObkRsProductses = resultProducts;
            }
            else
            {
                var countries = safetyRepository.GetCounties();
                ViewData["Counties"] = new SelectList(countries, "Id", "Name");

                //Валюта
                var currency = safetyRepository.GetObkCurrencies();
                ViewData["Courrency"] = new SelectList(currency, "Id", "Name");

                var repository = new ReadOnlyDictionaryRepository();
                //Наличие сертификата GMP
                var booleans = repository.GetCertificateGMPCheck();
                ViewData["IsGMPList"] = new SelectList(booleans, "CertificateGMPCheck", "NameRu",
                                                       model.CertificateGMPCheck);

                var certType = safetyRepository.GetCertificateType();
                ViewData["CertificateType"] = new SelectList(certType, "Id", "NameRu");

                //организационная форма
                var orgForm = safetyRepository.GetOrganizationForm();
                ViewData["OrganizationForm"] = new SelectList(orgForm, "Id", "Name");
            }
        }
Example #26
0
        public void SetDrugReestr(Guid modelId, long dosageId, int?reestrId)
        {
            var drugTypes = new Dictionary <int, int>();

            drugTypes.Add(1, 1);   //Лекарственный препарат
            drugTypes.Add(2, 2);   //Иммунобиологический препарат
            drugTypes.Add(3, 3);   //Лекарственное растительное сырье (сборы)
            drugTypes.Add(4, 4);   //Гомеопатический препарат
            drugTypes.Add(6, 5);   //Лекарственная субстанция
            drugTypes.Add(7, 6);   //Лекарственный балк-продукт
            drugTypes.Add(8, 7);   //Иммунобиологический балк-продукт
            drugTypes.Add(9, 8);   //Радиопрепарат
            drugTypes.Add(10, 9);  //Не фармакопейное лекарственное растительное сырье
            drugTypes.Add(11, 10); //Лекарственный препарат биологического происхождения

            var monufactureType = new Dictionary <int, string>();

            monufactureType.Add(1, "1");  //Производитель
            monufactureType.Add(2, "2");  //Держатель лицензии
                                          //            monufactureType.Add(3, "1"); //Дистрибьютор
            monufactureType.Add(4, "4");  //Предприятие-упаковщик
            monufactureType.Add(5, "5");  //Заявитель
                                          //            monufactureType.Add(6, "1"); //Производитель субстанции
                                          //            monufactureType.Add(7, "1"); //Разработчик
                                          //            monufactureType.Add(8, "3"); //Владелец регистрационного удостоверения
            monufactureType.Add(9, "7");  //Выпускающий контроль
            monufactureType.Add(10, "3"); //Держатель регистрационного удостоверения

            var model = AppContext.EXP_DrugDeclaration.FirstOrDefault(e => e.Id == modelId);

            if (model == null)
            {
                return;
            }
            var drug   = new ExternalRepository().GEtRegisterDrugById(reestrId);
            var reestr = new ExternalRepository().GetReestrById(reestrId.Value);

            if (!string.IsNullOrEmpty(model.NameRu))
            {
                model.NameRu = reestr.name;
            }
            if (!string.IsNullOrEmpty(model.NameKz))
            {
                model.NameKz = reestr.name_kz;
            }
            if (!string.IsNullOrEmpty(model.ConcentrationRu))
            {
                model.ConcentrationRu = drug.concentration;
            }
            if (!string.IsNullOrEmpty(model.ConcentrationKz))
            {
                model.ConcentrationKz = drug.concentration_kz;
            }
            if (model.AtxId == null)
            {
                model.AtxId = drug.atc_id;
            }
            if (model.MnnId == null)
            {
                model.MnnId = drug.int_name_id;
            }
            if (model.DrugFormId == null)
            {
                model.DrugFormId = drug.dosage_form_id;
            }

            if (drugTypes.ContainsKey(drug.drug_type_id))
            {
                if (model.EXP_DrugType.Count == 0)
                {
                    var type = new EXP_DrugType();
                    type.DrugTypeId = drugTypes[drug.drug_type_id];
                    model.EXP_DrugType.Add(type);
                }
                else
                {
                    model.EXP_DrugType.First().DrugTypeId = drugTypes[drug.drug_type_id];
                }
            }
            if (drug.sr_register_use_methods.Count > 0)
            {
                var usemethod = model.EXP_DrugUseMethod.Select(e => e.UseMethodsId) ?? new List <int>();
//                AppContext.EXP_DrugUseMethod.RemoveRange(model.EXP_DrugUseMethod);
                foreach (var drugSrRegisterUseMethod in drug.sr_register_use_methods)
                {
                    if (!usemethod.Contains(drugSrRegisterUseMethod.use_method_id))
                    {
                        var useMethod = new EXP_DrugUseMethod {
                            UseMethodsId = drugSrRegisterUseMethod.use_method_id
                        };
                        model.EXP_DrugUseMethod.Add(useMethod);
                    }
                }
            }
            var repository          = new ReadOnlyDictionaryRepository();
            var orgManufactureTypes = repository.GetDictionaries(CodeConstManager.DIC_ORG_MANUFACTURE_TYPE);
            var countyDics          = repository.GetDictionaries(CodeConstManager.DIC_COUNTRY_TYPE).OrderBy(x => x.Name);

            if (reestr.sr_register_producers.Count > 0)
            {
                AppContext.EXP_DrugOrganizations.RemoveRange(model.EXP_DrugOrganizations);
                foreach (var registerProducer in reestr.sr_register_producers)
                {
                    var producer = new EXP_DrugOrganizations();
                    if (registerProducer.sr_producers != null)
                    {
                        producer.NameRu = registerProducer.sr_producers.name;
                        producer.NameEn = registerProducer.sr_producers.name_eng;
                        producer.NameKz = registerProducer.sr_producers.name_kz;
                        producer.Bin    = registerProducer.sr_producers.bin;

                        if (monufactureType.ContainsKey(registerProducer.sr_producers.type_id))
                        {
                            var orgManufactureType =
                                orgManufactureTypes.FirstOrDefault(
                                    e => e.Code == monufactureType[registerProducer.sr_producers.type_id]);
                            if (orgManufactureType != null)
                            {
                                producer.OrgManufactureTypeDicId = orgManufactureType.Id;
                            }
                        }
                    }
                    if (registerProducer.sr_countries != null)
                    {
                        var country =
                            countyDics.FirstOrDefault(
                                e => e.Name.ToLower() == registerProducer.sr_countries.name.ToLower());
                        if (country != null)
                        {
                            producer.CountryDicId = country.Id;
                        }
                    }
                    model.EXP_DrugOrganizations.Add(producer);
                }
            }
            if (reestr.sr_register_substances.Count > 0)
            {
                EXP_DrugDosage dosage;
                if (dosageId == 0)
                {
                    dosage = new EXP_DrugDosage
                    {
                        ConcentrationRu = drug.concentration,
                        ConcentrationKz = drug.concentration_kz,
                    };
                }
                else
                {
                    dosage = AppContext.EXP_DrugDosage.FirstOrDefault(e => e.Id == dosageId);
                    AppContext.EXP_DrugSubstance.RemoveRange(dosage.EXP_DrugSubstance);
                    AppContext.EXP_DrugPrice.RemoveRange(dosage.EXP_DrugPrice);
                    AppContext.EXP_DrugWrapping.RemoveRange(dosage.EXP_DrugWrapping);
                }

                /*  foreach (var expDrugDosage in model.EXP_DrugDosage)
                 * {
                 *    AppContext.EXP_DrugSubstance.RemoveRange(expDrugDosage.EXP_DrugSubstance);
                 *    AppContext.EXP_DrugPrice.RemoveRange(expDrugDosage.EXP_DrugPrice);
                 *    AppContext.EXP_DrugWrapping.RemoveRange(expDrugDosage.EXP_DrugWrapping);
                 * }
                 * AppContext.EXP_DrugDosage.RemoveRange(model.EXP_DrugDosage);
                 */

                if (drug.dosage_value != null)
                {
                    dosage.Dosage = drug.dosage_value.Value;
                }
                dosage.DosageMeasureTypeId = drug.dosage_measure_id;
                dosage.RegisterId          = reestrId;

                foreach (var reestrSrRegisterSubstance in reestr.sr_register_substances)
                {
                    var substance = new EXP_DrugSubstance
                    {
                        SubstanceId     = reestrSrRegisterSubstance.substance_id,
                        SubstanceTypeId = reestrSrRegisterSubstance.substance_type_id,
                        CountryId       = reestrSrRegisterSubstance.country_id,
                        MeasureId       = reestrSrRegisterSubstance.measure_id
                    };
                    if (reestrSrRegisterSubstance.substance_count != null)
                    {
                        substance.SubstanceCount = reestrSrRegisterSubstance.substance_count.ToString();
                    }
                    dosage.EXP_DrugSubstance.Add(substance);
                }

                foreach (var registerBoxes in reestr.sr_register_boxes)
                {
                    var wrapping = new EXP_DrugWrapping()
                    {
                        WrappingKindId  = registerBoxes.box_id,
                        VolumeMeasureId = registerBoxes.volume_measure_id,
                        CountUnit       = registerBoxes.unit_count,
                        Note            = registerBoxes.description,
                    };

                    if (registerBoxes.volume != null)
                    {
                        wrapping.WrappingVolume = double.Parse(registerBoxes.volume.ToString());
                    }
                    if (!string.IsNullOrEmpty(registerBoxes.box_size))
                    {
                        double size;
                        if (double.TryParse(registerBoxes.box_size, out size))
                        {
                            wrapping.WrappingSize = size;
                        }
                    }
                    dosage.EXP_DrugWrapping.Add(wrapping);
                }
                if (dosage.Id == 0)
                {
                    model.EXP_DrugDosage.Add(dosage);
                }
            }
            try
            {
                AppContext.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Example #27
0
        /// <summary>
        /// подача заявления
        /// </summary>
        /// <returns></returns>
        public ActionResult Create(string type)
        {
            var model = new OBK_AssessmentDeclaration
            {
                Id              = Guid.NewGuid(),
                EmployeeId      = UserHelper.GetCurrentEmployee().Id,
                StatusId        = CodeConstManager.STATUS_DRAFT_ID,
                ObkContracts    = new OBK_Contract(),
                ObkRsProductses = new List <OBK_RS_Products>()
            };

            model.CertificateDate = null;
            model.CreatedDate     = DateTime.Now;

            var safetyRepository = new SafetyAssessmentRepository(false);

            if (type == CodeConstManager.OBK_SA_SERIAL)
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu",
                                                      model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_SERIAL).Id);
            }
            if (type == CodeConstManager.OBK_SA_PARTY)
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu",
                                                      model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_PARTY).Id);
            }
            if (type == CodeConstManager.OBK_SA_DECLARATION)
            {
                ViewData["TypeList"] = new SelectList(safetyRepository.GetObkRefTypes(), "Id", "NameRu",
                                                      model.Type_Id = safetyRepository.GetObkRefTypes(CodeConstManager.OBK_SA_DECLARATION).Id);
            }

            ViewData["ContractList"] =
                new SelectList(safetyRepository.GetActiveContractListWithInfo(model.EmployeeId, safetyRepository.GetObkRefTypes(type).Id), "Id",
                               "ContractInfo", model.Contract_Id);

            var repository = new ReadOnlyDictionaryRepository();

            //огранизационная форма
            var orgForm = safetyRepository.GetOrganizationForm();

            ViewData["OrganizationForm"] = new SelectList(orgForm, "Id", "Name");

            var certType = safetyRepository.GetCertificateType();

            ViewData["CertificateType"] = new SelectList(certType, "Id", "NameRu");

            //Наличие сертификата GMP
            var booleans = repository.GetCertificateGMPCheck();

            ViewData["IsGMPList"] = new SelectList(booleans, "CertificateGMPCheck", "NameRu", model.CertificateGMPCheck);

            //справочник стран
            var countries = safetyRepository.GetCounties();

            ViewData["Counties"] = new SelectList(countries, "Id", "Name");

            //Валюта
            var currency = safetyRepository.GetObkCurrencies();

            ViewData["Courrency"] = new SelectList(currency, "Id", "Name");

            return(View(model));
        }