< Summary

Information
Class: Services.ApiServices.ArmtekEtp.ArmtekEtpConfig
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/ArmtekEtp/ArmtekEtpConfig.cs
Line coverage
92%
Covered lines: 12
Uncovered lines: 1
Coverable lines: 13
Total lines: 57
Line coverage: 92.3%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Enabled()100%11100%
get_BaseUrl()100%11100%
get_Login()100%11100%
get_Password()100%11100%
get_Vkorg()100%11100%
get_Kunnr()100%11100%
get_KunnrRg()100%11100%
get_LookbackDays()100%11100%
get_OrderReportExtraDays()100%11100%
get_InvoiceRefreshDays()100%11100%
get_InvoiceLoadLimit()100%11100%
get_InvoiceRequestDelayMs()100%11100%
get_IsConfigured()0%2040%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/ArmtekEtp/ArmtekEtpConfig.cs

#LineLine coverage
 1namespace Services.ApiServices.ArmtekEtp;
 2
 3/// <summary>
 4/// Доступ к личному кабинету Armtek (etp.armtek.ru) для выгрузки взаиморасчётов и фактур.
 5/// Логин и пароль — те же, что у аккаунта Web-Services (по умолчанию берутся из секции ArmtekBy).
 6/// </summary>
 7public sealed class ArmtekEtpConfig
 8{
 9    public const string HttpClientName = "ArmtekEtp";
 10
 1911    public bool Enabled { get; set; }
 3912    public string BaseUrl { get; set; } = "https://etp.armtek.ru";
 5613    public string Login { get; set; } = string.Empty;
 5614    public string Password { get; set; } = string.Empty;
 15
 16    /// <summary>
 17    /// Сбытовая организация кабинета (cookie VKORG): 2000 — Беларусь, 4000 — Россия. Адрес etp.armtek.ru без неё
 18    /// открывает российскую, и белорусскому клиенту API отвечает «Нет доступа к функционалу».
 19    /// </summary>
 5520    public string Vkorg { get; set; } = "2000";
 21
 22    /// <summary>
 23    /// Клиент (KUNNR_AG) — нужен, только если на логине несколько клиентов: выбирается при входе и через
 24    /// /authorization/setag. С одним клиентом (как у 7650228@GMAIL.COM — [40188847]) оставлять пустым: setag
 25    /// тогда отвечает «Установить клиента не удалось».
 26    /// </summary>
 3627    public string? Kunnr { get; set; }
 28
 29    /// <summary>
 30    /// Плательщик (KUNNR_RG) — по нему считаются взаиморасчёты и открываются фактуры; выбирается через
 31    /// /authorization/setrg. У 7650228@GMAIL.COM: 43174495 «ИП Епифанов Ю.Ю.» и 43174497 «Розница» (без взаиморасчётов)
 32    /// </summary>
 7633    public string? KunnrRg { get; set; }
 34
 35    /// <summary>За сколько дней назад забирать взаиморасчёты при плановом запуске.</summary>
 1936    public int LookbackDays { get; set; } = 45;
 37
 38    /// <summary>
 39    /// Насколько раньше начала периода брать отчёт по заказам (он фильтрует по дате создания заказа, а фактура
 40    /// выставляется позже — у дальних складов через недели).
 41    /// </summary>
 2642    public int OrderReportExtraDays { get; set; } = 60;
 43
 44    /// <summary>Фактуры моложе стольких дней перечитываются каждый запуск (меняются возвраты и статус доставки).</summa
 2545    public int InvoiceRefreshDays { get; set; } = 30;
 46
 47    /// <summary>
 48    /// Сколько фактур читать через API за один запуск (самые новые первыми). У API суточная квота на логин — её тратит
 49    /// и проценка, поэтому большая история (импорт Excel за год) дочитывается за несколько запусков.
 50    /// </summary>
 2751    public int InvoiceLoadLimit { get; set; } = 150;
 52
 53    /// <summary>Пауза между запросами страниц фактур, мс.</summary>
 1954    public int InvoiceRequestDelayMs { get; set; } = 300;
 55
 056    public bool IsConfigured => Enabled && !string.IsNullOrWhiteSpace(Login) && !string.IsNullOrWhiteSpace(Password);
 57}