|   |  | 
		| Строка 1: | Строка 1: | 
|  | Пример изменения подписки карты через web по заданию пользователя.   |  | Пример изменения подписки карты через web по заданию пользователя.   | 
|  | Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей. |  | Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей. | 
| - | 
 |  | 
| - | import bitel.billing.server.contract.bean.*;
 |  | 
| - | import bitel.billing.server.tariff.bean.*;
 |  | 
| - | import bitel.billing.server.script.event.*;
 |  | 
| - | import bitel.billing.common.*;
 |  | 
| - | import java.util.*;
 |  | 
| - | import java.math.*;
 |  | 
| - | import bitel.billing.server.cerbercrypt.bean.event.CerbercryptEventNumbers;
 |  | 
| - | import bitel.billing.server.cerbercrypt.bean.event.SubscriptionChangedEvent;
 |  | 
| - | 
 |  | 
| - | CHARGE_TYPE = 18; //тип расхода - "Смена пакета"
 |  | 
| - |  
 |  | 
| - | cm = new ContractManager( con );
 |  | 
| - | bu = new BalanceUtils( con );
 |  | 
| - | chm = new ChargeManager( con );
 |  | 
| - | 
 |  | 
| - | 
 |  | 
| - | 
 |  | 
| - | cid = event.getContractID();
 |  | 
| - | contract = cm.getContractByID( cid );
 |  | 
| - | print(event.getChangeMode()); //анализ типа события (2 - закрытие периода подписки)
 |  | 
| - | 
 |  | 
| - | if(event.getChangeMode() == 2)
 |  | 
| - |   {
 |  | 
| - | 	print("Подписка закрыта");
 |  | 
| - | 	return;
 |  | 
| - |   }
 |  | 
| - | 
 |  | 
| - | if( contract == null ) {
 |  | 
| - |     error( "Contract with ID " + cid + " was not found!" );
 |  | 
| - |     return;
 |  | 
| - | }
 |  | 
| - | 
 |  | 
| - | date = new Date();
 |  | 
| - | 
 |  | 
| - | // цена смены
 |  | 
| - | changeCost = new BigDecimal(20);
 |  | 
| - |  
 |  | 
| - | // текущий баланс
 |  | 
| - | balance = bu.getBalance( date, cid ); 
 |  | 
| - | 
 |  | 
| - | if( balance.compareTo( changeCost ) < 0 )
 |  | 
| - | {
 |  | 
| - |   // установка флага обработанности скриптом прервет стандартную смену пакета
 |  | 
| - |   event.setProcessed( true );
 |  | 
| - |   event.setError( "Недостаточно средств для смены пакета!" ); 
 |  | 
| - |   return;
 |  | 
| - | }
 |  | 
| - | 
 |  | 
| - | 
 |  | 
| - | // заносим расход
 |  | 
| - | charge = new Charge();
 |  | 
| - | charge.setContractID( cid );
 |  | 
| - | 
 |  | 
| - | charge.setChargeDate( date );
 |  | 
| - | 
 |  | 
| - | charge.setChargeTypeID( CHARGE_TYPE );
 |  | 
| - | charge.setComment( "Смена пакета через Web" );
 |  | 
| - | charge.setSumma( changeCost );
 |  | 
| - | 
 |  | 
| - | chm.updateCharge( charge );
 |  | 
| - | 
 |  | 
| - | bu.updateBalance( date, cid );
 |  | 
Пример изменения подписки карты через web по заданию пользователя. 
Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей.