forum.bitel.ru http://forum.bitel.ru/ |
|
Смена тарифа пользователем??? http://forum.bitel.ru/viewtopic.php?f=22&t=504 |
Страница 1 из 1 |
Автор: | dsheptalin [ 04 ноя 2007, 00:55 ] |
Заголовок сообщения: | Смена тарифа пользователем??? |
Поясните вразумительно как настроить и что к чему привязано. Лог: INFO 03.11.2007 20:15:39 Process event cid:14; event:Event bitel.billing.server.script.bean.event.AddChangeTariffTaskEvent cid: 14; module: 0; type: 17 INFO 03.11.2007 21:00:58 Add tariff change task, tpid: 6 INFO 03.11.2007 21:00:58 Add event to queue Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 14; module: 0; type: 4 INFO 03.11.2007 21:00:58 Found event id=75 INFO 03.11.2007 21:00:58 Process event cid:14; event:Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 14; module: 0; type: 4 INFO 03.11.2007 21:20:33 Process event cid:14; event:Event bitel.billing.server.script.bean.event.AddChangeTariffTaskEvent cid: 14; module: 0; type: 17 INFO 03.11.2007 21:20:59 Add tariff change task, tpid: 6 INFO 03.11.2007 21:20:59 Add event to queue Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 14; module: 0; type: 4 INFO 03.11.2007 21:20:59 Found event id=76 INFO 03.11.2007 21:20:59 Process event cid:14; event:Event bitel.billing.server.script.bean.event.ChangeTariffByTaskEvent cid: 14; module: 0; type: 4 И если выбираеш сменить с текущей даты - ставит к исполнению прошедшей датой. |
Автор: | dsheptalin [ 04 ноя 2007, 15:11 ] |
Заголовок сообщения: | |
Вопрос конкретнее: Типовой скрипт смены тарифа пользователем за деньги: 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 ); // заносим расход 50 руб charge = new Charge(); charge.setContractID( cid ); charge.setDate( task.getFromDate() ); charge.setChargeTypeID( 40 ); charge.setComment( "Смена тарифа через WEB" ); charge.setSumma( 50f ); chm.updateCharge( "new", charge ); // обновляем баланс 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 ); Деньги снимаются два раза ну и ладно. Нужно не снимать деньги а проверять снята-ли абонплата и если нет то снимать (иначе получается, что абонплата снимается раз в час и не чаще - чаще шедуллер не запускается и клиент прыгая с тарифа на тариф меняет его (тариф) а абонплаты неуспевают начислиться)... |
Автор: | dsheptalin [ 04 ноя 2007, 16:09 ] |
Заголовок сообщения: | |
да и так как тариф применяется только с новой сессии былоб неплохо чтобы при смене тарифа клиента сбрасывало. |
Автор: | lspci [ 21 ноя 2007, 18:24 ] |
Заголовок сообщения: | |
не сбрасывает клиента при смене тарифа? можно это как-нибудь реализовать? |
Автор: | Администратор [ 22 ноя 2007, 19:28 ] |
Заголовок сообщения: | |
В данный момент это можно реализовать только разрешением смены раз в месяц и принудительным сбросом всех абонентов на границе месяца. Принудительно сбрасывать нужно в любом случае, чтобы правильно шла тарификация. Иначе будет расти наработка за прошедший уже месяц. |
Автор: | lspci [ 22 ноя 2007, 19:42 ] |
Заголовок сообщения: | |
а нельзя закрыть сессию и начать новую не разрывая связь у клиента? |
Автор: | Администратор [ 22 ноя 2007, 19:45 ] |
Заголовок сообщения: | |
Нет. Такой возможности нет. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |