Назначение модуля
Модуль предназначен для начисления наработки за периодические услуги (абонплаты).
Настройка модуля
Установите модуль на сервер, используя утилиту bg_installer, обновите клиент биллинга. Затем создайте экземпляр модуля, назвав его произвольным образом (например, Мои абонплаты).
Определите в редакторе модулей и услуг услуги, связанные с этим модулем. Каждая абонентская плата - отдельная услуга. Для начала можете определить несколько тестовых услуг, скорректировав список впоследствии.
Примечание |
---|
с версии 8.2101 вместо настройки режимов начисления абонплат в разных статусах с помощью параметров contract.status.suspend.codes= и service.no.suspend.<status_list>=<service_codes> рекомендуется использовать матрицу статусов (см. скриншот ниже). По умолчанию используется матрица, если хотите использовать параметры вместо матрицы, укажите параметр npay.service.status.mode=param |
Создайте конфигурацию модуля:
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# Статусы договора, в которых не начисляется абонентская плата contract.status.suspend.codes=3,4 # # Автоматическое переначисление абонентских плат договора при изменении их периода, количества, закрытие договора и т.п. # 0 - выключить переначисление, 1 - включить переначисление, 2 - включить переначисление, но выполнять только для текущего месяца recalculate.on.service.change=1 # E-Mail для отправки уведомлений об автоматическом переначислении при изменении абонплаты, если не указан - уведомление не высылается #auto.recalculate.email= # Набор услуг для переобсчета при автоматическом переначислении при изменении абонплаты, если не указан - все услуги #auto.recalculate.email.service.set= # Количество выводимых ошибок в периодических процессах max.periodic.errors=30 # Подмена абонплаты другой услугой на период определённого статуса #wrap.service= # #---------------------------------------- # Выборочное отключение проверки закрытого периода # перенести абонплату на другой договор #closed.date.disabled.ActionMovePay=1 # Начисление абонплат #closed.date.disabled.ActionRecalculatePay=1 # Удаление абонплаты #closed.date.disabled.ActionServiceObjectDelete=1 # Изменение абонплаты #closed.date.disabled.ActionServiceObjectUpdate=1 # Перенести абонплату на другой договор с даты #closed.date.disabled.ActionWrapPay=1 #---------------------------------------- |
...
На один статус договора не должно быть несколько записей.
C помощью опции wrap.service возможно указание абонплат, замещающих другие абонплаты на период определённого статуса.
Блок кода | ||||
---|---|---|---|---|
| ||||
wrap.service.<status_list>=<service_codes> |
где:
- <status_list> - код статусов договора через запятую;
- <service_codes> - пары кодов услуг договора через запятую.
Услуги указываются парами. В каждой паре первой указывается закрываемая услуга, далее двоеточие и услуга, её заменяющая. Замещающая услуга должна быть указанна как не останавливаемая с помощью опций, перечисленных в предыдущем абзаце (замещаемая не должна). Ниже приведён пример замены в статусе 3 79 услуги на 120 а 81 на 123.
Блок кода | ||||
---|---|---|---|---|
| ||||
wrap.service.3=79:120;81:123
service.no.suspend.3=120,123 |
Стоимость услуги-заместителя в тарифном плане должна располагаться ниже стоимости замещаемой услуги. Функционал имеет смысл только для месячного пропорционального и подневного режимов снятия замещаемой услуги и необходим для разделения наработки, начисляемой клиентам с активным статусом и закрытым статусом по различным услугам.
Первоначально модуль не требует дополнительной настройки и способен производить начисления простых видов абонентских плат. Дополнительные настройки устанавливаются в конфигурации модуля и указаны в контексте решаемой задачи далее.
...