| | | 1 | | @using OzonOrdersWeb.Areas.Studio2.ViewModels.ApiSupplierSettings |
| | | 2 | | @using OzonOrdersWeb.Areas.Studio2.ViewModels.Grid |
| | | 3 | | @using OzonOrdersWeb.WebServices.ApiSettingsGrid |
| | | 4 | | @model ApiSupplierSettingsViewModelBase |
| | | 5 | | @* |
| | | 6 | | Общие настройки API-поставщика на AG Grid: «параметр — значение» и склады поставщика. |
| | | 7 | | Заменяет прежние поля валюты/проценки и список складов (форма на разметке); значения уходят обычным POST формы стран |
| | | 8 | | (скрытые поля подставляет api-settings-grid.js). Подсказки — ViewData["CurrencyHint"|"QuotationHint"]. |
| | | 9 | | *@ |
| | | 10 | | @{ |
| | 0 | 11 | | var errors = ViewContext.ModelState |
| | 0 | 12 | | .Where(x => x.Value?.Errors.Count > 0 && !string.IsNullOrEmpty(x.Key)) |
| | 0 | 13 | | .ToDictionary(x => x.Key, x => x.Value!.Errors[0].ErrorMessage); |
| | 0 | 14 | | var settingRows = ApiSupplierSettingsGridRows.Build(Model, ViewData["CurrencyHint"] as string, ViewData["QuotationHi |
| | 0 | 15 | | var warehouseRows = ApiSupplierSettingsGridRows.BuildWarehouses(Model); |
| | | 16 | | } |
| | 0 | 17 | | @await Html.PartialAsync("_BsxDirectoryGrid", new BsxDirectoryGridViewModel("apsSettings", "Параметры поставщика", "fa-s |
| | | 18 | | <div class="aps-wh-head"> |
| | | 19 | | <div> |
| | | 20 | | <h2><i class="fas fa-warehouse me-2" aria-hidden="true"></i>Склады поставщика</h2> |
| | | 21 | | <p>Отметьте склады Studio2, для заказов которых поставщик доступен. Если не отмечен ни один — ограничения нет, п |
| | | 22 | | </div> |
| | | 23 | | <div class="aps-wh-actions" aria-live="polite"> |
| | | 24 | | <span class="bsx-dir-stat">Выбрано <b id="apsWhSelected">0</b></span> |
| | 0 | 25 | | <span class="bsx-dir-stat">Всего <b>@warehouseRows.Count</b></span> |
| | | 26 | | <button type="button" class="btn btn-sm btn-outline-secondary" data-aps-wh-action="all">Выбрать все</button> |
| | | 27 | | <button type="button" class="btn btn-sm btn-outline-secondary" data-aps-wh-action="none">Снять все</button> |
| | | 28 | | </div> |
| | | 29 | | </div> |
| | 0 | 30 | | @await Html.PartialAsync("_BsxDirectoryGrid", new BsxDirectoryGridViewModel("apsWh", "Склады", "fa-warehouse", "Поиск ск |
| | 0 | 31 | | warehouseRows.Count == 0 ? "Склады не заведены в справочнике Studio2." : null)) |
| | | 32 | | <script src="~/js/Studio2/Grid/bsx-directory.js" asp-append-version="true"></script> |
| | | 33 | | <script src="~/js/Studio2/ApiSupplierSettings/api-settings-grid.js" asp-append-version="true"></script> |
| | | 34 | | <script> |
| | | 35 | | (function () { |
| | | 36 | | var form = document.currentScript.closest('form'); |
| | | 37 | | // AG Grid подключается в _Layout после тела страницы — гриды создаём, когда всё загружено. |
| | | 38 | | document.addEventListener('DOMContentLoaded', function () { |
| | | 39 | | ApsSettingsGrid.mount({ |
| | | 40 | | form: form, |
| | 0 | 41 | | decimalSeparator: @Json.Serialize(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDec |
| | 0 | 42 | | settings: @Json.Serialize(settingRows), |
| | 0 | 43 | | warehouses: @Json.Serialize(warehouseRows) |
| | | 44 | | }); |
| | | 45 | | }); |
| | | 46 | | })(); |
| | | 47 | | </script> |