Формулы зарплаты

CRUD формул расчёта зарплаты для ролей. Каждая формула определяет как вычисляется сумма в платёжной ведомости.

Файл

erp-admin/web/src/pages/payroll/SalaryFormulasPage.tsx

Роут

/payroll/formulas — видимость по permission payroll.read (редактирование — payroll.edit).

Доступ

РольДоступ
FranchiseCRUD всех формул франшизы
FranchiseeRead-only своих ТТ
Manager403
Cashier403

Layout

Таблица формул:

КолонкаСодержимое
Названиеname (напр. «Бариста — ставка»)
Типfixed / hourly / percent / combined
ПараметрыКраткая сводка (например «500 ₽/час + 3% от выручки»)
Применяется кРоли (список)
Привязка к ТТВсе ТТ / выбранные ТТ
ДействияРедактировать / Удалить

Фильтры:

  • ТТ (мультивыбор по scope)
  • Поиск по названию

Кнопки шапки:

  • «+ Добавить формулу»

Модалки

Create / Edit Formula

Форма:

  • Название (required)
  • Тип (radio): Фиксированная / Почасовая / Процент от выручки / Комбинированная
  • Поля зависят от типа:
    • Fixed: base_amount (decimal)
    • Hourly: hourly_rate
    • Percent: percent_rate (% от выручки смены)
    • Combined: любая комбинация из трёх выше
  • Роли, к которым применяется (multiselect)
  • Привязка к ТТ (All / выбранные)

Delete Formula

Модалка подтверждения. Блокируется если формула используется в текущих (unposted) ведомостях.

Источник данных

User Service: GET/POST/PATCH/DELETE /api/v1/salary-formulas

Сущности: salary_formulas, formula_applies_to_roles, formula_applies_to_stores.

Связь с Платёжными ведомостями

При расчёте ведомости (POST /api/v1/payroll/calculate) формулы применяются по правилу:

  • Выбирается активная формула, привязанная к роли сотрудника в его ТТ.
  • Если несколько формул подходят — берётся наиболее специфичная (привязанная к конкретной ТТ, а не «All»).
  • Snapshot формулы сохраняется в payroll_records.formula_snapshot (JSONB) для историчности.

Что НЕ реализовано

  • Версионирование формул (при изменении формула пересохраняется целиком, старые ведомости используют snapshot).
  • Тест-расчёт для конкретного сотрудника.
  • Импорт формул из Excel.

Ссылки