BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 мар 2024, 14:59

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Режим активации учетного периода
СообщениеДобавлено: 12 янв 2019, 16:52 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
Доброго времени суток.
В документации модуля inet 7.1 имеется такой момент.

Код:
# Режим активации учетного периода, если не используется скрипт на событие активации,
# 0 (по умолчанию) - активация со дня подключения (старта сессии), 1 - активация с начала месяца.
# Следует учитывать, что учетный период является второй величиной при вычислении пропорциональности
# в тарифной ветке "Диапазон трафика"
#accounting.period.activation.mode=0


Ранее использовался модуль DialUp учетные периоды выставлялись самописным скриптом активации, имеется ли возможность вообще отключить автоматическое выставление учетного периода? Или переписать логику выставления учетного периода?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 янв 2019, 17:13 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
у вас же по тексту из документации и есть ответ
Цитата:
если не используется скрипт на событие активации

Вам вообще прописывать accounting.period.activation.mode не нужно. Сделайте скрипт и выставляйте период как требуется.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2019, 21:48 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
Если затереть этот параметр, то учетный период выставляется как с параметром 0. Подскажите пожалуйста , как правильно перехватить событие активации, чтобы самостоятельно описать логику постановки учетного периода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2019, 23:18 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
На просторах форума нашел пример скрипта на событие InetAccountingPeriodActivateEvent

Но что то не работает, как выставлялся период по умолчанию с момента активации , так и выставляется.

Код:
public class addCalculatePeriodCustom
        extends EventScriptBase<InetAccountingPeriodActivateEvent>
{

    @Override
    public void onEvent (InetAccountingPeriodActivateEvent event, Setup setup, ConnectionSet connectionSet )
            throws Exception
    {
        int cid = event.getContractId();       

        InetAccountingPeriod inetAccountingPeriod = new InetAccountingPeriod();
        inetAccountingPeriod.setContractId(cid);

        inetAccountingPeriod.setDateFrom(new Date());

        Calendar calendar = (Calendar)event.getTime().clone();
        calendar.add( Calendar.DATE, 30 );
        inetAccountingPeriod.setDateTo( calendar.getTime() );

        inetAccountingPeriod.setDateTo(TimeUtils.getNextDay( calendar.getTime() ));
        inetAccountingPeriod.setUserId(event.getUserId());

        event.setAccountingPeriod(inetAccountingPeriod);
    }

}


На договоре соответственно выставил скрипт поведения . в скриптах поведения привязал на событие МодульInet- запрос учетного периода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2019, 23:25 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Если скрипт берет активацию на себя, то должен быть вызов
event.setProcessed(true);

https://forum.bitel.ru/viewtopic.php?f= ... iod#p55425

Если период не с точностью до дней, а с точностью до секунд (т.е. период будет заканчиваться не в 23:59:59, а в любое указанное скриптом время), то также нужно вызвать
event.setUseSeconds(true);


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2019, 23:26 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
О, как оперативно!!! Благодарю, сейчас попробую!!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 мар 2019, 07:45 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
Все же использование этого события для нас не очень удобно,учетный период выставляется в глобальном скрипте, со своей логикой. Подскажите, а можно ли совсем отключить стандартный функционал ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 мар 2019, 16:34 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Повесить обработку в скрипте "По умолчанию (применяется ко всем договорам)" и в обработке делать только event.setProcessed(true).
В планировщике использовать AccountingPeriodService (он бросает события об изменении учетного периода, которые слушают InetAccess/Accounting).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 мар 2019, 19:25 
Не в сети

Зарегистрирован: 24 янв 2017, 15:32
Сообщения: 86
Карма: 0
Спасибо!


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

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


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

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


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

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