< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_BitrixStock__SyncReportTab
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/BitrixStock/_SyncReportTab.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 22
Coverable lines: 22
Total lines: 82
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 22
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%420200%

File(s)

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

#LineLine coverage
 1@model OzonOrdersWeb.Areas.Studio2.ViewModels.Bitrix.RemainingStockViewModel
 2@{
 03    var warehouseStockUrl = Url.Action("Index", "WarehouseStock", new { area = "Studio2" })!;
 04    var mappingUrl = Url.Action("Index", "WarehouseMapping", new { area = "Studio2" })!;
 05    var syncSubTab = (ViewBag.SyncSubTab as string) ?? "pipeline";
 06    var isPipelineSubTab = string.Equals(syncSubTab, "pipeline", StringComparison.OrdinalIgnoreCase);
 07    var pipelineUrl = Url.Action("Index", "BitrixStock", new { area = "Studio2", tab = "sync", syncSubTab = "pipeline" }
 08    var automationUrl = Url.Action("Index", "BitrixStock", new { area = "Studio2", tab = "sync", syncSubTab = "google-au
 09    var bsxRowsUrl = Url.Action("GetSyncReportGridRows", "BitrixStock", new { area = "Studio2", reportId = "__REPORTID__
 010    var bsxFacetsUrl = Url.Action("GetSyncReportGridFacets", "BitrixStock", new { area = "Studio2", reportId = "__REPORT
 011    var bsxNamesUrl = Url.Action("GetSyncReportProductNames", "BitrixStock", new { area = "Studio2", reportId = "__REPOR
 12}
 13
 14@* Гриды вкладки — модули поверх общей оболочки Shared/_BsxGridShell (Index.cshtml). *@
 15<script>
 16    Object.assign(window.bsxGridConfig, {
 017        runsUrl: @Html.Raw(System.Text.Json.JsonSerializer.Serialize(Url.Action("GetSyncRunsGrid", "BitrixStock", new { 
 018        reportRowsUrl: @Html.Raw(System.Text.Json.JsonSerializer.Serialize(bsxRowsUrl)),
 019        reportFacetsUrl: @Html.Raw(System.Text.Json.JsonSerializer.Serialize(bsxFacetsUrl)),
 020        productNamesUrl: @Html.Raw(System.Text.Json.JsonSerializer.Serialize(bsxNamesUrl))
 21    });
 22</script>
 23<script src="~/js/Studio2/BitrixStock/SyncGrid/bsx-sync-runs.js" asp-append-version="true"></script>
 24<script src="~/js/Studio2/BitrixStock/SyncGrid/bsx-sync-report.js" asp-append-version="true"></script>
 25<script src="~/js/Studio2/BitrixStock/SyncGrid/bsx-sync-view.js" asp-append-version="true"></script>
 26
 27<ul class="nav bsx-subtabs mb-3">
 28    <li class="nav-item">
 29        <a class="nav-link @(isPipelineSubTab ? "active" : "")" href="@pipelineUrl">
 30            <i class="fas fa-project-diagram me-1"></i>Пайплайн синхронизации
 31        </a>
 32    </li>
 33    <li class="nav-item">
 34        <a class="nav-link @(!isPipelineSubTab ? "active" : "")" href="@automationUrl">
 35            <i class="fas fa-clock me-1"></i>Автозапуск Google Sync
 36        </a>
 37    </li>
 38</ul>
 39
 040@if (isPipelineSubTab)
 41{
 42    <div class="bsx-intro-card">
 43        <h6>Как запустить отчёт</h6>
 44        <ol class="mb-2 small ps-3">
 45            <li>Убедитесь, что актуален snapshot остатков на странице
 46                <a href="@warehouseStockUrl" target="_blank">WarehouseStock</a> (источник данных 1С).
 47            </li>
 48            <li>Проверьте <a href="@mappingUrl" target="_blank">связи складов</a> 1С ↔ Ozon для выбранного клиента.</li>
 49            <li>Выберите клиента Ozon и склады 1С (B1, B2, M1, M2, M3), при необходимости — артикул для ограничения snap
 50            <li>Нажмите <strong>Сформировать отчёт</strong> — задание уйдёт в Hangfire; запуск сохраняется в <code>Bitri
 51            <li>В таблице <strong>История обработок</strong> откройте любой завершённый отчёт кнопкой «Открыть».</li>
 52            <li>В отчёт попадают все товары snapshot; отдельно помечаются «не найден в Ozon» для клиента. Фильтры — над 
 53            <li><strong>Этап 2:</strong> после отчёта — «Выполнить синхронизацию в Ozon» (выбор ↑/↓/⊘, лимит строк). Усп
 54            <li>Строки отчёта: ↑ накатить, ↓ уменьшить, ⊘ обнулить, ✓ без изменений.
 55                <span class="text-muted">В Ozon остатки не меняются (dry-run).</span>
 56            </li>
 57        </ol>
 58        <p class="mb-0 small text-muted">
 59            URL вкладки: <code>/Studio2/BitrixStock?tab=sync</code>
 60        </p>
 61    </div>
 62
 063    @await Html.PartialAsync("_SyncReportCard", Model)
 64}
 65else
 66{
 067    @await Html.PartialAsync("_SyncGoogleAutomationTab", Model)
 68}
 69
 70@* Скрипт исключений нужен на sync-табе для кнопки ban на карточках пресетов *@
 71<script>
 072    window.excOzonClients = @Html.Raw(System.Text.Json.JsonSerializer.Serialize(
 073        Model.OzonClients.Select(c => new { id = c.Id, name = c.Name ?? $"ID {c.Id}" }).ToList()
 074    ));
 75    window.bitrixStockExceptionsApi = {
 076        articles: '@Url.Action("GetExceptionArticles", "BitrixStock", new { area = "Studio2" })',
 077        prices: '@Url.Action("GetClientPrices", "BitrixStock", new { area = "Studio2" })',
 078        stockRules: '@Url.Action("GetStockRules", "BitrixStock", new { area = "Studio2" })'
 79    };
 80</script>
 81<script src="~/js/Studio2/BitrixStock/bitrix-stock-exceptions.js" asp-append-version="true"></script>
 82<script src="~/js/st2-channel-task.js" asp-append-version="true"></script>

Methods/Properties

ExecuteAsync()