Зарплата
Источник требований
BR 1.4.1, раздел 5
Референс
YUMA POS:
_reference/yumapos/roles.md(вкладка “Зарплата”),_reference/yumapos/how-to-add-new-staff-member.md(формула по сотруднику)
Расчёт и начисление заработной платы на основе отработанных часов. Только начисление — без НДФЛ, взносов и вычетов (бухгалтерия ведётся в 1С).
Формулы начисления
Три типа формул
| Тип | Формула расчёта | Пример |
|---|---|---|
| Почасовая (hourly) | ставка × отработанные часы | 500 ₽/час × 160ч = 80 000 ₽ |
| Фиксированный оклад (fixed) | оклад за месяц | 60 000 ₽/мес (независимо от часов) |
| Смешанная (mixed) | оклад + ставка × часы сверх нормы | 50 000 ₽ + 600 ₽/час × часы сверх 160ч |
Поля формулы
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| Тип | enum | Обязательно | hourly / fixed / mixed |
| Почасовая ставка | decimal | Для hourly и mixed | Рублей в час |
| Месячный оклад | decimal | Для fixed и mixed | Рублей в месяц |
| Ставка за переработку | decimal | Для mixed | Рублей в час сверх нормы |
| Норма часов | integer | Для mixed | Часов в месяц (по умолчанию 160) |
Формула по роли
Каждой роли-объекту (см. Роли) можно задать формулу начисления по умолчанию. Все сотрудники с этой ролью получают зарплату по этой формуле, если не задана индивидуальная.
(Обновлено в BR 1.4.3 — формула теперь привязана к роли-объекту, а не к enum-значению. Одна формула на всю роль в рамках франшизы.)
Deferred: формулы по ТТ
Исходная формулировка BR 1.4.1 предполагала различие ставок по ТТ (роль × ТТ → formula). Отложено до отдельной BR — см. Роли § Deferred.
Иерархия применения
Индивидуальная формула сотрудника (если задана)
↓ (если нет)
Формула роли сотрудника (если задана)
↓ (если нет — и если у сотрудника несколько ролей с формулами)
Формула первой назначенной роли с заданной формулой
↓ (если нет ни одной формулы)
Нет формулы → ведомость не рассчитывается для этого сотрудника
Индивидуальная формула
Для конкретного сотрудника можно задать свою формулу, которая перекрывает ролевую. Настраивается на вкладке “Роли и магазины” в профиле сотрудника.
Платёжные ведомости (Payroll)
Новая страница: Сотрудники → Платёжные ведомости
Фильтры
| Фильтр | Обязательность | По умолчанию |
|---|---|---|
| ТТ | Необязательный | Все ТТ |
| Период (месяц) | Обязательный | Текущий месяц |
Таблица ведомости
По каждому сотруднику за период:
| Колонка | Описание |
|---|---|
| Сотрудник | ФИО |
| Роль | Роль сотрудника |
| ТТ | Торговая точка |
| Плановые часы | Часов по расписанию |
| Фактические часы | Часов отработано (с учётом корректировок) |
| Перерывы | Суммарные перерывы за период |
| Чистое время | Факт − перерывы ± корректировки |
| Формула | Тип формулы (hourly/fixed/mixed) и ставка |
| Начислено | Рассчитанная сумма |
| Статус | Рассчитано / Подтверждено / Выплачено |
Статусы ведомости
stateDiagram-v2 [*] --> Рассчитано: POST /payroll/calculate Рассчитано --> Подтверждено: POST /payroll/{id}/confirm Подтверждено --> Выплачено: POST /payroll/{id}/mark-paid Рассчитано --> Рассчитано: Пересчёт (при изменении данных)
| Статус | Описание |
|---|---|
| Рассчитано (calculated) | Система рассчитала начисления. Можно пересчитать. |
| Подтверждено (confirmed) | Ответственный подтвердил суммы. Пересчёт больше недоступен. |
| Выплачено (paid) | Деньги выплачены. Финальный статус. |
Снимок формулы
При расчёте ведомости текущая формула сохраняется как snapshot (снимок). Это гарантирует, что исторические ведомости остаются корректными даже если формула позже изменится.
CSV-экспорт
Кнопка “Экспорт в CSV” — выгрузка ведомости для передачи бухгалтеру:
- Формат: UTF-8 с BOM (для корректного открытия в Excel)
- Колонки: ФИО, Роль, ТТ, Часы, Ставка, Начислено, Статус
Ролевая матрица
(Обновлено в BR 1.4.4 — колонки scope вместо enum, permission для обычных сотрудников)
| Действие | Владелец франшизы | Владелец партнёра | Обычный сотрудник (permission) |
|---|---|---|---|
| Настройка формул по ролям | Да (все ТТ) | Да (свои ТТ) | payroll.edit + scope |
| Настройка индивидуальных формул | Да | Да (свои) | payroll.edit + scope |
| Просмотр ведомостей | Да (все ТТ) | Да (свои ТТ) | payroll.read + scope |
| Расчёт ведомостей | Да | Да (свои) | payroll.edit + scope |
| Подтверждение ведомостей | Да | Да (свои) | payroll.edit + scope |
| Отметка “Выплачено” | Да | Да (свои) | payroll.edit + scope |
| CSV-экспорт | Да | Да (свои) | payroll.read + scope |
Связи с другими модулями
- Сотрудники — вкладка “Роли и магазины” для индивидуальной формулы
- Учёт рабочего времени — отработанные часы для расчёта
- Расписание смен — плановые часы