Модель данных
Бонусы
На бонусные операции наложено ограничение: для одной аренды может существовать только одна операция типа «Начисление». Списаний на аренду может быть несколько.
Как это работает
Жизненный цикл бонусов
1
Создание бонусного счёта
При создании клиента автоматически создаётся бонусный счёт. Если в настройках компании стартовая сумма бонусов больше нуля, сразу пишется приветственная операция «Начисление» на эту сумму.
2
Начисление за аренду
Начисление за аренду срабатывает только если аренда «Завершена» и имеет статус оплаты «Оплачена». Сумма начисления:
Начисление = итоговая сумма к оплате × процент кэшбэка / 100где процент кэшбэка берётся из уровня лояльности клиента, если у клиента заполнен аккаунт пользователя, иначе — из процента по умолчанию в настройках компании. Если по аренде уже есть списание бонусов, начисление пропускается.
3
Списание в счёт оплаты
Списание запускает менеджер вручную. Максимум к списанию — это наименьшее из трёх значений:
Максимум к списанию = минимум из:Пишется операция «Списание» на эту сумму (в бонусной операции она отражается отрицательным числом).Нижняя граница нуля важна для случая переплаты: если клиент внёс больше итоговой суммы к оплате, остаток к оплате отрицательный, и максимум к списанию равен нулю — списывать нечего. Без этой границы списание превратилось бы в начисление и увеличивало бы бонусный баланс клиента.но не меньше нуля.
- остаток к оплате (итоговая сумма к оплате − оплачено);
- процент от суммы, разрешённый к оплате бонусами (итоговая сумма к оплате × разрешённый процент / 100);
- доступный баланс бонусов,
4
Пересчёт баланса
Каждое сохранение бонусного счёта пересчитывает баланс как сумму всех бонусных операций по нему.После каждой операции и после её удаления счёт пересохраняется, а также обновляется Wallet-карта клиента.
5
Отражение в деньгах
Каждое списание бонусов создаёт (или обновляет) денежную операцию прихода на списанную сумму. Так списанные бонусы попадают в финансовый учёт аренды. Начисления в деньги не транслируются.
Числовой пример начисления и списания
Значения «максимум к списанию» и «использовано бонусов» в карточке аренды
В детальной выдаче аренды те же величины считаются в базе данных: «использовано бонусов» — это сумма всех бонусных операций по данной аренде (со знаком плюс), а «максимум к списанию» — наименьшее из тех же трёх значений: остаток к оплате, разрешённый процент от суммы и доступный баланс, и так же не меньше нуля. Это поля только для чтения, синхронные с формулой из шага «Списание в счёт оплаты», поэтому по переплаченной аренде они показывают ноль, а не отрицательное число. То же правило действует и в клиентской части (личный кабинет клиента).Связанные страницы
Карточка клиента
Профиль клиента, документы и чёрный список.
Программа лояльности
Откуда берётся процент кэшбэка для начислений.
Реферальные агенты
Агенты, приводящие клиентов, и их вознаграждение.
Клиенты, бонусы и рефералы
Общий обзор модуля.