public virtual void PrintActionItem(Sungero.Domain.Client.ExecuteActionArgs e) { var report = Reports.GetActionItemPrintReport(); report.Task = ActionItemExecutionTasks.As(_obj.Task); report.Assignment = ActionItemExecutionAssignments.As(_obj); report.Open(); }
private void CheckDeadline(Sungero.Presentation.DateTimeValueInputEventArgs e, IUser user) { var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(user, e.NewValue); if (!string.IsNullOrEmpty(warnMessage)) { e.AddWarning(warnMessage); } // Предупреждение на установку даты больше даты основного поручения. var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment); if (parentAssignment != null && Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, parentAssignment.Deadline)) { e.AddWarning(ActionItemExecutionTasks.Resources.DeadlineSubActionItemExecutionFormat(parentAssignment.Deadline.Value.ToUserTime().ToShortDateString())); } _obj.State.Controls.Control.Refresh(); }
public virtual IQueryable <T> AssigneeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { e.DisableUiFiltering = true; var parentTask = ActionItemExecutionTasks.As(_obj.ParentTask); var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment); if (parentTask != null) { query = parentTask.IsCompoundActionItem ?? false? query.Where(u => Functions.ActionItemExecutionTask.GetActionItemsPerformers(parentTask).Contains(u)) : query.Where(u => u.Equals(parentTask.Assignee)); } if (parentAssignment != null) { query = query.Where(u => Functions.ActionItemExecutionAssignment.GetActionItemsAssignees(parentAssignment).Contains(u)); } return(query); }
public virtual void AssigneeChanged(Sungero.RecordManagement.Shared.StatusReportRequestTaskAssigneeChangedEventArgs e) { var parentTask = ActionItemExecutionTasks.As(_obj.ParentTask); var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment); IActionItemExecutionTask newParentTask = null; IActionItemExecutionAssignment newParentAssignment = null; if (e.NewValue != null) { // Определить исполняемое выбранным сотрудником поручение, если отправляем запрос из задачи. if (parentTask != null) { if (parentTask.IsCompoundActionItem.Value) { var assignment = Functions.ActionItemExecutionTask.Remote.GetActionItems(parentTask) .Where(j => Equals(j.Performer, e.NewValue)) .Where(a => ActionItemExecutionTasks.Is(a.Task)) .First(); newParentTask = ActionItemExecutionTasks.As(assignment.Task); } else { newParentTask = parentTask; } } // Определить исполняемое выбранным сотрудником поручение, если отправляем запрос из задания. if (parentAssignment != null) { newParentAssignment = Functions.ActionItemExecutionAssignment.Remote.GetActionItems(parentAssignment) .First(j => Equals(j.Performer, e.NewValue)); } // Обновить тему. _obj.Subject = Functions.ActionItemExecutionTask.GetActionItemExecutionSubject(newParentTask ?? ActionItemExecutionTasks.As(newParentAssignment.Task), StatusReportRequestTasks.Resources.ReportRequestTaskSubject); } else { _obj.Subject = Functions.ActionItemExecutionTask.GetActionItemExecutionSubject(parentTask ?? ActionItemExecutionTasks.As(parentAssignment.Task), StatusReportRequestTasks.Resources.ReportRequestTaskSubject); } }
public virtual void CompleteAssignment4(Sungero.RecordManagement.IActionItemExecutionAssignment assignment, Sungero.RecordManagement.Server.ActionItemExecutionAssignmentArguments e) { // Переписка. _obj.Report = assignment.ActiveText; // Завершить задание на продление срока, если оно есть. var extendDeadlineTasks = DeadlineExtensionTasks.GetAll(j => Equals(j.ParentAssignment, assignment) && j.Status == Workflow.Task.Status.InProcess); foreach (var extendDeadlineTask in extendDeadlineTasks) { extendDeadlineTask.Abort(); } // Завершить задание на продление срока, если оно есть. var newExtendDeadlineTasks = Docflow.DeadlineExtensionTasks.GetAll(j => Equals(j.ParentAssignment, assignment) && j.Status == Workflow.Task.Status.InProcess); foreach (var newExtendDeadlineTask in newExtendDeadlineTasks) { newExtendDeadlineTask.Abort(); } // Завершить задание на запрос отчёта, если оно есть. var reportRequestTasks = StatusReportRequestTasks.GetAll(r => Equals(r.ParentTask, assignment.Task) && r.Status == Workflow.Task.Status.InProcess); foreach (var reportRequestTask in reportRequestTasks) { reportRequestTask.Abort(); } // Рекурсивно прекратить подзадачи. if (assignment.NeedAbortChildActionItems ?? false) { Functions.Module.AbortSubtasksAndSendNotices(_obj, assignment.Performer, ActionItemExecutionTasks.Resources.AutoAbortingReason); } // Добавить документы из группы "Результаты исполнения" соисполнителя в группу основновного поручения. if (_obj.ActionItemType == ActionItemType.Additional) { var parentActionItem = ActionItemExecutionTasks.As(_obj.ParentAssignment.Task); if (parentActionItem != null) { var documentGroup = parentActionItem.ResultGroup.OfficialDocuments; foreach (var document in _obj.ResultGroup.OfficialDocuments) { if (!documentGroup.Contains(document)) { documentGroup.Add(document); } } // Выдать права на вложенные документы. Functions.ActionItemExecutionTask.GrantRightsToAttachments(parentActionItem, parentActionItem.ResultGroup.All.ToList(), false); } } // Добавить документы из группы "Результаты исполнения" из подчиненего поручения в задание на исполнение. if (_obj.ActionItemType == ActionItemType.Main && _obj.ParentAssignment != null) { var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment); if (parentAssignment != null) { var parentActionItem = ActionItemExecutionTasks.As(parentAssignment.Task); var documentGroup = parentAssignment.ResultGroup.OfficialDocuments; foreach (var document in _obj.ResultGroup.OfficialDocuments) { if (!documentGroup.Contains(document)) { documentGroup.Add(document); } } // Выдать права на вложенные документы. Functions.ActionItemExecutionTask.GrantRightsToAttachments(parentActionItem, parentActionItem.ResultGroup.All.ToList(), false); } } // Выдать права на вложенные документы. Functions.ActionItemExecutionTask.GrantRightsToAttachments(_obj, _obj.ResultGroup.All.ToList(), false); // Связать документы из группы "Результаты исполнения" с основным документом. var mainDocument = _obj.DocumentsGroup.OfficialDocuments.FirstOrDefault(); if (mainDocument != null) { foreach (var document in _obj.ResultGroup.OfficialDocuments.Where(d => !Equals(d, mainDocument))) { document.Relations.AddFrom(Constants.Module.SimpleRelationRelationName, mainDocument); document.Save(); } } }