< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_Partials_Transaction__MultiplayEditV2TableHead
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/Partials/Transaction/_MultiplayEditV2TableHead.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 42
Coverable lines: 42
Total lines: 386
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 94
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%8930940%
Col()0%620%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/Partials/Transaction/_MultiplayEditV2TableHead.cshtml

#LineLine coverage
 1@using OzonOrdersWeb.Areas.Studio2.ViewHelpers
 2@model OzonOrdersWeb.ViewModels.OrderViewModels.MultiplayEditOrderViewModel
 3@{
 04    var fieldMap = Model.OrderListFieldReadAccess;
 05    bool Col(string fieldName) => fieldMap == null || fieldMap.GetValueOrDefault(fieldName, true);
 6}
 7
 8
 9<thead>
 10<tr>
 011    @if (Col("ShipmentNumber"))
 12    {
 13        <th id="thShipmentNumber" data-column="shipmentNumber">
 14            <div class="two-row-cell">
 15                <div id="thShipmentNumberSort" class="cell-row">
 16                    <small>Номер заказа</small>
 17                    <input id="shipmentNumberFilter" class="form-control form-control-sm" readonly data-tx-locked title=
 18                </div>
 19                <div id="thDeliverySort" class="cell-row text-muted">
 20                    <small>Доставка</small>
 21                    <input id="deliveryFilter" class="form-control form-control-sm" autocomplete="off" readonly data-tx-
 22                </div>
 23            </div>
 24        </th>
 25    }
 26    <th data-column="client">
 27        <div class="two-row-cell">
 028        @if (Col("OzonClient"))
 29        {
 30            <div id="thOzonClient" class="cell-row">
 31                <small>Клиент</small>
 32                <input id="ozonClientFilterInput" class="form-control form-control-sm" autocomplete="off" readonly data-
 33            </div>
 34        }
 035        @if (Col("DeliveryCity"))
 36        {
 37            <div id="thDeliveryCity" class="text-muted cell-row">
 38                <small>Город</small>
 39                <input id="deliveryCityFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле 
 40            </div>
 41        }
 42        </div>
 43    </th>
 44    <th data-column="dates">
 45        <div class="two-row-cell">
 046        @if (Col("ProcessingDate"))
 47        {
 48            <div id="thProcessingDate" class="cell-row">
 49                <small>Принят</small>
 50                <input id="processingDateFilter" class="form-control form-control-sm" type="date" readonly data-tx-locke
 51            </div>
 52        }
 053        @if (Col("ShippingDate"))
 54        {
 55            <div id="thShippingDate" class="text-muted cell-row">
 56                <small>Дата отгр.</small>
 57                <input id="shippingDateFilter" class="form-control form-control-sm" type="date" readonly data-tx-locked 
 58            </div>
 59        }
 60        </div>
 61    </th>
 62
 63    <th data-column="period">
 64        <div class="two-row-cell">
 065        @if (Col("DeliveryPeriod"))
 66        {
 67            <div id="thDeliveryPeriod" class="cell-row">
 68                <small>Срок</small>
 69                <input id="deliveryPeriodInput" class="form-control form-control-sm" type="text" placeholder="1 д. 1 ч."
 70            </div>
 71        }
 072        @if (Col("DeliveryPeriod"))
 73        {
 74            <div id="thTimeLeft" class="text-muted cell-row">
 75                <small>Остал.</small>
 76                <input id="timeLeftDayInput" class="form-control form-control-sm" type="number" placeholder="1 д." reado
 77            </div>
 78        }
 79        </div>
 80    </th>
 81
 82    <th class="orders-product-col" data-column="productInfo">
 83        <div class="two-row-cell w-100">
 84            <div class="cell-row orders-product-head-row1">
 85                <div id="thArticle" class="orders-product-pair">
 86                    <small>Key</small>
 87                    <input id="articleFilter" type="text" class="form-control form-control-sm" readonly data-tx-locked t
 88                </div>
 89                <div id="thManufacturer" class="orders-product-pair orders-product-pair-center">
 90                    <small>Производитель</small>
 91                    <input id="manufacturerFilter" type="text" class="form-control form-control-sm" readonly data-tx-loc
 92                </div>
 93                <div id="thArticle2" class="orders-product-pair orders-product-pair-end">
 94                    <small>Код товара</small>
 95                    <input id="articleFilter2" type="text" class="form-control form-control-sm" readonly data-tx-locked 
 96                </div>
 97            </div>
 98            <div id="thProductName" class="cell-row text-muted">
 99                <small>Наименование товара</small>
 100                <input id="productNameFilter" type="text" class="form-control form-control-sm" readonly data-tx-locked t
 101            </div>
 102        </div>
 103    </th>
 104
 105    <th class="permanent-col actions-col-head" data-column="actionsCol">
 106        <span class="visually-hidden">Действия</span>
 107    </th>
 108
 109    <th class="status-column-head" data-column="status">
 110        <div class="two-row-cell px-1">
 0111            @if (Col("ClientStatus"))
 112            {
 113                <div id="thStatusOzon" class="cell-row">
 114                    <small>Статус клиента</small>
 115                    <input id="statusFilter" class="form-control form-control-sm statusFilter" style="width: 100%;" auto
 116                </div>
 117            }
 0118            @if (Col("AppStatus"))
 119            {
 120                <div id="thStatus" class="text-muted cell-row tx-bulk-row">
 121                    <small><span>Статус</span><span class="tx-bulk-hint" title="Значение применяется ко всем строкам док
 122                    <div class="position-relative w-100">
 123                    <select class="form-control form-control-sm status-select custom-select-init" id="statusSelect" data
 124                            onchange="handleStatusSelectChange(this)">
 125                        <option value="">Выберите значение</option>
 0126                        @if (ViewBag.AppStatuses is IEnumerable<SelectListItem> appStatuses)
 127                        {
 0128                            foreach (var status in appStatuses)
 129                            {
 0130                                var color = ViewBag.StatusColors != null
 0131                                    ? ViewBag.StatusColors[status.Value] as string
 0132                                    : "#ffffff";
 0133                                <option value="@status.Value" data-color="@color"
 134                                        style="background-color: @color; color: @StatusColorContrast.GetTextColor(color)
 0135                                    @status.Text
 136                                </option>
 137                            }
 138                        }
 139                        <option value="create" class="link-option">Создать статус</option>
 140                    </select>
 141                    </div>
 142                </div>
 143            }
 144        </div>
 145    </th>
 146
 147    <th data-column="warehouse">
 148        <div class="two-row-cell">
 0149        @if (Col("ShipmentWarehouse"))
 150        {
 0151            @if (ViewBag.ShowWarehouseSelect == true)
 152            {
 153                <div id="thShipmentWarehouse" class="cell-row tx-bulk-row">
 154                    <small><span>Склад отгрузки</span><span class="tx-bulk-hint" title="Значение применяется ко всем стр
 155                    <div class="position-relative w-100">
 156                    <select class="form-control form-control-sm universalSelect custom-select-init" id="universalWarehou
 157                            onchange="handleWarehouseSelectChange(this)">
 158                        <option value="">Выберите значение</option>
 0159                        @foreach (var warehouse in Model.Warehouses)
 160                        {
 0161                            <option value="@warehouse.Id">@warehouse.Name</option>
 162                        }
 163                    </select>
 164                    </div>
 165                </div>
 166
 167                <script>
 168                    function handleWarehouseSelectChange(selectElement) {
 169                        if (!selectElement) return;
 170                        var warehouseId = selectElement.value;
 171                        if (!warehouseId) return;
 172                        document.querySelectorAll('.warehouse-select').forEach(function (warehouseSelect) {
 173                            if (warehouseSelect) {
 174                                warehouseSelect.value = warehouseId;
 175                                warehouseSelect.dispatchEvent(new Event('change'));
 176                            }
 177                        });
 178                    }
 179                </script>
 180            }
 181            else
 182            {
 183                <div id="thShipmentWarehouse" class="cell-row">
 184                    <small>Склад отгрузки</small>
 185                    <input id="shipmentWarehouseFilter" class="form-control form-control-sm" autocomplete="off" style="w
 186                </div>
 187            }
 188        }
 0189        @if (Col("DeliveryPeriod"))
 190        {
 191            <div id="thLastStatusChange" class="cell-row text-muted">
 192                <small>Дата изм. статуса</small>
 193                <input id="lastStatusChangeDateFilter" class="form-control form-control-sm" autocomplete="off" style="wi
 194            </div>
 195        }
 196        </div>
 197    </th>
 198
 199    <th data-column="supplier">
 200        <div class="two-row-cell">
 0201            @if (Col("Supplier"))
 202            {
 203                <div id="thSupplier" class="cell-row tx-bulk-row">
 204                    <small><span>Поставщик</span><span class="tx-bulk-hint" title="Значение применяется ко всем строкам 
 205                    <div class="position-relative w-100">
 206                        <select class="form-control form-control-sm universalSelect custom-select-init" id="universalSel
 207                                onchange="handleSelectChange(this)">
 208                        <option value="">Выберите значение</option>
 0209                        @foreach (var supplier in Model.Suppliers)
 210                        {
 0211                            <option value="@supplier.Id" data-currency-code="@supplier.CurrencyCode"
 0212                                    data-cost-factor="@supplier.CostFactor">
 0213                                @supplier.Name - @supplier.CurrencyCode
 214                            </option>
 215                        }
 0216                        <option value="create" class="link-option" data-url="@Url.Action("Create", "Supplier")">
 217                            Создать поставщика
 218                        </option>
 219                    </select>
 220                    </div>
 221                </div>
 222
 223                <script>
 224                    function handleSelectChange(selectElement) {
 225                        if (!selectElement) return;
 226                        if (selectElement.value === "create") {
 0227                            window.location.href = '@Url.Action("Create", "Supplier")';
 228                            return;
 229                        }
 230                        if (!selectElement.options || selectElement.selectedIndex < 0) return;
 231                        var selectedOption = selectElement.options[selectElement.selectedIndex];
 232                        if (!selectedOption) return;
 233                        var supplierId = selectedOption.value;
 234                        if (!supplierId) return;
 235                        var currencyCode = selectedOption.getAttribute('data-currency-code') || '';
 236                        document.querySelectorAll('.supplier-select').forEach(function (supplierSelect) {
 237                            if (supplierSelect) {
 238                                supplierSelect.value = supplierId;
 239                                supplierSelect.dispatchEvent(new Event('change'));
 240                                var currencySpan = supplierSelect.closest('td')?.querySelector('.currency-code');
 241                                if (currencySpan) currencySpan.textContent = currencyCode || '';
 242                            }
 243                        });
 244                    }
 245                </script>
 246            }
 247
 0248            @if (Col("SupplierOrderNumber"))
 249            {
 250                <div id="thOrderNumberToSupplierSort" class="text-muted cell-row tx-bulk-row"
 251                     title="Номер заказа поставщику">
 252                    <small><span>Номер зак. п.</span><span class="tx-bulk-hint" title="Значение применяется ко всем стро
 253                    <input type="text" class="form-control form-control-sm universalOrderNumberToSupplie"
 254                           id="universalOrderNumberToSupplier" data-tx-bulk title="Введённый номер будет проставлен во в
 255                           placeholder="Номер зак. п."/>
 256                </div>
 257            }
 258        </div>
 259    </th>
 260
 261    <th data-column="category">
 262        <div class="two-row-cell">
 0263            @if (Col("Category"))
 264            {
 265                <div id="thCategory" class="cell-row">
 266                    <small>Категория</small>
 267                    <input id="commercialCategoryFilter" class="form-control form-control-sm" readonly data-tx-locked ti
 268                </div>
 269            }
 0270            @if (Col("VolumeWeight"))
 271            {
 272                <div id="thVolume" class="text-muted cell-row">
 273                    <small>Вес V</small>
 274                    <input id="volumetricWeightFilter" class="form-control form-control-sm" readonly data-tx-locked titl
 275                </div>
 276            }
 277        </div>
 278    </th>
 279
 280    <th data-column="sitePrice">
 281        <div class="two-row-cell">
 0282        @if (Col("SitePrice"))
 283        {
 284            <div id="thPurchasePrice" class="cell-row">
 285                <small>Цена с.</small>
 286                <input id="currentPriceWithDiscountFilter" class="form-control form-control-sm" readonly data-tx-locked 
 287            </div>
 288        }
 0289        @if (Col("Quantity"))
 290        {
 291            <div id="thQuantity" class="text-muted cell-row">
 292                <small>Кол.</small>
 293                <input id="quantityFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле недо
 294            </div>
 295        }
 296        </div>
 297    </th>
 298
 299    <th data-column="price">
 300        <div class="two-row-cell">
 0301        @if (Col("Price"))
 302        {
 303            <div id="thPrice" class="cell-row">
 304                <small>Цена</small>
 305                <input id="priceFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле недосту
 306            </div>
 307        }
 0308        @if (Col("ShipmentTotal"))
 309        {
 310            <div id="thShipmentAmount" class="text-muted cell-row">
 311                <small>Сумма о.</small>
 312                <input id="shipmentAmountFilter" class="form-control form-control-sm" readonly data-tx-locked title="Пол
 313            </div>
 314        }
 315        </div>
 316    </th>
 317
 318    <th data-column="purchasePrice">
 319        <div class="two-row-cell">
 0320        @if (Col("PurchasePrice"))
 321        {
 322            <div id="thCurrentPrice" class="cell-row">
 323                <small>Цена заку.</small>
 324                <input id="purchasePriceFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле
 325            </div>
 326        }
 0327        @if (Col("Cost"))
 328        {
 329            <div id="thCostPrice" class="text-muted cell-row">
 330                <small>Себест.</small>
 331                <input id="costPriceFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле нед
 332            </div>
 333        }
 334        </div>
 335    </th>
 336
 337    <th id="thExtraExpenses" data-column="extraExpenses" style="display: none;">
 338        <div class="two-row-cell">
 339            <small>Доп. расходы</small>
 340        </div>
 341    </th>
 342
 0343    @if (Col("OzonCommission"))
 344    {
 345        <th id="thOzonCommission" data-column="commission" class="tx-metric-col">
 346            <div class="two-row-cell">
 347                <div class="cell-row">
 348                    <small>Комис.</small>
 349                    <input id="ozonCommissionFilter" class="form-control form-control-sm" readonly data-tx-locked title=
 350                </div>
 351                <div class="text-muted cell-row tx-metric-hint">
 352                    <small>min / max</small>
 353                </div>
 354            </div>
 355        </th>
 356    }
 0357    @if (Col("Profit"))
 358    {
 359        <th id="thProfit" data-column="profit" class="tx-metric-col">
 360            <div class="two-row-cell">
 361                <div class="cell-row">
 362                    <small>Приб.</small>
 363                    <input id="profitFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле не
 364                </div>
 365                <div class="text-muted cell-row tx-metric-hint">
 366                    <small>min / max</small>
 367                </div>
 368            </div>
 369        </th>
 370    }
 0371    @if (Col("MarkupPercent"))
 372    {
 373        <th id="thDiscount" data-column="markup" class="tx-metric-col">
 374            <div class="two-row-cell">
 375                <div class="cell-row">
 376                    <small>Нацен.%</small>
 377                    <input id="discountFilter" class="form-control form-control-sm" readonly data-tx-locked title="Поле 
 378                </div>
 379                <div class="text-muted cell-row tx-metric-hint">
 380                    <small>min / max</small>
 381                </div>
 382            </div>
 383        </th>
 384    }
 385</tr>
 386</thead>