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

[SOLVED] OpenPeriodRequestEvent и setProcessed()
http://forum.bitel.ru/viewtopic.php?f=5&t=4211
Страница 1 из 1

Автор:  snark [ 24 июн 2010, 21:37 ]
Заголовок сообщения:  [SOLVED] OpenPeriodRequestEvent и setProcessed()

дока говорит нам:
Цитата:
void setProcessed(boolean processed)
Устанавливает, обработан ли запрос

вдогонку ей статья в вики сообщает:
Цитата:
Если скрипт обработки был найден, но не поставил флаг processed в запросе, то выдается ошибка авторизации.

и если я правильно понимаю, то тупейший скрипт вида (пример):
Код:
import bitel.billing.server.dialup.bean.event.*;
event.setProcessed(false);

должен не обработать запрос учетного периода и выдать нам ошибку авторизации, верно? а вот и нет, не верно :( авторизация проходит как ни в чем ни бывало, хотя да, учетный периода не создается (впрочем данный недоскрипт даты не проставляет и посему в клиенте его не видно)

основной (вечный?) вопрос - что делать? как в запросе учетного периода прервать авторизацию? желательно прервать ее так чтобы можно было в скрипте авторизации "сказать" почему, т.е. выдать некие атрибуты ...

Автор:  Администратор [ 25 июн 2010, 15:37 ]
Заголовок сообщения:  Re: ВАЖНО OpenPeriodRequestEvent и setProcessed()

Такой должен прервать авторизацию.

Код:
import bitel.billing.server.dialup.bean.event.*;
event.setProcessed(true);

Автор:  snark [ 25 июн 2010, 18:05 ]
Заголовок сообщения:  Re: ВАЖНО OpenPeriodRequestEvent и setProcessed()

суть такова ... у меня все тарифы пляшут от учетного периода и под это дело написан скрипт (как доведу до ума - выложу в вики) запроса учетного периода который проверяет наличие денег и если дене хватает - обрабатывает запрос, проставляя услугам даты и ставя, согласно доке
Код:
event.setPeriodStart(<дата начала периода>);
event.setPeriodEnd(<дата окончания периода>);
event.setProcessed(true);

а если денег нет - надо не обработать запрос и прервать авторизацию ... вот это я, хоть убейте, не пойму как сделать :( в теории
Код:
event.setProcessed(false);

это и должен делать, насколько я понял его описание, но ... но теперь Вы пишите что
Код:
event.setProcessed(true);

прервет авторизацию ... я в смятении, если честно :( т.к. насколько я понимаю boolean, то true говорит что все ОК, а false говорит что не все спокойно в датском королевстве, так?
помогите, люди добрые, сами мы не местные ...

Автор:  Amir [ 25 июн 2010, 19:19 ]
Заголовок сообщения:  Re: ВАЖНО OpenPeriodRequestEvent и setProcessed()

setProcessed( true ) означает только что обработка была. Изначально processed = false и, если скрипта учетного периода вообще нет, то так и останется.
Если от скрипта зависит создавать ли учетный период или нет - он должен в начале установить setProcessed( true ), а потому уже проверять баланс и устанавливать период.
Т.е. если нужен новый учетный период - выполняется скрипт, если processed = true - проверяется что даты периода не null, если хотя бы одна дата null - отключаем.
Если же processed = false - то считаем что учетный период не нужен вообще.

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