public static IStatusReportRequestTask CreateStatusReportRequest(IActionItemExecutionAssignment job) { var performers = Functions.ActionItemExecutionAssignment.GetActionItemsAssignees(job).ToList(); if (!performers.Any()) { return(null); } var statusReportRequest = StatusReportRequestTasks.CreateAsSubtask(job); statusReportRequest.ActionItem = job.ActionItem; var document = job.DocumentsGroup.OfficialDocuments.FirstOrDefault(); if (document != null) { statusReportRequest.DocumentsGroup.OfficialDocuments.Add(document); } statusReportRequest.Subject = Functions.StatusReportRequestTask.GetStatusReportRequestSubject(statusReportRequest, StatusReportRequestTasks.Resources.ReportRequestTaskSubject); statusReportRequest.ActiveText = StatusReportRequestTasks.Resources.ReportFromJob; if (performers.Count == 1) { statusReportRequest.Assignee = Company.Employees.As(performers.First()); } statusReportRequest.Author = job.Performer; return(statusReportRequest); }
public static List <IActionItemExecutionTask> GetSubActionItemExecution(IActionItemExecutionAssignment entity) { return(ActionItemExecutionTasks .GetAll() .Where(j => j.Status.Value == Workflow.Task.Status.InProcess) .Where(j => j.ActionItemType == ActionItemType.Additional) .Where(j => j.ParentAssignment == entity) .ToList()); }
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); } }
/// <summary> /// Получить пояснение к заданию. /// </summary> /// <param name="assignment">Задание.</param> /// <returns>Пояснение.</returns> private static string GetDescription(IActionItemExecutionAssignment assignment) { var description = string.Empty; var mainTask = ActionItemExecutionTasks.As(assignment.Task); if (mainTask == null) { return(description); } var supervisor = mainTask.Supervisor; if (supervisor != null) { description += (mainTask.ActionItemType == ActionItemType.Additional) ? RecordManagement.ActionItemExecutionTasks.Resources.OnControlWithResponsibleFormat(Sungero.Company.PublicFunctions.Employee.GetShortName(supervisor, false).TrimEnd('.')) : RecordManagement.ActionItemExecutionTasks.Resources.OnControlFormat(Sungero.Company.PublicFunctions.Employee.GetShortName(supervisor, false).TrimEnd('.')); } if (mainTask.ActionItemType == ActionItemType.Additional) { description += RecordManagement.ActionItemExecutionTasks.Resources.YouAreAdditionalAssignee; } else { if (mainTask.ActionItemType == ActionItemType.Main && mainTask.CoAssignees.Any() && !mainTask.CoAssignees.Any(ca => Equals(ca.Assignee, assignment.Performer))) { description += RecordManagement.ActionItemExecutionTasks.Resources.YouAreResponsibleAssignee; } else { description += RecordManagement.ActionItemExecutionTasks.Resources.YouAreAssignee; } } return(description); }
public static Sungero.Core.StateView GetActionItemExecutionAssignmentStateView(IActionItemExecutionAssignment assignment) { var stateView = Sungero.Core.StateView.Create(); var block = stateView.AddBlock(); var content = block.AddContent(); content.AddLabel(GetDescription(assignment)); block.ShowBorder = false; return(stateView); }
public static IQueryable <IUser> GetActionItemsAssignees(IActionItemExecutionAssignment entity) { return(GetActionItems(entity).Select(p => p.Performer)); }
public static IQueryable <IActionItemExecutionAssignment> GetActionItems(IActionItemExecutionAssignment entity) { return(ActionItemExecutionAssignments.GetAll(j => entity.Equals(j.Task.ParentAssignment) && j.Status == Workflow.AssignmentBase.Status.InProcess)); }