< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_Shared__WarehouseSelectorCard
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/Shared/_WarehouseSelectorCard.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 33
Coverable lines: 33
Total lines: 136
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 50
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%3422580%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/Shared/_WarehouseSelectorCard.cshtml

#LineLine coverage
 1@using System.Collections.Generic
 2@{
 03    var title = ViewData["WarehouseSelectorTitle"] as string ?? "Укажите направление перемещения";
 04    var list = ViewData["BitrixWarehousesList"] as List<string>;
 5    // Раздельные списки для отправителя и получателя (если переданы)
 06    var senderList = ViewData["SenderWarehouseNames"] as List<string> ?? list ?? new List<string>();
 07    var recipientList = ViewData["RecipientWarehouseNames"] as List<string> ?? list ?? new List<string>();
 08    var forceSenderWarehouse = ViewData["ForceSenderWarehouse"] as bool? ?? false;
 09    var fixedSenderWarehouse = ViewData["FixedSenderWarehouse"] as string;
 010    var senderRuleError = ViewData["WarehouseSenderRuleError"] as string;
 011    var senderRuleSeverity = ViewData["WarehouseSenderRuleSeverity"] as string;
 012    var recipientRuleInfo = ViewData["WarehouseRecipientRuleInfo"] as string;
 013    var preferredSenderWarehouse = ViewData["PreferredSenderWarehouse"] as string;
 014    var preferredRecipientWarehouse = ViewData["PreferredRecipientWarehouse"] as string;
 015    var warehouseSelectionBlocked = ViewData["WarehouseSelectionBlocked"] as bool? ?? false;
 16}
 017@if (list != null && list.Count > 0)
 18{
 19<div class="warehouse-selector-card">
 20    <h5 class="warehouse-selector-title">
 21        <i class="fas fa-exchange-alt me-2"></i>
 022        @title
 23    </h5>
 24    <div class="warehouse-selector-row">
 25        <div class="warehouse-box">
 26            <label class="warehouse-label" for="warehouseSender">
 27                <i class="fas fa-arrow-up me-1"></i>
 28                Склад отправителя
 29            </label>
 030            @if (forceSenderWarehouse)
 31            {
 32                <div class="warehouse-readonly-wrap">
 33                    <span class="warehouse-readonly-badge">Авто</span>
 34                    <input type="text"
 35                           class="form-control warehouse-readonly-input"
 36                           id="warehouseSenderDisplay"
 37                           value="@(string.IsNullOrWhiteSpace(fixedSenderWarehouse) ? "Не определен" : fixedSenderWareho
 38                           readonly />
 39                </div>
 40                <input type="hidden" id="warehouseSender" name="warehouseSender" value="@(warehouseSelectionBlocked ? ""
 41                <small class="warehouse-note">
 42                    Источник задается автоматически по полю "Название склада" клиента Ozon заказа.
 43                </small>
 44            }
 45            else
 46            {
 47                <select class="form-select @(warehouseSelectionBlocked ? "" : "custom-select-init")"
 048                        id="warehouseSender" name="warehouseSender" @(warehouseSelectionBlocked ? "disabled" : null)>
 49                    <option value="">Выберите склад отправителя...</option>
 050                    @foreach (var w in senderList)
 51                    {
 052                        if (string.Equals(preferredSenderWarehouse, w, StringComparison.OrdinalIgnoreCase))
 53                        {
 054                            <option value="@w" selected="selected">@w</option>
 55                        }
 56                        else
 57                        {
 058                            <option value="@w">@w</option>
 59                        }
 60                    }
 61                </select>
 062                @if (!string.IsNullOrWhiteSpace(preferredSenderWarehouse))
 63                {
 64                    <small class="warehouse-note">
 65                        Поле заполнено автоматически, при необходимости можно изменить вручную.
 66                    </small>
 67                }
 68            }
 69        </div>
 70        <div class="warehouse-arrow">
 71            <i class="fas fa-arrow-right"></i>
 72        </div>
 73        <div class="warehouse-box">
 74            <label class="warehouse-label" for="warehouseRecipient">
 75                <i class="fas fa-arrow-down me-1"></i>
 76                Склад получателя
 77            </label>
 78            <select class="form-select @(warehouseSelectionBlocked ? "" : "custom-select-init")"
 079                    id="warehouseRecipient" name="warehouseRecipient" @(warehouseSelectionBlocked ? "disabled" : null)>
 80                <option value="">Выберите склад получателя...</option>
 081                @foreach (var w in recipientList)
 82                {
 083                    if (string.Equals(preferredRecipientWarehouse, w, StringComparison.OrdinalIgnoreCase))
 84                    {
 085                        <option value="@w" selected="selected">@w</option>
 86                    }
 87                    else
 88                    {
 089                        <option value="@w">@w</option>
 90                    }
 91                }
 92            </select>
 093            @if (!string.IsNullOrWhiteSpace(preferredRecipientWarehouse))
 94            {
 95                <small class="warehouse-note">
 96                    Поле заполнено автоматически по настройкам клиента Ozon, при необходимости можно изменить вручную.
 97                </small>
 98            }
 99            else
 100            {
 101                <small class="warehouse-note">
 102                    Приоритетные варианты сформированы из связи складов (клиент + склад заказа), но можно выбрать любой 
 103                </small>
 104            }
 105        </div>
 106    </div>
 0107    @if (!string.IsNullOrWhiteSpace(senderRuleError))
 108    {
 0109        if (string.Equals(senderRuleSeverity, "soft", StringComparison.OrdinalIgnoreCase))
 110        {
 111            <div class="alert alert-info mt-3">
 112                <i class="fas fa-info-circle me-2"></i>
 0113                @Html.Raw(senderRuleError)
 114            </div>
 115        }
 116        else
 117        {
 118            <div class="alert alert-warning mt-3">
 119                <i class="fas fa-exclamation-triangle me-2"></i>
 0120                @Html.Raw(senderRuleError)
 121            </div>
 122        }
 123    }
 0124    @if (!string.IsNullOrWhiteSpace(recipientRuleInfo))
 125    {
 126        <div class="alert alert-info mt-2 mb-0">
 127            <i class="fas fa-info-circle me-2"></i>
 0128            @Html.Raw(recipientRuleInfo)
 129        </div>
 130    }
 131    <div id="warehouseValidationMessage" class="alert alert-danger mt-3" style="display: none;">
 132        <i class="fas fa-exclamation-triangle me-2"></i>
 133        <span id="warehouseValidationText"></span>
 134    </div>
 135</div>
 136}