< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_TransactionsGrid_Index
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/TransactionsGrid/Index.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 32
Coverable lines: 32
Total lines: 277
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 26
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%702260%
<ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/TransactionsGrid/Index.cshtml

#LineLine coverage
 1@using OzonOrdersWeb.Areas.Studio2.ViewModels.TransactionsGrid
 2@model TransactionsGridIndexViewModel
 3
 4@{
 05    ViewData["Title"] = Model.Definition.Title;
 06    Layout = "~/Views/Shared/_Layout.cshtml";
 07    var d = Model.Definition;
 08    var viewPrefsJson = Model.UserSettings.TryGetValue("viewPrefs", out var viewPrefsRaw) && !string.IsNullOrWhiteSpace(
 9}
 10
 11<link rel="stylesheet" href="~/css/Studio2/Orders/orders-index-redesign.css" asp-append-version="true"/>
 12<link rel="stylesheet" href="~/css/Studio2/OrdersGrid/orders-grid.css" asp-append-version="true"/>
 13<link rel="stylesheet" href="~/css/Studio2/OrdersGrid/feed-explain.css" asp-append-version="true"/>
 14<link rel="stylesheet" href="~/css/Studio2/TransactionsGrid/tx-grid.css" asp-append-version="true"/>
 15<script>
 16    (function () {
 17        var mode = 'light';
 018        try { mode = (@Html.Raw(viewPrefsJson) || {}).theme || 'light'; } catch (e) { /* ignore */ }
 19        if (mode === 'auto') mode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'da
 20        if (mode !== 'dark') mode = 'light';
 21        document.documentElement.setAttribute('data-og-theme', mode);
 22        document.documentElement.setAttribute('data-ag-theme-mode', mode);
 23        document.documentElement.setAttribute('data-app-toast-compact', 'true');
 24    })();
 25</script>
 26
 027<form id="txAf" method="post" hidden>@Html.AntiForgeryToken()</form>
 28
 029<div class="og-page tx-page" data-tx-slug="@d.Slug">
 30    <div class="tx-shell">
 31        <div id="ogWorkspace" class="og-workspace tx-workspace">
 32            <div class="tx-bar">
 33                <a class="tx-bar-back" id="txBack" href="@(Model.ReturnUrl ?? Url.Action("Index", "OrdersGrid", new { ar
 34                    <span class="ag-icon ag-icon-left" aria-hidden="true"></span>
 35                </a>
 36                <span class="tx-bar-icon" style="background:@d.Color"><i class="@d.Icon"></i></span>
 37                <div class="tx-bar-title">
 038                    <strong>@d.Title</strong>
 39                    <span class="tx-bar-sub" id="txBarSub">
 040                        @if (!string.IsNullOrEmpty(d.TargetStatusName)) { <span>→ @d.TargetStatusName</span> }
 41                        <span id="txBarCount"></span>
 42                    </span>
 43                </div>
 44                <div id="txCheckSummary" class="tx-check-summary" aria-label="Проверка перед проведением" aria-live="pol
 45                <button type="button" class="tx-commit tx-commit--bar" id="txCommitTop" title="Провести (Ctrl+Enter)"><s
 46                <div id="ogChips" class="og-chips tx-chips"><div id="ogChipsContent" class="og-chips-content"></div></di
 47                <div class="tx-bar-tools">
 48                    <button type="button" class="tx-tool" id="txDockToggle" title="Панель проведения" aria-expanded="tru
 49                    <button type="button" class="tx-tool" id="txHelp" title="Что делает эта транзакция"><span class="ag-
 50                </div>
 51            </div>
 52            <div id="txWarnings" class="tx-warnings" hidden></div>
 53            <div class="og-grid-stage">
 54                <div id="ordersGrid" class="og-grid tx-grid"></div>
 55                <div id="ogQuickSearch" class="og-quick-search" hidden>
 56                    <span class="ag-icon ag-icon-search" aria-hidden="true"></span>
 57                    <input type="search" id="ogQuickSearchInput" placeholder="Номер заказа, артикул, наименование… (Ctrl
 58                    <button type="button" id="ogQuickSearchClose" class="og-quick-search-close" aria-label="Закрыть"><sp
 59                </div>
 60                <button type="button" id="ogGridSettings" class="og-grid-settings" aria-haspopup="menu" title="Настройки
 61                    <span class="ag-icon ag-icon-settings" aria-hidden="true"></span>
 62                </button>
 63                <div id="ogGridSkeleton" class="og-grid-skeleton" aria-hidden="true">
 64                    <div class="og-skeleton-row"><span></span><span></span><span></span><span></span></div>
 65                    <div class="og-skeleton-row"><span></span><span></span><span></span><span></span></div>
 66                    <div class="og-skeleton-row"><span></span><span></span><span></span><span></span></div>
 67                </div>
 68                <div id="txEmpty" class="tx-empty" hidden>
 69                    <span class="ag-icon ag-icon-cancel" aria-hidden="true"></span>
 70                    <strong>Нет заказов</strong>
 71                    <span>Выберите заказы галочками на странице заказов и запустите транзакцию оттуда.</span>
 72                    <a href="@(Model.ReturnUrl ?? Url.Action("Index", "OrdersGrid", new { area = "Studio2" }))">К заказа
 73                </div>
 74            </div>
 75
 76            <aside id="ogControlPanel" class="og-control-panel" aria-label="Настройки таблицы">
 77                <div class="og-control-panel-head">
 78                    <div><span class="og-control-panel-kicker">Таблица проведения</span><strong>Настройки</strong></div>
 79                    <button type="button" id="ogControlPanelClose" class="og-panel-close" aria-label="Закрыть панель"><s
 80                </div>
 81                <div class="og-control-panel-body">
 82                    <details class="og-panel-section" open>
 83                        <summary class="og-panel-section-title"><span class="ag-icon ag-icon-settings" aria-hidden="true
 84                        <div class="og-panel-section-body">
 85                            <div class="og-panel-row"><span class="og-panel-row-label">Тема</span>
 86                                <div class="og-segment og-theme-segment">
 87                                    <button type="button" data-og-pref="theme" data-og-value="light">Светлая</button>
 88                                    <button type="button" data-og-pref="theme" data-og-value="dark">Тёмная</button>
 89                                    <button type="button" data-og-pref="theme" data-og-value="auto">Как в системе</butto
 90                                </div>
 91                            </div>
 92                            <div class="og-panel-row"><span class="og-panel-row-label">Строки</span>
 93                                <div class="og-segment">
 94                                    <button type="button" data-og-pref="rows" data-og-value="one" title="Одно значение в
 95                                    <button type="button" data-og-pref="rows" data-og-value="two" title="Две строки в яч
 96                                </div>
 97                            </div>
 98                            <div class="og-panel-row"><span class="og-panel-row-label">Плотность</span>
 99                                <div class="og-segment">
 100                                    <button type="button" data-og-pref="density" data-og-value="compact">Компактно</butt
 101                                    <button type="button" data-og-pref="density" data-og-value="normal">Обычно</button>
 102                                    <button type="button" data-og-pref="density" data-og-value="comfortable">Просторно</
 103                                </div>
 104                            </div>
 105                            <div class="og-panel-row"><span class="og-panel-row-label">Шрифт</span>
 106                                <div class="og-segment">
 107                                    <button type="button" data-og-pref="font" data-og-value="small">A−</button>
 108                                    <button type="button" data-og-pref="font" data-og-value="normal">A</button>
 109                                    <button type="button" data-og-pref="font" data-og-value="large">A+</button>
 110                                </div>
 111                            </div>
 112                            <label class="og-panel-switch"><input type="checkbox" id="ogFitColumns"><span class="og-pane
 113                            <div class="og-panel-actions">
 114                                <button type="button" id="ogAutosizeColumns"><span class="ag-icon ag-icon-arrows" aria-h
 115                                <button type="button" id="ogResetColumns"><span class="ag-icon ag-icon-loading" aria-hid
 116                            </div>
 117                            <div class="og-panel-actions">
 118                                <button type="button" id="ogResetFilters"><span class="ag-icon ag-icon-cancel" aria-hidd
 119                                <button type="button" id="txDraftReset"><span class="ag-icon ag-icon-cross" aria-hidden=
 120                            </div>
 121                            <div class="og-panel-hint">Тема, строки, плотность, шрифт и группы общие с таблицей заказов;
 122                        </div>
 123                    </details>
 124
 125                    <details class="og-panel-section" open>
 126                        <summary class="og-panel-section-title"><span class="ag-icon ag-icon-aggregation" aria-hidden="t
 127                        <div class="og-panel-section-body">
 128                            <div class="og-panel-hint">Вычисляемые столбцы по формуле — те же, что в таблице заказов; сч
 129                            <div id="ogComputedList" class="og-panel-list"></div>
 130                            <div class="og-panel-actions">
 131                                <button type="button" id="ogComputedAdd"><span class="ag-icon ag-icon-plus" aria-hidden=
 132                            </div>
 133                        </div>
 134                    </details>
 135
 136                    <details class="og-panel-section og-panel-section--columns" open>
 137                        <summary class="og-panel-section-title"><span class="ag-icon ag-icon-columns" aria-hidden="true"
 138                        <div class="og-panel-section-body">
 139                            <label class="og-panel-search"><span class="ag-icon ag-icon-search" aria-hidden="true"></spa
 140                            <div id="ogColumnList" class="og-column-list"></div>
 141                            <div class="og-panel-actions">
 142                                <button type="button" id="ogGroupAdd"><span class="ag-icon ag-icon-plus" aria-hidden="tr
 143                                <button type="button" id="ogLayoutReset"><span class="ag-icon ag-icon-loading" aria-hidd
 144                            </div>
 145                        </div>
 146                    </details>
 147
 148                    <div class="og-panel-filter-note"><span class="ag-icon ag-icon-filter" aria-hidden="true"></span> По
 149                </div>
 150            </aside>
 151            <button type="button" id="ogControlPanelBackdrop" class="og-control-panel-backdrop" tabindex="-1" aria-label
 152        </div>
 153
 154        <aside id="txDock" class="tx-dock" aria-label="Панель проведения">
 155            <div class="tx-dock-head">
 0156                <div><span class="og-control-panel-kicker">Проведение</span><strong id="txDockTitle">@d.Title</strong></
 157                <button type="button" class="og-panel-close" id="txDockClose" aria-label="Свернуть"><span class="ag-icon
 158            </div>
 159            <div class="tx-dock-body" id="txDockBody">
 160                <div class="tx-dock-loading"><span class="ag-icon ag-icon-loading" aria-hidden="true"></span> Загрузка…<
 161            </div>
 162            <div class="tx-dock-foot">
 163                <div class="tx-dock-summary" id="txDockSummary"></div>
 164                <button type="button" class="tx-commit" id="txCommit"><span class="ag-icon ag-icon-save" aria-hidden="tr
 165            </div>
 166        </aside>
 167    </div>
 168</div>
 169
 170<div class="tx-progress" id="txProgress" hidden>
 171    <div class="tx-progress-card">
 172        <div class="tx-progress-head"><span class="ag-icon ag-icon-loading tx-spin" aria-hidden="true"></span><strong>Пр
 173        <ol class="tx-progress-steps" id="txProgressSteps"></ol>
 174        <div class="tx-progress-note">Не закрывайте страницу до завершения.</div>
 175    </div>
 176</div>
 177
 178<div class="modal fade" id="txResultModal" tabindex="-1" aria-hidden="true">
 179    <div class="modal-dialog modal-dialog-centered modal-xl tx-result-dialog">
 180        <div class="modal-content orders-modal orders-modal--success">
 181            <div class="modal-header">
 182                <h5 class="modal-title">Результат проведения</h5>
 183                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
 184            </div>
 185            <div class="modal-body" id="txResultBody"></div>
 186            <div class="modal-footer">
 187                <button type="button" class="btn btn-secondary" id="txResultStay" data-bs-dismiss="modal">Остаться</butt
 188                <a class="btn btn-primary" id="txResultBack" href="#">К заказам</a>
 189            </div>
 190        </div>
 191    </div>
 192</div>
 193
 194<partial name="~/Areas/Studio2/Views/Partials/Orders/Modals/_LabelPrintConfirm.cshtml"/>
 195<partial name="~/Areas/Studio2/Views/Partials/Orders/Modals/_MultipleItemsConfirm.cshtml"/>
 196<partial name="~/Areas/Studio2/Views/Partials/Orders/_IndexPrintProgressOverlay.cshtml"/>
 197
 198<script>
 199    // Шим для модулей OrdersGrid: настройки раскладки едины на всех страницах транзакций.
 200    window.ordersGridConfig = {
 0201        saveSettingUrl: '@Url.Action("SaveSetting", "TransactionsGrid", new { area = "Studio2", slug = d.Slug })',
 0202        checkFormulaUrl: '@Url.Action("CheckFormula", "OrdersGrid", new { area = "Studio2" })',
 203        settingsStoragePrefix: 'txGrid.setting.',
 0204        userSettings: @Html.Raw(Json.Serialize(Model.UserSettings)),
 0205        allowedColumns: @Html.Raw(Json.Serialize(Model.AllowedColumns)),
 0206        formulaFields: @Html.Raw(Json.Serialize(Model.FormulaFields)),
 0207        statusColors: @Html.Raw(Json.Serialize(Model.StatusColors)),
 0208        clientStatusColors: @Html.Raw(Json.Serialize(Model.ClientStatusColors)),
 0209        isAdmin: @Json.Serialize(Model.IsAdmin),
 210        isAppSuperAdmin: false,
 211        blockSize: 100
 212    };
 213    window.txGridConfig = {
 0214        definition: @Html.Raw(Json.Serialize(d)),
 0215        orderIds: @Html.Raw(Json.Serialize(Model.OrderIds)),
 0216        returnUrl: @Html.Raw(Json.Serialize(Model.ReturnUrl)),
 0217        loadUrl: '@Url.Action("Load", "TransactionsGrid", new { area = "Studio2", slug = d.Slug })',
 0218        commitUrl: '@Url.Action("Commit", "TransactionsGrid", new { area = "Studio2", slug = d.Slug })',
 0219        lookupsUrl: '@Url.Action("Lookups", "TransactionsGrid", new { area = "Studio2", slug = d.Slug })',
 0220        previewUrl: '@Url.Action("Preview1C", "TransactionsGrid", new { area = "Studio2", slug = d.Slug })',
 0221        warehouseMappingCreateUrl: '@Url.Action("Create", "WarehouseMapping", new { area = "Studio2" })',
 0222        splitUrl: '@Url.Action("SplitOrders", "Orders", new { area = "Studio2" })',
 0223        excelStartUrl: '@Url.Action("StartTransactionExcelTask", "Transaction", new { area = "Studio2" })',
 0224        pdfUrl: '@Url.Action("PrintTransactionTableToPdf", "Transaction", new { area = "Studio2" })',
 225        stockLookupUrl: '/Studio2/WarehouseStock/lookup',
 0226        quotationSources: @Html.Raw(Json.Serialize(Model.QuotationSources)),
 0227        isAdmin: @Json.Serialize(Model.IsAdmin)
 228    };
 0229    window.isAdmin = @Json.Serialize(Model.IsAdmin);
 230    window.isAppSuperAdmin = false;
 231    window.statusColors = window.ordersGridConfig.statusColors;
 232    window.clientStatusColors = window.ordersGridConfig.clientStatusColors;
 233</script>
 234
 235@section Scripts {
 236    @* ag-grid-community.min.js подключён в _Layout. *@
 237    <script src="~/js/copyArticle.js" asp-append-version="true"></script>
 238    <script src="~/js/Studio2/Labels/ozonLabelPrintCore.js" asp-append-version="true"></script>
 239    <script src="~/js/Studio2/OrdersGrid/orders-grid-locale.js" asp-append-version="true"></script>
 240    <script src="~/js/Studio2/OrdersGrid/orders-grid-theme.js" asp-append-version="true"></script>
 241    <script src="~/js/Studio2/OrdersGrid/orders-grid-permissions.js" asp-append-version="true"></script>
 242    <script src="~/js/Studio2/OrdersGrid/orders-grid-filters.js" asp-append-version="true"></script>
 243    <script src="~/js/Studio2/OrdersGrid/orders-grid-menu.js" asp-append-version="true"></script>
 244    <script src="~/js/Studio2/OrdersGrid/orders-grid-header.js" asp-append-version="true"></script>
 245    <script src="~/js/Studio2/OrdersGrid/orders-grid-renderers.js" asp-append-version="true"></script>
 246    <script src="~/js/Studio2/OrdersGrid/orders-grid-feed-explain.js" asp-append-version="true"></script>
 247    <script src="~/js/Studio2/OrdersGrid/orders-grid-feed.js" asp-append-version="true"></script>
 248    <script src="~/js/Studio2/OrdersGrid/orders-grid-product-card.js" asp-append-version="true"></script>
 249    <script src="~/js/Studio2/OrdersGrid/orders-grid-columns.js" asp-append-version="true"></script>
 250    <script src="~/js/Studio2/OrdersGrid/orders-grid-rows.js" asp-append-version="true"></script>
 251    <script src="~/js/Studio2/OrdersGrid/orders-grid-views.js" asp-append-version="true"></script>
 252    <script src="~/js/Studio2/OrdersGrid/orders-grid-formula.js" asp-append-version="true"></script>
 253    <script src="~/js/Studio2/OrdersGrid/orders-grid-computed.js" asp-append-version="true"></script>
 254    <script src="~/js/Studio2/OrdersGrid/orders-grid-layout.js" asp-append-version="true"></script>
 255    <script src="~/js/Studio2/TransactionsGrid/tx-grid-config.js" asp-append-version="true"></script>
 256    <script src="~/js/Studio2/TransactionsGrid/tx-grid-calc.js" asp-append-version="true"></script>
 257    <script src="~/js/Studio2/TransactionsGrid/tx-grid-picker.js" asp-append-version="true"></script>
 258    <script src="~/js/Studio2/TransactionsGrid/tx-grid-columns.js" asp-append-version="true"></script>
 259    <script src="~/js/Studio2/TransactionsGrid/tx-grid-draft.js" asp-append-version="true"></script>
 260    <script src="~/js/Studio2/TransactionsGrid/tx-grid-validate.js" asp-append-version="true"></script>
 261    <script src="~/js/Studio2/TransactionsGrid/tx-grid-panel.js" asp-append-version="true"></script>
 262    <script src="~/js/Studio2/TransactionsGrid/tx-grid-bulk.js" asp-append-version="true"></script>
 263    <script src="~/js/Studio2/TransactionsGrid/tx-grid-result.js" asp-append-version="true"></script>
 264    <script src="~/js/Studio2/supplier-order-conflict.js" asp-append-version="true"></script>
 265    <script src="~/js/Studio2/TransactionsGrid/tx-grid-commit.js" asp-append-version="true"></script>
 266    <script src="~/js/Studio2/TransactionsGrid/tx-grid-offers.js" asp-append-version="true"></script>
 267    <script src="~/js/Studio2/Grid/offers-table-parts.js" asp-append-version="true"></script>
 268    <script src="~/js/Studio2/TransactionsGrid/tx-grid-offers-table.js" asp-append-version="true"></script>
 269    <script src="~/js/Studio2/TransactionsGrid/tx-grid-cart.js" asp-append-version="true"></script>
 270    <script src="~/js/Studio2/TransactionsGrid/tx-grid-print.js" asp-append-version="true"></script>
 271    <script src="~/js/Studio2/TransactionsGrid/tx-grid-ozon.js" asp-append-version="true"></script>
 272    <script src="~/js/Studio2/TransactionsGrid/tx-grid-stock.js" asp-append-version="true"></script>
 273    <script src="~/js/Studio2/OrdersGrid/orders-grid-feed-columns.js" asp-append-version="true"></script>
 274    <script src="~/js/Studio2/TransactionsGrid/tx-grid-feed.js" asp-append-version="true"></script>
 275    <script src="~/js/Studio2/TransactionsGrid/tx-grid-ship.js" asp-append-version="true"></script>
 276    <script src="~/js/Studio2/TransactionsGrid/tx-grid.js" asp-append-version="true"></script>
 277}

Methods/Properties

ExecuteAsync()
<ExecuteAsync()