forum.bitel.ru http://forum.bitel.ru/ |
|
API updatePhoneParam не работает http://forum.bitel.ru/viewtopic.php?f=19&t=10472 |
Страница 1 из 1 |
Автор: | borin [ 28 апр 2015, 18:50 ] |
Заголовок сообщения: | API updatePhoneParam не работает |
Добрый день! Пишу перенос договоров в 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); |
Автор: | stark [ 28 апр 2015, 19:05 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
Там нужно сформировать отформатированную строку: Код: phoneValue.setPhones( PhoneUtils.getPhones( Setup.getSetup(), PARAM_PHONE, value ) );
|
Автор: | borin [ 29 апр 2015, 10:33 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
Код который вы написали кривой. getPhones принимает два параметра, а тут мы передаем 3 параметра. И вообще getPhones предназначена для преобразования PhoneParamValue в строку. А мне нужно к договору добавить телефоны. И код который я написал вышел, добавляет телефоны в договор, но они не отображаются, пока через клиента не пересохранить поле. Код: public static final String getPhones(PhoneParamValue value, String formats)
|
Автор: | Phricker [ 29 апр 2015, 10:42 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
borin писал(а): Код который вы написали кривой. Не только этот. Не только ![]() |
Автор: | borin [ 29 апр 2015, 11:22 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
Разобрался! В 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); |
Автор: | borin [ 29 апр 2015, 11:47 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
И еще в конфигурации есть параметр phones.formats=, так вот если его изменить, отформатированы будут лишь вновь добавленные телефоны. Вот такая вот пичаль ![]() |
Автор: | stark [ 29 апр 2015, 11:49 ] |
Заголовок сообщения: | Re: API updatePhoneParam не работает |
borin писал(а): Код который вы написали кривой. getPhones принимает два параметра, а тут мы передаем 3 параметра. И вообще getPhones предназначена для преобразования PhoneParamValue в строку. А мне нужно к договору добавить телефоны. И код который я написал вышел, добавляет телефоны в договор, но они не отображаются, пока через клиента не пересохранить поле. Код: public static final String getPhones(PhoneParamValue value, String formats) Вы же версию свою не сообщили . В той версии, откуда я это брал - было так. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |