Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Если в конфиге сервера есть параметр client.gui.contract.tree.order его требуется удалить (закомментировать) или в него добавить period

client.gui.contract.tree.order=parameters objects hierarchy status limit period mode face balance tariff modules groups web tariffGroup script addAction memo

если параметр был или его правили, требуется перезапустить клиента биллинга

в дереве договора появится пункт Учетный период

при создании, редактирование, удаление учетного периода генерируются события

  • Создание/редактирование учетного периода (ru.bitel.bgbilling.kernel.contract.period.server.event.ContractPeriodUpdateEvent)
  • Удаление учетного периода (ru.bitel.bgbilling.kernel.contract.period.server.event.ContractPeriodDeleteEvent

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

  • Окончание учетного периода (ru.bitel.bgbilling.kernel.contract.period.server.event.ContractPeriodCloseEvent)

возможно программное создание учетного периода

// создаем объект ContractPeriod
ContractPeriod contractPeriod = new ContractPeriod();
// указываем ID договора
contractPeriod.setContractId( 111 );
// создаем объект с периодом действия учетного периода
PeriodWithTime period = new PeriodWithTime();
// начало периода 2019-09-01 01:02:03
period.setLocalDateTimeFrom( java.time.LocalDateTime.of( 2019, 9, 1, 1, 2, 3 ) );
// окончание периода 2019-09-10 04:05:59
period.setLocalDateTimeTo( java.time.LocalDateTime.of( 2019, 9, 10, 4, 5, 59 ) );
// устанавливаем период
contractPeriod.setPeriod( period );
// устанавливаем необходимость сгенерировать событие окончания учетного периода ( true - генерировать, false - не генерировать )
contractPeriod.setGenerateCloseEvent( true );
// сохраняем в БД
ServerContext.get( ServerContext.class ).getService( ContractPeriodServiceImpl.class, 0 ).updateContractPeriod( contractPeriod );
если необходимо генерирование события окончания периода, для этого есть два режима

1) задача планировщика


она при запуске будет выбирать все учетные периоды у которых
- установлен флаг необходимости генерации события окончания периода
- событие не было отправлено ранее
- дата окончания периода ранее now + period, где now - текущее время, period = 900 (по умолчанию) сек. (значение period может быть задано в параметрах запуска задачи планировщика в параметре period=900)
2) с помощью встроенной в биллинг подсистемы JobSheduler. Для включения этого режима в конфиге сервера необходимо прописать параметр contract.period.job.close.event.enable=true


  • Нет меток