Добавление группы и снятие в зависимости от статуса
Материал из BiTel WiKi
Версия от 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)