forum.bitel.ru http://forum.bitel.ru/ |
|
Простейший скрипт смены тарифа по заданию пользователя http://forum.bitel.ru/viewtopic.php?f=22&t=829 |
Страница 1 из 1 |
Автор: | snark [ 13 мар 2008, 23:36 ] |
Заголовок сообщения: | Простейший скрипт смены тарифа по заданию пользователя |
в мануале читаю: мануал писал(а): Кроме перечня разрешенных тарифов и момента когда можно менять тариф необходимо устаноить:
1) За сколько часов от выбранной даты производится смена тарифа. ... 2) Количество дней следующих после текущей даты, в которые может быть добавлено задание на переход. ... Теперь необходимо установить в договор Группу тарифов и скрипт поведения. Сделать это следует открыв договор и щелнув на дереве Группа тарифов и Скрипт поведения. Оба значения необходимо добавить с периодами. В скрипте поведения должна присутствовать функция, обрабатывающая событие "Смена тарифа по заданию пользователя". Как создавать скрипты и вносить в них функции также читайте в документации к BGBS. после чего хочу попросить всего об одной вещи - выложите, пожалуйста, код скрипта который просто будет переводить пользователей из одного тарифа в другой тариф без начислений сумм (как дано в примере) и т.д. и т.п. с учетом указанных в п.1 и п.2 мануала условий ... |
Автор: | Администратор [ 14 мар 2008, 02:28 ] |
Заголовок сообщения: | |
Ну уберите вот этот кусок: Код: // заносим расход 50 руб
charge = new Charge(); charge.setContractID( cid ); charge.setDate( task.getFromDate() ); charge.setChargeTypeID( 40 ); charge.setComment( "Смена тарифа через Web" ); charge.setSumma( 50f ); chm.updateCharge( "new", charge ); |
Автор: | snark [ 14 мар 2008, 15:54 ] |
Заголовок сообщения: | |
Администратор писал(а): Ну уберите вот этот кусок спасибо, я в общем то так и думал ... просто меня смущает вот это:Код: // закрываем старый тариф днем ранее т.к. мне хотелось бы чтобы скрипт работал именно так как указано в настройках групп тарифов ...
endDate = (Calendar)task.getFromDate().clone(); endDate.add( Calendar.DAY_OF_YEAR, -1 ); |
Автор: | snark [ 25 мар 2008, 02:53 ] |
Заголовок сообщения: | |
up |
Автор: | Администратор [ 28 мар 2008, 03:04 ] |
Заголовок сообщения: | |
Скрипт и будет работать, как там задано. Настройки группы тарифов задают с каких дат можно перейти на новый тариф и за какой период времени до наступления даты исполнить переход тарифа (закрыть период текущего и открыть новый). Т.е. настройка группы тарифов задает момент отработки скрипта смены тарифа. |
Автор: | Alex-XXI [ 01 сен 2008, 21:15 ] |
Заголовок сообщения: | |
У меня почему-то не работает смена тарифного плана с "Любого дня, начиная с завтрашнего". С начала недели, начала месяца и с сегодняшего дня смена происходит нормально. В чем может быть причина? Вот сам скрипт: Код: import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.bean.*; import bitel.billing.server.script.event.*; import java.util.*; cid = event.getContractID(); task = event.getTask(); ctm = new ContractTariffManager( con ); chm = new ChargeManager( con ); // текущий тарифный план currentTariff = ctm.getContractTariff( cid, task.getFromDate() ); if( currentTariff == null ) { error( "Current tariff not found" ); return; } // закрываем старый тариф днем ранее endDate = (Calendar)task.getFromDate().clone(); endDate.add( Calendar.DAY_OF_YEAR, -1 ); currentTariff.setDate2( endDate ); ctm.updateContractTariff( String.valueOf( currentTariff.getID() ), currentTariff ); // обновляем баланс new BalanceUtils( con ).updateBalance( task.getFromDate(), cid ); // вносим новый тариф newPlan = new ContractTariff(); newPlan.setContractID( cid ); newPlan.setTariffPlanID( task.getTariffPlanID() ); newPlan.setDate1( task.getFromDate() ); newPlan.setComment( "Смена тарифа через Web" ); ctm.updateContractTariff( "new", newPlan ); // передача информации о смене тарифа, для возможности разрыва соединения RADIUS сервером new ContractManager( con ).updateLastTariffChange( cid ); |
Автор: | Администратор [ 02 сен 2008, 17:05 ] |
Заголовок сообщения: | |
А задание добавляется корректно? Скрипт отрабатывает вообще? |
Автор: | Alex-XXI [ 02 сен 2008, 17:52 ] |
Заголовок сообщения: | |
Задание при этом не создается. В логах пишет: Код: INFO 02.09.2008 15:48:19 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:48:23 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:48:26 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:48:28 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:48:29 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 При нормальном течении событий логи выглядят так: Код: INFO 02.09.2008 15:49:15 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20
INFO 02.09.2008 15:49:21 Process event cid:493; event:Event bitel.billing.server.script.bean.event.AddChangeTariffTaskEvent cid: 493; module: 0; type: 17 INFO 02.09.2008 15:49:21 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:50:07 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:50:09 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:50:10 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 INFO 02.09.2008 15:50:40 Add tariff change task, tpid: 53 INFO 02.09.2008 15:50:40 Add event to queue Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 493; module: 0; type: 4 INFO 02.09.2008 15:50:41 Found event id=6507 INFO 02.09.2008 15:50:41 Process event cid:493; event:Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 493; module: 0; type: 4 INFO 02.09.2008 15:50:41 Running function Function [id:10; title:Смена тарифа по заданию пользователя] INFO 02.09.2008 15:50:41 Process time => 80 INFO 02.09.2008 15:50:58 Process event cid:493; event:Event bitel.billing.server.script.bean.event.GetChangeTariffDatesEvent cid: 493; module: 0; type: 20 |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |