< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Settlements_Views_Armtek_Index
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Settlements/Views/Armtek/Index.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 29
Coverable lines: 29
Total lines: 100
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 30
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExecuteAsync()0%812280%
Active()0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Settlements/Views/Armtek/Index.cshtml

#LineLine coverage
 1@model ArmtekSettlementsPageViewModel
 2@{
 03    ViewData["Title"] = "Взаиморасчёты Armtek";
 04    var tab = Model.Tab;
 05    string Active(string t) => t == tab ? "active" : "";
 06    var grid = tab switch
 07    {
 08        "invoices" => new BsxDirectoryGridViewModel("aeInvoices", "Фактуры", "fa-file-invoice", "Номер фактуры, УПД, ТН/
 09            "Шапки фактур из кабинета. Двойной клик — фактура с позициями. Фильтры и сортировка — по всем фактурам на се
 010        "items" => new BsxDirectoryGridViewModel("aeItems", "Позиции фактур", "fa-list", "Артикул, код Армтек, бренд, на
 011            "Все позиции всех фактур. Двойной клик — фактура. Фильтры и сортировка — по всем позициям на сервере."),
 012        _ => new BsxDirectoryGridViewModel("aeSettlements", "Взаиморасчёты", "fa-scale-balanced", "Код или номер докумен
 013            "Строки «Взаиморасчётов» кабинета Armtek. Двойной клик по документу с фактурой — страница фактуры. Фильтры и
 014    };
 15}
 16
 17<link rel="stylesheet" href="~/css/settlements/armtek-settlements.css" asp-append-version="true" />
 18
 019@await Html.PartialAsync("~/Areas/Studio2/Views/Shared/_BsxGridShell.cshtml")
 20
 021<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>
 025            <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">
 035                @if (Model.Balance is { } balance)
 36                {
 037                    <span class="bsx-dir-stat" title="Сальдо по последнему документу@(Model.BalanceDate is { } bd ? " от
 38                }
 039                <span class="bsx-dir-stat">Документов <b>@Model.SettlementsCount.ToString("N0")</b></span>
 040                <span class="bsx-dir-stat">Фактур <b>@Model.InvoicesCount.ToString("N0")</b></span>
 041                <span class="bsx-dir-stat">Позиций <b>@Model.ItemsCount.ToString("N0")</b></span>
 042                @if (Model.LastUpdatedAtUtc is { } updated)
 43                {
 044                    <span class="bsx-dir-stat" title="Последняя успешная загрузка из кабинета">Обновлено (МСК) <b>@updat
 45                }
 046                @if (Model.LastError != null)
 47                {
 048                    <span class="bsx-dir-stat bsx-dir-stat--warn" title="@Model.LastError">Внимание@(Model.LastErrorAtUt
 49                }
 50            </div>
 051            @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
 068    @if (Model.LastError != null)
 69    {
 070        <div class="st-tile-error st-tile-error--page" title="@Model.LastError"><i class="fas fa-triangle-exclamation me
 71    }
 72
 073    @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
 094    @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}

Methods/Properties

ExecuteAsync()
Active()