Модуль абонплат может производить начисление в зависимости от объёмов наработок в других модулях.
Зависимости можно выставить только для подневного и помесячного режима начислений.
Все используемые при тарификации объёмы должны быть описаны в конфигурации экземпляра модуля. Объём наработки описывается в конфигурации экземпляра модуля абонплат следующим образом.
module.amount.<id>.title=<title> module.amount.<id>.mid=<mid> module.amount.<id>.class=<class_name> module.amount.<id>.sids=<sids>
Где:
- уникальный числовой идентификатор объёма, нумерация должна быть последовательной и непреревной, число не должно меняться впоследствии, при изменении нумерации необходима правка всех тарифов, где используются данные объёмы; |
- название объёма; |
- код экземпляра модуля, в котором рассчитывается объём; |
- класс, рассчитывающий объём; |
- коды услуг через запятую. |
В данный момент поддерживаются следующие классы, которые могут быть указаны в
для расчёта объёма услуги (байт, либо секунд):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
Начисление за дни, когда у клиента не было достаточной наработки по IPN, "штрафа" в 10 рублей, стимулирующий тариф.
Все приведённые выше примеры могут быть совмещены с узлами типа:
и .Тариф, снимающий абонплату за предоплаченные 100 МБ в месяц, если клиент наработал меньше, то снятие происходит пропорционально реально потреблённому объёму.
Тот же тариф, но снимающий в случае, если объем менее 100, как выгоднее: т.е. анализируется доля потреблённых дней в месяце и доля потреблённого объёма, большая доля умножается на цену за месяц.
Необходимо учитывать, что в узле типа "Условие" нижняя граница включена в диапазон, а верхняя - нет. 0 в верхней границе диапазона означает неограниченный объем.