ApprovalReviewAssignmentHandlers.cs
2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.ApprovalReviewAssignment;
namespace Sungero.Docflow
{
partial class ApprovalReviewAssignmentReworkPerformerPropertyFilteringServerHandler<T>
{
public virtual IQueryable<T> ReworkPerformerFiltering(IQueryable<T> query, Sungero.Domain.PropertyFilteringEventArgs e)
{
var reworkPerformersIds = Functions.ApprovalTask.GetReworkPerformers(ApprovalTasks.As(_obj.Task))
.Select(p => p.Id).ToList();
return query.Where(x => reworkPerformersIds.Contains(x.Id));
}
}
partial class ApprovalReviewAssignmentServerHandlers
{
public override void BeforeComplete(Sungero.Workflow.Server.BeforeCompleteEventArgs e)
{
if (_obj.Result.Value == Result.AddResolution && (_obj.Texts.Last().IsAutoGenerated ?? false))
e.AddError(ApprovalReviewAssignments.Resources.ResolutionTextNeeded);
// Проверить зарегистрированность документа, если схлопнуто с этапом регистрации.
if ((_obj.Result.Value == Result.AddActionItem || _obj.Result.Value == Result.AddResolution || _obj.Result.Value == Result.Informed) &&
Functions.ApprovalTask.CurrentStageCollapsedWithSpecificStage(ApprovalTasks.As(_obj.Task), _obj.StageNumber, Docflow.ApprovalStage.StageType.Register))
{
var registrationState = _obj.DocumentGroup.OfficialDocuments.First().RegistrationState;
if (registrationState == null || registrationState != Docflow.OfficialDocument.RegistrationState.Registered)
{
e.AddError(ApprovalTasks.Resources.ToPerformNeedRegisterDocument);
}
}
// Добавить автотекст.
if (_obj.Result == Result.ForRework)
e.Result = ApprovalTasks.Resources.ForRework;
else
e.Result = Functions.ApprovalTask.GetCollapsedResult(ApprovalTasks.As(_obj.Task), _obj.Result);
}
}
}