示例#1
0
        public ActionResult DocumentReviewConfirm(Guid?id)
        {
            if (id == null)
            {
                return(Json("Ok!", JsonRequestBehavior.AllowGet));
            }
            var expertise = GetExpertiseStage(id);
            var model     = expertise.EXP_DrugDeclaration;

            if (model == null)
            {
                return(Json("Ok!", JsonRequestBehavior.AllowGet));
            }
            model.StatusId = CodeConstManager.STATUS_EXP_SEND_ID;
            new DrugDeclarationRepository().Update(model);
            var history = new EXP_DrugDeclarationHistory()
            {
                DateCreate        = DateTime.Now,
                DrugDeclarationId = model.Id,
                StatusId          = model.StatusId,
                UserId            = UserHelper.GetCurrentEmployee().Id,
            };

            new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            var    stageRepository = new ExpertiseStageRepository();
            string resultDescription;

            if (!stageRepository.HasStage(model.Id, CodeConstManager.STAGE_PRIMARY))
            {
                stageRepository.ToNextStage(model.Id, null, new[] { CodeConstManager.STAGE_PRIMARY }, out resultDescription);
            }

            return(Json("Ok!", JsonRequestBehavior.AllowGet));
        }
示例#2
0
 public ActionResult RejectConfirm(Guid?id, string note)
 {
     if (id != null)
     {
         var expertise = GetExpertiseStage(id);
         var model     = expertise.EXP_DrugDeclaration;
         if (model != null)
         {
             model.DesignNote = note;
             model.DesignDate = DateTime.Now;
             model.StatusId   = CodeConstManager.STATUS_REJECT_ID;
             new DrugDeclarationRepository().Update(model);
             var history = new EXP_DrugDeclarationHistory()
             {
                 DateCreate        = DateTime.Now,
                 DrugDeclarationId = model.Id,
                 StatusId          = model.StatusId,
                 UserId            = UserHelper.GetCurrentEmployee().Id,
                 Note = model.DesignNote
             };
             new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
         }
     }
     return(Json("Ok!", JsonRequestBehavior.AllowGet));
 }
示例#3
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
            }));
        }
示例#4
0
        public void RejectConfirm(Guid?id, string note, Guid guid)
        {
            var expertise           = AppContext.EXP_ExpertiseStage.FirstOrDefault(e => e.Id == id);
            var stageStatusInRework = GetStageStatusByCode(EXP_DIC_StageStatus.InReWork);

            if (expertise == null)
            {
                return;
            }
            expertise.StatusId = stageStatusInRework.Id;
            AppContext.SaveChanges();
            var model = expertise.EXP_DrugDeclaration;

            if (model != null)
            {
                model.DesignNote = note;
                model.DesignDate = DateTime.Now;
                model.StatusId   = CodeConstManager.STATUS_REJECT_ID;
                new DrugDeclarationRepository().Update(model);
                var history = new EXP_DrugDeclarationHistory()
                {
                    DateCreate        = DateTime.Now,
                    DrugDeclarationId = model.Id,
                    StatusId          = model.StatusId,
                    UserId            = UserHelper.GetCurrentEmployee().Id,
                    Note = model.DesignNote
                };
                new DrugDeclarationRepository().SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            }
        }
示例#5
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 ActionResult SignForm(string preambleId, string xmlAuditForm)
        {
            var success    = true;
            var repository = new DrugDeclarationRepository();
            var model      = repository.GetById(preambleId);

            new SignDocumentRepository().SaveSignDocument(UserHelper.GetCurrentEmployee().Id, xmlAuditForm, model);

            if (model.StatusId == CodeConstManager.STATUS_DRAFT_ID)
            {
                model.FirstSendDate = DateTime.Now;
            }

            model.StatusId = CodeConstManager.STATUS_SEND_ID;
            model.SendDate = DateTime.Now;
            model.IsSigned = true;
            var history = new EXP_DrugDeclarationHistory()
            {
                DateCreate        = DateTime.Now,
                DrugDeclarationId = model.Id,
                XmlSign           = xmlAuditForm,
                StatusId          = CodeConstManager.STATUS_SEND_ID,
                UserId            = UserHelper.GetCurrentEmployee().Id,
                Note = "Отчет предоставлен. Дата отправки:" + DateTime.Now
            };

            if (string.IsNullOrEmpty(model.Number))
            {
                //   model.Number = repository.GetAppNumber();
            }
            var indexWrapping = 1;

            foreach (var expDrugDosage in model.EXP_DrugDosage)
            {
                if (string.IsNullOrEmpty(expDrugDosage.RegNumber))
                {
                    expDrugDosage.RegNumber = model.Number + "." + indexWrapping;
                    indexWrapping++;
                }
            }
            repository.SaveOrUpdate(model, UserHelper.GetCurrentEmployee().Id);
            repository.SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            // Set Status Sended
            return(Json(new
            {
                success
            }, JsonRequestBehavior.AllowGet));
        }
        public virtual ActionResult SendNotSign(string modelId)
        {
            var repository = new DrugDeclarationRepository();
            var model      = repository.GetById(modelId);

            if (model.StatusId == CodeConstManager.STATUS_DRAFT_ID)
            {
                model.FirstSendDate = DateTime.Now;
            }

            model.StatusId = CodeConstManager.STATUS_SEND_ID;
            model.SendDate = DateTime.Now;
            model.IsSigned = false;
            var history = new EXP_DrugDeclarationHistory()
            {
                DateCreate        = DateTime.Now,
                DrugDeclarationId = model.Id,
                StatusId          = CodeConstManager.STATUS_SEND_ID,
                UserId            = UserHelper.GetCurrentEmployee().Id,
                Note = "Отчет предоставлен без подписи. Дата отправки:" + DateTime.Now
            };

            if (string.IsNullOrEmpty(model.Number))
            {
                //  model.Number = repository.GetAppNumber();
            }
            var indexWrapping = 1;

            foreach (var expDrugDosage in model.EXP_DrugDosage)
            {
                if (string.IsNullOrEmpty(expDrugDosage.RegNumber))
                {
                    expDrugDosage.RegNumber = model.Number + "." + indexWrapping;
                    indexWrapping++;
                }
            }
            repository.SaveOrUpdate(model, UserHelper.GetCurrentEmployee().Id);
            repository.SaveHisotry(history, UserHelper.GetCurrentEmployee().Id);
            return(Json(new
            {
                isSuccess = true
            }));
        }
        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;
            }
        }