forum.bitel.ru http://forum.bitel.ru/ |
|
как получить список активных на дату услуг(абонплат)договора http://forum.bitel.ru/viewtopic.php?f=22&t=12168 |
Страница 1 из 1 |
Автор: | Galkov [ 16 дек 2016, 18:55 ] |
Заголовок сообщения: | как получить список активных на дату услуг(абонплат)договора |
код типа: Код: public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 ) { Connection con = connectionSet3.getConnection(); int cid = event1.getContractId(); ContractServiceManager csm = new ContractServiceManager(con); Set csmSet = csm.getContractServiceSet(cid, new Date()); Iterator iterator = csmSet.iterator(); while (iterator.hasNext()){ logger.info("Абонплата:"+iterator.next()); } } Возвращает какую-то дичь, которая ни числом ни качеством не соответствует тому, что прописано в договоре во вкладке договор=>модули=> абонентская плата=> <список услуг(абонплат)> Собственно поэтому вопрос - Как получить список активных на дату услуг(абонплат)договора? К сожалению и в таблице npay_service_object_[mid] в этот момент (событие изменения абонплаты, вызванное добавлением услуги/абонплаты) почему-то нет добавленной абонплаты, хотя событие - асинхронное.. |
Автор: | Phricker [ 16 дек 2016, 18:58 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
ЕМНИМП оно все тут https://bgbilling.ru/v7.0/javadoc/bitel ... nager.html |
Автор: | Phricker [ 16 дек 2016, 19:03 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
И кстати то событие о котором вы упомянули так же ведет к ссылке которой я дал https://bgbilling.ru/v7.0/javadoc/ru/bi ... Event.html В нем есть ServiceObject https://bgbilling.ru/v7.0/javadoc/bitel ... bject.html Который собственно в том же пакете что и вышеприведенная ссылка |
Автор: | Galkov [ 16 дек 2016, 19:08 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
Благодарю! |
Автор: | Galkov [ 16 дек 2016, 19:42 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
запускаю скрипт(по событию, добавлением абонплаты с id 359). Код: ServiceObjectManager som = new ServiceObjectManager(con, Megogo_MID); List Lsom1 = som.getServiceObjectList(cid, new Date()); // <ServiceObject> ServiceObject co = new ServiceObject(); for (int j = 0; j<Lsom1.size(); j++) { co = (ServiceObject) Lsom1.get(j); logger.info(co.getServiceId()+" VOT "+co.getServiceTitle()); } Код: 17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Megogo_service_add - 82 VOT Ежемесячная абонентская плата, Интернет 12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - 84 VOT Ежемесячная абонентская плата, Пакет 2в1 12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - 85 VOT Ежемесячная абонентская плата, Пакет 3в1 ----------- вывод из цикла тут заканчиается. ниже - вывод из таблицы(другим способом) только нужной услуги, которую мы отлавливаем... по идее выше уже должна была быть запись про услугу 359 12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - SQL: select sid from npay_service_object_4 where (cid=15578) and ((date1 is NULL) or (date1<NOW())) and ((date2 is NULL) or (date2>NOW())) and (sid IN (359,360,361,362)) limit 1 12-16/17:31:31 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.sql.SQLException: Illegal operation on empty result set. sql возвращает пустоту и скрипт вываливается(нет сервиса в базе). выполняется это в момент события изменения абонплаты. логи показывают, что она так и не учтена(выведено 3шт, а добавлена была оператором 4я с id 359) ... после чтения логов, ничего более не делая запустил sql запрос(который тут выдал пустой результат), - получил код добавленной услуги, это 359.... повторный запуск скрипта (по update абонплаты) выводит 12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 82 VOT Ежемесячная абонентская плата, Интернет 12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 84 VOT Ежемесячная абонентская плата, Пакет 2в1 12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 85 VOT Ежемесячная абонентская плата, Пакет 3в1 12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 359 VOT Пакет 1 --------------------------- похоже данные в указанные элементы среды попадают после завершения обработки события и в процессе обработки события так их не вынуть. |
Автор: | stark [ 26 дек 2016, 14:16 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
В какой версии ? Для 7.0 исправлено и будет в следующем обновлении. |
Автор: | Galkov [ 09 янв 2017, 14:24 ] |
Заголовок сообщения: | Re: как получить список активных на дату услуг(абонплат)дого |
stark писал(а): В какой версии ? Для 7.0 исправлено и будет в следующем обновлении. у меня 6.0... но намёк понятен ![]() ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |