public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { if (!Sungero.RecordManagement.Functions.AcquaintanceTask.ValidateAcquaintanceTaskStart(_obj, e)) { return; } }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { Docflow.PublicFunctions.Module.ValidateTaskAuthor(_obj, e); var assignmentsDeadLine = 1; _obj.MaxDeadline = Calendar.Now.AddWorkingDays(assignmentsDeadLine); // Проверить заполненность причины продления срока. if (string.IsNullOrWhiteSpace(_obj.ActiveText)) { e.AddError(DeadlineExtensionTasks.Resources.SpecifyReason); } // Проверить корректность срока. if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.NewDeadline, Calendar.Now)) { e.AddError(_obj.Info.Properties.NewDeadline, RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday); } // Новый срок поручения должен быть больше старого. if (e.IsValid && !Docflow.PublicFunctions.Module.CheckDeadline(_obj.NewDeadline, _obj.CurrentDeadline)) { e.AddError(_obj.Info.Properties.NewDeadline, DeadlineExtensionTasks.Resources.DesiredDeadlineIsNotCorrect); } // Заполнить первоначальную причину и причину. _obj.PrimaryReason = _obj.ActiveText; _obj.Reason = _obj.ActiveText; // Выдать права на изменение для возможности прекращения задачи. Functions.ActionItemExecutionTask.GrantAccessRightToTask(_obj, _obj); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { Sungero.Docflow.Functions.DeadlineExtensionTask.ValidateDeadlineExtensionTaskStart(_obj, e); var assignmentsDeadLine = 1; _obj.MaxDeadline = Calendar.Now.AddWorkingDays(_obj.Assignee, assignmentsDeadLine); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { if (!Sungero.Docflow.Functions.FreeApprovalTask.ValidateFreeApprovalTaskStart(_obj, e)) { return; } Functions.Module.GrantReadRightsForAttachments(_obj.ForApprovalGroup.All.Concat(_obj.AddendaGroup.All).ToList(), _obj.Observers.Select(o => o.Observer).ToList()); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { Docflow.PublicFunctions.Module.ValidateTaskAuthor(_obj, e); // Проверить корректность срока. if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Assignee, _obj.MaxDeadline, Calendar.Now)) { e.AddError(_obj.Info.Properties.MaxDeadline, RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday); } // Выдать права на изменение для возможности прекращения задачи. Functions.ActionItemExecutionTask.GrantAccessRightToTask(_obj, _obj); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { if (!Sungero.RecordManagement.Functions.DocumentReviewTask.ValidateDocumentReviewTaskStart(_obj, e)) { return; } // Выдать права группе регистрации документа. var document = _obj.DocumentForReviewGroup.OfficialDocuments.FirstOrDefault(); if (document.DocumentRegister != null) { var registrationGroup = document.DocumentRegister.RegistrationGroup; if (registrationGroup != null) { _obj.AccessRights.Grant(registrationGroup, DefaultAccessRightsTypes.Change); } } Docflow.PublicFunctions.Module.GrantReadRightsForAttachments(_obj.DocumentForReviewGroup.All .Concat(_obj.AddendaGroup.All).ToList(), _obj.ResolutionObservers.Select(o => o.Observer)); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { var document = _obj.DocumentGroup.OfficialDocuments.FirstOrDefault(); if (document == null) { return; } if (!Sungero.Docflow.Functions.ApprovalTask.ValidateApprovalTaskStart(_obj, e)) { return; } var refreshParameters = Functions.ApprovalTask.GetStagesInfoForRefresh(_obj); // Могли измениться условия, влияющие на обязательность полей. Functions.ApprovalTask.SetRequiredProperties(_obj, refreshParameters); // Сбросить номер текущего этапа при старте и рестарте. _obj.StageNumber = null; // Апнуть Iteration. _obj.Iteration++; // Выдать наблюдателям права на просмотр. Functions.Module.GrantReadRightsForAttachments(_obj.DocumentGroup.All.Concat(_obj.AddendaGroup.All).ToList(), _obj.Observers.Select(o => o.Observer).ToList()); // Обновить обязательных согласующих. Functions.ApprovalTask.UpdateReglamentApprovers(_obj, _obj.ApprovalRule); // Развернуть дополнительных согласующих. var expandedAddApprovers = new List <IRecipient>(); _obj.AddApproversExpanded.Clear(); foreach (var addApprover in _obj.AddApprovers.Select(a => a.Approver).ToList()) { if (!Groups.Is(addApprover)) { expandedAddApprovers.Add(addApprover); } else { var employees = Groups.GetAllUsersInGroup(Groups.As(addApprover)) .Where(r => r.Status == CoreEntities.DatabookEntry.Status.Active) .Select(r => Recipients.As(r)); expandedAddApprovers.AddRange(employees); } } foreach (var addApproverEx in expandedAddApprovers.Distinct().ToList()) { _obj.AddApproversExpanded.AddNew().Approver = addApproverEx; } // Заполнить deliveryMethod документа значением из задачи. var outgoingDocument = OutgoingDocumentBases.As(document); if (_obj.State.Properties.DeliveryMethod.IsVisible == true && outgoingDocument != null && outgoingDocument.IsManyAddressees != true) { document.DeliveryMethod = _obj.DeliveryMethod; } // Заполнить статус согласования документа на момент старта задачи. _obj.DocumentExternalApprovalState = document.ExternalApprovalState ?? ApprovalTask.DocumentExternalApprovalState.Empty; // Сбросить значение свойства "Исполнитель этапа не определен". _obj.IsStageAssigneeNotFound = false; }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { // Если задача была стартована через UI, то проверяем корректность срока. bool startedFromUI; if (e.Params.TryGetValue(PublicConstants.ActionItemExecutionTask.CheckDeadline, out startedFromUI) && startedFromUI) { e.Params.Remove(PublicConstants.ActionItemExecutionTask.CheckDeadline); } if (!Functions.ActionItemExecutionTask.ValidateActionItemExecutionTaskStart(_obj, e, startedFromUI)) { return; } // Задать текст в переписке. if (_obj.IsCompoundActionItem == true) { _obj.ActiveText = string.IsNullOrEmpty(_obj.ActionItem) ? Sungero.RecordManagement.ActionItemExecutionTasks.Resources.DefaultActionItem : _obj.ActionItem; _obj.ThreadSubject = Sungero.RecordManagement.ActionItemExecutionTasks.Resources.CompoundActionItemThreadSubject; } else if (_obj.ActionItemType != ActionItemType.Component) { _obj.ThreadSubject = Sungero.RecordManagement.ActionItemExecutionTasks.Resources.ActionItemThreadSubject; } if (_obj.ActionItemType == ActionItemType.Component) { _obj.ActiveText = _obj.ActionItem; // При рестарте поручения обновляется текст, срок и исполнитель в табличной части составного поручения. var actionItem = ActionItemExecutionTasks.As(_obj.ParentTask).ActionItemParts.FirstOrDefault(s => Equals(s.ActionItemPartExecutionTask, _obj)); // Обновить текст поручения, если изменен индивидуальный текст или указан общий текст вместо индивидуального. if (actionItem.ActionItemExecutionTask.ActionItem != _obj.ActionItem && actionItem.ActionItemPart != _obj.ActionItem || actionItem.ActionItemExecutionTask.ActionItem == _obj.ActionItem && !string.IsNullOrEmpty(actionItem.ActionItemPart)) { actionItem.ActionItemPart = _obj.ActionItem; } // Обновить срок поручения, если изменен индивидуальный срок или указан общий срок вместо индивидуального. if (actionItem.ActionItemExecutionTask.FinalDeadline != _obj.Deadline && actionItem.Deadline != _obj.Deadline || actionItem.ActionItemExecutionTask.FinalDeadline == _obj.Deadline && actionItem.Deadline.HasValue) { actionItem.Deadline = _obj.Deadline; } // Обновить исполнителя, если он изменен при рестарте. if (actionItem.ActionItemExecutionTask.Assignee != _obj.Assignee && actionItem.Assignee != _obj.Assignee) { actionItem.Assignee = _obj.Assignee; } } if (_obj.ActionItemType == ActionItemType.Additional) { _obj.ActiveText = ActionItemExecutionTasks.Resources.SentToCoAssignee; } // Выдать права на изменение для возможности прекращения задачи. Functions.ActionItemExecutionTask.GrantAccessRightToTask(_obj, _obj); if (_obj.IsDraftResolution == true && !_obj.DocumentsGroup.OfficialDocuments.Any()) { if (ReviewDraftResolutionAssignments.Is(_obj.ParentAssignment)) { _obj.DocumentsGroup.OfficialDocuments.Add(ReviewDraftResolutionAssignments.As(_obj.ParentAssignment).DocumentForReviewGroup.OfficialDocuments.FirstOrDefault()); } else { _obj.DocumentsGroup.OfficialDocuments.Add(PreparingDraftResolutionAssignments.As(_obj.ParentAssignment).DocumentForReviewGroup.OfficialDocuments.FirstOrDefault()); } } }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { Docflow.PublicFunctions.Module.ValidateTaskAuthor(_obj, e); }
public override void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e) { _obj.ThreadSubject = Sungero.SmartProcessing.Resources.VerificationTaskThreadSubject; }