> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yume.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Бонусы сотрудников

> Баланс, история и общая сводка бонусных начислений и списаний по клиентам компании.

Полный перечень полей — в [глоссарии](/ru/logic/metrics/bonuses-glossary).

## Назначение раздела

Раздел «Бонусы сотрудников» показывает, как в компании начисляются и списываются бонусные баллы клиентам, кто из сотрудников оформил каждую операцию, и как эти операции влияют на текущий баланс. Несмотря на название раздела в общей структуре метрик, здесь отслеживается не начисление бонусов сотрудникам, а работа сотрудников с бонусной программой клиентов: отчёт показывает, какие бонусные операции провёл каждый сотрудник, что удобно для контроля и сверки.

Раздел состоит из трёх отчётов:

* **Баланс бонусов** — список клиентов с их текущим остатком бонусных баллов.
* **Сводка по бонусам** — агрегированные цифры: общий оборот, сколько начислено и сколько списано за период.
* **История операций** — построчный журнал всех бонусных транзакций с фильтрами по типу операции, по сотруднику и по клиенту.

## Модель данных

### Бонусный счёт клиента

У каждого клиента может быть один бонусный счёт (связь один-к-одному). Счёт хранит только текущий остаток баллов.

| Поле           | Тип             | Назначение                                          |
| -------------- | --------------- | --------------------------------------------------- |
| Клиент         | связь           | клиент — владелец счёта                             |
| Баланс бонусов | число (2 знака) | текущий остаток баллов; не может быть отрицательным |

<Note>
  Баланс бонусов не редактируется вручную и не задаётся напрямую. Каждый раз при сохранении счёта система пересчитывает его заново как сумму всех связанных транзакций. Поэтому единственный способ изменить баланс — создать, изменить или удалить транзакцию; редактирование самого счёта в обход транзакций не имеет смысла, значение всё равно будет перезаписано пересчитанной суммой.
</Note>

### Транзакция по бонусам

Каждая транзакция — это одно начисление или одно списание баллов по счёту конкретного клиента. Начисления сохраняются положительной суммой, а списания — отрицательной; это и есть способ, которым система различает направление движения баллов при подсчёте итогов.

| Поле                  | Тип                   | Назначение                                                                         |
| --------------------- | --------------------- | ---------------------------------------------------------------------------------- |
| Бонусный счёт         | связь                 | к какому счёту клиента относится операция                                          |
| Сумма транзакции      | число (2 знака)       | величина начисления (положительное значение) или списания (отрицательное значение) |
| Заявка на аренду      | связь                 | аренда, с которой связана операция (необязательно)                                 |
| Тип операции          | начисление / списание | направление движения баллов                                                        |
| Создано пользователем | связь                 | сотрудник, оформивший операцию                                                     |
| Дата создания         | дата/время            | момент создания; по ней отчёты фильтруются по периоду                              |

<Warning>
  На одну заявку аренды допускается не более одной транзакции с типом «Начисление». Это защищает от двойного начисления бонусов за одну и ту же аренду. Одновременно с этим для одной заявки может существовать несколько транзакций списания — ограничение действует только на начисление.
</Warning>

## Логика и побочные эффекты

### Что происходит при создании операции

1. Сотрудник (или автоматическая логика оформления аренды) создаёт транзакцию — начисление (положительной суммой) или списание (отрицательной суммой).
2. Сразу после сохранения транзакции бонусный счёт клиента автоматически пересчитывается: новый баланс — это сумма всех транзакций счёта на текущий момент (начисления и списания складываются с учётом своего знака).
3. Если счёт связан с активной электронной картой лояльности (кошелёк на устройстве клиента), при изменении баланса автоматически отправляется уведомление об обновлении карты, чтобы отображаемый на карте баланс не расходился с фактическим. Если такой карты нет, уведомление не отправляется.
4. Если операция — списание, дополнительно создаётся (или обновляется, если уже существует) связанная финансовая проводка на сумму списания, отражающая, что клиент оплатил часть аренды бонусами, а не деньгами. Для начисления такая проводка не создаётся — начисление не является платежом.

Такая же логика пересчёта и уведомления срабатывает и при удалении транзакции: баланс счёта пересчитывается заново без учёта удалённой операции. При удалении списания связанная финансовая проводка автоматически не удаляется и не корректируется.

<Info>
  Так как баланс всегда пересчитывается по факту существующих транзакций, отчёт «История операций» показывает наравне с каждой строкой транзакции ещё и *текущий* итоговый баланс счёта клиента на момент запроса отчёта — это не баланс на дату конкретной операции, а актуальный остаток на сейчас.
</Info>

### Период отчёта

Все три отчёта принимают период (дату начала и дату окончания). Если период не передан явно, по умолчанию используется текущий календарный месяц: с первого числа текущего месяца по первое число следующего месяца.

* В отчёте «Баланс бонусов» период не влияет на сами цифры баланса (баланс всегда актуальный на текущий момент), только на возможность фильтрации/сортировки списка.
* В отчёте «Сводка по бонусам» период влияет только на суммы начисленного и списанного — общий оборот считается за всё время без ограничения по периоду (см. ниже).
* В отчёте «История операций» период ограничивает, какие транзакции попадают в список — по дате создания операции.

## Отчёт «Баланс бонусов»

Список всех бонусных счетов клиентов компании с их текущим остатком.

| Поле           | Тип             | Назначение                                                     |
| -------------- | --------------- | -------------------------------------------------------------- |
| Клиент         | связь           | клиент — владелец счёта (имя, телефон и другие базовые данные) |
| Баланс бонусов | число (2 знака) | текущий остаток баллов клиента                                 |

Поддерживается поиск по имени и телефону клиента, а также сортировка по идентификатору, клиенту и сумме баланса (записи без значения сортировки не выпадают из списка, а показываются последними).

## Отчёт «Сводка по бонусам»

Три агрегированных показателя, посчитанных на лету по всем бонусным транзакциям компании.

| Поле                   | Тип             | Назначение                                                                                                                                                            |
| ---------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Общая сумма транзакций | число (2 знака) | сумма всех бонусных транзакций компании за всё время существования компании (начисления и списания складываются с учётом знака, то есть списания уменьшают эту сумму) |
| Начислено за период    | число (2 знака) | сумма всех операций начисления, созданных в выбранном периоде                                                                                                         |
| Списано за период      | число (2 знака) | сумма всех операций списания, созданных в выбранном периоде, показывается положительным числом                                                                        |

<Warning>
  Показатель «Общая сумма транзакций» не учитывает выбранный период — это сумма вообще всех транзакций компании за всё время. Кроме того, это именно суммарный net-итог с учётом знака (списания хранятся отрицательными и поэтому уменьшают эту сумму), а не сумма масштаба оборота без учёта направления операций. Только «Начислено за период» и «Списано за период» реально ограничены выбранными датами. Это может сбивать с толку при чтении отчёта: первая цифра не согласуется по смыслу с двумя остальными и не отражает общий объём операций.
</Warning>

Списания в базе хранятся как отрицательные суммы транзакций, поэтому при подсчёте показателя «Списано за период» значение дополнительно меняет знак на положительный — чтобы в отчёте оно читалось как обычная положительная величина, а не как отрицательное число.

## Отчёт «История операций»

Построчный журнал всех бонусных транзакций за выбранный период, отсортированный от новых к старым.

| Поле                  | Тип                   | Назначение                                                                                |
| --------------------- | --------------------- | ----------------------------------------------------------------------------------------- |
| Имя клиента           | текст                 | клиент — владелец бонусного счёта, к которому относится операция                          |
| Текущий баланс счёта  | число (2 знака)       | актуальный остаток бонусного счёта клиента на момент запроса отчёта (не на дату операции) |
| Сумма транзакции      | число (2 знака)       | величина начисления или списания                                                          |
| Тип операции          | начисление / списание | направление движения баллов                                                               |
| Заявка на аренду      | связь                 | аренда, к которой относится операция, если указана                                        |
| Создано пользователем | связь                 | сотрудник, оформивший операцию                                                            |
| Дата создания         | дата/время            | когда операция была создана                                                               |

Особенности отчёта:

* Транзакции с нулевой суммой в отчёт не попадают — они считаются техническими и не несут отчётной ценности.
* Доступен поиск по имени клиента.
* Доступна фильтрация по типу операции (начисление/списание) и по сотруднику, оформившему операцию.
* В отчёте также подтягиваются вспомогательные данные по связанной заявке аренды (статус заявки и сумма скидки по заявке), если операция связана с конкретной арендой.

## Как это используется

Типичный сценарий: клиент оформляет или закрывает аренду, и в рамках этого сотрудник вручную либо автоматической логикой начисляет клиенту бонусные баллы за аренду или списывает часть баллов клиента в счёт оплаты. Раздел «Бонусы сотрудников» даёт руководству возможность:

* проверить, у кого из клиентов какой накопленный остаток бонусов (отчёт «Баланс бонусов»);
* быстро увидеть общий масштаб бонусной программы и её динамику за месяц (отчёт «Сводка по бонусам»);
* проконтролировать, кто из сотрудников какие операции с бонусами проводил, и сверить операции с конкретными арендами (отчёт «История операций»).

<Tip>
  Так как списание бонусов автоматически создаёт связанную финансовую проводку, отчёты по кассе и по бонусам должны быть согласованы: сумма списанных бонусов клиента отражается и как уменьшение оплаты деньгами по аренде.
