/// <summary> /// Показать диалог выбора исполнителя доработки с запросом выдачи прав на вложения. /// </summary> /// <param name="assignment">Задание.</param> /// <param name="attachments">Вложения.</param> /// <param name="additionalAssignees">Дополнительные согласующие.</param> /// <param name="reworkPerformer">Ответственный за доработку.</param> /// <param name="e">Аргументы.</param> /// <param name="dialogId">Ид диалога.</param> public virtual void ShowReworkConfirmationDialog(IAssignmentBase assignment, List <Domain.Shared.IEntity> attachments, List <IRecipient> additionalAssignees, Sungero.Company.IEmployee reworkPerformer, Sungero.Workflow.Client.ExecuteResultActionArgs e, string dialogId) { if (reworkPerformer != null) { additionalAssignees.Add(reworkPerformer); } // Диалог выдачи прав (отображается, если нет прав на вложения). if (Functions.Module.ShowDialogGrantAccessRightsWithConfirmationDialog(_obj, attachments, additionalAssignees, e.Action, dialogId) == false) { e.Cancel(); } }
public static Sungero.Core.StateBlock GetAssignmentBlock(IAssignmentBase assignment) { // Стили. var headerStyle = Docflow.PublicFunctions.Module.CreateHeaderStyle(); var performerDeadlineStyle = Docflow.PublicFunctions.Module.CreatePerformerDeadlineStyle(); // var boldStyle = Docflow.PublicFunctions.Module.CreateStyle(true, false); var grayStyle = Docflow.PublicFunctions.Module.CreateStyle(false, true); var separatorStyle = Docflow.PublicFunctions.Module.CreateSeparatorStyle(); var block = StateView.Create().AddBlock(); block.Entity = assignment; // Заголовок. block.AddLabel("Обработка входящего документа", headerStyle); block.AddLineBreak(); // Кому. var assigneShortName = Company.PublicFunctions.Employee.GetShortName(Company.Employees.As(assignment.Performer), false); var performerInfo = string.Format("{0}: {1}", Docflow.OfficialDocuments.Resources.StateViewTo, assigneShortName); block.AddLabel(performerInfo, performerDeadlineStyle); // Срок. if (assignment.Deadline.HasValue) { var deadlineLabel = Docflow.PublicFunctions.Module.ToShortDateShortTime(assignment.Deadline.Value.ToUserTime()); block.AddLabel(string.Format("{0}: {1}", Docflow.OfficialDocuments.Resources.StateViewDeadline, deadlineLabel), performerDeadlineStyle); } // Разделитель. block.AddLineBreak(); block.AddLabel(Docflow.Constants.Module.SeparatorText, separatorStyle); block.AddLineBreak(); block.AddEmptyLine(Docflow.Constants.Module.EmptyLineMargin); // Текст задания. block.AddLabel(Docflow.PublicFunctions.Module.GetFormatedUserText(assignment.ActiveText), grayStyle); // Статус. var status = AssignmentBases.Info.Properties.Status.GetLocalizedValue(assignment.Status); // Для непрочитанных заданий указать это. if (assignment.IsRead == false) { status = Docflow.ApprovalTasks.Resources.StateViewUnRead.ToString(); } if (!string.IsNullOrWhiteSpace(status)) { Docflow.PublicFunctions.Module.AddInfoToRightContent(block, status); } // Задержка исполнения. if (assignment.Deadline.HasValue && (assignment.Status == Workflow.AssignmentBase.Status.InProcess || assignment.Status == Workflow.AssignmentBase.Status.Completed)) { Docflow.PublicFunctions.OfficialDocument.AddDeadlineHeaderToRight(block, assignment.Deadline.Value, assignment.Performer); } return(block); }