Добавление группы и снятие в зависимости от статуса
Материал из BiTel WiKi
(Различия между версиями)
Skyb (Обсуждение | вклад) |
Кирилл (Обсуждение | вклад) |
||
Строка 41: | Строка 41: | ||
import ru.bitel.common.sql.ConnectionSet; | import ru.bitel.common.sql.ConnectionSet; | ||
import java.sql.*; | import java.sql.*; | ||
- | |||
import java.util.Date; | import java.util.Date; | ||
import bitel.billing.server.contract.bean.*; | import bitel.billing.server.contract.bean.*; | ||
- | |||
public class groupe | public class groupe | ||
Строка 52: | Строка 50: | ||
@Override | @Override | ||
- | public void onEvent( Event | + | public void onEvent( Event event, Setup setup, ConnectionSet connectionSet ) |
throws Exception | throws Exception | ||
{ | { | ||
- | Connection con = | + | Connection con = connectionSet.getConnection(); |
- | ContractParameterManager cpm = new ContractParameterManager( con ); | + | ContractParameterManager cpm = new ContractParameterManager( con ); |
- | int | + | int cid = event.getContractId(); |
- | cid = | + | ContractStatusManager contract_status_manager = new ContractStatusManager(con); |
- | + | ContractStatus status = contract_status_manager.getStatus(cid, new Date()); | |
- | + | if (status == null) | |
- | ContractStatusManager contract_status_manager = new ContractStatusManager(con); | + | { |
- | ContractStatus status = contract_status_manager.getStatus(cid, | + | return; |
- | if (status == null) | + | } |
- | { | + | int contract_status = status.getStatus(); |
- | + | ||
- | } | + | |
- | 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 ); | ||
+ | }; | ||
} | } | ||
- | |||
} | } | ||
</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)