IDiadocService
Чтобы получить указанный сервис, необходимо реализовать следующий код:
var service = Locator.GetServiceNotNull<IDiadocService>();
Описание свойств и методов сервиса:
namespace ITino.ELMA.Documents.Diadoc.Services
/// <summary>
/// Сервис работы с Диадок
/// </summary>
public interface IDiadocService
{
/// <summary>
/// Сервис инициализирован и авторизован
/// </summary>
bool Initialized { get; }
/// <summary>
/// Отключить интеграцию
/// </summary>
void Shutdown();
/// <summary>
/// Ожидание операции по отправке документа в Диадок
/// </summary>
bool WaitSendingOps { get; set; }
/// <summary>
/// Получить информацию о контрагенте по ИНН
/// </summary>
/// <param name="inn"></param>
/// <param name="kpp"></param>
/// <returns></returns>
// ReSharper disable once InconsistentNaming
IEnumerable<Organization> GetContractorInfoByINN(string inn, string kpp = null);
/// <summary>
/// Получить информацию о контрагенте
/// </summary>
/// <param name="contractor"></param>
/// <returns></returns>
IEnumerable<Organization> GetContractorInfo(IContractor contractor);
/// <summary>
/// Получить свою организацию по контрагенту
/// </summary>
/// <param name="contractor"></param>
/// <returns></returns>
Organization GetOwnContractorInfo(IContractor contractor);
/// <summary>
/// Получить контрагента если он есть в активном списке
/// </summary>
/// <param name="owner"></param>
/// <param name="contractor"></param>
/// <returns></returns>
Organization GetContractorInList(IContractor owner, IContractor contractor);
/// <summary>
/// Получить контрагента по ящику если он есть в списке
/// </summary>
/// <param name="owner"></param>
/// <param name="boxId"></param>
/// <returns></returns>
IContractor GetContractorInList(IContractor owner, string boxId);
/// <summary>
/// Получить контрагента и статус списка для нашей организации
/// </summary>
/// <param name="org"></param>
/// <param name="contractor"></param>
/// <returns></returns>
Counteragent GetContractorInfoForTab(Organization org, IContractor contractor);
/// <summary>
/// Получить данные организации по ящику
/// </summary>
/// <param name="boxId"></param>
/// <returns></returns>
Organization GetOrganizationByBox(string boxId);
/// <summary>
/// Можно ли отправить документ
/// </summary>
/// <param name="owner"></param>
/// <param name="contractor"></param>
/// <returns></returns>
EODiadocCanSendStatus CanSendDocument(IContractor owner, IContractor contractor);
/// <summary>
/// Получить список документов по фильтру
/// </summary>
/// <param name="owner"></param>
/// <param name="filterCategory"></param>
/// <param name="lastCheck"></param>
/// <param name="alterIndexKey"></param>
/// <param name="count"></param>
/// <returns></returns>
DocumentList GetDocuments(IContractor owner, string filterCategory, DateTime? lastCheck, string alterIndexKey = null, int? count = null);
/// <summary>
/// Получить данные о документе в Диадоке
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
Document GetDocument(ICODiadocDocument entity);
/// <summary>
/// Получить данные о документе в Диадоке
/// </summary>
Document GetDocument(string boxId, string messageId, string documentId);
/// <summary>
/// Получить строковое содержимое сущности
/// </summary>
/// <param name="boxId"></param>
/// <param name="messageId"></param>
/// <param name="entityId"></param>
/// <returns></returns>
string GetEntityContentString(string boxId, string messageId, string entityId);
/// <summary>
/// Получить содержимое сущности
/// </summary>
/// <param name="boxId"></param>
/// <param name="messageId"></param>
/// <param name="entityId"></param>
/// <returns></returns>
byte[] GetEntityContent(string boxId, string messageId, string entityId);
/// <summary>
/// Сериализовать данные формализованного документа
/// </summary>
/// <param name="doc"></param>
/// <returns></returns>
object SerializeData(Document doc);
/// <summary>
/// Получить сообщение по документу
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
Message GetMessage(ICODiadocDocument entity);
/// <summary>
/// Генерация печатной формы документа
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
BinaryFile GeneratePrintForm(ICODiadocDocument entity);
/// <summary>
/// Сформировать документооборот целиком
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
BinaryFile GenerateDocumentZip(ICODiadocDocument entity);
/// <summary>
/// Получить информацию о подписи
/// </summary>
/// <param name="entity"></param>
/// <param name="own">Наша подпись</param>
/// <returns></returns>
SignatureInfo GetSignatureInfo(ICODiadocDocument entity, bool own = true);
/// <summary>
/// Получить сущность по идентификатору
/// </summary>
/// <param name="entity"></param>
/// <param name="entityId"></param>
/// <returns></returns>
Entity GetEntity(ICODiadocDocument entity, string entityId);
/// <summary>
/// Получить информацию об отказе в подписании
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
SignatureRejectionInfo ParseSignatureRejectionXml(ICODiadocDocument entity);
/// <summary>
/// Получить информацию об отказе в подписании
/// </summary>
/// <param name="boxId"></param>
/// <param name="messageId"></param>
/// <param name="entityId"></param>
/// <returns></returns>
SignatureRejectionInfo ParseSignatureRejectionXml(string boxId, string messageId, string entityId);
/// <summary>
/// Получить информацию о запросе на аннулирование
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
RevocationRequestInfo ParseRevocationRequestXml(ICODiadocDocument entity);
/// <summary>
/// Получить последнее событие для ящика
/// </summary>
/// <param name="boxId"></param>
/// <returns></returns>
BoxEvent GetLastEvent(string boxId);
/// <summary>
/// Получить новые события для ящика
/// </summary>
/// <param name="boxId"></param>
/// <param name="lastEventId"></param>
/// <returns></returns>
BoxEventList GetNewEvents(string boxId, string lastEventId);
/// <summary>
/// Получить подразделения для ящика
/// </summary>
/// <param name="boxId"></param>
/// <returns></returns>
DepartmentList GetDepartments(string boxId);
/// <summary>
/// Получить сотрудников для подразделения
/// </summary>
/// <param name="boxId"></param>
/// <param name="departmentId"></param>
/// <returns></returns>
IEnumerable<Employee> GetEmployees(string boxId, string departmentId);
/// <summary>
/// Отправить не формализованный документ
/// </summary>
/// <param name="doc">Документ</param>
/// <param name="fromBoxId">Ящик отправителя</param>
/// <param name="toBoxId">Ящик получателя</param>
/// <param name="departmentId">Подразделение</param>
/// <param name="userId">Сотрудник</param>
/// <param name="needRecipientSignature">Требуется подпись контрагента</param>
/// <param name="comment">Комментарий</param>
/// <returns></returns>
DiadocMessageResult SendNonformalized(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, Guid? departmentId = null, Guid? userId = null, bool needRecipientSignature = true, string comment = null);
/// <summary>
/// Отправить счет
/// </summary>
/// <param name="doc">Документ</param>
/// <param name="fromBoxId">Ящик отправителя</param>
/// <param name="toBoxId">Ящик получателя</param>
/// <param name="docNumber">Номер счета</param>
/// <param name="docDate">Дата счета</param>
/// <param name="total">Сумма</param>
/// <param name="vat">НДС, если есть</param>
/// <param name="departmentId">Подразделение</param>
/// <param name="userId">Сотрудник</param>
/// <param name="comment">Комментарий</param>
DiadocMessageResult SendProformaInvoice(string fromBoxId, string toBoxId,
EleWise.ELMA.Documents.Models.IDocument doc, string docNumber, DateTime docDate, Money total,
Money? vat = null, Guid? departmentId = null, Guid? userId = null, string comment = null);
/// <summary>
/// Отправить договор
/// </summary>
/// <param name="fromBoxId">Ящик отправителя</param>
/// <param name="toBoxId">Ящик получателя</param>
/// <param name="doc">Документ</param>
/// <param name="docNumber">Номер договора</param>
/// <param name="docDate">Дата договора</param>
/// <param name="contractType">Тип договора</param>
/// <param name="contractPrice">Цена договора,если есть</param>
/// <param name="departmentId">Подразделение</param>
/// <param name="userId">Сотрудник</param>
/// <param name="comment">Комментарий</param>
/// <returns></returns>
DiadocMessageResult SendContract(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc,
string docNumber, DateTime docDate, string contractType,
Money? contractPrice = null, Guid? departmentId = null, Guid? userId = null, string comment = null);
/// <summary>
/// Отправить дополнительное соглашение
/// </summary>
/// <param name="fromBoxId">Ящик отправителя</param>
/// <param name="toBoxId">Ящик получателя</param>
/// <param name="doc">Документ</param>
/// <param name="docNumber">Номер ДС</param>
/// <param name="docDate">Дата ДС</param>
/// <param name="contractNumber">Номер договора</param>
/// <param name="contractDate">Дата договора</param>
/// <param name="contractType">Тип договора</param>
/// <param name="total">Цена ДС, если есть</param>
/// <param name="departmentId">Подразделение</param>
/// <param name="userId">Сотрудник</param>
/// <param name="comment">Комментарий</param>
/// <returns></returns>
DiadocMessageResult SendSupplementaryAgreement(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc,
string docNumber, DateTime docDate,
string contractNumber, DateTime contractDate, string contractType = "",
Money? total = null, Guid? departmentId = null, Guid? userId = null, string comment = null);
/// <summary>
/// Отправить протокол согласования цены
/// </summary>
/// <param name="fromBoxId">Ящик отправителя</param>
/// <param name="toBoxId">Ящик получателя</param>
/// <param name="doc">Документ</param>
/// <param name="docNumber">Номер ДС</param>
/// <param name="docDate">Дата ДС</param>
/// <param name="departmentId">Подразделение</param>
/// <param name="userId">Сотрудник</param>
/// <param name="comment">Комментарий</param>
/// <returns></returns>
DiadocMessageResult SendPriceListAgreement(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc,
string docNumber, DateTime docDate,
Guid? departmentId = null, Guid? userId = null, string comment = null);
}