Журнал транзакций
Единый список всех финансовых операций (продажи + возвраты) по всем каналам (касса, Я.Еда, Маркет Деливери). Служит для оперативного просмотра и сверки.
Файл
erp-admin/web/src/pages/transactions/TransactionJournalPage.tsx
Роут
/transactions — видимость по permission orders.read.
Доступ
| Роль | Доступ |
|---|---|
| Franchise | Все транзакции франшизы |
| Franchisee | Свои ТТ |
| Manager | Своя ТТ |
| Cashier | 403 |
Layout
Фильтры в шапке:
| Фильтр | Тип | Опции |
|---|---|---|
| Период | preset | Сегодня / 7 дней / 30 дней / Всё |
| ТТ | select | Мультивыбор, по scope |
| Канал | select | Касса (INTERNAL) / Я.Еда / Маркет Деливери |
Сверху — сводка по фильтру:
- Общая выручка
- Общая сумма возвратов
- Нетто (выручка − возвраты)
Таблица транзакций:
| Колонка | Содержимое |
|---|---|
| Дата/время | created_at |
| Тип | Продажа / Возврат (бейдж) |
| Канал | Касса / Я.Еда / МД |
| Номер заказа | order_number (ссылка → OrderDetailPage) |
| ТТ | Название |
| Метод оплаты | cash / card / qr / mixed |
| Сумма | decimal |
Поведение
- Клик по номеру заказа → переход на
/orders/{id}(история или активный). - Сортировка по дате (по умолчанию — сначала новые).
- Пагинация (per_page=50 по умолчанию).
Источник данных
Фронт объединяет две выдачи в один список (клиентская склейка):
- Продажи:
GET /api/v1/admin/orders?status=closed&... - Возвраты:
GET /api/v1/admin/refunds?...
Отсутствующий endpoint
Ранее предполагался единый endpoint
GET /api/v1/admin/transactions, но в Order Service он не реализован (возвращает 404). Сейчас фронт сам собирает данные из двух источников и склеивает.
Что НЕ реализовано
- Фильтр по методу оплаты.
- Фильтр по кассиру.
- Экспорт выборки в CSV / Excel.
- Группировка по сменам.
- Клик по сумме возврата → детальная карточка возврата.