forum.bitel.ru http://forum.bitel.ru/ |
|
Как сменить правила на шлюзе MANAD FreeBSD при смене тарифа http://forum.bitel.ru/viewtopic.php?f=7&t=2691 |
Страница 1 из 1 |
Автор: | stark [ 06 авг 2009, 18:35 ] |
Заголовок сообщения: | |
в 5.0 мы эту проблему решим,надеюсь ..а пока только скриптовыми шлюзами . Вот тут предлагают вариант: http://bgbilling.ru/forum/viewtopic.php ... highlight= |
Автор: | fkost [ 07 авг 2009, 12:27 ] |
Заголовок сообщения: | |
Возникла необходимость при смене тарифа через 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), а в договоре галочек нет. Где я сделал не так? |
Автор: | stark [ 07 авг 2009, 12:47 ] |
Заголовок сообщения: | |
вы забыли записать это в базу new ContractManager(con).update( contact ) |
Автор: | fkost [ 07 авг 2009, 13:23 ] |
Заголовок сообщения: | |
Чегото я не догоняю. На вставил. получил следующую ошибку 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 такого метода вобще нет. |
Автор: | stark [ 07 авг 2009, 14:33 ] |
Заголовок сообщения: | |
а. у вас 4.5... там нет этого метода в api Обновить договр можно только ко с помощью sql-запроса : query = "UPDATE contract SET gr=gr|(1<<?) WHERE id=?"; |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |