Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
// создаем объект 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) задача планировщика

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