forum.bitel.ru
http://forum.bitel.ru/

Инициализация интерфейса дилера
http://forum.bitel.ru/viewtopic.php?f=8&t=2289
Страница 1 из 1

Автор:  jack7 [ 06 май 2009, 17:02 ]
Заголовок сообщения:  Инициализация интерфейса дилера

часть конфига модуля карт
Цитата:
###
### Удаленные платежи
###
#(режим поиска - по номеру договора)
findmode.1.class=FindKernel
findmode.1.mode=contract
findmode.1.title=Номер договора
dealer.allow.contract.1.regexp=\d+
#(режим поиска - по адресу)
findmode.2.class=FindKernel
findmode.2.mode=address
findmode.2.title=Адрес
findmode.2.pid=38
#(режим поиска - по ФИО)
findmode.3.class=FindKernel
findmode.3.mode=text_param
findmode.3.title=IP-адрес
findmode.3.pid=45


запрос
Код:
https://ip:8443/bgbilling/idealer?mid=11&action=Init&find_modes=


ответ
Код:

<data status="ok">
<find_modes/>
</data>


запрос
Код:
https://ip:8443/bgbilling/idealer?mid=11&action=Init&find_modes=&address_list=


ответ
Код:
<data status="ok">
<find_modes/>

<address_list>
+
<cities>
<item id="0" title="----------"/>
<item id="1" title="г. Город"/>
</cities>
+
<streets>
<item id="0" title="----------"/>
<item id="31" title="б-р. Луначарского"/>
<item id="81" title="Березовая"/>
<item id="8" title="Восточная"/>
</streets>
</address_list>
</data>


Проблема в том что не выводтся режимы поиска и соответственно не работает поиск по номеру договора, в чем может быть дело?

ps
надеюсь номер договора не является cid из базы

Автор:  Amir [ 06 май 2009, 17:46 ]
Заголовок сообщения: 

Может быть режимы поиска у дилера в менеджере дилеров не стоят, или http сессия таже, что до того как изменили типы поиска?

cid мы обычно называем кодом договора.

Автор:  jack7 [ 07 май 2009, 12:47 ]
Заголовок сообщения: 

режимы поиска установил
после этого появились режимы
Код:

<data status="ok">

<find_modes>

<mode class="FindKernel" id="1" name="kernel_contract" title="Номер договора">
<param name="contract_title"/>
</mode>

<mode class="FindKernel" id="2" name="kernel_address" title="Адрес">
<param name="address_street"/>
<param name="address_house"/>
<param name="address_frac"/>
<param name="address_flat"/>
<param name="address_room"/>
</mode>

<mode class="FindKernel" id="3" name="kernel_text_param" title="IP-адрес">
<param name="param"/>
</mode>
</find_modes>
</data>



запрос
Код:
https://ip:8443/bgbilling/idealer?mid=11&action=ContractFind&contract_title_1=65171



все равно ошибка номер 8
Код:
<data error_code="8" status="error">Договор не найден</data>


выборка из базы
Код:
select id,date1,title from contract where title='65171'


ответ
Код:
"id","date1","title"
39,"2009-01-11","65171"

Автор:  Amir [ 07 май 2009, 13:18 ]
Заголовок сообщения: 

А версия какая?

Автор:  jack7 [ 07 май 2009, 13:28 ]
Заголовок сообщения: 

Код:
   card вер. 4.5 сборка 90 от 14.04.2009 12:47:18

Автор:  jack7 [ 08 май 2009, 11:11 ]
Заголовок сообщения: 

если напрямую (по ссылке через браузер) провести платеж по cid, то он проходит

запрос
Код:
https://ip:8443/bgbilling/idealer?mid=11&&action=PaymentAdd&cid=39&summ=10&trans=08052009-1103&comment=test


ответ
Код:
<data status="ok">

<payments>
<payment cid="39" comment="Оплата по дог. 65171 через Дилер ()" contract="65171" contract_comment="Иванов Иван Иванович" date="08.05.2009 11.06.22" id="2" status="1" summ="10.00" trans="08052009-1106"/>
</payments>
<contract balance="14.00" comment="Иванов Иван Иванович" firm_id="" id="39" title="65171"/>
</data>


но так как web-интерфейс дилера сначал делает поиск, то платеж провести через него не получается

Автор:  jack7 [ 12 май 2009, 09:58 ]
Заголовок сообщения: 

up

Автор:  restart [ 13 май 2009, 14:15 ]
Заголовок сообщения: 

Может быть Вы установили фильтры поиска (Модули-Карточки-Менеджер дилеров), которые не удовлетворяют искомому договору? Если фильтры поиска установлены, то ищет только по ним, если не установлены - ищет все договора.

Автор:  jack7 [ 13 май 2009, 22:07 ]
Заголовок сообщения: 

фильтры у меня пустые - дело оказалось в другом

Код:
dealer.allow.contract.1.regexp=\d+


этот параметр подразумевает что договор представляет из себя набор целых чисел, от одного и более - у меня договор 5 чисел (телефон)

в любом случае после удаления этого параметра их конфига, все заработало
всем спасибо

Автор:  restart [ 14 май 2009, 12:42 ]
Заголовок сообщения: 

