public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var contractRepository = new ContractRepository(_context);

            contractRepository.SendToRegistration(documentId);
            _context.SaveChanges();
        }
Beispiel #2
0
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var letter         = _context.EXP_DrugCorespondence.FirstOrDefault(e => e.Id == documentId);
            var positiveStatus = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                 Dictionary.ExpActivityStatus.Executed);

            if (activity.StatusId == positiveStatus)
            {
                //letter.StatusId = DictionaryHelper.GetDicIdByCode(CodeConstManager.STATUS_AGREED, CodeConstManager.STATUS_AGREED);
                var stageRepo       = new ExpertiseStageRepository(_context);
                var stageSupervisor = stageRepo.GetStageSupervisor(letter.StageId, letter.EXP_DrugDeclaration.TypeId);
                var activityManager = new ActivityManager(_context);
                activityManager.SendToExecution(Dictionary.ExpActivityType.ExpertiseLetterSigning, letter.Id,
                                                Dictionary.ExpAgreedDocType.Letter, Dictionary.ExpTaskType.Signing,
                                                letter.NumberLetter, letter.DateCreate, stageSupervisor.Id);
            }
            else
            {
                letter.StatusId =
                    DictionaryHelper.GetDicIdByCode(CodeConstManager.STATUS_REJECTED, CodeConstManager.STATUS_REJECTED);
                if (letter.EXP_DIC_CorespondenceSubject.Code == EXP_DIC_CorespondenceSubject.RefuseByPayment)
                {
                    var declaration =
                        _context.EXP_DrugDeclaration.FirstOrDefault(e => e.Id == letter.DrugDeclarationId);
                    declaration.StatusId = CodeConstManager.STATUS_EXP_SEND_ID;
                }
            }
        }
Beispiel #3
0
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var letter         = _context.EXP_DrugCorespondence.FirstOrDefault(e => e.Id == documentId);
            var declaration    = _context.EXP_DrugDeclaration.FirstOrDefault(e => e.Id == letter.DrugDeclarationId);
            var positiveStatus = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                 Dictionary.ExpActivityStatus.Executed);

            if (activity.StatusId == positiveStatus)
            {
                letter.StatusId =
                    DictionaryHelper.GetDicIdByCode(CodeConstManager.STATUS_SIGNED, CodeConstManager.STATUS_SIGNED);
                if (letter.EXP_DIC_CorespondenceSubject.Code == EXP_DIC_CorespondenceSubject.RefuseByPayment)
                {
                    var stageRepo = new ExpertiseStageRepository(_context);
                    var stage     = stageRepo.GetStage(declaration.Id, CodeConstManager.STAGE_PRIMARY);
                    stageRepo.RefuseExpertise(stage.Id, false);
                }
            }
            else
            {
                letter.StatusId =
                    DictionaryHelper.GetDicIdByCode(CodeConstManager.STATUS_REJECTED, CodeConstManager.STATUS_REJECTED);
                if (letter.EXP_DIC_CorespondenceSubject.Code == EXP_DIC_CorespondenceSubject.RefuseByPayment)
                {
                    declaration.StatusId = CodeConstManager.STATUS_EXP_SEND_ID;
                }
            }
        }
Beispiel #4
0
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var contract = _context.Contracts.FirstOrDefault(e => e.Id == documentId);

            contract.StatusId = DictionaryHelper.GetDicIdByCode(Dictionary.ContractStatus.DicCode,
                                                                Contract.StatusOnAgreement);
            _context.SaveChanges();
        }
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var contract      = _context.Contracts.FirstOrDefault(e => e.Id == documentId);
            var contractOwner = _context.Employees.FirstOrDefault(e => e.Id == contract.OwnerId);

            contract.StatusId = DictionaryHelper.GetDicIdByCode(Dictionary.ContractStatus.DicCode,
                                                                Contract.StatusOnApplicantSigningt);
            _context.SaveChanges();
            _notificationManager.SendNotification("Вам отправлен договор для подписания ЭЦП", ObjectType.Contract,
                                                  documentId, contractOwner.Id, contractOwner.Email);
        }
