BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 16 июн 2025, 23:01

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: API updatePhoneParam не работает
СообщениеДобавлено: 28 апр 2015, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Добрый день!

Пишу перенос договоров в BGBilling, пытаюсь обновить параметр типа "Телефон", но тут ожидает засада, метод отрабатывает. Захожу в договор смотрю а поле пустое, если открыть на изменение то телефон там есть и если нажать сохранить, то он покажется в договоре.
Перезапускать биллинг пробовал.
Код:
ContractParameterManager cpm = new ContractParameterManager(connection);
Contract bgContract = cm.createFromPattern(PATTERN_ID, atirraContract.getAccountNo(), atirraContract.getAddedTo(), genPassword(8));
PhoneParamValue phoneValue = new PhoneParamValue();
PhoneParamItem phoneParamItem = new PhoneParamItem();
phoneParamItem.setPhone("791231231212");
phoneValue.addPhoneItem(0, phoneParamItem);
cpm.updatePhoneParam(bgContract.getId(), PARAM_PHONE, phoneValue, USER_ID);

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 28 апр 2015, 19:05 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Там нужно сформировать отформатированную строку:
Код:
phoneValue.setPhones( PhoneUtils.getPhones( Setup.getSetup(), PARAM_PHONE, value ) );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 29 апр 2015, 10:33 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Код который вы написали кривой. getPhones принимает два параметра, а тут мы передаем 3 параметра. И вообще getPhones предназначена для преобразования PhoneParamValue в строку.
А мне нужно к договору добавить телефоны. И код который я написал вышел, добавляет телефоны в договор, но они не отображаются, пока через клиента не пересохранить поле.
Код:
public static final String getPhones(PhoneParamValue value, String formats)

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 29 апр 2015, 10:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
borin писал(а):
Код который вы написали кривой.

Не только этот. Не только :o

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 29 апр 2015, 11:22 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Разобрался!

В updatePhoneParam делается два INSERT в contract_parameter_type_phone_item и contract_parameter_type_phone_item, первая табличка видимо отвечает за отображение в клиенте, вторая хранит телефоны.
Так вот оказывается для успешного добавления телефона Сформировать phoneParamItem потом добавить его в PhoneParamValue, а затем из PhoneParamValue сформировать строку с помощью PhoneUtils и присвоить PhoneParamValue.

Почему бы не сформировать эту строку в updatePhoneParam остается загадкой :)
Ноо ладно спасибо за подсказку, куда копать )

Код:
PhoneParamValue phoneValue = new PhoneParamValue();
PhoneParamItem phoneParamItem = new PhoneParamItem();
phoneParamItem.setPhone("79121231212");
phoneParamItem.setFormat("");
phoneParamItem.setComment("");
phoneValue.addPhoneItem(phoneParamItem);
phoneValue.setPhones(PhoneUtils.getPhones(phoneValue, ""));
cpm.updatePhoneParam(bgContract.getId(), PARAM_PHONE, phoneValue, USER_ID);

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 29 апр 2015, 11:47 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
И еще в конфигурации есть параметр phones.formats=, так вот если его изменить, отформатированы будут лишь вновь добавленные телефоны. Вот такая вот пичаль :(

_________________
Код:
    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: API updatePhoneParam не работает
СообщениеДобавлено: 29 апр 2015, 11:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
borin писал(а):
Код который вы написали кривой. getPhones принимает два параметра, а тут мы передаем 3 параметра. И вообще getPhones предназначена для преобразования PhoneParamValue в строку.
А мне нужно к договору добавить телефоны. И код который я написал вышел, добавляет телефоны в договор, но они не отображаются, пока через клиента не пересохранить поле.
Код:
public static final String getPhones(PhoneParamValue value, String formats)


Вы же версию свою не сообщили . В той версии, откуда я это брал - было так.


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

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


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

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


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

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