forum.bitel.ru http://forum.bitel.ru/ |
|
"Управление статусом" договора в статистике и открытие шлюза http://forum.bitel.ru/viewtopic.php?f=7&t=5756 |
Страница 1 из 1 |
Автор: | maxbond [ 02 авг 2011, 17:00 ] |
Заголовок сообщения: | "Управление статусом" договора в статистике и открытие шлюза |
Здравствуйте. Как можно исправить следующую ситуацию: Абоненты с помегабайтной оплатой, режим дебет. Если зайти в статистику и приостановить договор с отрицательным балансом, а затем сделать отмену, закрытый шлюз открывается до отработки следующей проверки шлюзов. Как лучше сделать так, чтобы шлюз открывался только с положительным балансом? Сервер 5.1 - 620, IPN - 233. |
Автор: | Phricker [ 02 авг 2011, 17:24 ] |
Заголовок сообщения: | Re: "Управление статусом" договора в статистике и открытие ш |
Помнится на форуме уже это обсуждали. Что абоненты так играются и уходят в минус. Не помню тему, и не помню к чему там пришли в итоге. Попробуйте поискать |
Автор: | maxbond [ 04 авг 2011, 16:05 ] |
Заголовок сообщения: | Re: "Управление статусом" договора в статистике и открытие ш |
Нашел только эту тему: viewtopic.php?f=22&t=4835 Подозреваю, что решением будет повесить обработчик на событие "Изменение статуса договора", но пока не соображу как сделать. Или проверять баланс при наступлении события "Статус договора изменен". |
Автор: | maxbond [ 10 авг 2011, 16:43 ] |
Заголовок сообщения: | Re: "Управление статусом" договора в статистике и открытие ш |
Решение: Код: import java.sql.*; import java.util.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import bitel.billing.common.KernelConst; import bitel.billing.server.ipn.*; import bitel.billing.server.ipn.bean.*; import bitel.billing.server.contract.bean.BalanceUtils; public void onEvent(event, setup, con, conSlave){ mid = *IPN_MID*; cid = event.getContractId(); contract = new ContractManager(con).getContractById(cid); BalanceUtils bal = new BalanceUtils( con ); Date balanceDate = new Date( System.currentTimeMillis() ); balance = bal.getBalance (balanceDate, cid); limit = contract.getBalanceLimit(); if ( balance.intValue() < limit.intValue() ) { ipncsm = new IPNContractStatusManager(con,mid,setup); ipncsm.changeStatus(cid,2,0,true); } } Повесить на "Статус договора изменен". |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |