| | | 1 | | namespace OzonOrdersWeb.Areas.Admin.OrderList; |
| | | 2 | | |
| | | 3 | | /// <summary> |
| | | 4 | | /// Колонки списка заказов (главная и иные экраны в том же формате), в том же порядке, что и на UI. |
| | | 5 | | /// Соответствуют флагам AccessProfile.<c>AvailableOrderColumns</c> (ключ «фильтр в представлении»). |
| | | 6 | | /// </summary> |
| | | 7 | | public static class OrderListColumnCatalog |
| | | 8 | | { |
| | | 9 | | public const string EntityName = "OrderList"; |
| | | 10 | | |
| | 30 | 11 | | public sealed record OrderListColumn( |
| | 0 | 12 | | int SortOrder, |
| | 153 | 13 | | string FieldName, |
| | 0 | 14 | | string DisplayName, |
| | 30 | 15 | | /// <summary>Строка из AvailableOrderColumns.Contains, если колонка подчиняется одному гейту; иначе null.</summa |
| | 120 | 16 | | string? LegacyAccessKey); |
| | | 17 | | |
| | | 18 | | /// <summary>Все заранее заданные колонки (код поля + подпись как на главной).</summary> |
| | 5 | 19 | | public static IReadOnlyList<OrderListColumn> All { get; } = new OrderListColumn[] |
| | 1 | 20 | | { |
| | 1 | 21 | | new(1, "ShipmentNumber", "Номер заказа", "Номер заказа"), |
| | 1 | 22 | | new(2, "Delivery", "Доставка", "Номер заказа"), |
| | 1 | 23 | | new(3, "DeliveryType", "Тип доставки", "Номер заказа"), |
| | 1 | 24 | | new(4, "OzonClient", "Клиент", "Клиент"), |
| | 1 | 25 | | new(5, "DeliveryCity", "Город доставки", "Город доставки"), |
| | 1 | 26 | | new(6, "TrackingNumber", "Трек-номер", "Номер заказа"), |
| | 1 | 27 | | new(7, "ProcessingDate", "Принят (в обработку)", "Принят в обработку"), |
| | 1 | 28 | | new(8, "ShippingDate", "Дата отгрузки", "Дата отгрузки"), |
| | 1 | 29 | | new(9, "DeliveryPeriod", "Срок доставки / осталось", "Срок доставки"), |
| | 1 | 30 | | new(10, "ProductKey", "Key", "Key"), |
| | 1 | 31 | | new(11, "Manufacturer", "Производитель", "Производитель"), |
| | 1 | 32 | | new(12, "Article", "Артикул (код товара)", "Артикул"), |
| | 1 | 33 | | new(13, "ProductName", "Наименование товара", "Наименование товара"), |
| | 1 | 34 | | new(14, "ClientStatus", "Статус клиента", "Статус клиента"), |
| | 1 | 35 | | new(15, "AppStatus", "Статус (в отчёте)", "Статус"), |
| | 1 | 36 | | new(16, "ShipmentWarehouse", "Склад отгрузки", "Склад отгрузки"), |
| | 1 | 37 | | new(17, "LastStatusChangeDate", "Дата изм. статуса", "Срок доставки"), |
| | 1 | 38 | | new(18, "Supplier", "Поставщик", "Поставщик"), |
| | 1 | 39 | | new(19, "SupplierOrderNumber", "Номер заказа поставщику", "Номер заказа поставщику"), |
| | 1 | 40 | | new(20, "Category", "Категория", "Категория"), |
| | 1 | 41 | | new(21, "VolumeWeight", "Объемный вес (Вес V)", "Объемный вес"), |
| | 1 | 42 | | new(22, "SitePrice", "Цена сайта", "Цена сайта"), |
| | 1 | 43 | | new(23, "Quantity", "Количество", "Количество"), |
| | 1 | 44 | | new(24, "Price", "Цена", "Цена"), |
| | 1 | 45 | | new(25, "ShipmentTotal", "Сумма отправления", "Сумма отправления"), |
| | 1 | 46 | | new(26, "PurchasePrice", "Цена закупки", "Цена закупки"), |
| | 1 | 47 | | new(27, "Cost", "Себестоимость", "Себестоимость"), |
| | 1 | 48 | | new(28, "OzonCommission", "Комиссия ОЗОН", "Комиссия ОЗОН"), |
| | 1 | 49 | | new(29, "Profit", "Прибыль (min / max в таблице)", "Прибыль"), |
| | 1 | 50 | | new(30, "MarkupPercent", "Наценка % (min / max в таблице)", "Наценка %"), |
| | 1 | 51 | | }; |
| | | 52 | | |
| | | 53 | | public static bool IsCatalogFieldName(string? fieldName) => |
| | 0 | 54 | | !string.IsNullOrEmpty(fieldName) && All.Any(c => c.FieldName.Equals(fieldName, StringComparison.OrdinalIgnoreCas |
| | | 55 | | } |