jack7 писал(а):
Код:
dealer.allow.contract.1.regexp=\d+


Так это ж как раз и относится к фильтрам?

У Вас регесп был не совсем корректный. Там система поиска так работает, что регексп должен быть сгруппирован скобочками, т.е. правильно было бы
Код:
dealer.allow.contract.1.regexp=(\d+)


и через символ "|" можно указывать иные договора. Т.е. правильно делать регексп вида
Код:
dealer.allow.contract.1.regexp=(выражение1)|(выражение2)| ... |(выражениеN)


Поэтому у Вас и не находил договора. Попробуйте вариант со скобочками.

Автор:  jack7 [ 14 май 2009, 13:41 ]
Заголовок сообщения: 

конфиг
Код:
#(режим поиска - по номеру договора)
findmode.1.class=FindKernel
findmode.1.mode=contract
findmode.1.title=Номер договора
dealer.allow.contract.1.regexp=(\d+)


ответ
Цитата:
<data error_code="8" status="error">Договор не найден</data>


также пробовал
(\w+)
(\S+)

результат отрицательный

после комментирования строки с dealer.allow.contract.1.regexp,
поиск проходит удачно

Автор:  restart [ 14 май 2009, 15:23 ]
Заголовок сообщения: 

Очень странно, кстати, потому что эта строчка относится именно к фильтрам. Т.е. фактически был определен фильтр с таким regexp, и его надо явно выбирать в настройках самого дилера, если есть желание его использовать. Я так понимаю, у Вас версия биллинга 4.5?
В 4.6 дилерский интерфейс и сама система поиска была переработана, там точно все ищется корректно. В 4.5 же само API поиска было иное, возможно с этим связано.

Автор:  RiZ [ 26 июн 2009, 17:16 ]
Заголовок сообщения:  Re: Инициализация интерфейса дилера

Добрый день!

Дано: Клиентская машина Windows 2003 server, IE, Mozilla

Периодически наблюдаются подобные проблемы.


jack7 писал(а):
Код:
https://ip:8443/bgbilling/idealer?mid=11&action=Init&find_modes=


ответ
Код:

<data status="ok">
<find_modes/>
</data>


запрос
Код:
https://ip:8443/bgbilling/idealer?mid=11&action=Init&find_modes=&address_list=


ответ
Код:
<data status="ok">
<find_modes/>

<address_list>
+
<cities>
<item id="0" title="----------"/>
<item id="1" title="г. Город"/>
</cities>
+
<streets>
<item id="0" title="----------"/>
<item id="31" title="б-р. Луначарского"/>
<item id="81" title="Березовая"/>
<item id="8" title="Восточная"/>
</streets>
</address_list>
</data>


Проблема в том что не выводтся режимы поиска и соответственно не работает поиск по номеру договора, в чем может быть дело?

ps
надеюсь номер договора не является cid из базы


А при поиске выходит ошибка

Код:
   <?xml version="1.0" encoding="windows-1251" ?>
  <data error_code="8" status="error">Договор не найден</data>


При том на каких то машинах все проходит на О.К., на каких то вообще не работает, на каких то работает через раз, при том мазилла работает стабильнее осла.
Тоже самое в web-кабинете дилера: во вкладке поиска платежа поле ввода договора то отображается, то нет.
Как это вылечить ?

Автор:  Администратор [ 01 июл 2009, 12:57 ]
Заголовок сообщения: 

Цитата:
При том на каких то машинах все проходит на О.К., на каких то вообще не работает, на каких то работает через раз, при том мазилла работает стабильнее осла.
Тоже самое в web-кабинете дилера: во вкладке поиска платежа поле ввода договора то отображается, то нет.
Как это вылечить ?

Нужно сначала как-то воспроизвести. Если бы вы нашли машину, где ошибка более-менее регулярно всплывает и дали нам доступ, было бы проще..

Автор:  Kazrarr [ 27 авг 2009, 18:53 ]
Заголовок сообщения: 

restart писал(а):
jack7 писал(а):
Код:
dealer.allow.contract.1.regexp=\d+


Так это ж как раз и относится к фильтрам?

У Вас регесп был не совсем корректный. Там система поиска так работает, что регексп должен быть сгруппирован скобочками, т.е. правильно было бы
Код:
dealer.allow.contract.1.regexp=(\d+)


и через символ "|" можно указывать иные договора. Т.е. правильно делать регексп вида
Код:
dealer.allow.contract.1.regexp=(выражение1)|(выражение2)| ... |(выражениеN)


Поэтому у Вас и не находил договора. Попробуйте вариант со скобочками.


у меня это выглядило так:
dealer.allow.contract.1.regexp=\d\d\d\d/\d\d
не находил исправил:
dealer.allow.contract.1.regexp=(\d\d\d\d/\d\d)
все равно не находит, закомментил и сразу же нашел.. BGB 4.6

Автор:  Администратор [ 28 авг 2009, 10:46 ]
Заголовок сообщения: 

http://www.bgbilling.ru/v4.6/doc/ch06s10s01.html
Цитата:
При установки regexp фильтра используется MySQL REGEXP.

http://dev.mysql.com/doc/refman/5.0/en/regexp.html
\d -> [0-9]

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/