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