Смена тарифного плана по заданию пользователя
Материал из BiTel WiKi
(Различия между версиями)
Admin (Обсуждение | вклад)
(Новая: Для смены тарифного плана по заданию пользователя можно использовать следующий скрипт. Он заносит ра...)
Следующая правка →
(Новая: Для смены тарифного плана по заданию пользователя можно использовать следующий скрипт. Он заносит ра...)
Следующая правка →
Версия 18:51, 19 июня 2008
Для смены тарифного плана по заданию пользователя можно использовать следующий скрипт. Он заносит расход 50 рублей на баланс пользователя и сменяет тарифный план. Тип расхода необходимо подставить свой, в данном случае он равен 40. Скрипт подходит для односервисных договоров, в которых возможна смена тарифа только по одной услуге. В один момент времени на договоре может быть только один тариф, при наличии тарифов на доп. услуги или другием модули следует модифицировать скрипт.
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 ); // передача информации о смене тарифа, для возможности разрыва соединения RADIUS сервером new ContractManager( con ).updateLastTariffChange( cid );