< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_TransactionJobs__ProcessingPipelineHelp
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/TransactionJobs/_ProcessingPipelineHelp.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 11
Coverable lines: 11
Total lines: 121
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/TransactionJobs/_ProcessingPipelineHelp.cshtml

#LineLine coverage
 1@using Services.BackgroundJobsServices
 2@{
 03    var msk = RussianTimeZoneHelper.Zone;
 04    var nowLocal = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, msk);
 05    var yesterday = nowLocal.Date.AddDays(-1);
 06    var downloadFrom = yesterday.AddDays(-ReportDeliveryDateFilter.TransactionJobReportDownloadDays);
 07    var downloadDays = ReportDeliveryDateFilter.TransactionJobReportDownloadDays;
 8}
 9
 10<div class="card border-info mb-4" id="processingPipelineHelp">
 11    <div class="card-header bg-info bg-opacity-10 py-2">
 12        <h6 class="mb-0">
 13            <i class="fas fa-info-circle me-2 text-info"></i>
 14            Как работает задание при каждом запуске
 15        </h6>
 16    </div>
 17    <div class="card-body small">
 18        <p class="mb-3">
 19            Логика совпадает с ручной загрузкой на странице
 20            <strong>Транзакции → Загрузка файла</strong>:
 21            сначала запрашивается <strong>широкий</strong> отчёт у Ozon, затем из файла отбираются строки только за
 22            <strong>вчера (MSK)</strong> по столбцу даты — как при выборе одной галочки в предпросмотре дат.
 23        </p>
 24
 25        <div class="row g-3 mb-3">
 26            <div class="col-md-6">
 27                <div class="border rounded p-3 h-100 bg-light">
 28                    <div class="fw-semibold mb-2">
 29                        <span class="badge text-bg-secondary me-1">1</span>
 30                        Загрузка отчёта у Ozon (API)
 31                    </div>
 32                    <ul class="mb-0 ps-3">
 33                        <li>
 034                            Период запроса: примерно <strong>@downloadDays&nbsp;дней</strong> —
 035                            с <strong>@downloadFrom.ToString("dd.MM.yyyy")</strong>
 036                            по <strong>@nowLocal.ToString("dd.MM.yyyy")</strong> (MSK).
 37                        </li>
 38                        <li>
 39                            Ozon отдаёт отправления по полю <strong>«Принят в обработку»</strong>
 40                            (<code>ProcessedAt</code>), не по дате доставки.
 41                        </li>
 42                        <li>
 43                            Поэтому в файл попадают и заказы, принятые раньше, но переданные в доставку «вчера».
 44                        </li>
 45                    </ul>
 46                </div>
 47            </div>
 48            <div class="col-md-6">
 49                <div class="border rounded p-3 h-100 bg-light">
 50                    <div class="fw-semibold mb-2">
 51                        <span class="badge text-bg-secondary me-1">2</span>
 52                        Отбор строк в CSV (как вручную)
 53                    </div>
 54                    <ul class="mb-0 ps-3">
 55                        <li>
 56                            День отбора: <strong>вчера</strong> —
 057                            <strong>@yesterday.ToString("dd.MM.yyyy")</strong> (MSK).
 58                        </li>
 59                        <li class="job-help-commissioner">
 060                            Столбец: <strong>«@ReportDeliveryDateFilter.DeliveryDateColumnName»</strong>.
 61                        </li>
 62                        <li class="job-help-return d-none">
 063                            Столбец: <strong>«@ReportDeliveryDateFilter.ReturnsStatusDateColumnName»</strong>.
 64                        </li>
 65                        <li>
 66                            В обработку попадают только строки, у которых дата в этом столбце (без учёта времени) =
 67                            вчерашний день.
 68                        </li>
 69                    </ul>
 70                </div>
 71            </div>
 72        </div>
 73
 74        <div class="alert alert-warning mb-3 py-2">
 75            <i class="fas fa-exclamation-triangle me-1"></i>
 76            <strong>Важно:</strong> если запрашивать у Ozon только один день по «Принят в обработку», заказы с доставкой
 77            но принятые раньше, <strong>не попадут</strong> в файл. Широкая загрузка это исправляет.
 78        </div>
 79
 80        <div id="helpShippedToCommissioner" class="job-type-help d-none">
 81            <p class="fw-semibold mb-2">Дальше — «Отгружен комиссионеру»</p>
 82            <ol class="mb-0 ps-3">
 83                <li>Сопоставление с заказами в БД (номер отправления + артикул).</li>
 84                <li>Исключение уже проведённых и отменённых.</li>
 85                <li>
 86                    Склад отправителя для 1С — из <a href="/Studio2/WarehouseMapping" target="_blank">связей складов</a>
 87                    (<code>OzonClient</code> + склад отгрузки → Bitrix), либо значение «Засыл» из расширений заказа.
 88                </li>
 89                <li>Группировка по складу, создание транзакций в системе.</li>
 90                <li>Проводка в 1С (до 3 попыток). Заказы «Отгружен реализатором» — только смена статуса, без 1С.</li>
 91            </ol>
 92        </div>
 93
 94        <div id="helpCustomerReturn" class="job-type-help d-none">
 95            <p class="fw-semibold mb-2">Дальше — «Возврат покупателя»</p>
 96            <ol class="mb-0 ps-3">
 97                <li>Сопоставление по номерам отправлений из отчёта возвратов.</li>
 98                <li>Исключение заказов, у которых уже статус «Возврат покупателя».</li>
 99                <li>
 100                    Склад отправителя — <strong>склад покупателя</strong> из карточки Ozon-клиента;
 101                    склад получателя — из <a href="/Studio2/WarehouseMapping" target="_blank">связей складов</a>
 102                    по складу отгрузки заказа.
 103                </li>
 104                <li>Сначала проводка в 1С, затем транзакция и статус в системе.</li>
 105            </ol>
 106        </div>
 107
 108        <div id="helpJobTypePlaceholder" class="text-muted job-type-help">
 109            Выберите тип задания выше — появится описание следующих шагов.
 110        </div>
 111
 112        <hr class="my-3" />
 113
 114        <p class="mb-1 text-muted">
 115            <i class="fas fa-clock me-1"></i>
 116            Часовой пояс расписания и отбора дат: <strong>MSK (Russian Standard Time)</strong>.
 117            Подробные логи каждого запуска — в
 118            <a href="/Studio2/JobLogs?tab=transactions">журнале Transaction Jobs</a>.
 119        </p>
 120    </div>
 121</div>

Methods/Properties

ExecuteAsync()