PersonalSettingSharedFunctions.cs
7.7 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Company;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.PersonalSetting;
namespace Sungero.Docflow.Shared
{
partial class PersonalSettingFunctions
{
/// <summary>
/// Получить url сервиса информации по компаниям. Не используется. Помечено устаревшим.
/// </summary>
/// <param name="isPerson">Признак, что ИП.</param>
/// <returns>Url сервиса.</returns>
[Public, Obsolete]
public static string GetCompanyServiceUrl(bool isPerson)
{
var settings = GetPersonalSettings();
if (settings == null || settings.CompanyService == null ||
settings.CompanyService == Docflow.PersonalSetting.CompanyService.OwnerOnline)
return "https://compliance.vladelets.online/#/report/{0}/company";
if (settings.CompanyService == Docflow.PersonalSetting.CompanyService.HonestBusiness)
return "https://honestbusiness.ru/id{0}";
if (settings.CompanyService == Docflow.PersonalSetting.CompanyService.ForFairBusiness)
return "https://zachestnyibiznes.ru/company/ul/{0}";
if (settings.CompanyService == Docflow.PersonalSetting.CompanyService.Sbis)
return "https://sbis.ru/contragents/{1}";
if (settings.CompanyService == Docflow.PersonalSetting.CompanyService.KonturFocus)
return "https://focus.kontur.ru/entity?query={0}";
return string.Empty;
}
/// <summary>
/// Признак необходимости указания ИНН. Не используется. Помечено устаревшим.
/// </summary>
/// <param name="isPerson">Признак, что ИП.</param>
/// <returns>True, если нужен ИНН, иначе - false.</returns>
[Public, Obsolete]
public static bool NeedTinToCompanyService(bool isPerson)
{
var settings = GetPersonalSettings();
if (settings == null || settings.CompanyService == null ||
settings.CompanyService == Docflow.PersonalSetting.CompanyService.OwnerOnline ||
settings.CompanyService == Docflow.PersonalSetting.CompanyService.HonestBusiness ||
settings.CompanyService == Docflow.PersonalSetting.CompanyService.ForFairBusiness ||
settings.CompanyService == Docflow.PersonalSetting.CompanyService.KonturFocus)
return false;
if (settings.CompanyService == Docflow.PersonalSetting.CompanyService.Sbis)
return true;
return false;
}
/// <summary>
/// Получить автора резолюции из настроек или орг. структуры.
/// </summary>
/// <param name="entity">Настройки.</param>
/// <returns>Автор резолюции.</returns>
[Public]
public static IEmployee GetResolutionAuthor(Sungero.Docflow.IPersonalSetting entity)
{
if (entity == null)
return null;
if (entity.IsAutoCalcResolutionAuthor == true)
return Functions.PersonalSetting.Remote.GetEmployeeResolutionAuthor(entity.Employee) ?? entity.Employee;
else
return entity.ResolutionAuthor;
}
/// <summary>
/// Получить контролера поручения из настроек или орг. структуры.
/// </summary>
/// <param name="entity">Настройки.</param>
/// <returns>Контролер.</returns>
[Public]
public static IEmployee GetSupervisor(Sungero.Docflow.IPersonalSetting entity)
{
if (entity == null)
return null;
if (entity.IsAutoCalcSupervisor == true)
return Functions.Module.GetSecretary(entity.Employee) ?? entity.Employee;
else
return entity.Supervisor;
}
/// <summary>
/// Получить настройки пользователя.
/// </summary>
/// <param name="employee">Пользователь.</param>
/// <returns>Настройки пользователя.</returns>
[Public]
public static IPersonalSetting GetPersonalSettings(IEmployee employee = null)
{
if (employee == null)
employee = Employees.Current;
// Для пользователя без сотрудника настроек быть не может.
if (employee == null)
return null;
return Functions.PersonalSetting.Remote.CreatePersonalSettings(employee);
}
/// <summary>
/// Получить дату начала периода из настроек.
/// </summary>
/// <param name="settings">Пользовательские настройки.</param>
/// <returns>Дата.</returns>
[Public]
public static DateTime? GetStartDate(IPersonalSetting settings)
{
if (settings == null)
return null;
DateTime today = Calendar.UserToday;
if (settings.Period == null)
return null;
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.Today)
return today;
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.CurrentMonth)
return today.BeginningOfMonth();
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.CurrentYear)
return today.BeginningOfYear();
return null;
}
/// <summary>
/// Получить дату окончания периода из настроек.
/// </summary>
/// <param name="settings">Пользовательские настройки.</param>
/// <returns>Дата.</returns>
[Public]
public static DateTime? GetEndDate(IPersonalSetting settings)
{
if (settings == null)
return null;
DateTime today = Calendar.UserToday;
if (settings.Period == null)
return null;
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.Today)
return today;
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.CurrentMonth)
return today.EndOfMonth().Date;
if (settings.Period == Sungero.Docflow.PersonalSetting.Period.CurrentYear)
return today.EndOfYear().Date;
return null;
}
/// <summary>
/// Проверить, можно ли установить признак включения автоматического выполнения ведущего поручения.
/// </summary>
/// <param name="followUpActionItem">Признак установки на контроль.</param>
/// <param name="supervisor">Контролер по умолчанию.</param>
/// <returns>True, если можно установить, иначе - False.</returns>
public virtual bool CanAutoExecLeadingActionItem(bool? followUpActionItem, IEmployee supervisor)
{
if (followUpActionItem != true)
return true;
if (supervisor == null || !Equals(supervisor, _obj.Employee))
return true;
return false;
}
/// <summary>
/// Изменить доступность признака включения автоматического выполнения ведущего поручения.
/// </summary>
/// <param name="followUpActionItem">Признак установки на контроль.</param>
/// <param name="supervisor">Контролер по умолчанию.</param>
public virtual void ChangeIsAutoExecLeadingActionItemAccess(bool? followUpActionItem, IEmployee supervisor)
{
var canAutoExec = this.CanAutoExecLeadingActionItem(followUpActionItem, supervisor);
_obj.State.Properties.IsAutoExecLeadingActionItem.IsEnabled = canAutoExec;
if (!canAutoExec)
_obj.IsAutoExecLeadingActionItem = false;
}
}
}