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

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 31: Строка 31:
};
};
</source>
</source>
-
--[[Участник:Skyb|skyb]]
+
 
 +
Для 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.*;
 +
import java.util.Date;
 +
 
 +
import bitel.billing.server.contract.bean.*;
 +
import bitel.billing.server.contract.bean.ContractStatus;
 +
import bitel.billing.common.KernelConst;
 +
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();
 +
ContractParamUtils cpu = new ContractParamUtils( 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 == KernelConst.CONTRACT_STATUS_CLOSED)
 +
{
 +
cpu.setGroup( cid, 0 );
 +
}
 +
 
 +
if (contract_status == KernelConst.CONTRACT_STATUS_ACTIVE)
 +
{
 +
cpu.unsetGroup( cid, 0 );
 +
};
 +
 
 +
}
 +
 
 +
}
 +
</source>
 +
--[[Участник:Skyb|Skyb]] 03:54, 15 сентября 2011 (UTC)

Версия 03:54, 15 сентября 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.*;
import java.util.Date;
 
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.bean.ContractStatus;
import bitel.billing.common.KernelConst;
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();	
ContractParamUtils cpu = new ContractParamUtils( 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 == KernelConst.CONTRACT_STATUS_CLOSED) 
{
cpu.setGroup( cid, 0 );
}
 
if (contract_status == KernelConst.CONTRACT_STATUS_ACTIVE) 
{
cpu.unsetGroup( cid, 0 );
};
 
	}
 
}

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

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