Beispiel #6
0
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var letter = _context.EXP_DrugCorespondence.FirstOrDefault(e => e.Id == documentId);

            letter.StatusId = DictionaryHelper.GetDicIdByCode(CodeConstManager.STATUS_ONAGREEMENT, CodeConstManager.STATUS_ONAGREEMENT);
            var task = activity.EXP_Tasks.FirstOrDefault();

            _context.SaveChanges();
            var notificationManager = new NotificationManager();

            notificationManager.SendNotification("Вам поступило письмо на согласование", ObjectType.Letter, documentId, task.ExecutorId);
        }
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var directionToPay = _context.EXP_DirectionToPays.FirstOrDefault(e => e.Id == documentId);

            if (directionToPay != null)
            {
                directionToPay.StatusId = DictionaryHelper.GetDicIdByCode(Dictionary.ExpDirectionToPayStatus.DicCode,
                                                                          Dictionary.ExpDirectionToPayStatus.OnAgreement);
            }

            _context.SaveChanges();
        }
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var coc = _context.EXP_CertificateOfCompletion.FirstOrDefault(e => e.Id == documentId);

            if (coc != null)
            {
                coc.StatusId = DictionaryHelper.GetDicIdByCode(Dictionary.CertificateOfCompletionStatusDic.DicCode,
                                                               Dictionary.CertificateOfCompletionStatusDic.OnAgreement);
                coc.SendDate = DateTime.Now;
            }

            _context.SaveChanges();
        }
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var letter         = _context.FileLinks.FirstOrDefault(e => e.Id == documentId);
            var positiveStatus = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                 Dictionary.ExpActivityStatus.Executed);

            if (activity.StatusId == positiveStatus)
            {
                letter.DIC_FileLinkStatus = _context.DIC_FileLinkStatus.FirstOrDefault(e => e.Code == AGREED_CODE);
            }
            else
            {
                letter.DIC_FileLinkStatus = _context.DIC_FileLinkStatus.FirstOrDefault(e => e.Code == REFUSED_CODE);
            }
        }
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var document       = _context.EXP_ExpertiseStageDosage.FirstOrDefault(e => e.Id == documentId);
            var positiveStatus = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                 Dictionary.ExpActivityStatus.Executed);

            if (activity.StatusId == positiveStatus)
            {
                document.FinalDocStatusId = DictionaryHelper.GetDicIdByCode(Dictionary.EXP_DocumentStatus.DicCode,
                                                                            Dictionary.EXP_DocumentStatus.StatusApproved);
            }
            else
            {
                document.FinalDocStatusId = DictionaryHelper.GetDicIdByCode(Dictionary.EXP_DocumentStatus.DicCode,
                                                                            Dictionary.EXP_DocumentStatus.StatusRejected);
            }
        }
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var document = _context.EXP_ExpertiseStageDosage.FirstOrDefault(e => e.Id == documentId);

            document.FinalDocStatusId = DictionaryHelper.GetDicIdByCode(Dictionary.EXP_DocumentStatus.DicCode,
                                                                        Dictionary.EXP_DocumentStatus.StatusOnAgreement);
            var documentType      = DictionaryHelper.GetDicItemById(activity.DocumentTypeId);
            var task              = activity.EXP_Tasks.FirstOrDefault();
            var agreementTaskType = DictionaryHelper.GetDicItemById(task.TypeId);
            var taskTypeName      = agreementTaskType.Code == Dictionary.ExpTaskType.Agreement ? "на согласование" : "для утверждения";

            _context.SaveChanges();
            var notificationText    = string.Format("К вам поступил \"{0}\" {1}", documentType.Name, taskTypeName);
            var notificationManager = new NotificationManager();

            notificationManager.SendNotification(notificationText, ObjectType.PrimaryFinalDoc, documentId, task.ExecutorId);
        }
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var directionToPay = _context.EXP_DirectionToPays.FirstOrDefault(e => e.Id == documentId);

            if (directionToPay != null)
            {
                var positiveStatusId = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                       Dictionary.ExpActivityStatus.Executed);
                if (activity.StatusId == positiveStatusId)
                {
                    directionToPay.StatusId = DictionaryHelper.GetDicIdByCode(
                        Dictionary.ExpDirectionToPayStatus.DicCode,
                        Dictionary.ExpDirectionToPayStatus.SendedTo1C);
                }
            }

            _context.SaveChanges();
        }
        public override void ProcessStarted(Guid documentId, EXP_Activities activity)
        {
            var letter = _context.FileLinks.FirstOrDefault(e => e.Id == documentId);

            if (letter == null)
            {
                return;
            }
            var status = _context.DIC_FileLinkStatus.FirstOrDefault(e => e.Code == ON_AGREEMENT_CODE);

            letter.DIC_FileLinkStatus = status;
            var task = activity.EXP_Tasks.FirstOrDefault();

            _context.SaveChanges();
            var notificationManager = new NotificationManager();

            notificationManager.SendNotification("Вам поступило письмо на согласование", ObjectType.Translate, documentId, task.ExecutorId);
        }
        public override void ProcessComplited(Guid documentId, EXP_Activities activity)
        {
            var coc = _context.EXP_CertificateOfCompletion.FirstOrDefault(e => e.Id == documentId);

            if (coc != null)
            {
                var positiveStatusId = DictionaryHelper.GetDicIdByCode(Dictionary.ExpActivityStatus.DicCode,
                                                                       Dictionary.ExpActivityStatus.Executed);
                if (activity.StatusId == positiveStatusId)
                {
                    coc.StatusId = DictionaryHelper.GetDicIdByCode(
                        Dictionary.CertificateOfCompletionStatusDic.DicCode,
                        Dictionary.CertificateOfCompletionStatusDic.Sended);
                }
            }

            _context.SaveChanges();
        }
