IncomingDocumentBaseClientFunctions.cs
5.95 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.IncomingDocumentBase;
using Sungero.Docflow.Structures.IncomingDocumentBase;
namespace Sungero.Docflow.Client
{
partial class IncomingDocumentBaseFunctions
{
/// <summary>
/// Получить текст для отметки документа устаревшим.
/// </summary>
/// <returns>Текст для диалога прекращения согласования.</returns>
public override string GetTextToMarkDocumentAsObsolete()
{
return IncomingDocumentBases.Resources.MarkDocumentAsObsolete;
}
/// <summary>
/// Показать диалог для выбора расположения отметки о поступлении.
/// </summary>
/// <returns>Отступы для простановки отметки.</returns>
public virtual RegistrationStampPosition ShowAddRegistrationStampDialog()
{
string positionValue = IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomRightPosition;
double rightIndentValue = PublicConstants.Module.RegistrationStampDefaultRightIndent;
double bottomIndentValue = PublicConstants.Module.RegistrationStampDefaultBottomIndent;
var personalSettings = Docflow.PublicFunctions.PersonalSetting.GetPersonalSettings(null);
if (personalSettings != null)
{
positionValue = personalSettings.RegistrationStampPosition.HasValue ?
PersonalSettings.Info.Properties.RegistrationStampPosition.GetLocalizedValue(personalSettings.RegistrationStampPosition.Value) :
IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomRightPosition;
rightIndentValue = personalSettings.RightIndent ?? PublicConstants.Module.RegistrationStampDefaultRightIndent;
bottomIndentValue = personalSettings.BottomIndent ?? PublicConstants.Module.RegistrationStampDefaultBottomIndent;
}
var dialog = Dialogs.CreateInputDialog(IncomingDocumentBases.Resources.AddRegistrationStampDialogTitle);
dialog.HelpCode = Constants.IncomingDocumentBase.AddRegistrationStampHelpCode;
var position = dialog.AddSelect(IncomingDocumentBases.Resources.AddRegistrationStampDialogPosition,
true,
positionValue)
.From(IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomRightPosition,
IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomCenterPosition,
IncomingDocumentBases.Resources.AddRegistrationStampDialogCustomPosition);
var rightIndent = dialog.AddDouble(IncomingDocumentBases.Resources.AddRegistrationStampDialogRightIndent, false, rightIndentValue);
rightIndent.IsVisible = false;
var bottomIndent = dialog.AddDouble(IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomIndent, false, bottomIndentValue);
bottomIndent.IsVisible = false;
var addButton = dialog.Buttons.AddCustom(IncomingDocumentBases.Resources.AddRegistrationStampDialogCreateButton);
dialog.Buttons.AddCancel();
dialog.SetOnRefresh(
args =>
{
if (position.Value == IncomingDocumentBases.Resources.AddRegistrationStampDialogCustomPosition)
{
rightIndent.IsVisible = true;
bottomIndent.IsVisible = true;
rightIndent.IsRequired = true;
bottomIndent.IsRequired = true;
if (rightIndent.Value.HasValue && rightIndent.Value < 0 ||
(bottomIndent.Value.HasValue && bottomIndent.Value < 0))
{
args.AddError(Docflow.Resources.RegistrationStampCoordsMustBePositive);
}
}
else
{
rightIndent.IsVisible = false;
bottomIndent.IsVisible = false;
rightIndent.IsRequired = false;
bottomIndent.IsRequired = false;
}
});
dialog.SetOnButtonClick(
args =>
{
if (!Equals(args.Button, addButton))
return;
if (position.Value == IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomRightPosition)
{
rightIndent.Value = PublicConstants.Module.RegistrationStampDefaultRightIndent;
bottomIndent.Value = PublicConstants.Module.RegistrationStampDefaultBottomIndent;
}
if (position.Value == IncomingDocumentBases.Resources.AddRegistrationStampDialogBottomCenterPosition)
{
rightIndent.Value = PublicConstants.Module.RegistrationStampDefaultPageCenterIndent;
bottomIndent.Value = PublicConstants.Module.RegistrationStampDefaultBottomIndent;
}
if (rightIndent.Value.HasValue && rightIndent.Value < 0 ||
(bottomIndent.Value.HasValue && bottomIndent.Value < 0))
{
args.AddError(Docflow.Resources.RegistrationStampCoordsMustBePositive);
}
});
if (dialog.Show() == addButton)
{
return RegistrationStampPosition.Create(rightIndent.Value.Value, bottomIndent.Value.Value);
}
return null;
}
/// <summary>
/// Проверить возможность преобразования в PDF.
/// </summary>
/// <returns>Результат проверки.</returns>
public virtual Structures.OfficialDocument.СonversionToPdfResult ValidatePdfConvertibilityByExtension()
{
var lastVersionExtension = _obj.LastVersion.AssociatedApplication.Extension.ToLower();
if (!AsposeExtensions.Converter.CheckIfExtensionIsSupported(lastVersionExtension))
return Functions.OfficialDocument.GetExtensionValidationError(_obj, lastVersionExtension);
var result = Sungero.Docflow.Structures.OfficialDocument.СonversionToPdfResult.Create();
result.HasErrors = false;
return result;
}
}
}