public override void ProcessComplited(Guid documentId, EXP_Activities activity) { var contractRepository = new ContractRepository(_context); contractRepository.SendToRegistration(documentId); _context.SaveChanges(); }
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; } } }
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; } } }
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); }
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(); }
/// <summary> /// на завершении процесса /// </summary> /// <param name="documentId"></param> /// <param name="activity"></param> public abstract void ProcessComplited(Guid documentId, EXP_Activities activity);
public override void ProcessComplited(Guid documentId, EXP_Activities activity) { }
/// <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); }
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); } }