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

Материал из 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 );
		};
	}
}

Внимание! Данное решение/метод/статья относится к версии 6.0 и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.

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.*;
import java.util.Date;
 
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.TimeUtils;
 
public class groupe
	extends EventScriptBase
{
 
	@Override
	public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
		throws Exception
	{
Connection con = connectionSet3.getConnection();	
ContractParameterManager cpm = new ContractParameterManager( con );
 
int cid;
cid = event1.getContractId();
GregorianCalendar nowDate = new GregorianCalendar();
Date dateNow = TimeUtils.convertCalendarToDate(nowDate);
ContractStatusManager contract_status_manager = new ContractStatusManager(con);
ContractStatus status = contract_status_manager.getStatus(cid, dateNow);
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)

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