< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_BitrixStock__ExceptionsTab
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/BitrixStock/_ExceptionsTab.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 6
Coverable lines: 6
Total lines: 91
Line coverage: 0%
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
ExecuteAsync()0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/BitrixStock/_ExceptionsTab.cshtml

#LineLine coverage
 1@model OzonOrdersWeb.Areas.Studio2.ViewModels.Bitrix.RemainingStockViewModel
 2@using OzonDomains.Models
 3
 4<div class="bsx-intro-card mb-3">
 5    <h6>Справочник исключений из синхронизации</h6>
 6    <ul class="mb-2 small ps-3">
 7        <li><strong>Артикулы-исключения</strong> — глобальный список: отдельно «пропуск остатков» и «пропуск цен». Можно
 8        <li><strong>Правила цен по кабинетам</strong> — для конкретного артикула и кабинета Ozon задайте: стандартное по
 9        <li><strong>Правила остатков</strong> — для конкретного артикула укажите: накатывать как обычно или пропускать. 
 10    </ul>
 11    <p class="mb-0 small text-muted">Изменения вступают в силу немедленно — кэш сбрасывается автоматически.</p>
 12</div>
 13
 14<!-- ═══════════════════════════════════════════════════════════
 15     СЕКЦИЯ 1: Артикулы-исключения
 16     ═══════════════════════════════════════════════════════════ -->
 17<div class="card mb-4" id="exc-articles-card">
 18    <div class="card-header d-flex justify-content-between align-items-center">
 19        <span><i class="fas fa-ban me-2 text-danger"></i><strong>Артикулы-исключения</strong></span>
 20        <button class="btn btn-sm btn-primary" id="btn-add-article">
 21            <i class="fas fa-plus me-1"></i>Добавить
 22        </button>
 23    </div>
 24    <div class="card-body p-2">
 25        <div class="bsx-grid-toolbar mb-2">
 26            <div class="bsx-grid-search">
 27                <i class="fas fa-search"></i>
 28                <input type="search" id="exc-search-articles" placeholder="Артикул, комментарий…" autocomplete="off"/>
 29            </div>
 30            <span class="bsx-grid-count" id="exc-count-articles"></span>
 31        </div>
 32        <div id="grid-articles" class="bsx-grid bsx-grid--section"></div>
 33    </div>
 34</div>
 35
 36<!-- ═══════════════════════════════════════════════════════════
 37     СЕКЦИЯ 2: Правила цен по кабинетам
 38     ═══════════════════════════════════════════════════════════ -->
 39<div class="card mb-4" id="exc-prices-card">
 40    <div class="card-header d-flex justify-content-between align-items-center">
 41        <span><i class="fas fa-tag me-2 text-info"></i><strong>Правила цен по кабинетам</strong></span>
 42        <button class="btn btn-sm btn-primary" id="btn-add-price">
 43            <i class="fas fa-plus me-1"></i>Добавить
 44        </button>
 45    </div>
 46    <div class="card-body p-2">
 47        <div class="bsx-grid-toolbar mb-2">
 48            <div class="bsx-grid-search">
 49                <i class="fas fa-search"></i>
 50                <input type="search" id="exc-search-prices" placeholder="Артикул, кабинет, режим…" autocomplete="off"/>
 51            </div>
 52            <span class="bsx-grid-count" id="exc-count-prices"></span>
 53        </div>
 54        <div id="grid-prices" class="bsx-grid bsx-grid--section"></div>
 55    </div>
 56</div>
 57
 58<!-- ═══════════════════════════════════════════════════════════
 59     СЕКЦИЯ 3: Правила остатков
 60     ═══════════════════════════════════════════════════════════ -->
 61<div class="card mb-4" id="exc-stock-card">
 62    <div class="card-header d-flex justify-content-between align-items-center">
 63        <span><i class="fas fa-boxes me-2 text-warning"></i><strong>Правила остатков</strong></span>
 64        <button class="btn btn-sm btn-primary" id="btn-add-stock">
 65            <i class="fas fa-plus me-1"></i>Добавить
 66        </button>
 67    </div>
 68    <div class="card-body p-2">
 69        <div class="bsx-grid-toolbar mb-2">
 70            <div class="bsx-grid-search">
 71                <i class="fas fa-search"></i>
 72                <input type="search" id="exc-search-stock" placeholder="Артикул, кабинет, режим…" autocomplete="off"/>
 73            </div>
 74            <span class="bsx-grid-count" id="exc-count-stock"></span>
 75        </div>
 76        <div id="grid-stock" class="bsx-grid bsx-grid--section"></div>
 77    </div>
 78</div>
 79
 80<!-- Данные кабинетов для JS -->
 81<script>
 082    window.excOzonClients = @Html.Raw(System.Text.Json.JsonSerializer.Serialize(
 083        Model.OzonClients.Select(c => new { id = c.Id, name = c.Name ?? $"ID {c.Id}" }).ToList()
 084    ));
 85    window.bitrixStockExceptionsApi = {
 086        articles: '@Url.Action("GetExceptionArticles", "BitrixStock", new { area = "Studio2" })',
 087        prices: '@Url.Action("GetClientPrices", "BitrixStock", new { area = "Studio2" })',
 088        stockRules: '@Url.Action("GetStockRules", "BitrixStock", new { area = "Studio2" })'
 89    };
 90</script>
 91<script src="~/js/Studio2/BitrixStock/bitrix-stock-exceptions.js" asp-append-version="true"></script>

Methods/Properties

ExecuteAsync()