BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 апр 2024, 17:55

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: 20 апр 2009, 17:59 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Добрый всем!

Подскажите, как получить информацию по узлу тарифного плана (в своем скрипте)? Конкретно, мне надо узнать кол-во бесплатного трафика (первый узел диапазон), который включен в абонплату тарифа. (Требуется узнать кол-во трафика скаченного сверх абонплаты, по тарифу. Собираюсь вычислять как общее кол-во минус бесплатный траф)

SQL запросами не осилил алгоритм, как вытянуть эту инфу.

Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 апр 2009, 14:47 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
up


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 апр 2009, 12:52 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Разработчики, как вы разбираете тарифный план, подскажите.

Раз принят такой способ хранения данных для ТП, значит алгоритм разбора должен быть простой и эффектный


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Давайте несколько записей конкретных из mtree_node, помогу разобрать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 13:12 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
сейчас, момент


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 18:47 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
в общем так, см. скрины.
в mtree_node

Код:
SELECT * FROM mtree_node where mtree_id=239


Код:
+-------+-------------+----------+---------------+---------------------------------+-----+
| id    | parent_node | mtree_id | type          | data                            | pos |
+-------+-------------+----------+---------------+---------------------------------+-----+
| 82057 |           0 |      239 | root          |                                 | 212 |
| 82061 |       82057 |      239 | multi_service | sids&1,5,3                      |   1 |
| 82062 |       82057 |      239 | service       | 4                               |   2 |
| 82063 |       82057 |      239 | service       | 2                               |   3 |
| 82064 |       82061 |      239 | cost          | type&2%cost&0.0%col&1           |   1 |
| 82065 |       82062 |      239 | range         | col&1%for_time&1%type&3%mode&0  |   1 |
| 82066 |       82062 |      239 | range         | col&0%for_time&1%type&2%mode&0  |   2 |
| 82067 |       82065 |      239 | cost          | type&2%cost&0.0%col&1           |   1 |
| 82068 |       82066 |      239 | cost          | type&2%cost&1.32%col&1          |   1 |
| 82069 |       82063 |      239 | range         | col&50%for_time&1%type&2%mode&0 |   1 |
| 82072 |       82063 |      239 | range         | col&0%for_time&1%type&2%mode&0  |   4 |
| 82073 |       82069 |      239 | cost          | type&2%cost&0.0%col&1           |   1 |
| 82076 |       82072 |      239 | cost          | type&2%cost&0.06%col&1          |   1 |
+-------+-------------+----------+---------------+---------------------------------+-----+
13 rows in set (0.00 sec)


Каким образом можно достать эту инфу? Может SQL какой покажете?
У меня стартовый параметр только id тарифа(из contract_tariff)

У этого тарифа id=146, далее по цепочке tariff_tree_link -> tariff_tree -> module_tariff_tree -> mtree_node руками нахожу выборку выше.

В общем, от tpid надо дойти до необходимой записи. сам не могу допереть как :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 09:55 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
82066 | 82062 | 239 | range | col&0%for_time&1%type&2%mode&0 | 2 |

Ну вот тут range - это тип узла. Соответствие типа названию можно посмотреть в конфигурации тарифа. Для 4.5 конфигурация в таблице tariff_tree_config. От 4.6 - в jar файлах модулей идет в файле bitel.billing.common.tariff.<имя модуля>.xml
Собственно range - это и есть диапазон наработки.
Теперь в поле data - это пары атрибут-значение, разделенные символом процента. Атрибут от значения в паре отделяется &.
Ну и для этого конкретного узла. col - количество. type - мб/часы/секунды и т.п.
mode - безусловно/пропорционально, по-моему.
Можете просто менять свойства узла и сопоставлять data.
Код узла дерева (id записи из mtree_node) можете получить нажав Ctrl+Shift+i на нем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 13:57 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Спасибо!:) Хотелось бы узнать как дойти до нужной записи mtree_node от одного параметра tpid. Ищем первый диапазон услуги sid=4 модуля mid=1

Вообще возможно её одним запросом вытащить?

Самая сложная выборка из всех, что сталкивался когда либо.

PS
По вашему ответу не понял как вы конкретные узлы тарифного плана получаете. Вообще, сложно понять как по таким взаимосвязям таблиц выбирать данные. И вообще не понятно, как выбрать (фильтровать) взаимосвязанные данные ОДНОЙ таблицы (mtree_node). Объяснений не прошу. Если покажете как вы выбираете, наверно пойму.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 14:10 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Скажу зачем мне это. Написал обработки для 1с 8, три штуки.
1. Импортирование договоров из биллинга(импортируются конкретные группы биллинга, импортируются только новые, не существующие в 1с договора)
2. Сверка остатков в 1с и в биллинге на конкретный месяц. Для наглядного обнаружения расхождений по конкретным договорам в двух системах.
3. Формирование актов выполненных работ, и счетов-фактур из биллинга в 1с.

Во всех обработках добротный, дружественный интерфейс.

Готовы все обработки, надо только в 3 для услуг "услуги интернет (вх)" и т.д. указывать кол-во услуги. Т.е. для таких тарифов кол-во трафика скачанного сверх абонплаты. Поможете, с удовольствием готов выложить, может кому из пользователей окажутся они полезными.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 14:27 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Цитата:
Т.е. для таких тарифов кол-во трафика скачанного сверх абонплаты.

Вам для этого не надо лесть в тариф и определять его параметры.
Почитайте: http://www.bgbilling.ru/v4.5/doc/ch14s0 ... l#d0e14266


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 14:49 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Не, ну ты посмотри)) Сделали уже все и не предупредили :D
Спасибо, вроде то что надо, пробую!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 14:57 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Лесть в тариф и пытаться определить его параметры, это дело не благодарное. Тем более что тариф может быть очень сложным. Я всегда стараюсь искать обходные пути :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 15:01 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
так то оно так, но ктож знал, что уже есть готовое. Перед этим использовал обходной путь. он не гибкий был, зато простой) решил отойти от него


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 апр 2009, 15:28 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
lda писал(а):
Вам для этого не надо лесть в тариф и определять его параметры.
Почитайте: http://www.bgbilling.ru/v4.5/doc/ch14s0 ... l#d0e14266

Эта фича, что в доке описана, работает только при переобсчете. Может в планировщик добавите задание, переобсчет ДиалАп (ИПН), по указанным группам, если не в напряг :) Всё равно ведь желательно пересчитывать каждый месяц, так что можно и задачу замутить.


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

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


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

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


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

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