DestructionActActions.cs
3.46 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Storage.DestructionAct;
namespace DirRX.Storage.Client
{
partial class DestructionActActions
{
public virtual void CreateVersionFromReport(Sungero.Domain.Client.ExecuteActionArgs e)
{
// Если документ свежесозданный, сохранить его, чтобы были заполнены обязательные поля.
if (_obj.State.IsInserted)
_obj.Save();
// Переформировать версию может только архивист.
if (Users.Current != null && Users.Current.IsSystem != true && _obj.Archivist != null &&
_obj.Archivist != Storage.PublicFunctions.Module.Remote.GetEmployeeForCurentUser())
{
DestructionActs.Resources.WarningOnlyArchivistCanReformVersionFormat(_obj.Archivist.DisplayValue);
return;
}
PublicFunctions.DestructionAct.GenerateLastVersionFromReport(_obj);
Dialogs.NotifyMessage(DestructionActs.Resources.NotifyVersionReformatted);
}
public virtual bool CanCreateVersionFromReport(Sungero.Domain.Client.CanExecuteActionArgs e)
{
// Нельзя переформировывать акт, если последняя версия утверждена.
var lastVersion = _obj.LastVersion;
return !Signatures.Get(lastVersion).Any(s => s.SignatureType == SignatureType.Approval);
}
public virtual void RemoveCaseFiles(Sungero.Domain.Client.ExecuteActionArgs e)
{
// Отобразить диалог для исключения дел из акта.
var error = Functions.DestructionAct.RemoveCaseFilesDialog(_obj, null);
if (error != string.Empty)
{
if (error != DestructionActs.Resources.Cancel)
e.AddWarning(error);
}
else
{
Functions.DestructionAct.UpdatePeriod(_obj);
_obj.Save();
_obj.State.Controls.Control.Refresh();
Dialogs.NotifyMessage("Дела исключены из акта.");
}
}
public virtual bool CanRemoveCaseFiles(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return !_obj.State.IsInserted;
}
public virtual void AddCaseFiles(Sungero.Domain.Client.ExecuteActionArgs e)
{
// Проверить, что заполнены все обязательные свойства.
// Пока просто через сохранение.
if (_obj.State.IsChanged)
_obj.Save();
// Отобразить диалог для включения дел в акт.
var error = Functions.DestructionAct.AddCaseFilesDialog(_obj);
if (error != string.Empty)
{
if (error != DestructionActs.Resources.Cancel)
e.AddWarning(error);
}
else
{
Functions.DestructionAct.UpdatePeriod(_obj);
_obj.Save();
_obj.State.Controls.Control.Refresh();
Dialogs.NotifyMessage("Дела включены в акт.");
}
}
public virtual bool CanAddCaseFiles(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return true;
}
public virtual void ShowCaseFiles(Sungero.Domain.Client.ExecuteActionArgs e)
{
PublicFunctions.DestructionAct.Remote.GetCaseFiles(_obj).Show();
}
public virtual bool CanShowCaseFiles(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return true;
}
}
}