</Tip>

## Особенности поведения

<Info>
  * Поле «текущий баланс счёта» в отчёте истории операций всегда показывает актуальный остаток на момент запроса отчёта, а не баланс, который был на дату конкретной исторической операции — это может ввести в заблуждение при просмотре старых записей.
  * Транзакции с нулевой суммой полностью исключаются из отчёта истории операций (но не из сводки и не влияют на баланс иначе, чем любые другие транзакции), поэтому подсчёт количества операций «на глаз» по списку истории не совпадёт с фактическим количеством записей в базе.
  * При создании операции списания автоматически создаётся или обновляется связанная финансовая проводка на сумму списания (сумма в проводке хранится с противоположным знаком относительно бонусной транзакции); для начисления такая проводка не создаётся. Проводка обновляется только при создании/сохранении бонусной транзакции — при удалении транзакции списания проводка не удаляется и не корректируется автоматически.
  * Суммы списания в базе хранятся отрицательными значениями, поэтому показатель «Списано за период» в сводке вычисляется с переменой знака на положительный.
  * Если период не передан в запросе, по умолчанию используется текущий календарный месяц (с первого числа текущего месяца по первое число следующего).
  * При удалении бонусной транзакции баланс счёта тоже автоматически пересчитывается и по счёту тоже отправляется уведомление об обновлении карты лояльности (только если у счёта есть активная невоидированная карта в кошельке) — это симметрично созданию транзакции.
</Info>

## Связанные страницы

<CardGroup cols={2}>
  <Card title="Глоссарий: Бонусы сотрудников" icon="book" href="/ru/logic/metrics/bonuses-glossary">
    Полный перечень полей бонусного счёта и транзакций.
  </Card>

  <Card title="Метрики и аналитика" icon="chart-line" href="/ru/logic/metrics">
    Общий обзор всех отчётов раздела метрик и аналитики.
  </Card>

  <Card title="Обзор и общая сводка" icon="gauge" href="/ru/logic/metrics/overview">
    Дневная сводка по компании: доход, заявки и детализация — точка входа в аналитику.
  </Card>

  <Card title="Финансы: список, PnL, движение денег" icon="money-bill-wave" href="/ru/logic/metrics/finances">
    Финансовые отчёты компании: список операций, прибыли и убытки, движение денег.
  </Card>

  <Card title="Транзакции" icon="receipt" href="/ru/logic/metrics/transactions">
    Сводка транзакций: разбивка по видам оплаты и постраничный список операций.
  </Card>

  <Card title="Штрафы" icon="gavel" href="/ru/logic/metrics/penalties">
    Учёт штрафов по арендам: автоматическое начисление, штрафы вручную и статус оплаты.
  </Card>

  <Card title="Скидки" icon="percent" href="/ru/logic/metrics/discounts">
    История применения скидок к арендам и сводная группировка по каждой скидке из справочника.
  </Card>

  <Card title="Депозиты" icon="vault" href="/ru/logic/metrics/deposits">
    Залоги по аренде: денежные и предметные, статусы и фактические платежи.
  </Card>

  <Card title="Услуги" icon="sparkles" href="/ru/logic/metrics/services">
    Метрики дополнительных услуг: общая сводка, список по видам, по исполнителям и история.
  </Card>

  <Card title="Зарплаты и субаренда сотрудников" icon="wallet" href="/ru/logic/metrics/salaries-sublease">
    Расчёт зарплат по выполненным действиям и учёт субаренды инвентаря сотрудникам.
  </Card>

  <Card title="Амортизация и окупаемость инвентаря" icon="arrow-trend-down" href="/ru/logic/metrics/depreciation-payback">
    Амортизация единиц инвентаря и накопленная окупаемость дохода по группам и единицам.
  </Card>

  <Card title="Эффективность инвентаря" icon="gauge-high" href="/ru/logic/metrics/efficiency">
    Загрузка и простой инвентаря по комплектам, группам и отдельным единицам.
  </Card>

  <Card title="Рефералы и клиенты" icon="users" href="/ru/logic/metrics/referrals-clients">
    Реферальная программа (агенты и начисления) и клиентская аналитика: рост, отток, LTV.
  </Card>

  <Card title="Смены сотрудников" icon="clock" href="/ru/logic/metrics/workshifts">
    Список и детализация рабочих смен персонала на точках проката.
  </Card>

  <Card title="Модули: доставки, мастерская, воронки, склад, инвентаризации" icon="truck" href="/ru/logic/metrics/modules">
    Отчётность прикладных модулей: доставки, мастерская, воронки продаж, продажи и инвентаризации.
  </Card>
</CardGroup>
