Биржа: учёт товара от накладной до продажи с рейса
(Корпоративный портал · кабинеты · PWA)«Биржа» — внутренний контур учёта для оптовой торговли свежим товаром: партии, кг, ящики, деньги и рейсы в одном потоке; роли разделены, полевые продажи — через PWA.
Tagline Накладная → склад → рейс → продажа · роли и PWA

Биржа — система учёта товара для оптовой цепочки. У каждой роли свой контур: закупщик ведёт приёмку, логист — рейсы и погрузку, продавец — продажи с рейса в PWA, бухгалтер — сверку денег. Админ закрепляет рейсы, видит KPI и контролирует весь поток в реальном времени.
- Роли с отдельными кабинетами и правами: закупщик, логист, продавец, бухгалтер, админ (JWT)
- Админ-сводка: KPI по складу, погрузке, открытым рейсам и продажам; баланс массы и разбивка по калибрам
- Закупщик: накладная со строками калибров (брутто / нетто / ящики / ₽/кг) → партии на складе
- Логист: рейсы (город, водитель, машина), погрузка, возврат/списание, догрузка, смена рейса
- Недостача по рейсу: партия, рейс, кг, причина — фиксация списания из «в пути»
- Продавец (PWA): мобильный кабинет продаж — тип сделки (розница/опт) → рейс → калибр → количество → оплата; отчёт по рейсу и архив
- Админ-контроль продаж: закрепление рейса за продавцом, продажи по продавцу; догрузка в ПН доступна в любой момент
- Бухгалтер (/b): сверка по рейсам — выручка, себестоимость, валовая прибыль, оплаты; отчёт и контрагенты
- Настройки: справочники (склады, калибры, логистика, тепличники, оптовики), накладные, сотрудники
- Архив: закрытые рейсы с полным отчётом; поиск закупочных и погрузочных накладных
- Тёмная / светлая тема
Ключевые задачи:
Развести ответственность по ролям и убрать «устные» остатки: закупщик, логист, продавец и бухгалтер работают в своих кабинетах, а весь поток сходится в одном контуре. Продавцам — PWA на телефоне, руководству — полный контроль рейсов, продаж и денег без сторонних таблиц.

Приёмка · закупка товара: тепличник, склад, строки калибров (брутто / нетто / ящики / ₽/кг), создание накладной и список «В работе»
Бизнес строится вокруг свежего товара: калибры, партии, ящики, перемещение между складом, погрузочной и рейсом. Ручной учёт в таблицах не успевает за сменой остатков и деньгами на рейсе. Нужна была операционная система с жёстким потоком документов — от накладной до продажи — и ролями, чтобы закупщик, логист, продавец и бухгалтер видели только свой контур, а контроль оставался централизованным.
Спроектировали веб-платформу с кабинетами по ролям: /a — админ и операционный контур (сводка, закуп, рейсы, настройки), /o — логистика и склад, /s — продавец (PWA, устанавливается на телефон и привязан к тому же бэкенду), /b — бухгалтерия. Права на API через JWT: каждый сотрудник входит под своей ролью. Стек: Fastify + PostgreSQL (Drizzle), Vite + React, доменные модели партий и денег, контракты Zod.


Рейсы: город, водитель, машина · Погрузка: отбор партий, возврат на склад и списание (кг / ящики)

Продавец и продажи: закрепление рейса за продавцом, контроль продаж по продавцу из админки

Недостача по рейсу: партия, рейс, кг и причина — прозрачная фиксация потерь
Админ-панель — единый пульт: KPI, баланс массы, операции «сейчас», закрепление рейсов за продавцами и просмотр их продаж. Логист ведёт рейсы и погрузку; с погрузочной можно вернуть товар на склад или списать — по калибру или всей накладной, в кг или ящиках. Недостача фиксируется отдельно и списывается из «в пути». Закупщик оформляет приёмку: тепличник, склад, строки калибров. Закрытые рейсы и накладные уходят в архив с полным отчётом.
Продавцы работают в PWA «Кабинет продаж» на телефоне, подвязанном к тому же проекту: пошаговая продажа с рейса — тип сделки (розница / опт) → рейс → калибр → количество → оплата. Итоги — в отчёте по рейсу и архиве. Данные сразу в общем контуре: админ и бухгалтер видят результат без мессенджеров и таблиц. Бухгалтерия: сверка по рейсам, отчёт и контрагенты. Настройки сотрудников и справочников — без разработчика. Всё контролируется из одного контура. Продукт в продакшене: https://www.24birzha.ru/. CODE 1.618.
Результаты
4+
роли: закуп · логист · продавец · бухгалтер
PWA
приложение продавца
1
контур: всё под контролем
кг · ящ. · ₽
единый учёт
Технологии
- Fastify + PostgreSQL
- Vite + React
- TanStack Query
- JWT / роли
- PWA продавца
- Тёмная / светлая тема
- UX/UI кабинетов

Настройки: справочники — склады, калибры, логистика, тепличники, оптовики · накладные · сотрудники

Кабинет бухгалтера: сверка по рейсам — выручка, себестоимость, валовая прибыль и оплаты

Архив: закрытые рейсы с отчётом по продажам · поиск закупочных и погрузочных накладных

PWA продавца «Кабинет продаж»: розница/опт → рейс → калибр → количество → оплата