Beispiel #15
0
 /// <summary>
 /// на завершении процесса
 /// </summary>
 /// <param name="documentId"></param>
 /// <param name="activity"></param>
 public abstract void ProcessComplited(Guid documentId, EXP_Activities activity);
Beispiel #16
0
 public override void ProcessComplited(Guid documentId, EXP_Activities activity)
 {
 }
Beispiel #17
0
        /// <summary>
        /// Простая отправка на согласование списку исполнителей
        /// </summary>
        /// <param name="activityTypeCode"></param>
        /// <param name="docId"></param>
        /// <param name="docTypeCode"></param>
        /// <param name="docNumber"></param>
        /// <param name="docDate"></param>
        /// <param name="executors"></param>
        /// <returns></returns>
        public EXP_Activities SendToExecution(string activityTypeCode, Guid docId, string docTypeCode, string taskTypeCode, string docNumber,
                                              DateTime?docDate, params Guid[] executors)
        {
            Func <ncelsEntities, DocumentAction> docActionInitizlizer;
            var docTypeId      = _activityRepository.GetDocumentTypeIdByCode(docTypeCode);
            var documentType   = _activityRepository.GetDocumentTypeById(docTypeId.Value);
            var activityTypeId = _activityRepository.GetActivityTypeIdByCode(activityTypeCode);
            var activityType   = _activityRepository.GetActivityTypeById(activityTypeId.Value);

            _documentActions.TryGetValue(new DocumentActionTypeKey(documentType.Code, activityType.Code), out docActionInitizlizer);
            var documentAction = docActionInitizlizer != null?docActionInitizlizer(_context) : null;

            var            status   = _activityRepository.GetActivityStatusByCode();
            EXP_Activities activity = new EXP_Activities()
            {
                Id                = Guid.NewGuid(),
                Text              = activityType.Name,
                AuthorId          = UserHelper.GetCurrentEmployee().Id,
                AuthorValue       = UserHelper.GetCurrentEmployee().DisplayName,
                CreatedDate       = DateTime.Now,
                DocumentId        = docId,
                DocumentValue     = "",
                DocumentTypeId    = docTypeId.Value,
                DocumentTypeValue = "",
                TypeId            = activityTypeId.Value,
                TypeValue         = "",
                StatusId          = status.Id,
                StatusValue       = status.Code,
                DocDate           = docDate,
                DocNumber         = docNumber
            };

            _activityRepository.Insert(activity);
            Guid?parentTaskId = null;
            int  taskOrder    = 1;
            var  taskType     = _activityRepository.GetTaskStatusByCode(taskTypeCode);

            foreach (var executorId in executors)
            {
                var taskInWorkStatus  = _activityRepository.GetTaskStatusByCode(Dictionary.ExpTaskStatus.InWork);
                var taskInQueueStatus = _activityRepository.GetTaskStatusByCode(Dictionary.ExpTaskStatus.InQueue);

                EXP_Tasks task = new EXP_Tasks()
                {
                    Id             = Guid.NewGuid(),
                    Text           = taskType.Name,
                    OrderNumber    = taskOrder,
                    Number         = taskOrder.ToString(),
                    TypeId         = taskType.Id,
                    TypeValue      = string.Empty,
                    EXP_Activities = activity,
                    AuthorId       = activity.AuthorId,
                    AuthorValue    = activity.AuthorValue,
                    CreatedDate    = DateTime.Now,
                    ExecutorId     = executorId,
                    ExecutorValue  = string.Empty,
                    ParentTaskId   = parentTaskId
                };

                if (taskOrder == 1)
                {
                    task.StatusId    = taskInWorkStatus.Id;
                    task.StatusValue = taskInWorkStatus.Code;
                }
                else
                {
                    task.StatusId    = taskInQueueStatus.Id;
                    task.StatusValue = taskInQueueStatus.Code;
                }
                parentTaskId = task.Id;
                activity.EXP_Tasks.Add(task);
                taskOrder++;
            }
            _activityRepository.Save();
            if (documentAction != null)
            {
                documentAction.ProcessStarted(docId, activity);
            }
            return(activity);
        }
