DeadlineExtensionAssignmentHandlers.cs
1.6 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
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.DeadlineExtensionAssignment;
namespace Sungero.Docflow
{
partial class DeadlineExtensionAssignmentServerHandlers
{
public override void BeforeComplete(Sungero.Workflow.Server.BeforeCompleteEventArgs e)
{
if (_obj.Task.ParentAssignment.Status != Workflow.AssignmentBase.Status.InProcess)
{
// Добавить автотекст.
e.Result = DeadlineExtensionAssignments.Resources.Complete;
return;
}
if (_obj.Result.Value == Result.ForRework)
{
// Проверить заполненность причины отказа.
if (_obj.Texts.Last().IsAutoGenerated ?? false)
e.AddError(DeadlineExtensionAssignments.Resources.RefusalReasonNotFilled);
// Добавить автотекст.
e.Result = DeadlineExtensionAssignments.Resources.Denied;
}
else
{
// Новый срок должен быть больше старого.
if (!Functions.Module.CheckDeadline(_obj.Task.Author, _obj.NewDeadline, _obj.ScheduledDate))
e.AddError(_obj.Info.Properties.NewDeadline, DeadlineExtensionTasks.Resources.DesiredDeadlineIsNotCorrect);
// Добавить автотекст.
var desiredDeadlineLabel = Functions.DeadlineExtensionTask.GetDesiredDeadlineLabel(_obj.NewDeadline.Value);
e.Result = DeadlineExtensionAssignments.Resources.DeadlineExtendedFormat(desiredDeadlineLabel);
}
}
}
}