BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ] 
Автор Сообщение
СообщениеДобавлено: 22 авг 2011, 16:34 
Подскажите где можно посмотреть различные параметры которые передаются в Web.
Например из форума понятно что параметры договора можно посмотреть через
/data/contract_data/parameters/parameter[@pid=
А как посмотреть синтаксис возможных параметров?
Например интересует как получить через WEB ID группы договора.


Вернуться к началу
  
 
СообщениеДобавлено: 22 авг 2011, 16:38 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
вопрос непонятен. это не "синтаксис параметров", это просто xpath, который вытаскивает данные из заведомо определённой к этому моменту xml. xml можно поглядеть указав контенттипе=xml


upd. т.е. добавив в адресную строку &contentType=xml

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2011, 16:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
xml примерно такая:

Цитата:
<data action="ChangeTariff" balance_mode="1" comment="тестовый договор"
contract="dimon" fc="0" id="352715" mid="contract" module="contract"
notificationsCount="0" step="0" title="dimon" to_tariff="-1"
to_tariff_title="" year="2011">
....
<contract_data>
<contract balance_rest="444.19" cid="352715"
comment="тестовый договор" date1="04.02.2009" date2=""
fc="0" gr="536870912" limit="-50.00" mode="1"
param_group="0" pswd="123456" status="4"
status_date="01.09.2007" time="22.08.2011 16:39" title="dimon">
....


вон вам и маска групп

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2011, 16:45 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
очевидно, получить её можно запросом
Код:
/data/contract_data/contract/@gr
. что такое id группы договора (там нет id, это номер что-ли?) и куда и в каком виде её нужно получить - тут уже непонятно...

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2011, 17:10 
Вот например режим договора можно получить "/data=/@balance_mode=1"
А группу получается так - "/data/contract_data/contract/@gr=
Я имел ввиду ID группы это код группы - в справочниках->другие->Договора-группы.
Хочу в личном кабинете сделать проверку на группу, если договор принадлежит определенной группе тогда показать ему Action.
Вроде такого
<xsl:if test="/data/contract_data/contract/@gr=1">


Вернуться к началу
  
 
СообщениеДобавлено: 22 авг 2011, 17:20 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
так не получится, потому что там не номер, а маска! то есть если будет больше одной группы, то уже будет число непонятное для сравнения. надо пользоваться битовыми операциями. надо сравнивать по маске. в xslt нет битовых фишек, но есть разные трюки. гуглится. если не найдёте - в личке спросите, подскажу

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 авг 2011, 06:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Рабочий пример:
Код:
                                                        <!-- Проверяем наличие групп 22,26,27 -->
                                                        <xsl:if test="(floor(/data/contract_data/contract/@gr div 4194304) mod 2 = 1) or (floor(/data/contract_data/contract/@gr div 67108864) mod 2 = 1) or (floor(/data/contract_data/contract/@gr div 134217728) mod 2 = 1)">
                                                            <!-- ... -->
                                                        </xsl:if>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 авг 2011, 10:30 
Спасибо за пример, это то что нужно.


Вернуться к началу
  
 
СообщениеДобавлено: 06 ноя 2012, 10:14 
Не пойму почему так происходит пытаюсь сделать чтобы меню отображалось только если у договора присутствует код договора 0.
Прописываю floor(/data/contract_data/contract/@gr div 1) mod 2 = 1) но в итоге если у договора еще присутствует любой код договора от 53 до 62 которые имеются в биллинге то меню не отображается. Все договора которые меньше 53 и у которых есть код договора 0 - все работает.
Почему так? Никто с таким не сталкивался


Вернуться к началу
  
 
СообщениеДобавлено: 06 ноя 2012, 11:16 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 ноя 2012, 11:58 
Код:
xsl:if test="floor(/data/contract_data/contract/@gr div 1) mod 2 = 1"><li><a href="?action=Parameters&amp;mid=contract&amp;contractId={$CONTRACT_ID}">Test</a></li></xsl:if>
.
В общем как я понимаю все договора которые выше 53 дают число начинающиеся от 9 и с 16 знаками. А данный код не можем применить вышеуказанную математику поэтому не отрабатывает если на договоре имеется группа с кодом выше 53


Вернуться к началу
  
 
СообщениеДобавлено: 06 ноя 2012, 12:44 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Код:
остаток от деления (группа деленная на один) на 2 = 1

м?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 11:52 
Так что тупик, получается. Никак не вытащить номер группы?


Вернуться к началу
  
 
СообщениеДобавлено: 12 ноя 2012, 13:25 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2012, 13:38 
Да это понятно.
Но когда у клиента стоит 53,54,55 группа как узнать что у него есть именно 53 что соответствует битовой маске 9007199254740992
Код:
xsl:if test="floor(/data/contract_data/contract/@gr div 9007199254740992) mod 2 = 1"><li><a href="?action=Parameters&amp;mid=contract&amp;contractId={$CONTRACT_ID}">Test</a></li></xsl:if>

Понимаете такой код не отрабатывает.


Вернуться к началу
  
 
СообщениеДобавлено: 13 ноя 2012, 11:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ну вообще всё корректно, проверил. Тока надо учесть что группы нумеруются с нуля, но вроде всё корректно.
Вы сервер перезагружаете? Потому как если даже это:
Цитата:
чтобы меню отображалось только если у договора присутствует код договора 0.
Прописываю floor(/data/contract_data/contract/@gr div 1) mod 2 = 1) но в итоге если у договора еще присутствует любой код договора от 53 до 62 которые имеются в биллинге то меню не отображается.
не работает, что-то не то делаете. Сами подумайте floor(/data/contract_data/contract/@gr div 1) mod 2 == /data/contract_data/contract/@gr mod 2 - это просто значение самого правого бита, т.е. наличие "нулевой" группы

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 ноя 2012, 11:53 
Если вы внимательнее почитаете, то увидите что в последней теме я написал
Код:
floor(/data/contract_data/contract/@gr div 9007199254740992) mod 2 = 1
где группа 53 и данный код не работает. Про нулевую группу у меня тоже все работает. А свыше 53 группы уже не работает


Вернуться к началу
  
 
СообщениеДобавлено: 13 ноя 2012, 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Т.е. до 53 всё работает, а всё что выше уже нет? Ну тут я не знаю даже, переполнение может)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 16:51 
Так что получается приехали. Математика не работает не умеет она считать такие большие значения.
Ни у кого нету другого решения по выявлению определения группы договора


Вернуться к началу
  
 
СообщениеДобавлено: 13 мар 2013, 13:09 
Разработчики скажите что нету способа ограничить возможность группа свыше 53 видеть определенные разделы меню?


Вернуться к началу
  
 
СообщениеДобавлено: 13 мар 2013, 21:27 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
как вариан добавте параметр на договор с флагами, кому что можно показывать и проверяйте этот флаг в ЛК


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

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


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

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


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

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