Собственно вопрос, а как же заставить тарифную опцию работать как мне хочется?
Мне необходимо автоматически продлять тарифную опцию следующим днем, тоесть она сегодня отработала, а завтра должна такая же навесится скриптом, есть 2 способа это сделать (я нашел только 2), но оба у меня не заработали. Итак, первый
Код:
ServerContext context = new ServerContext( setup1, connectionSet2, -1, 0 );
TariffOptionService service = context.newService(TariffOptionService.class, -1);
java.util.List<ContractTariffOption> ctol = service.contractTariffOptionHistory(cid, calendar.getTime(), false);
if (ctol.size() > 0)
{
Calendar TimeFrom = TimeUtils.convertDateToCalendar(ctol.get(ctol.size() - 1).getTimeFrom());
TimeFrom.add(Calendar.DAY_OF_MONTH, +1);
Calendar TimeTo = TimeUtils.convertDateToCalendar(ctol.get(ctol.size() - 1).getTimeTo());
TimeTo.add(Calendar.DAY_OF_MONTH, +1);
ContractTariffOptionDao ctod = new ContractTariffOptionDao(con);
ContractTariffOption cto = new ContractTariffOption();
cto.setContractId(cid);
cto.setActivatedTime(ctol.get(ctol.size() - 1).getActivatedTime());
cto.setDeactivatedTime(ctol.get(ctol.size() - 1).getDeactivatedTime());
cto.setTimeFrom(TimeFrom.getTime());
cto.setTimeTo(TimeTo.getTime());
cto.setActivatedMode(ctol.get(ctol.size() - 1).getActivatedMode());
cto.setOptionId(ctol.get(ctol.size() - 1).getOptionId());
ctod.update(cto);
EventProcessor.getInstance().publishAfterCommit(new ContractTariffOptionChangedEvent(cid, 0, 0, cto));
}
Ищем в хистри последнюю дату активации и добавляем новую опцию, все ок, опция добавляется и работает как нужно, но при этом модуль inet ничего про эту опцию не знает и работает как будто ее там и нету. Но я не унывал, сделал тарифную опцию через сервис
Код:
service.contractTariffOptionActivate(cid, ctol.get(ctol.size() - 1).getOptionId(), ctol.get(ctol.size() - 1).getActivatedMode(), false);
тут возникла другая проблема, опция добавляется только в момент отработки скрипта, но все остальное отрабатывает верно и модуль inet видит эту опцию.
ps Пока писал, пришла в голову мысль, что стоит просто бегать скриптом каждый час и если даты старой и новой опции совпадают с разницей в 1 день то все заработает. Да, костыль это, и что то мне подсказывает что должно быть другое решение?
_________________
Код:
Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegramСтиль программирования - пьяный мастерстер
Разработка мобильных приложений