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

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

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