Добавление группы и снятие в зависимости от статуса

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

Перейти к: навигация, поиск

После перехода на 5 версию были убраны скрипты для реализации дебитовых абонплат, в них было удобно смотреть количество человек которые были отключены(неплательщики) они просто заносились в группу, а при оплате группа убиралась. Был написан простенький скрипт для добавление таких пользователей в группу, создается скрипт и вешается на событие статус договора изменен

import java.sql.*;
import java.util.*;
 
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.util.*;
import bitel.billing.common.KernelConst;
 
 
cpu = new ContractParamUtils( con );
 
cid = event.getContractID();
DateNow = new GregorianCalendar();
contract = new ContractManager(con).getContractByID(cid);
 
 
contract_status_manager  = new ContractStatusManager(con);
status = contract_status_manager.getStatus(cid, DateNow);
contract_status = status.getStatus();
 
if (contract_status != KernelConst.CONTRACT_STATUS_ACTIVE) 
{
cpu.setGroup( cid, 0 );//где 0 это код группы
}
 
if (contract_status == KernelConst.CONTRACT_STATUS_ACTIVE) 
{
cpu.unsetGroup( cid, 0 );
};

Для 5.2

package ru.skyb.scripts.behavior;
 
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.Date;
 
import bitel.billing.server.contract.bean.*;
 
public class groupe
	extends EventScriptBase
{
 
	@Override
	public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
		throws Exception
	{
		Connection con = connectionSet.getConnection();	
		ContractParameterManager cpm = new ContractParameterManager( con );
 
		int cid = event.getContractId();
		ContractStatusManager contract_status_manager = new ContractStatusManager(con);
		ContractStatus status = contract_status_manager.getStatus(cid, new Date());
		if (status == null)
		{
			return;
		}
		int contract_status = status.getStatus();
 
		if (contract_status == 3) 
		{
			cpm.setGroup( cid, 0 );
		}
 
		if (contract_status == 0) 
		{
			cpm.unsetGroup( cid, 0 );
		};
	}
}

--Skyb 03:54, 15 сентября 2011 (UTC)

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