Изменение подписки карты через web (cerbercrypt)

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Пример изменения подписки карты через web по заданию пользователя. Скрипт срабатывает по событию "изм...)
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
Пример изменения подписки карты через web по заданию пользователя.  
Пример изменения подписки карты через web по заданию пользователя.  
Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей.
Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей.
 +
Для версии 4.6.
 +
 +
 +
 +
<source lang="java">
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.bean.*;
import bitel.billing.server.tariff.bean.*;
Строка 12: Строка 17:
CHARGE_TYPE = 18; //тип расхода - "Смена пакета"
CHARGE_TYPE = 18; //тип расхода - "Смена пакета"
 +
   
   
cm = new ContractManager( con );
cm = new ContractManager( con );
bu = new BalanceUtils( con );
bu = new BalanceUtils( con );
chm = new ChargeManager( con );
chm = new ChargeManager( con );
 +
Строка 21: Строка 28:
cid = event.getContractID();
cid = event.getContractID();
contract = cm.getContractByID( cid );
contract = cm.getContractByID( cid );
 +
 +
if( contract == null ) {
 +
    error( "Contract with ID " + cid + " was not found!" );
 +
    return;
 +
}
 +
print(event.getChangeMode()); //анализ типа события (2 - закрытие периода подписки)
print(event.getChangeMode()); //анализ типа события (2 - закрытие периода подписки)
Строка 29: Строка 42:
   }
   }
-
if( contract == null ) {
+
 
-
    error( "Contract with ID " + cid + " was not found!" );
+
-
    return;
+
-
}
+
date = new Date();
date = new Date();
 +
// цена смены
// цена смены
Строка 53: Строка 64:
// заносим расход
// заносим расход
charge = new Charge();
charge = new Charge();
 +
charge.setContractID( cid );
charge.setContractID( cid );
Строка 58: Строка 70:
charge.setChargeTypeID( CHARGE_TYPE );
charge.setChargeTypeID( CHARGE_TYPE );
 +
charge.setComment( "Смена пакета через Web" );
charge.setComment( "Смена пакета через Web" );
 +
charge.setSumma( changeCost );
charge.setSumma( changeCost );
Строка 64: Строка 78:
bu.updateBalance( date, cid );
bu.updateBalance( date, cid );
 +
</source>
 +
 +
--[[Участник:Alexey|Alexey]] 06:17, 3 сентября 2009 (UTC)

Текущая версия на 12:49, 16 октября 2009

Пример изменения подписки карты через web по заданию пользователя. Скрипт срабатывает по событию "изменение подписки карты". И снимает за смену пакета 20 рублей. Для версии 4.6.



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 );
 
if( contract == null ) {
    error( "Contract with ID " + cid + " was not found!" );
    return;
}
 
print(event.getChangeMode()); //анализ типа события (2 - закрытие периода подписки)
 
if(event.getChangeMode() == 2)
  {
	print("Подписка закрыта");
	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 );

--Alexey 06:17, 3 сентября 2009 (UTC)

Личные инструменты