forum.bitel.ru
http://forum.bitel.ru/

Как сделать проверку перед оформлением договора
http://forum.bitel.ru/viewtopic.php?f=19&t=5824
Страница 1 из 1

Автор:  madmax [ 28 авг 2011, 19:18 ]
Заголовок сообщения:  Как сделать проверку перед оформлением договора

Как можно сделать проверку через скрипты проведений перед оформлением договора. В скриптах проведений есть событие Договор переоформлен, но перед переоформлением договора такого события нет.
Хотим перед переоформлением договора сделать проверку на положительный баланс, если положительный то договор можно переоформлять.

Автор:  Phricker [ 29 авг 2011, 00:56 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

Может быть?

Автор:  madmax [ 29 авг 2011, 12:41 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

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

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

Автор:  skyb [ 29 авг 2011, 16:19 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

как напишите скрипт, выложите для общественности ? интересно посмотреть =) (возможно что то себе взять)

Автор:  skn [ 30 авг 2011, 00:53 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

попробуйте так
Код:
action.event_contract_WrapContract=before


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

Автор:  madmax [ 30 авг 2011, 11:48 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

Вот рабочий вариант проверки баланса перед переоформлением договора.
В конфигурации сервера прописываем
Код:
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 );
}

Автор:  snark [ 30 авг 2011, 16:38 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

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 я в курсе, но все же ...

Автор:  madmax [ 30 авг 2011, 16:49 ]
Заголовок сообщения:  Re: Как сделать проверку перед оформлением договора

Да верно.
Так будет лучше
Код:
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 );
}

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/