Абонплаты, зависящие от наработки по объёму в других модулях

Модуль абонплат может производить начисление в зависимости от объёмов наработок в других модулях.

Зависимости можно выставить только для подневного и помесячного режима начислений.

Все используемые при тарификации объёмы должны быть описаны в конфигурации экземпляра модуля. Объём наработки описывается в конфигурации экземпляра модуля абонплат следующим образом.

module.amount.<id>.title=<title>
module.amount.<id>.mid=<mid>
module.amount.<id>.class=<class_name>
module.amount.<id>.sids=<sids>

Где:

  • <id> - уникальный числовой идентификатор объёма, нумерация должна быть последовательной и непреревной, число не должно меняться впоследствии, при изменении нумерации необходима правка всех тарифов, где используются данные объёмы;

  • <title> - название объёма;

  • <mid> - код экземпляра модуля, в котором рассчитывается объём;

  • <class_name> - класс, рассчитывающий объём;

  • <sids> - коды услуг через запятую.

В данный момент поддерживаются следующие классы, которые могут быть указаны в <class_name> для расчёта объёма услуги (байт, либо секунд):

  • bitel.billing.server.npay.bean.DialUpModuleAmount - количество байт или секунд в экземпляре модуля DialUp;

  • bitel.billing.server.npay.bean.IPNModuleAmount - количествто байт в экземпляре модуля IPN;

  • ru.bitel.bgbilling.modules.inet.npay.InetModuleAmount - количествто байт в экземпляре модуля Inet;

  • bitel.billing.server.npay.bean.PhoneModuleAmount - количество секунд округлённой длительности в экземляре модуля Phone.

Указанный в конфигурации объём можно использовать в узле тарифного плана типа Условие по объёму услуги. При размещении данного узла в узле типа Дневной режим снятия объем будет вычисляться за каждый день для использования в условиях по объёму. При размещении в узле типа Месячный режим снятия объем будет вычисляться за рассчитываемый период (период сочетания, см. алгоритм).

Рассмотрим пример конфигурации экземпляра модуля для начисления несколько типов абонплат и использующую при начислении значения входящих трафиков модуля DialUP, IPN и голосового трафика модуля Телефонии. Если необходимо учитывать суммарную наработку по нескольким услугам, они перечисляются через запятую.

module.amount.1.title=Входящий DialUP трафик
module.amount.1.mid=21
module.amount.1.class=bitel.billing.server.npay.bean.DialUpModuleAmount
module.amount.1.sids=23
#
module.amount.2.title=Входящий внешний IPN трафик
module.amount.2.mid=33
module.amount.2.class=bitel.billing.server.npay.bean.IPNModuleAmount
module.amount.2.sids=40
#
module.amount.3.title=Объем трафика телефонии
module.amount.3.mid=73
module.amount.3.class=bitel.billing.server.npay.bean.PhoneModuleAmount
module.amount.3.sids=83,84,85,86
#
module.amount.4.title=Входящий трафик INET
module.amount.4.mid=179
module.amount.4.class=ru.bitel.bgbilling.modules.inet.npay.InetModuleAmount
module.amount.4.sids=203
#
module.amount.5.title=Входящий Voiceip трафик
module.amount.5.mid=79
module.amount.5.class=bitel.billing.server.npay.bean.VoipModuleAmount
module.amount.5.sids=122

Приведённая выше конфигурация используется в следующих примерах тарифов:

Начисление 1 го рубля только за те дни, когда была наработка в модуле DialUP

images/download/attachments/73597618/img178.gif

Начисление за дни, когда у клиента не было достаточной наработки по IPN, "штрафа" в 10 рублей, стимулирующий тариф.

images/download/attachments/73597618/img179.gif

Все приведённые выше примеры могут быть совмещены с узлами типа: Фильтр по времени и Период.

Тариф, снимающий абонплату за предоплаченные 100 МБ в месяц, если клиент наработал меньше, то снятие происходит пропорционально реально потреблённому объёму.

images/download/attachments/73597618/img180.gif

Тот же тариф, но снимающий в случае, если объем менее 100, как выгоднее: т.е. анализируется доля потреблённых дней в месяце и доля потреблённого объёма, большая доля умножается на цену за месяц.

images/download/attachments/73597618/img181.gif

Необходимо учитывать, что в узле типа "Условие" нижняя граница включена в диапазон, а верхняя - нет. 0 в верхней границе диапазона означает неограниченный объем.