Платежи и бонусы

  • Платежи - строки в БД (pays_history) с указанием суммы, даты и типа платежа.
  • Бонусы - строки в БД (bonus_history) с указанием кол-ва бонусов, даты начисления/списания и поле комментария
  • Списания - строки в БД (withdraw_history) с указанием сколько, за что и кода было списано (оказано)
  • Баланс - разница платежей и списаний
  • Бонусный баланс - сумма бонусов в таблице бонусов

Списания

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

Сумма списания вычисляется как произведение стоимости услуги (cost), помноженное на кол-во (qnt) за вычетом персональной скидки клиента и скидки на саму услугу.

SHM проверяет бонусный баланс, и если его достаточно, то услуга будет оказана за счет бонусов. При этом, стоимость (total) услуги будет 0, т.к. стоимость это деньги, а не бонусы. Если же бонусов не достаточно для полной оплаты услуги, то конечная стоимость услуги будет вычислена за вычетом кол-ва бонусов.

Изменено 21.08.2023: Update pays.md (68f1385)