BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 20:02

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Опции на договоре
СообщениеДобавлено: 21 мар 2016, 20:13 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
Добрый день.

В доке https://bgbilling.ru/v6.2/javadoc/ru/bi ... tract.html
Цитата:
Bean договора. По возможности старайтесь используйте этот bean, а не тот что в серверной части. Почти идентичен старому бину, только не содержит тарифы и опции.

Старый бин - это https://bgbilling.ru/v6.2/javadoc/bitel ... tract.html
Вопроса 2:

1) Где брать опции в "новом бине"?

2) В "старом бине":
bitel.billing.server.contract.bean.Contract ct = cm.getContractByTitle(contract);
ContractTariffOptionList ctol = ct.getTariffOptions();
ctol == null, хотя тарифная опция на договоре висит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 11:07 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
1) https://bgbilling.ru/v6.2/javadoc/ru/bi ... rvice.html
2) Тут не от бина зависит, а от ContractManager, который, скорее всего, просто не грузит опции


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 11:40 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
почти никакой менеджер в api не грузит связанные сущности

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 12:56 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, поле в старом бине есть, но подставлялись данные в это поле точно не в ContractManager, а где-нибудь в тарификаторе.
Как и поля, связанные с тарифом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 14:07 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
А подскажите способы через API
1) Получения всех опций на договоре (как в табличке contract_tariff_option)
2) Получение всех доступных для договора опций (ну, т.е. с учетом текущего ТП, группы договора, зависимостей и видимости)

Через sql не очень хочется вытаскивать данные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 18:51 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
Tau писал(а):
А подскажите способы через API
1) Получения всех опций на договоре (как в табличке contract_tariff_option)

Сделал так:
Код:
ContractTariffOptionDao ctod = new ContractTariffOptionDao(context.getConnection());
rc = ctod.list(ct.getId(), new Date());


Tau писал(а):
2) Получение всех доступных для договора опций (ну, т.е. с учетом текущего ТП, группы договора, зависимостей и видимости)

Сделал вот так:
Код:
TariffOptionServiceImpl tosi = new TariffOptionServiceImpl();
List<ContractTariffOption> lcto = getTariffOptionsFromContract(contract);
rc = tosi.tariffOptionListAvailable(ct.getId(), new Date(), lcto, true, false);

Но вываливается ошибка:

Код:
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at ru.bitel.bgbilling.kernel.tariff.option.server.service.TariffOptionServiceImpl.tariffOptionListAvailable(TariffOptionServiceImpl.java:101)
        at api.ru.qweasd.bgbilling.service.impl.MyImpl.getTariffOptionsForContract(MyImpl.java:372)
        ... 39 more


ЧЯДНТ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 19:26 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
у вас какая версия ? Объект lcto случайно не null ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 19:45 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
у вас какая версия ? Объект lcto случайно не null ?

Код:
  Сервер: вер. 6.1.1113 / 29.12.2015 15:26:30
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_80-ea

Ну, вообще, лист пустой, но не null.
Вот так если объявить
Код:
lcto = new ArrayList<ContractTariffOption>();

та же ошибка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 20:21 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
а как вы web-сервис получили ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 22 мар 2016, 21:02 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
а как вы web-сервис получили ?

А поконкретней можно? Я учитель рисования по образованию, слабо ориентируюсь в терминологии...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 23 мар 2016, 08:43 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
...
ServerContext context = ServerContext.get();
TariffOptionService tariffOptionService = context.getService(TariffOptionService.class, 0);

И дальше уже работаешь с tariffOptionService, в данном случае нужен метод contractTariffOptionList
Этот подход аналогично применим и для использования других сервисов, пригодится на будущее, второй параметр это moduleId, для ядра это 0, для конкретных модулей будет свой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 23 мар 2016, 13:14 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Tau писал(а):
stark писал(а):
а как вы web-сервис получили ?

А поконкретней можно? Я учитель рисования по образованию, слабо ориентируюсь в терминологии...


А, вижу, не сразу заметил. Вы его неправильно создали.
вот пример


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 23 мар 2016, 13:15 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
barguzin2 писал(а):
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
...
ServerContext context = ServerContext.get();
TariffOptionService tariffOptionService = context.getService(TariffOptionService.class, 0);

И дальше уже работаешь с tariffOptionService, в данном случае нужен метод contractTariffOptionList
Этот подход аналогично применим и для использования других сервисов, пригодится на будущее, второй параметр это moduleId, для ядра это 0, для конкретных модулей будет свой.


Спасибо огроменное!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опции на договоре
СообщениеДобавлено: 23 мар 2016, 13:16 
Не в сети

Зарегистрирован: 03 мар 2008, 23:08
Сообщения: 109
Карма: 0
stark писал(а):
А, вижу, не сразу заметил. Вы его неправильно создали.

Ага, barguzin2 уже научил как правильно. Спасибо!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.135s | 46 Queries | GZIP : On ]