[598][@ant] docs(marketplace): подключить PNG-снимки harness в 9 MD-страниц
Все скриншоты прогона harness'а (cedde9f277) теперь видны в MD через
 после admonition «Реализовано».
Существующая проза из PRD сохранена без изменений.
Страницы: orderer/consolidated, offerer/incoming-orders, offerer/offers,
chairman/category-whitelist, branch-chairman/branch-orders,
board/agenda-writeoff, board/payouts-readonly, onboarding/coop-accept-cpp,
onboarding/member-pick-cpp.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,11 @@ tags:
|
||||
# Голосование по списанию
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Read-only страница совета `/market/board-writeoff` реализована (коммит `2a41354c328`). Совет видит ленту проектов списания в статусах ON_AGENDA / AUTHORIZED / EXECUTING / EXECUTED / REJECTED с фильтром по статусу. Само голосование совета — через core soviet agenda (`/soviet/agendas`, тип `mktwroff`). Скриншоты будут добавлены после прогона `bin/shoot.mjs board/agenda-writeoff` против стенда с подхваченными worktree-страницами.
|
||||
Read-only страница совета `/market/board-writeoff` реализована (коммит `2a41354c328`). Совет видит ленту проектов списания в статусах ON_AGENDA / AUTHORIZED / EXECUTING / EXECUTED / REJECTED с фильтром по статусу. Само голосование совета — через core soviet agenda (`/soviet/agendas`, тип `mktwroff`).
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Члены совета голосуют по предложениям председателя о списании имущества (просроченного, испорченного, невостребованного). Это страница в их рабочем кабинете — раздел Marketplace на Столе совета.
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ tags:
|
||||
!!!info "Placeholder — раздел в подготовке"
|
||||
Страница `/market/payouts` реализована как informational placeholder (коммит `261be9a2702`). Совету пока недоступен read-обзор по всем поставщикам — `marketplaceListOutgoingPaymentsAsSupplier` отдаёт только историю текущего пайщика. Для совета нужна доп. policy `Payment / read:all` в `marketplace-access-matrix.ts` + query `marketplaceListOutgoingPayments` с опц. `supplier_account`. До этого совет видит выплаты через core cassir-стол кооператива. Описание ниже отражает целевое поведение.
|
||||
|
||||