Beispiel #18
0
        public void CreateActivity(Guid documentId, Guid documentTypeId, Guid activityTypeId, string documentValue, string documentTypeValue, string activityTypeValue, string text, string docNumber, DateTime?docDate)
        {
            Func <ncelsEntities, DocumentAction> docActionInitizlizer;
            var documentType = _activityRepository.GetDocumentTypeById(documentTypeId);
            var activityType = _activityRepository.GetActivityTypeById(activityTypeId);

            _documentActions.TryGetValue(new DocumentActionTypeKey(documentType.Code, activityType.Code),
                                         out docActionInitizlizer);
            var documentAction = docActionInitizlizer != null?docActionInitizlizer(_context) : null;

            var settings = _activityRepository.GetSettings(documentTypeId);

            var            status   = _activityRepository.GetActivityStatusByCode();
            EXP_Activities activity = new EXP_Activities()
            {
                Id                = Guid.NewGuid(),
                Text              = text ?? activityType.Name,
                AuthorId          = UserHelper.GetCurrentEmployee().Id,
                AuthorValue       = UserHelper.GetCurrentEmployee().DisplayName,
                CreatedDate       = DateTime.Now,
                DocumentId        = documentId,
                DocumentValue     = documentValue,
                DocumentTypeId    = documentTypeId,
                DocumentTypeValue = documentTypeValue,
                TypeId            = activityTypeId,
                TypeValue         = activityTypeValue,
                StatusId          = status.Id,
                StatusValue       = status.Code,
                DocDate           = docDate,
                DocNumber         = docNumber
            };

            _activityRepository.Insert(activity);

            var activitySetting = settings.EXP_AgreementProcSettingsActivities.FirstOrDefault(a => a.ActivityTypeId == activityTypeId);

            if (activitySetting != null)
            {
                Guid?parentTaskId = null;
                foreach (var taskSetting in activitySetting.EXP_AgreementProcSettingsTasks.OrderBy(t => t.OrderNum))
                {
                    var executorId = taskSetting.ExecutorId;
                    if (taskSetting.ExecutorId == null && documentAction != null)
                    {
                        executorId = documentAction.GetExecutor(documentId, activityTypeId, taskSetting.OrderNum);
                    }

                    var taskInWorkStatus  = _activityRepository.GetTaskStatusByCode(Dictionary.ExpTaskStatus.InWork);
                    var taskInQueueStatus = _activityRepository.GetTaskStatusByCode(Dictionary.ExpTaskStatus.InQueue);

                    EXP_Tasks task = new EXP_Tasks()
                    {
                        Id             = Guid.NewGuid(),
                        Text           = text,
                        OrderNumber    = taskSetting.OrderNum,
                        Number         = taskSetting.OrderNum.ToString(),
                        TypeId         = taskSetting.TaskTypeId,
                        TypeValue      = string.Empty,
                        EXP_Activities = activity,
                        AuthorId       = activity.AuthorId,
                        AuthorValue    = activity.AuthorValue,
                        CreatedDate    = DateTime.Now,
                        ExecutorId     = executorId.Value,
                        ExecutorValue  = string.Empty,
                        ParentTaskId   = parentTaskId
                    };

                    if (taskSetting.OrderNum == 1)
                    {
                        task.StatusId = taskInWorkStatus.Id;
                        // очень важно чтобы так заполнялось. не менять !!!!
                        task.StatusValue = taskInWorkStatus.Code;
                    }
                    else
                    {
                        task.StatusId = taskInQueueStatus.Id;
                        // очень важно чтобы так заполнялось. не менять !!!!
                        task.StatusValue = taskInQueueStatus.Code;
                    }

                    parentTaskId = task.Id;

                    activity.EXP_Tasks.Add(task);
                }
            }

            _activityRepository.Save();
            if (documentAction != null)
            {
                documentAction.ProcessStarted(documentId, activity);
            }
        }