Статус - это глобальная характеристика договора, общая для всех подключенных услуг. Перечень статусов в системе и их коды задаются переменной
конфигурации сервера, например, так:contract.status.list=0:Активен;1:В отключении;2:Отключен;3:Закрыт;4:Приостановлен;5:В подключении
Код статуса должен быть уникален. В зависимости от статуса договора различные модули меняют свое поведение. Открывается, либо блокируется доступ к услугам, начисляется, либо не начисляется абонентская плата.
Текущий статус договора отображается отдельным узлом в дереве карточки договора в виде:
. При выборе узла дерева в таблице отображается статусы договора.Внизу отображается таблица с историей изменения статусов.
В этом же окне возможно изменение статусов для договоров с указанием периодов и комментария. При смене статуса оператор указывает период и новый статус. В комментарии может быть указана причина изменения. Например: "По гарантийному письму ХХХХ". Период может быть указан с пустой датой окончания, в этом случае период считается не ограниченным сверху.
Вновь установленный статус перетирает все статусы с пересекающимися периодами. В один день возможен только один статус договора.
Не все статусы доступны для ручной установки, перечень запрещённых задаётся переменной конфигурации сервера
. Данные статусы могут устанавливаться, например, скриптами.Если какой-либо статус более не используется, то его код должен быть указан в переменной конфигурации сервера
, коды указываются через запятую. Статус останется в истории смен, но будет недоступен в фильтрации и установке.Если устанавливаемый статус договора включает текущую дату, то действующий статус договора меняется сразу. Однако возможна ситуация, когда меняется текущий статус и остается задание на изменение статуса договора в дальнейшем. Такие задания выполняет стандартная задача планировщика Установка статусов договоров.
При смене статуса супердоговора изменяются статусы его зависимых субдоговоров. Включить смену статусов независимых договоров можно опцией конфигурации сервера .
Статусы экземпляра модуля, в которых сервис доступен, указываются в переменной конфигурации модуля
. Коды статусов указываются через запятую. Например.contract.status.active.codes=0
Статусы, в которых сервис считается приостановленным указываются в переменной
. Например.contract.status.suspend.codes=3,4
Для модуля NPay данная переменная означает статусы, при которых не снимается абонплата. Для модулей с потреблением услуг влияет, например, на узлы-диапазоны в тарифных планах. Значение в узлах уменьшается в зависимости от времени, которое сервис был пристановлен. Более подробно это описано в документации модулей.
Для договоров в режиме
статусы договора устанавливаются только администратором, перевод статуса договора в любой из неактивных делает модули заблокированными. Поступление денег на счет ситуацию не меняет. При нормальной работе дебетовый договор постоянно находится в активных статусах, сервисы при этом блокируются модулями, если баланс опускается меньше лимита и автоматически разблокируются после поступления денег на счет.Для кредитовых договоров статус тесно завязан с системой работы с кредитовыми должниками. Он может изменятся в результате оплаты договора. Активный статус для кредитовых договоров задаётся переменной конфигурации сервера
. Например.credit.contract.active.status=0
В активном статусе работает аналогичная дебетовым договорам аварийная блокировка/разблокировка сервисов в модулях по балансу и лимиту договора.
Основная рабочая область оператора для отключения кредитовых должников вкладка
. Перед началом работы необходимо сделать срез балансов, нажав соответствующую кнопку. Все описанные далее алгоритмы применимы только к кредитовым договорам.Монитор выводит информацию по состоянию кредитовых договоров, их статусах и сальдо (входящий остаток на начало месяца минус платежи за месяц). Таблицу с результатами выборки договоров можно выгрузить в csv формате.
Все фильтры соединяются по условию
. Возможна фильтрация по:1. группе договора + исключение определенных групп договоров; |
2. минимальному объему наработки по указанным услугам за прошлый и текущий месяц; |
3. режиму договора: кредит/дебет; |
4. статусу договора; |
5. периоду, который договор был в данном состоянии в днях или месяцах; |
6. сумме сальдо (указывается диапазон от и до); |
7. соотношению текущего баланса или баланса на начало месяца с лимитом; |
8. размеру превышения модуля отрицательного сальдо начала месяца над наработкой какого-то количества предыдущих месяцев. |
Изменения статусов договоров производится идентично смене статуса одного договора (см. выше), необходимые договоры выбираются в таблице с использованием клавиш Ctrl и Shift. Двойной клик по строке таблицы открывает договор.
В определенный момент времени оператор выбирает все договоры с отрицательным сальдо, находящиеся в активном статусе и, выбрав строки таблицы, переводит их в отключенное состояние. Отключенных статусов может быть несколько, их состав и назначение настраивается администратором биллинга.
В случае, если отключенный статус попадает в перечень из переменной конфигурации
, договор может быть возвращён в активный статус по приходу платежа, если сальдо станет положительным.По звонку отключенного клиента с обещанием оплаты оператор может перевести его в активный статус на несколько дней. При этом период активного статуса указывается с датой открытия и закрытия. Если до окончания периода клиент не оплатит, отключенный статус станет действующим и клиента заблокирует. В случае оплаты вновь установленный активный статус перекроет будущий отключенный. При этом перекрытие производится только для статусов, которые указаны в переменной конфигурации
.При неоплате клиента в течении какого-то времени возможна его выборка монитором статуса и перевод в другой отключенный статус, из которого уже не выводит платёж.
Если по каким-либо причинам такое поведение статусов нежелательно, то можно отключить автоматическую активацию договора при изменении сальдо на положительное. Для этого в концигурации сервера необходимо указать флаг
. Отсутствие этой записи или установка флага в 0 оставит поведение по умолчанию.Если же возникла необходимость отключить данное поведение не для всех договоров, а только для каких-либо групп договоров, то необходимо установить флаг.
do.not.open.groups.on.payment=X,Y,Z,...
Где X, Y, и Z - это номера групп договоров, для которых стандартное поведение нежелательно.
Имеется возможность задать свою любую логику перетирания статусов при установке. Стандартная логика заключается в полном перекрытии лежащих уже в договоре отрезков статуса. Иногда требуется при разных условиях выполнять разные действия. Для этого предназначено событие BGBS
. В скрипте (обработчике этого события) можно отслеживать откуда выполняется попытка установить статус (сервер, клиент, web) и полностью изменить алгоритм.На WiKi-странице "Изменение стандартной логики перетирания статусов" приведены дополнительные подробности и прилагается полный рабочий скрипт, представляющий собой в точности реализованную стандартную логику. Его также можно использовать для изучения алгоритма. Там же расположено описание алгоритма установки статусов и примеры скриптов.
Возможность включается установкой в конфигурации сервера флага
# Использовать ли событие Задание логики установки/перетирания статусов (иначе используется стандартное поведение) use.event.set.status.logic=1