Добавление группы и снятие в зависимости от статуса
Материал из BiTel WiKi
(Различия между версиями)
Skyb (Обсуждение | вклад) |
Skyb (Обсуждение | вклад) |
||
Строка 31: | Строка 31: | ||
}; | }; | ||
</source> | </source> | ||
- | --[[Участник: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)