ModuleSharedFunctions.cs
2.08 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
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.ExchangeCore;
namespace Sungero.Exchange.Shared
{
public class ModuleFunctions
{
/// <summary>
/// Проверить, относится ли документ к счетам-фактурам или УПД.
/// </summary>
/// <param name="document">Документ.</param>
/// <returns>Признак того, является ли документ счетом-фактурой или УПД.</returns>
/// <remarks>По возможности надо пользоваться сервисными признаками, для накладных из Диадока - врёт.</remarks>
public static bool IsInvoiceFlowDocument(Docflow.IOfficialDocument document)
{
return FinancialArchive.UniversalTransferDocuments.Is(document) ||
FinancialArchive.IncomingTaxInvoices.Is(document) ||
FinancialArchive.OutgoingTaxInvoices.Is(document);
}
/// <summary>
/// Проверка, есть ли у текущего пользователя сертификат сервиса обмена.
/// </summary>
/// <param name="businessUnitBox">Абонентский ящик нашей организации.</param>
/// <returns>True, если есть, иначе False.</returns>
public virtual bool HasCurrentUserExchangeServiceCertificate(IBusinessUnitBox businessUnitBox)
{
// Получить доступные сертификаты.
var availableCertificates = Functions.Module.Remote.GetCertificates(Users.Current).AsEnumerable();
// Проверить наличие сертификатов ответственного, если сервис предоставляет такую возможность.
if (businessUnitBox.HasExchangeServiceCertificates == true)
availableCertificates = availableCertificates.Where(x => businessUnitBox.ExchangeServiceCertificates.Any(z => z.Certificate.Equals(x)));
return availableCertificates.Any();
}
}
}