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

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 41: Строка 41:
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.sql.*;
-
import java.util.*;
 
import java.util.Date;
import java.util.Date;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.bean.*;
-
import bitel.billing.common.TimeUtils;
 
public class groupe
public class groupe
Строка 52: Строка 50:
@Override
@Override
-
public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
+
public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
throws Exception
throws Exception
{
{
-
Connection con = connectionSet3.getConnection();
+
Connection con = connectionSet.getConnection();
-
ContractParameterManager cpm = new ContractParameterManager( con );
+
ContractParameterManager cpm = new ContractParameterManager( con );
-
int cid;
+
int cid = event.getContractId();
-
cid = event1.getContractId();
+
ContractStatusManager contract_status_manager = new ContractStatusManager(con);
-
GregorianCalendar nowDate = new GregorianCalendar();
+
ContractStatus status = contract_status_manager.getStatus(cid, new Date());
-
Date dateNow = TimeUtils.convertCalendarToDate(nowDate);
+
if (status == null)
-
ContractStatusManager contract_status_manager = new ContractStatusManager(con);
+
{
-
ContractStatus status = contract_status_manager.getStatus(cid, dateNow);
+
return;
-
if (status == null)
+
}
-
{
+
int contract_status = status.getStatus();
-
return;
+
-
}
+
-
int contract_status = status.getStatus();
+
-
if (contract_status == 3)  
+
if (contract_status == 3)  
-
{
+
{
-
cpm.setGroup( cid, 0 );
+
cpm.setGroup( cid, 0 );
-
}
+
}
-
 
+
-
if (contract_status == 0)
+
-
{
+
-
cpm.unsetGroup( cid, 0 );
+
-
};
+
 +
if (contract_status == 0)
 +
{
 +
cpm.unsetGroup( cid, 0 );
 +
};
}
}
-
 
}
}
</source>
</source>
--[[Участник:Skyb|Skyb]] 03:54, 15 сентября 2011 (UTC)
--[[Участник:Skyb|Skyb]] 03:54, 15 сентября 2011 (UTC)

Версия 19:50, 14 октября 2011

После перехода на 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)

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