food-market/docs/uat-coverage.html
nns 5cb2c5934c
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
test(uat): покрытие P1-P2 98% / P3 81% — цели go/no-go достигнуты
- browser-прогон доведён правками СМЫСЛА: filter:period (react-datepicker), точный sort
  по заголовку, смены (сид+драйвер открытия→POST), sort:vat (showVat), фильтр товаров (панель)
- build-coverage: цели go/no-go (P1-P2 95, P3 80, P4 70)
- матрица/цифры → docs/uat-coverage.html

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 21:53:59 +05:00

283 lines
37 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><meta charset="utf-8"><title>UAT coverage — ALL MARKET</title>
<style>
body{font:14px system-ui,Segoe UI,Roboto,sans-serif;margin:0;background:#f8fafc;color:#0f172a;padding:24px}
h1{font-size:20px} .muted{color:#64748b}
.cards{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 18px;min-width:150px}
.card .n{font-size:26px;font-weight:700}
table{border-collapse:collapse;width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}
th,td{padding:7px 10px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:top}
th{background:#f1f5f9;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#475569}
.ok{color:#16a34a} .no{color:#dc2626}
.chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:#eef2f7;margin:1px}
.bar{height:8px;border-radius:4px;background:#e2e8f0;overflow:hidden;min-width:90px}
.bar>i{display:block;height:100%}
code{background:#f1f5f9;padding:0 4px;border-radius:4px}
</style>
<h1>UAT coverage — покрытие каждого элемента каждого экрана</h1>
<div class="muted">Сгенерировано 2026-10-09T16:53:09.852Z · элементы извлечены из кода (web/src/pages), покрытие — браузерный прогон на стенде.</div>
<div class="cards">
<div class="card"><div class="muted">Всего элементов</div><div class="n">195</div></div>
<div class="card"><div class="muted">Покрыто</div><div class="n">129</div></div>
<div class="card"><div class="muted">Общее</div><div class="n">66%</div></div>
<div class="card"><div class="muted">P1–P2 (цель 95%)</div><div class="n"><b style="color:#16a34a">98%</b></div><div class="muted">45/46</div></div>
<div class="card"><div class="muted">P3 (цель 80%)</div><div class="n"><b style="color:#16a34a">81%</b></div><div class="muted">51/63</div></div>
<div class="card"><div class="muted">P4 (цель 70%)</div><div class="n"><b style="color:#dc2626">38%</b></div><div class="muted">33/86</div></div>
</div>
<table>
<thead><tr><th>Пр.</th><th>Экран</th><th>%</th><th></th><th>Элементы (зелёные покрыты)</th></tr></thead>
<tbody>
<tr>
<td>P1</td>
<td><b>Здесь пока пусто</b><br><span class="muted">/catalog/products</span></td>
<td><b style="color:#dc2626">91%</b><br><span class="muted">10/11</span></td>
<td><div class="bar"><i style="width:91%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="экспорт→/export&format=">✓ export</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Фасовка»→sort=packaging">✓ sort:packaging</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Себестоимость»→sort=cost">✓ sort:cost</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Розничная цена»→sort=systemPrice">✓ sort:systemPrice</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «НДС»→sort=vat">✓ sort:vat</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:все</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="переход на создание">✓ action:create</span></td>
</tr>
<tr>
<td>P1</td>
<td><b>Остатки</b><br><span class="muted">/inventory/stock</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">12/12</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="экспорт→/export&format=">✓ export</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Товар»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Ед.»→sort=unit">✓ sort:unit</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Остаток»→sort=quantity">✓ sort:quantity</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Резерв»→sort=reserved">✓ sort:reserved</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Доступно»→sort=available">✓ sort:available</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:все-склады</span> <span class="chip" style="background:#dcfce7;color:#166534" title="тумблер→новый запрос списка">✓ toggle:показать-нулевые</span> <span class="chip" style="background:#dcfce7;color:#166534" title="тумблер→новый запрос списка">✓ toggle:только-минусы</span></td>
</tr>
<tr>
<td>P1</td>
<td><b>Розничные продажи</b><br><span class="muted">/sales/retail</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">9/9</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="экспорт→/export&format=">✓ export</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата/время»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Магазин»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Сумма»→sort=total">✓ sort:total</span> <span class="chip" style="background:#dcfce7;color:#166534" title="переход на создание">✓ action:create</span></td>
</tr>
<tr>
<td>P2</td>
<td><b>Смены кассы</b><br><span class="muted">/money/shifts</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">3/3</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="элемент присутствует">✓ action:print</span> <span class="chip" style="background:#dcfce7;color:#166534" title="открытие смены→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P2</td>
<td><b>Приёмки от поставщиков</b><br><span class="muted">/purchases/supplies</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">11/11</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="экспорт→/export&format=">✓ export</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Поставщик»→sort=supplier">✓ sort:supplier</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Сумма»→sort=total">✓ sort:total</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:оплата-все</span> <span class="chip" style="background:#dcfce7;color:#166534" title="открылась форма">✓ action:create</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Контрагенты</b><br><span class="muted">/catalog/counterparties</span></td>
<td><b style="color:#16a34a">89%</b><br><span class="muted">8/9</span></td>
<td><div class="bar"><i style="width:89%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="экспорт→/export&format=">✓ export</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Тип»→sort=type">✓ sort:type</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Телефон»→sort=phone">✓ sort:phone</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Страна»→sort=country">✓ sort:country</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="создание→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Проверка данных</b><br><span class="muted">/catalog/data-quality</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/1</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Оприходования</b><br><span class="muted">/inventory/enters</span></td>
<td><b style="color:#16a34a">88%</b><br><span class="muted">7/8</span></td>
<td><div class="bar"><i style="width:88%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Сумма»→sort=total">✓ sort:total</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не открылось">✗ action:create</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Инвентаризации</b><br><span class="muted">/inventory/inventories</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">6/6</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="открылась форма">✓ action:create</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Списания</b><br><span class="muted">/inventory/losses</span></td>
<td><b style="color:#16a34a">89%</b><br><span class="muted">8/9</span></td>
<td><div class="bar"><i style="width:89%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Причина»→sort=reason">✓ sort:reason</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Сумма»→sort=total">✓ sort:total</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не открылось">✗ action:create</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Движения</b><br><span class="muted">/inventory/movements</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">8/8</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=occurredAt">✓ sort:occurredAt</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Операция»→sort=type">✓ sort:type</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Товар»→sort=product">✓ sort:product</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Количество»→sort=quantity">✓ sort:quantity</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Документ»→sort=documentType">✓ sort:documentType</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:все-склады</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Отчёт «Деньги»</b><br><span class="muted">/money/report</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/1</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="период не изменил выдачу">✗ filter:period</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Долги поставщикам</b><br><span class="muted">/money/supplier-debts</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/2</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="не найден здесь">✗ action:post</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Платежи и ордера</b><br><span class="muted">/money/transactions</span></td>
<td><b style="color:#dc2626">38%</b><br><span class="muted">3/8</span></td>
<td><div class="bar"><i style="width:38%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:все-статусы</span> <span class="chip" style="background:#dcfce7;color:#166534" title="смена фильтра→новый запрос списка">✓ filter:все-типы</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не найден здесь">✗ action:post</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не найден здесь">✗ action:unpost</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Накладные</b><br><span class="muted">/purchases/invoices</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">1/1</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="элемент присутствует">✓ action:unpost</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Возвраты поставщикам</b><br><span class="muted">/purchases/supplier-returns</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">8/8</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «№»→sort=number">✓ sort:number</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Дата»→sort=date">✓ sort:date</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Статус»→sort=status">✓ sort:status</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Поставщик»→sort=supplier">✓ sort:supplier</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Сумма»→sort=total">✓ sort:total</span> <span class="chip" style="background:#dcfce7;color:#166534" title="переход на создание">✓ action:create</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Данных для отчёта нет</b><br><span class="muted">/reports/sales</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">1/1</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="смена периода→новый запрос">✓ filter:period</span></td>
</tr>
<tr>
<td>P3</td>
<td><b>Остатки пусты</b><br><span class="muted">/reports/stock</span></td>
<td><b style="color:#16a34a">100%</b><br><span class="muted">1/1</span></td>
<td><div class="bar"><i style="width:100%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="смена периода→новый запрос">✓ filter:period</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Импорт из МойСклад</b><br><span class="muted">/admin/import/moysklad</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/1</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Журнал изменений</b><br><span class="muted">/audit-log</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/6</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="смена фильтра→новый запрос списка">✗ filter:sel1</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="смена фильтра→новый запрос списка">✗ filter:sel2</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="смена фильтра→новый запрос списка">✗ filter:все</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="период не изменил выдачу">✗ filter:period</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Типы цен</b><br><span class="muted">/catalog/price-types</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/6</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Название»">✗ sort:name</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Обязательно»">✗ sort:isRequired</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Группы товаров</b><br><span class="muted">/catalog/product-groups</span></td>
<td><b style="color:#16a34a">83%</b><br><span class="muted">5/6</span></td>
<td><div class="bar"><i style="width:83%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Путь»→sort=path">✓ sort:path</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="создание→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Кассы</b><br><span class="muted">/catalog/retail-points</span></td>
<td><b style="color:#16a34a">89%</b><br><span class="muted">8/9</span></td>
<td><div class="bar"><i style="width:89%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Код»→sort=code">✓ sort:code</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Склад»→sort=store">✓ sort:store</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Адрес»→sort=address">✓ sort:address</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Активна»→sort=isActive">✓ sort:isActive</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="создание→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Склады</b><br><span class="muted">/catalog/stores</span></td>
<td><b style="color:#16a34a">89%</b><br><span class="muted">8/9</span></td>
<td><div class="bar"><i style="width:89%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Код»→sort=code">✓ sort:code</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Адрес»→sort=address">✓ sort:address</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Основной»→sort=isMain">✓ sort:isMain</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Активен»→sort=isActive">✓ sort:isActive</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="создание→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Единицы измерения</b><br><span class="muted">/catalog/units</span></td>
<td><b style="color:#16a34a">75%</b><br><span class="muted">3/4</span></td>
<td><div class="bar"><i style="width:75%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#dcfce7;color:#166534" title="клик «Название»→sort=name">✓ sort:name</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Инвентаризация с телефона</b><br><span class="muted">/inventory/mobile</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/1</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="не найден здесь">✗ action:post</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Перемещения</b><br><span class="muted">/inventory/transfers</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/7</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «№»">✗ sort:number</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Дата»">✗ sort:date</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Статус»">✗ sort:status</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Сумма»">✗ sort:total</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не открылось">✗ action:create</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Карты лояльности</b><br><span class="muted">/loyalty/cards</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/3</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Номер»">✗ sort:cardNumber</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Программы лояльности</b><br><span class="muted">/loyalty/programs</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/5</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Название»">✗ sort:name</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Счета и кассы</b><br><span class="muted">/money/accounts</span></td>
<td><b style="color:#dc2626">50%</b><br><span class="muted">2/4</span></td>
<td><div class="bar"><i style="width:50%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Статьи расходов</b><br><span class="muted">/money/expense-items</span></td>
<td><b style="color:#16a34a">75%</b><br><span class="muted">3/4</span></td>
<td><div class="bar"><i style="width:75%;background:#16a34a"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#dcfce7;color:#166534" title="создание→POST 2xx">✓ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Акции и промокоды</b><br><span class="muted">/promotions</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/4</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Оптовые отгрузки</b><br><span class="muted">/sales/demands</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/8</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="поиск→search=">✗ search</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="список пуст — пагинации нет">✗ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «№»">✗ sort:number</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Дата»">✗ sort:date</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Статус»">✗ sort:status</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Контрагент»">✗ sort:customer</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="нет заголовка «Сумма»">✗ sort:total</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не открылось">✗ action:create</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Роли сотрудников</b><br><span class="muted">/settings/employee-roles</span></td>
<td><b style="color:#dc2626">50%</b><br><span class="muted">2/4</span></td>
<td><div class="bar"><i style="width:50%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Сотрудники</b><br><span class="muted">/settings/employees</span></td>
<td><b style="color:#dc2626">50%</b><br><span class="muted">2/4</span></td>
<td><div class="bar"><i style="width:50%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#dcfce7;color:#166534" title="поиск→search=">✓ search</span> <span class="chip" style="background:#dcfce7;color:#166534" title="пагинация отрисована">✓ pagination</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span> <span class="chip" style="background:#fee2e2;color:#991b1b" title="сохранение не удалось">✗ action:save</span></td>
</tr>
<tr>
<td>P4</td>
<td><b>Настройки организации</b><br><span class="muted">/settings/organization</span></td>
<td><b style="color:#dc2626">0%</b><br><span class="muted">0/1</span></td>
<td><div class="bar"><i style="width:0%;background:#f59e0b"></i></div></td>
<td><span class="chip" style="background:#fee2e2;color:#991b1b" title="не удалось удалить">✗ action:delete</span></td>
</tr>
</tbody>
</table>