| | | 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> |
| | 0 | 82 | | window.excOzonClients = @Html.Raw(System.Text.Json.JsonSerializer.Serialize( |
| | 0 | 83 | | Model.OzonClients.Select(c => new { id = c.Id, name = c.Name ?? $"ID {c.Id}" }).ToList() |
| | 0 | 84 | | )); |
| | | 85 | | window.bitrixStockExceptionsApi = { |
| | 0 | 86 | | articles: '@Url.Action("GetExceptionArticles", "BitrixStock", new { area = "Studio2" })', |
| | 0 | 87 | | prices: '@Url.Action("GetClientPrices", "BitrixStock", new { area = "Studio2" })', |
| | 0 | 88 | | 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> |