|
|
Строка 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 рублей.