BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 02 май 2024, 09:38

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 28 авг 2011, 19:18 
Не в сети

Зарегистрирован: 19 дек 2008, 17:46
Сообщения: 749
Карма: 10
Как можно сделать проверку через скрипты проведений перед оформлением договора. В скриптах проведений есть событие Договор переоформлен, но перед переоформлением договора такого события нет.
Хотим перед переоформлением договора сделать проверку на положительный баланс, если положительный то договор можно переоформлять.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 авг 2011, 00:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Может быть?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 авг 2011, 12:41 
Не в сети

Зарегистрирован: 19 дек 2008, 17:46
Сообщения: 749
Карма: 10
Да то что нужно. Но не можем понять логики.
Прописали в конфиге.
action.event_bitel.billing.module.contract_ActionWrapContract=before.
В функции скриптов проведений создали поведение Тест и указали событие перед действием с кодом
Код:
print("ok");
event.setError( "qqq", false );

Добавили событие на договор и попытались переоформить, в итоге договор переоформился и окно с сообщением не вышло.
Что не так?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 авг 2011, 16:19 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
как напишите скрипт, выложите для общественности ? интересно посмотреть =) (возможно что то себе взять)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 00:53 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
попробуйте так
Код:
action.event_contract_WrapContract=before


<module> - соответствует значению параметра module в запросе
<action> - соответствует значению параметра action в запросе


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 11:48 
Не в сети

Зарегистрирован: 19 дек 2008, 17:46
Сообщения: 749
Карма: 10
Вот рабочий вариант проверки баланса перед переоформлением договора.
В конфигурации сервера прописываем
Код:
action.event_contract_WrapContract=before

Создаем Скрипт поведении с событием перед действием
Код:
import bitel.billing.server.contract.bean.*;

bu = new BalanceUtils( con );
cid = event.getContractID();
time = event.getGenerateTime();
float balance = bu.getBalance( time, cid );
if (balance < 0){
print("ok");
event.setError( "На счету не достаточно средств для переоформления договора", false );
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 16:38 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
madmax писал(а):
Код:
import bitel.billing.server.contract.bean.*;

bu = new BalanceUtils( con );
cid = event.getContractID();
time = event.getGenerateTime();
float balance = bu.getBalance( time, cid );
if (balance < 0){
print("ok");
event.setError( "На счету не достаточно средств для переоформления договора", false );
}


BalanceUtils.getBalance() возвращает java.math.BigDecimal сравнивать который надо не обычными ">" или "<", а compareTo()
Если Вам уж так нужен float, хотя если надо просто сравнить, то я даже не представляю зачем, то почему бы не воспользоваться floatValue()? про cast я в курсе, но все же ...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 16:49 
Не в сети

Зарегистрирован: 19 дек 2008, 17:46
Сообщения: 749
Карма: 10
Да верно.
Так будет лучше
Код:
import bitel.billing.server.contract.bean.*;

bu = new BalanceUtils( con );
cid = event.getContractId();
if(bu.getBalance(new Date(), cid).floatValue()<0){
print("ok");
event.setError( "На счету не достаточно средств для переоформления договора", false );
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.061s | 36 Queries | GZIP : On ]