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

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

(Различия между версиями)
Перейти к: навигация, поиск
 
(5 промежуточных версий не показаны.)
Строка 9: Строка 9:
import bitel.billing.common.KernelConst;
import bitel.billing.common.KernelConst;
-
//Группа "Недостаточно средств"
 
-
GROUP_ERROR_BALANCE = 0;//где 0 это код группы
 
cpu = new ContractParamUtils( con );
cpu = new ContractParamUtils( con );
Строка 25: Строка 23:
if (contract_status != KernelConst.CONTRACT_STATUS_ACTIVE)  
if (contract_status != KernelConst.CONTRACT_STATUS_ACTIVE)  
{
{
-
cpu.setGroup( cid, 0 );
+
cpu.setGroup( cid, 0 );//где 0 это код группы
}
}
Строка 33: Строка 31:
};
};
</source>
</source>
 +
 +
Для 5.2
 +
<source lang="java">
 +
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 );
 +
};
 +
}
 +
}
 +
</source>
 +
 +
{{Актуальность Версии|версия=6.0}}
 +
<source lang="java">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 );
 +
};
 +
 +
}
 +
 +
}</source>
 +
 +
--[[Участник:Skyb|Skyb]] 03:54, 15 сентября 2011 (UTC)

Текущая версия на 06:00, 17 сентября 2014

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

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