public virtual IQueryable <Sungero.Workflow.IAssignmentBase> OnChekingDataQuery(IQueryable <Sungero.Workflow.IAssignmentBase> query) { // Фильтр по типу. var typeFilterEnabled = _filter != null && (_filter.ActionItem || _filter.Other); var showActionItems = !typeFilterEnabled || _filter.ActionItem; var showOthers = !typeFilterEnabled || _filter.Other; var result = query .Where(a => showActionItems && ActionItemSupervisorAssignments.Is(a) || showOthers && (Docflow.DeadlineExtensionAssignments.Is(a) || RecordManagement.DeadlineExtensionAssignments.Is(a) || ReportRequestCheckAssignments.Is(a) || Workflow.ReviewAssignments.Is(a) || CheckReturnCheckAssignments.Is(a) || AcquaintanceFinishAssignments.Is(a))); // Запрос непрочитанных без фильтра. if (_filter == null) { return(RecordManagement.PublicFunctions.Module.ApplyCommonSubfolderFilters(result)); } // Фильтры по статусу, замещению и периоду. result = RecordManagement.PublicFunctions.Module.ApplyCommonSubfolderFilters(result, _filter.InProcess, _filter.Last30Days, _filter.Last90Days, _filter.Last180Days, false); return(result); }
public virtual void EndBlock6(Sungero.RecordManagement.Server.ActionItemSupervisorAssignmentEndBlockEventArguments e) { var assignment = e.CreatedAssignments.FirstOrDefault(); if (assignment != null && assignment.Result == Result.ForRework) { _obj.ExecutionState = ExecutionState.OnRework; var newDeadline = ActionItemSupervisorAssignments.As(assignment).NewDeadline; _obj.Deadline = newDeadline; if (_obj.ActionItemType == ActionItemType.Component && ActionItemExecutionTasks.Is(_obj.ParentTask)) { var rootTask = ActionItemExecutionTasks.As(_obj.ParentTask); var actionItem = rootTask.ActionItemParts.Where(i => Equals(i.ActionItemPartExecutionTask, _obj)).FirstOrDefault(); if (actionItem != null && (actionItem.Deadline != null || rootTask.FinalDeadline != newDeadline)) { actionItem.Deadline = newDeadline; } } } }