BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 06 июл 2025, 02:06

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 06 авг 2009, 09:32 
Не в сети

Зарегистрирован: 20 июл 2009, 10:18
Сообщения: 14
Карма: 0
У нас стоит BGbilling 4.5
Модули : NPAY, IPN, REPORTS.
Шлюз на FreeBSD 6.2
правила прорисаны:
speed=64000
speed=128000
speed=256000
speed=512000
speed=1024000

Команды шлюза:
[DEFAULT]
<LOOP>
pipe {P0} config bw ${speed}
pipe {P1} config bw ${speed}
add {N0} pipe {P0} ip from any to {A} in via em0
add {N0} pipe {P1} ip from {A} to any out via em0
add {N1} allow ip from any to {A} in via em0
add {N1} skipto 60000 ip from {A} to any out via em0
</LOOP>
[/DEFAULT]

К тарифам привязаны правила
К договору привязан шлюз, а к шлюзу привязано правило.

Проблема в следующем:
При смене тарифа не происходит смена правил на шлюзе в договоре и конечно же на самом шлюзе.
На форуме прочитал, что для смены правил нодо в планировщике задач запускать "Обсчет логов IPN" не помогает.
подскахите как решить проблему.


Вложения:
Комментарий к файлу: Тариф
Tarif.jpg
Tarif.jpg [ 14.55 КБ | Просмотров: 3192 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 авг 2009, 18:35 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
в 5.0 мы эту проблему решим,надеюсь ..а пока только скриптовыми шлюзами . Вот тут предлагают вариант:
http://bgbilling.ru/forum/viewtopic.php ... highlight=


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

Зарегистрирован: 20 июл 2009, 10:18
Сообщения: 14
Карма: 0
Возникла необходимость при смене тарифа через WEB помещать договора в отдельную группу. Я написал вот такой скрипт:

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.bean.*;
import bitel.billing.server.script.event.*;
import bitel.billing.server.service.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.util.*;
import bitel.billing.server.npay.*;
import bitel.billing.server.task.bean.RunTaskData;
import bitel.billing.server.task.bean.RunTaskDataManager;
import java.util.*;

cid = event.getContractID();
cstm = new ContractStatusManager( con );

// определяем текущий статус договора и выход если не установлен или не активный
StatusContractList = cstm.getStatusList(cid, event.getGenerateTime());
if (StatusContractList.size() == 0)
{
print("Статус договора не установлен");
return;
}
StatusContract = StatusContractList.get(0);
print("StatusContract.getStatus():"+StatusContract.getStatus() );
if( StatusContract.getStatus() != 0)
{
print("Договор не активен");
return;
}

// выбираем только нужную группу договоров (нам нужна только 1 группа -"Интернет")
contract = new ContractManager(con).getContractByID(cid);
contract_groups = contract.getGroups();
if ((contract_groups & (1L)) > 0)
{
print("Группа договора="+contract_groups);
} else
{
print("Договор не на интернет");
return;
}
// Добавляем договору группу 2 - "Смено тарифа через WEB"
contract.setGroups(contract_groups | 2);
contract_groups = contract.getGroups();
print("Новая группа договора="+contract_groups);

В логах све нормально пишет что с уст группа 3 (1+2), а в договоре галочек нет.
Где я сделал не так?


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
вы забыли записать это в базу
new ContractManager(con).update( contact )


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

Зарегистрирован: 20 июл 2009, 10:18
Сообщения: 14
Карма: 0
Чегото я не догоняю. На вставил. получил следующую ошибку

Sourced file: inline evaluation of: ``import bitel.billing.server.contract.bean.*; import bitel.billing.server.tariff . . . '' : reflection error: bsh.ReflectError: Method update( bitel.billing.server.contract.bean.Contract ) not found in class'bitel.billing.server.contract.bean.ContractManager'Sourced file: inline evaluation of: ``import bitel.billing.server.contract.bean.*; import bitel.billing.server.tariff . . . '' : reflection error: bsh.ReflectError: Method update( bitel.billing.server.contract.bean.Contract ) not found in class'bitel.billing.server.contract.bean.ContractManager' : at Line: 44 : in file: inline evaluation of: ``import bitel.billing.server.contract.bean.*; import bitel.billing.server.tariff . . . '' : .update ( contract )

at bsh.BSHPrimarySuffix.doSuffix(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHAssignment.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:158)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:248)
at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:163)

А в документации API такого метода вобще нет.


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
а. у вас 4.5... там нет этого метода в api Обновить договр можно только ко с помощью sql-запроса :
query = "UPDATE contract SET gr=gr|(1<<?) WHERE id=?";


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

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


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

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


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

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