forum.bitel.ru http://forum.bitel.ru/ |
|
Дебетовые абонплаты http://forum.bitel.ru/viewtopic.php?f=16&t=10378 |
Страница 1 из 1 |
Автор: | SeGa [ 07 апр 2015, 08:15 ] |
Заголовок сообщения: | Дебетовые абонплаты |
Имеем дебетовый супердоговор на который поступаю платежи абонентов, на нем нет никаких модулей, так же имеем дебетовый субдоговора с зависимым балансом на. На субдоговоре висит модуль абонплаты и интернет, если у абонента баланс меньше 0 - модуль интернет ставит статус отключен по балансу в модуле интерент, но на этот договор не действует событие в планировщике Закрытие статуса NPay договоров по балансу. Если создать отдельный договор не имеющий не субдоговоров, не супердоговора - планировщик отрабатывает нормально. Так и должно быть или это косяк? Если так и должно быть, то как можно сменить статус субдоговора по балансу? |
Автор: | stark [ 07 апр 2015, 16:45 ] |
Заголовок сообщения: | Re: Дебетовые абонплаты |
Код: #при открытии статуса супердоговора открывать статусы зависимых договоров(1-открывать, 0 - не открывать). debet.npay.processDependentSub=0 В доке пока этого нет. |
Автор: | SeGa [ 07 апр 2015, 17:17 ] |
Заголовок сообщения: | Re: Дебетовые абонплаты |
stark писал(а): Код: #при открытии статуса супердоговора открывать статусы зависимых договоров(1-открывать, 0 - не открывать). debet.npay.processDependentSub=0 В доке пока этого нет. Спасибо, но это точно то что нужно? Оно дает закрывать договора по событию Закрытие статуса NPay договоров по балансу, а то судя по комментарию оно наоборот открывает ![]() Я решил свою проблему глобальным скриптом(Может кому пригодится) Код: import java.sql.*;
import java.util.*; import java.math.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.tariff.*; import bitel.billing.server.util.*; import ru.bitel.bgbilling.kernel.event.*; public void main( setup, con, conSlave ) { ContractStatusManager contract_status_manager = new ContractStatusManager( con ); String sql = "SELECT id FROM contract where mode=1 and status=0"; PreparedStatement ps = con.prepareStatement( sql ); ResultSet rs = ps.executeQuery(); while(rs.next()) { int cid = rs.getInt( 1 ); Calendar DateNow = Calendar.getInstance(); BalanceUtils bu = new BalanceUtils( con ); contract_balance = bu.getBalance (DateNow.getTime(), cid); if (contract_balance.compareTo( new BigDecimal("0.00") )<= 0) { print("cid: "+cid+" Contract_Balance: "+contract_balance); // суспендим договор ContractStatus status = new ContractStatus(); status.setContractId( cid ); status.setDateFrom( DateNow.getTime() ); status.setDateTo( null ); status.setStatus(3); status.setComment( "Недостаточно средств" ); contract_status_manager.changeStatus( status, 0 ); } else { print ("Normal"); } } } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |