* Эпик 11: «Реестр процессов» на столе бухгалтера (598-14)
UI-надстройка над уже работающим Phase A/B ProcessRegistry в core controller:
страница /reports/processes показывает листинг процессов ledger2 с фильтрами
по типу процесса (LEDGER2_PROCESS_REGISTRY) и пайщику, при раскрытии строки
рисует events + documents процесса (через getProcess), отдаёт слот
processInfoFactory для бизнес-описания (marketplace handlers уже регистрируют
SUPPLY/RETURN/WRITEOFF в extensions/market/app/extensions.ts) и кнопку
deep-link «Открыть в реестре операций» (filter process_hash).
Используется existing SDK query `Queries.Processes.ListProcesses` —
расширены entities/Process api+store+types методом `listProcesses` и
type alias'ами IProcessListInput/IProcessListResult/IProcessSummary.
Стол бухгалтера приобретает четвёртый базовый реестр (операции, проводки,
**процессы**, кошельки, счета) — закрывает аудит-видимость marketplace
flow «Стола заказов» в рамках Эпика 11.
* Эпик 11 техдолг 598-21: batch-маркировка партии за один вызов
Mutation `marketplaceLabelShipmentInventory(shipment_id, default_strategy?,
per_order_overrides?)` массово маркирует все Order'ы партии поставки —
оператор перестаёт проходить N карточек по одной.
Service `MarketplaceInventoryLabelService.labelShipment`:
1. Shipment.findById → берёт coopname/cycle_id/braname.
2. orderRepo.findByCycleId(coopname, cycle_id) → filter по
delivery_braname партии = все Order'ы партии.
3. Для каждого Order'а зовёт уже работающий execute() — единый
источник правил маркировки (стратегия из Offer.barcode_strategy
по 598-22, per-Order override для смешанных Offer'ов в партии).
4. Идемпотентность: ConflictException от execute() при повторной
маркировке → skipped_order_ids в результате (повторный заход на
страницу не валится fatal'ом).
Возврат включает labeled_order_ids + skipped_order_ids + сами наклейки
(`MarketplaceInventoryItem[]`) — UI оператора может одним вызовом
получить grid этикеток для печати и понимать что было сделано.
`@media print` grid layout и расширение `OperatorInventoryLabelingPage`
под выбор default-стратегии на всю партию — следующий шаг, mutation
теперь доступна.
* Эпик 11 Stories 11.2 + 11.3: off-chain инварианты ledger2 marketplace + coverage трассировки 13 op-кодов
Backend-side scaffold контрактных проверок Stories 11.2 (Journal/wjournal
трассировка) + 11.3 (CI-инварианты ledger2). Реализация — pure-функциями
без NestJS/PG: работают на синтетических массивах Ledger2OperationDTO,
гонятся unit-тестом без реального chain'а (отвечает требованию off-chain
агрегации: никаких сумм по всем кошелькам пайщиков в смарт-контракте).
Состав:
- `marketplace-ledger2-invariants.ts` — 6 pure-агрегаторов (I1 payout
balance, I2 Δ86, I3 acc.10, I4 acc.91 transit = 0, I5 blocked в
w.mkt.member, I6 нет orphan o.mkt.block). Та же логика что UI стола
бухгалтера (`/reports/operations`, `/reports/postings`).
- `marketplace-ledger2-invariants.spec.ts` — 86 тестов: happy path +
violation path для каждого I1..I6 + property-based на 50 случайных
последовательностях (mix happy/cancel/return/writeoff).
- `marketplace-process-trace-coverage.spec.ts` — 10 групп: coverage по
всем 13 marketplace operation_code (12 o.mkt.* + o.wal.conv) в
cooptypes + OPERATION_CODE_TO_PROCESS_TYPE + PROCESS_HASH_LOCATOR;
Phase-A якорь связности apply+walletop+debit+credit под одним
process_hash; full-flow scenarios для supply/return/wroff.
Контрактные тесты в Antelope simulator (mono-ai-5) остаются за другим
агентом; здесь — backend-side mapping контроль и off-chain агрегация
инвариантов, доступные для CI и admin-вью.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: ant <ant@noreply.local>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Цифровой Кооператив
Платформа «Цифровой Кооператив» — комплексное программное обеспечение для управления кооперативными организациями на основе блокчейна EOSIO. Система обеспечивает полный цикл управления кооперативом: от регистрации пайщиков и электронного документооборота до проведения собраний и финансового учёта. Построена на принципах прозрачности, децентрализации и простой электронной подписи.
Проект является частью экосистемы Кооперативная Экономика.
Архитектура
| Компонент | Пакет | Описание |
|---|---|---|
| boot | @coopenomics/boot |
CLI для инициализации и управления блокчейн-инфраструктурой |
| cleos | @coopenomics/cleos |
Утилита командной строки для работы с блокчейн-кошельком |
| contracts | @coopenomics/contracts |
Смарт-контракты EOSIO на C++ |
| controller | @coopenomics/controller |
GraphQL API сервер (NestJS) |
| cooptypes | cooptypes |
Общие типы и интерфейсы блокчейн-контрактов |
| desktop | @coopenomics/desktop |
Рабочий стол кооператива (Vue 3 + Quasar) |
| factory | @coopenomics/factory |
Генератор юридических документов |
| migrator | migrator |
Утилита миграции данных |
| notifications | @coopenomics/notifications |
Библиотека уведомлений на основе Novu |
| parser | @coopenomics/parser |
Индексатор блокчейна через State History Plugin |
| sdk | @coopenomics/sdk |
TypeScript SDK для GraphQL API |
| setup | @coopenomics/setup |
Мастер первоначальной настройки |
Быстрый старт
Предварительные требования
- Node.js >= 20
- pnpm 9
- Docker и Docker Compose
- WeasyPrint (для генерации PDF)
Установка
pnpm install
Конфигурация
pnpm run setup
Интерактивный мастер создаст необходимые .env файлы для всех компонентов.
Запуск инфраструктуры
docker compose up -d
pnpm run reboot
Разработка
Бэкенд (controller + parser)
pnpm run dev:backend
Фронтенд (desktop)
pnpm run dev:desktop
Библиотеки (factory + cooptypes)
pnpm run dev:lib
Все сервисы одновременно
pnpm run dev:all
Примечание: установка пакетов производится только через фильтр:
pnpm add <пакет> --filter <компонент>
Тестирование
# Все тесты
pnpm run test
# Юнит-тесты (cooptypes, parser, notifications)
pnpm run test:unit
# Компонентные тесты (factory)
pnpm run test:component
# Интеграционные тесты (boot + blockchain)
pnpm run test:integration
Сборка
# Библиотеки (cooptypes, factory)
pnpm run build:lib
# Смарт-контракты
pnpm run build:contracts:all
# Desktop (SSR)
pnpm --filter @coopenomics/desktop run build
Лицензия
Продукт Потребительского Кооператива «ВОСХОД» распространяется по лицензии BY-NC-SA 4.0.
Разрешено делиться, копировать и распространять материал, адаптировать и создавать производные произведения при условии указания авторства и сохранения той же лицензии. Коммерческое использование запрещено.