EMPE-13: Платёжные ведомости
Что сделать
Страница /payroll — расчёт, подтверждение, оплата, экспорт ведомостей.
Конкретно
- Фильтры: store_id (обязательный), period (month picker, default текущий)
- Таблица: сотрудник, роль, ТТ, план часов, факт часов, перерывы, чистые часы, формула, сумма, статус
- Статусы-бейджи: calculated (синий), confirmed (оранжевый), paid (зелёный)
- Кнопка “Рассчитать” → подтверждение →
POST /api/v1/admin/payroll/calculate - Кнопка “Подтвердить” (в строке) →
POST /api/v1/admin/payroll/{id}/confirm - Кнопка “Отметить оплаченным” (в строке) →
POST /api/v1/admin/payroll/{id}/mark-paid - Кнопка “Экспорт CSV” → скачивание
GET /api/v1/admin/payroll/export?store_id=...&period=... - Ролевой доступ: Franchise — полный, Franchisee — без confirm/mark-paid, Manager — просмотр
Зависит от
- EMPE-01 (BFF прокси), EMPE-02 (типы), EMPE-14 (роутинг)
Файлы
web/src/pages/payroll/PayrollPage.tsx— создатьweb/src/pages/payroll/components/PayrollTable.tsx— создатьweb/src/pages/payroll/components/PayrollFilters.tsx— создать