| | | 1 | | @model ArmtekSettlementsPageViewModel |
| | | 2 | | @{ |
| | 0 | 3 | | ViewData["Title"] = "Взаиморасчёты Armtek"; |
| | 0 | 4 | | var tab = Model.Tab; |
| | 0 | 5 | | string Active(string t) => t == tab ? "active" : ""; |
| | 0 | 6 | | var grid = tab switch |
| | 0 | 7 | | { |
| | 0 | 8 | | "invoices" => new BsxDirectoryGridViewModel("aeInvoices", "Фактуры", "fa-file-invoice", "Номер фактуры, УПД, ТН/ |
| | 0 | 9 | | "Шапки фактур из кабинета. Двойной клик — фактура с позициями. Фильтры и сортировка — по всем фактурам на се |
| | 0 | 10 | | "items" => new BsxDirectoryGridViewModel("aeItems", "Позиции фактур", "fa-list", "Артикул, код Армтек, бренд, на |
| | 0 | 11 | | "Все позиции всех фактур. Двойной клик — фактура. Фильтры и сортировка — по всем позициям на сервере."), |
| | 0 | 12 | | _ => new BsxDirectoryGridViewModel("aeSettlements", "Взаиморасчёты", "fa-scale-balanced", "Код или номер докумен |
| | 0 | 13 | | "Строки «Взаиморасчётов» кабинета Armtek. Двойной клик по документу с фактурой — страница фактуры. Фильтры и |
| | 0 | 14 | | }; |
| | | 15 | | } |
| | | 16 | | |
| | | 17 | | <link rel="stylesheet" href="~/css/settlements/armtek-settlements.css" asp-append-version="true" /> |
| | | 18 | | |
| | 0 | 19 | | @await Html.PartialAsync("~/Areas/Studio2/Views/Shared/_BsxGridShell.cshtml") |
| | | 20 | | |
| | 0 | 21 | | <div class="container-fluid py-3 bsx-surface ae-page" data-tab="@tab"> |
| | | 22 | | <section class="app-section-hero app-section-hero--import d-flex flex-wrap justify-content-between align-items-start |
| | | 23 | | <div> |
| | | 24 | | <h1><i class="fas fa-scale-balanced me-2 text-primary"></i>Взаиморасчёты Armtek</h1> |
| | 0 | 25 | | <div class="subtitle">Взаиморасчёты, фактуры и их позиции из личного кабинета etp.armtek.ru — автозагрузка @ |
| | | 26 | | <div class="subtitle-help">Ctrl+F — поиск, Esc — сбросить поиск. Набор значений в фильтрах колонок — со счёт |
| | | 27 | | <div class="app-section-hero__quick-links"> |
| | | 28 | | <a asp-area="Settlements" asp-controller="Home" asp-action="Index"><i class="fas fa-arrow-left"></i>Все |
| | | 29 | | <a href="https://etp.armtek.ru/settlements" target="_blank" rel="noopener noreferrer"><i class="fas fa-a |
| | | 30 | | <a href="/Studio2/ApiSupplierSettings/ArmtekBy"><i class="fas fa-sliders"></i>Настройки Armtek BY</a> |
| | | 31 | | </div> |
| | | 32 | | </div> |
| | | 33 | | <div class="d-flex flex-column align-items-end gap-2"> |
| | | 34 | | <div class="bsx-dir-stats" aria-live="polite"> |
| | 0 | 35 | | @if (Model.Balance is { } balance) |
| | | 36 | | { |
| | 0 | 37 | | <span class="bsx-dir-stat" title="Сальдо по последнему документу@(Model.BalanceDate is { } bd ? " от |
| | | 38 | | } |
| | 0 | 39 | | <span class="bsx-dir-stat">Документов <b>@Model.SettlementsCount.ToString("N0")</b></span> |
| | 0 | 40 | | <span class="bsx-dir-stat">Фактур <b>@Model.InvoicesCount.ToString("N0")</b></span> |
| | 0 | 41 | | <span class="bsx-dir-stat">Позиций <b>@Model.ItemsCount.ToString("N0")</b></span> |
| | 0 | 42 | | @if (Model.LastUpdatedAtUtc is { } updated) |
| | | 43 | | { |
| | 0 | 44 | | <span class="bsx-dir-stat" title="Последняя успешная загрузка из кабинета">Обновлено (МСК) <b>@updat |
| | | 45 | | } |
| | 0 | 46 | | @if (Model.LastError != null) |
| | | 47 | | { |
| | 0 | 48 | | <span class="bsx-dir-stat bsx-dir-stat--warn" title="@Model.LastError">Внимание@(Model.LastErrorAtUt |
| | | 49 | | } |
| | | 50 | | </div> |
| | 0 | 51 | | @if (Model.CanSync) |
| | | 52 | | { |
| | | 53 | | <form class="ae-sync" id="aeSyncForm" autocomplete="off"> |
| | | 54 | | <label>с <input type="date" class="form-control form-control-sm" name="from" value="@DateTime.Today. |
| | | 55 | | <label>по <input type="date" class="form-control form-control-sm" name="to" value="@DateTime.Today.T |
| | | 56 | | <button type="submit" class="btn btn-sm btn-outline-secondary" id="aeSyncBtn"><i class="fas fa-cloud |
| | | 57 | | <input type="file" id="aeImportFile" accept=".xlsx,application/vnd.openxmlformats-officedocument.spr |
| | | 58 | | <button type="button" class="btn btn-sm btn-outline-secondary" id="aeImportBtn" |
| | | 59 | | title="Файл из кабинета: Финансы → Взаиморасчёты → Выгрузить файл → Microsoft Office Excel ( |
| | | 60 | | <i class="fas fa-file-excel me-1"></i>Загрузить Excel |
| | | 61 | | </button> |
| | | 62 | | </form> |
| | | 63 | | <div class="ae-sync-status" id="aeSyncStatus" aria-live="polite" hidden></div> |
| | | 64 | | } |
| | | 65 | | </div> |
| | | 66 | | </section> |
| | | 67 | | |
| | 0 | 68 | | @if (Model.LastError != null) |
| | | 69 | | { |
| | 0 | 70 | | <div class="st-tile-error st-tile-error--page" title="@Model.LastError"><i class="fas fa-triangle-exclamation me |
| | | 71 | | } |
| | | 72 | | |
| | 0 | 73 | | @if (Model.CanSync) |
| | | 74 | | { |
| | | 75 | | <section class="ae-import" id="aeImportPanel" hidden aria-live="polite"> |
| | | 76 | | <div class="ae-import-head"> |
| | | 77 | | <b><i class="fas fa-file-excel me-1"></i>Взаиморасчёты из Excel</b> |
| | | 78 | | <span class="ae-import-file" id="aeImportName"></span> |
| | | 79 | | </div> |
| | | 80 | | <div id="aeImportBody"></div> |
| | | 81 | | <div class="ae-import-actions"> |
| | | 82 | | <button type="button" class="btn btn-sm btn-primary" id="aeImportApply" hidden><i class="fas fa-check me |
| | | 83 | | <button type="button" class="btn btn-sm btn-outline-secondary" id="aeImportClose">Закрыть</button> |
| | | 84 | | </div> |
| | | 85 | | </section> |
| | | 86 | | } |
| | | 87 | | |
| | | 88 | | <ul class="nav ae-tabs" role="tablist"> |
| | | 89 | | <li class="nav-item"><a class="nav-link @Active("settlements")" href="?tab=settlements"><i class="fas fa-scale-b |
| | | 90 | | <li class="nav-item"><a class="nav-link @Active("invoices")" href="?tab=invoices"><i class="fas fa-file-invoice |
| | | 91 | | <li class="nav-item"><a class="nav-link @Active("items")" href="?tab=items"><i class="fas fa-list me-1"></i>Пози |
| | | 92 | | </ul> |
| | | 93 | | |
| | 0 | 94 | | @await Html.PartialAsync("~/Areas/Studio2/Views/Shared/_BsxDirectoryGrid.cshtml", grid) |
| | | 95 | | </div> |
| | | 96 | | |
| | | 97 | | @section Scripts { |
| | | 98 | | <script src="~/js/Studio2/Grid/bsx-directory.js" asp-append-version="true"></script> |
| | | 99 | | <script src="~/js/settlements/armtek-settlements.js" asp-append-version="true"></script> |
| | | 100 | | } |