|
||||
|
||||
Совет имеет **read-only доступ** к ленте всех денежных выплат поставщикам — от подписи акта приёма-передачи до фактического перевода средств. Эта страница — финансовый контроль совета над основным потоком исходящих платежей.
|
||||
|
||||
## Что показывается
|
||||
|
||||
@@ -6,7 +6,11 @@ tags:
|
||||
# Заказы участка
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market-pvz/branch-orders` реализована (коммит `d1bebf6f645`). Три ленты с табами и счётчиками: приёмки (Эпик 5), выдачи (Эпик 6), возвраты (Эпик 7) — все через существующие `*ByBraname` query, объединённые через Promise.all. braname вводится вручную; auto-detect через `marketplace_whoami` подключится на следующем шаге Story 6.x+1. Скриншоты — после прогона `bin/shoot.mjs branch-chairman/branch-orders`.
|
||||
Страница `/market-pvz/branch-orders` реализована (коммит `d1bebf6f645`). Три ленты с табами и счётчиками: приёмки (Эпик 5), выдачи (Эпик 6), возвраты (Эпик 7) — все через существующие `*ByBraname` query, объединённые через Promise.all. braname вводится вручную; auto-detect через `marketplace_whoami` подключится на следующем шаге Story 6.x+1.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Лента **Заказы участка** даёт председателю общую картину всего, что происходит с Заказами на его ПВЗ. Это сводный обзор, более широкий, чем оператор видит в своих специализированных лентах.
|
||||
|
||||
|
||||
@@ -6,7 +6,11 @@ tags:
|
||||
# Кооперативные категории
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/category-whitelist` реализована (коммит `50538b45d43`). Председатель видит whitelist разрешённых категорий с stat-карточками; пустой whitelist означает, что доступен весь глобальный каталог. Backend готов — `available-category-admin.resolver.ts` (@AuthRoles chairman). В MVP добавление через ручной ввод ID; tree-выбор через `marketplaceGetCategoryTree` подключится на следующем шаге Story 3.x. Скриншоты — после прогона `bin/shoot.mjs chairman/category-whitelist`.
|
||||
Страница `/market/category-whitelist` реализована (коммит `50538b45d43`). Председатель видит whitelist разрешённых категорий с stat-карточками; пустой whitelist означает, что доступен весь глобальный каталог. Backend готов — `available-category-admin.resolver.ts` (@AuthRoles chairman). В MVP добавление через ручной ввод ID; tree-выбор через `marketplaceGetCategoryTree` подключится на следующем шаге Story 3.x.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Стол заказов работает с фиксированным набором из **10 кооперативных категорий**. Они едины для всей кооперативной сети, но каждый кооператив сам решает, **какие из них включены** в его Столе.
|
||||
|
||||
|
||||
@@ -6,7 +6,11 @@ tags:
|
||||
# Входящие заказы
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/incoming-orders` реализована (коммит `69d3e79f36c`). Поставщик видит заказы где он `supplier` через канон `OrderCard role='offerer'` с фильтром по статусу. Backend `marketplaceListSupplierOrders` уже был DONE (read:to-self policy). Действия по акцепту партии — отдельно на `/market/supply-prep`. Polling 15s. Скриншоты — после прогона `bin/shoot.mjs offerer/incoming-orders`.
|
||||
Страница `/market/incoming-orders` реализована (коммит `69d3e79f36c`). Поставщик видит заказы где он `supplier` через канон `OrderCard role='offerer'` с фильтром по статусу. Backend `marketplaceListSupplierOrders` уже был DONE (read:to-self policy). Действия по акцепту партии — отдельно на `/market/supply-prep`. Polling 15s.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Когда сводный заказ закрывается и партия фиксируется (статус **CONFIRMED**), все Заказы пайщиков из этой партии становятся **входящими** для поставщика. Они появляются в ленте «Входящие заказы».
|
||||
|
||||
|
||||
@@ -6,7 +6,11 @@ tags:
|
||||
# Мои предложения
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/my-offers` реализована (коммит `69d3e79f36c`). Поставщик видит свои Offer'ы во всех 4 статусах (PENDING_MODERATION / ACTIVE / REJECTED / WITHDRAWN) через канон `CatalogOfferCard` с client-side фильтром и поиском. Для REJECTED — reject_reason под карточкой. Backend `marketplaceListMyOffers` уже был DONE. Polling 30s. Скриншоты — после прогона `bin/shoot.mjs offerer/my-offers`.
|
||||
Страница `/market/my-offers` реализована (коммит `69d3e79f36c`). Поставщик видит свои Offer'ы во всех 4 статусах (PENDING_MODERATION / ACTIVE / REJECTED / WITHDRAWN) через канон `CatalogOfferCard` с client-side фильтром и поиском. Для REJECTED — reject_reason под карточкой. Backend `marketplaceListMyOffers` уже был DONE. Polling 30s.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Лента **Мои предложения** — рабочее место поставщика. Здесь видны все опубликованные Предложения с их статусами, текущим наполнением партий и историей циклов.
|
||||
|
||||
|
||||
@@ -7,7 +7,11 @@ tags:
|
||||
# L1 — Подключение ЦПП Marketplace кооперативом
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/onboarding/coop-cpp` реализована (коммит `510ccf545bb`). Председатель видит chip-статус ЦПП (Подключено / Не подключено), карточку с реквизитами решения совета и кнопку «Принять ЦПП Marketplace». Backend Story 1.9 (`marketplaceCppStatus` + `marketplaceAcceptCpp`) полностью готов. В MVP — stub `accepted_by_board_decision_id`; полноценная повестка совета подключится в Эпике 8 (FR40). Скриншоты — после прогона `bin/shoot.mjs onboarding/coop-accept-cpp`.
|
||||
Страница `/market/onboarding/coop-cpp` реализована (коммит `510ccf545bb`). Председатель видит chip-статус ЦПП (Подключено / Не подключено), карточку с реквизитами решения совета и кнопку «Принять ЦПП Marketplace». Backend Story 1.9 (`marketplaceCppStatus` + `marketplaceAcceptCpp`) полностью готов. В MVP — stub `accepted_by_board_decision_id`; полноценная повестка совета подключится в Эпике 8 (FR40).
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Первый уровень онбординга — это **одноразовое решение совета о подключении** Целевой Потребительской Программы (ЦПП) «Стол заказов» к кооперативу. Без этого решения ни один пайщик не может оформить Заказ или опубликовать Предложение.
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ tags:
|
||||
# L2 — Выбор ЦПП при вступлении в кооператив
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/onboarding/member-cpp` реализована (коммит `147951356ab`). На странице — канон-виджет `OnboardingCPPGate` (UX-DR17) с пакетом ЦПП (оферта + Положение). Реальная подпись делается через core Registrator-мастер (`wallet::signagree`) — после клика «Перейти к подписанию» страница редиректит в мастер. Когда `requires_gate=false` — баннер «уже подключены» с переходом к каталогу. Скриншоты — после прогона `bin/shoot.mjs onboarding/member-pick-cpp`.
|
||||
Страница `/market/onboarding/member-cpp` реализована (коммит `147951356ab`). На странице — канон-виджет `OnboardingCPPGate` (UX-DR17) с пакетом ЦПП (оферта + Положение). Реальная подпись делается через core Registrator-мастер (`wallet::signagree`) — после клика «Перейти к подписанию» страница редиректит в мастер. Когда `requires_gate=false` — баннер «уже подключены» с переходом к каталогу.
|
||||
|
||||

|
||||
|
||||
Когда пайщик подаёт заявление о вступлении в кооператив, в мастере регистрации появляется блок «Целевые потребительские программы». Здесь пайщик отмечает программы, в которых хочет участвовать.
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ tags:
|
||||
# Сводный заказ
|
||||
|
||||
!!!info "Реализовано — ожидается прогон harness"
|
||||
Страница `/market/consolidated` реализована (коммит `e40b74fcf91`). Заказы пайщика-заказчика группируются по `cycle_id` (time_based / volume_based / open_subscription / individual) с суммарной стоимостью партии и общим этапом партии (минимальный активный по STAGE_RANK). Внутри партии — карточки `OrderCard role='orderer'`. Polling 15s. Скриншоты — после прогона `bin/shoot.mjs orderer/consolidated`.
|
||||
Страница `/market/consolidated` реализована (коммит `e40b74fcf91`). Заказы пайщика-заказчика группируются по `cycle_id` (time_based / volume_based / open_subscription / individual) с суммарной стоимостью партии и общим этапом партии (минимальный активный по STAGE_RANK). Внутри партии — карточки `OrderCard role='orderer'`. Polling 15s.
|
||||
|
||||

|
||||
|
||||
**Сводный заказ** — это виртуальная партия, в которую агрегируются все Заказы пайщиков по одному и тому же Предложению. Сводный заказ — основа кооперативной закупки: партия передаётся поставщику единым лотом, что даёт цену оптовой закупки.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user