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