Exemple #1
0
        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);
        }
Exemple #2
0
        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;
                    }
                }
            }
        }