BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 02 окт 2022, 18:57

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




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 29 июн 2016, 03:23 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
мне как бы не понятна задача запрета смены тарифа при недостатке денег

т.е. на новый тариф нельзя перейти если не хватает денег, а если и на текущем тариф не хватает, что делать?

и если на текущем можно с недостатком денег на балансе существовать, почему нельзя также и на новый перейти и там остаться с недостатком...


Ну такой пример - 100 р. на балансе и на текущем тарифе абонент может продолжать работать. Если перейдёт на новый, на котором подписка 200р стОит, то уйдёт в минус и работать не сможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 29 июн 2016, 12:07 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
skn писал(а):
мне как бы не понятна задача запрета смены тарифа при недостатке денег

т.е. на новый тариф нельзя перейти если не хватает денег, а если и на текущем тариф не хватает, что делать?

и если на текущем можно с недостатком денег на балансе существовать, почему нельзя также и на новый перейти и там остаться с недостатком...


Ну такой пример - 100 р. на балансе и на текущем тарифе абонент может продолжать работать. Если перейдёт на новый, на котором подписка 200р стОит, то уйдёт в минус и работать не сможет.


ну в минус не уйдет, просто подписка не активируется, а если у него и на текущую не хватает тогда, что клиенту делать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 17 авг 2016, 14:06 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Нужен совет.

На текущий момент сделал такую логику:
На договорах заранее добавлены все возможные для использования подписки.
В ТП присутствует только одна, используемая на данном тарифе.
Клиент производит смену ТП в ЛК. По событию смены ТП из ЛК создаю новый учётный период для подписки.
Учётный период создаётся со временем начала действия ТП, которое клиент указал в ЛК, т.е. учётный период создаётся в будущем.
До наступления времени начала действия ТП, клиент может отменить переход на ТП в ЛК.
Что можно в этом случае сделать с учётным периодом подписки?
Отменить нельзя. Удалить нельзя (или можно через sql, но неизвестно в какие проблемы это выльется).

Наверное было бы правильным не создавать учётный период в будущем, но тогда к какому событию можно привязать создание учётного периода подписки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 17 авг 2016, 15:38 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
так как ТП активируются с точностью до суток
то может просто сделать скрипт который будет запускаться по планировщику каждый день в 00 часов и будет создавать учетные периоды для нужных подписок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 18 авг 2016, 03:24 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
так как ТП активируются с точностью до суток
то может просто сделать скрипт который будет запускаться по планировщику каждый день в 00 часов и будет создавать учетные периоды для нужных подписок


Да, похоже что при создании подписки в будущем ломается какая-то логика модуля, потому-что в 00 часов приходит событие окончания подписки вместо события активации.

А возможно-ли при описанной мной схеме (когда все подписки заведены на договоре, а в ТП только одна из них), что активацию учётного периода надо будет делать только один единственный раз, когда клиент впервые переходит на договор с подписками?
На подписке стоит автопродление. Если в прошлом уже был активирован учётный период, клиент через какое-то время опять перешел на другой ТП с другой подпиской или вообще на ТП без подписок, а затем опять же через какое-то время вернулся на ТП с подпиской у которой уже был в прошлом активирован учётный период, то из-за автопродления новый учётный период создастся автоматически же?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 18 авг 2016, 10:41 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
автопродление происходит только по событию, в текущей реализации, по приходу платежа и по окончанию предыдущего учетного периода, можно добавить событие "автопродление подписок", а это событие кидать из какого нибудь скрипта в нужные моменты


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 25 авг 2016, 07:20 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Помогите разобраться с событиями.
На договоре есть подписка, денег на продление хватает. Происходит в 00 часов окончание подписки и тут же её продление.
Вот что вижу server.mq.log:
Код:
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014
08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedTopicEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013011
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013011
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.api.server.event.InetAccountingPeriodModifiedEvent] moduleId: 13; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013018
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014
08-25/00:00:13  INFO [event-proc-p-2-t-1] BalanceEventProcessor - Process event cid:21922; event:Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013014
08-25/00:00:13  INFO [event-proc-p-2-t-1] Module - Sending state disable to inetServ[id: 1]
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 13; pluginId: no; cid: 21922; scid: -1; userId: 0; deviceId: 2; inetServId: 1; connectionId: 0; state: 0; accessCod
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408
08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedTopicEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:14 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:14 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407
08-25/00:00:14 DEBUG [ActiveMQ Session Task] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:14  INFO [ActiveMQ Session Task] ContractRuntimeMap - Taked event: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusModifiedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013985
08-25/00:00:16 DEBUG [event-proc-p-2-t-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent] moduleId: 0; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040016237


Вот что вижу в scripts.log:
Код:
08-25/00:00:13  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 on cid=21922 subscriptionId=1
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[74]: set Close contract status on cid=21922
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[93]: lastRegistrationPeriod=24.08.2016 00:00:13 - 25.08.2016 00:00:13 fromDate=2016-08-24 00:00:13.0 toDate=2016-08-25 00:00:13.0
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[103]: found inet accounting period id=3911, trying to close it at 2016-08-25 00:00:13.0 on cid=21922
08-25/00:00:13  INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 11
08-25/00:00:13  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 on cid=21922 subscriptionId=1
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[68]: current contract cid=21922 status=3
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[76]: set Active contract status on cid=21922
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[83]: subscription.getId()=1
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[94]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=1 prevSubscription.isActive()=false
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[109]: prevRegistrationPeriodList.size() = 1
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=2 prevSubscription.isActive()=false
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[106]: prevRegistrationPeriodList is null
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[147]: periodList=[]
08-25/00:00:13 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[174]: account period for cid=21922 is created with id=4172 and fromDate=2016-08-25 00:00:23.0 and toDate=Fri Aug 26 00:00:22 PETT 2016
08-25/00:00:13  INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 5
08-25/00:00:14  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent
08-25/00:00:14  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 on cid=21922 subscriptionId=1
08-25/00:00:14  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[74]: set Close contract status on cid=21922
08-25/00:00:16 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[93]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0
08-25/00:00:16  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[103]: found inet accounting period id=4172, trying to close it at 2016-08-26 00:00:23.0 on cid=21922
08-25/00:00:16  INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 2009
08-25/00:00:17  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent
08-25/00:00:17  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 on cid=21922 subscriptionId=1
08-25/00:00:17  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[68]: current contract cid=21922 status=3
08-25/00:00:17  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[76]: set Active contract status on cid=21922
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[83]: subscription.getId()=1
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[94]: lastRegistrationPeriod=25.08.2016 00:00:23 - 26.08.2016 00:00:23 fromDate=2016-08-25 00:00:23.0 toDate=2016-08-26 00:00:23.0
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=1 prevSubscription.isActive()=false
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[109]: prevRegistrationPeriodList.size() = 1
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[102]: prevSubscription.getId()=2 prevSubscription.isActive()=false
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[106]: prevRegistrationPeriodList is null
08-25/00:00:17  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[147]: periodList=[4172: 25.08.2016 00:00:23 - 26.08.2016 00:00:22]
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[154]: found accounting period, trying to close it on cid=21922 by closeDate=Thu Aug 25 00:00:22 PETT 2016
08-25/00:00:17 DEBUG [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[174]: account period for cid=21922 is created with id=4173 and fromDate=2016-08-25 00:00:23.0 and toDate=Fri Aug 26 00:00:22 PETT 2016


Почему-то происходит двойной вызов события по закрытию периода и по открытию:
Код:
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004
08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408
08-25/00:00:13 DEBUG [job-subscription-p-4-t-11] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983
08-25/00:00:14 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407


Код:
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004 on cid=21922 subscriptionId=1
08-25/00:00:13  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013408 on cid=21922 subscriptionId=1
08-25/00:00:14  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionRegistrationPeriodEndEvent - onEvent[57]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013407 on cid=21922 subscriptionId=1
08-25/00:00:17  INFO [dyn-clss-evnt-lstnr-p-5-t-190] mySubscriptionActivateEvent - onEvent[58]: event=Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionActivateEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: 0; timestamp: 1472040013983 on cid=21922 subscriptionId=1


В mySubscriptionRegistrationPeriodEndEvent я изменяю статус договора на Закрыт, ставлю окончание учётного inet-периода равным дате окончания подписки.
Вызываю context.publishAfterCommit(new InetAccountingPeriodModifiedEvent(INET_MID, cid, USER_ID, currentAccountingPeriod, changedAccountingPeriod));
С самой подпиской ничего не делаю.

В mySubscriptionActivateEvent я изменяю статус договора на Активный и создаю новый учётный inet-период с периодом, равным новой подписке.

Почему могут дублироваться события?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 30 авг 2016, 07:02 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Разработчики, может кто-то прокомментировать предыдущий мой пост по дублированию события SubscriptionRegistrationPeriodEndEvent.

Еще одна проблема у меня - предположим на текущий момент есть активная подписка с датой окончания завтра.
Активируется новая подписка и необходимо чтобы первая подписка стала неактивной.
Для этого я создаю новый период с датой окончания равным дате старта новой подписки и вызываю setPeriod.
Но проблема в том, что старый-то период никуда не делся, он остался в БД и триггер по этому периоду остался и job, т.е. события по нему произойдут всё-равно.
Вот как сделать, чтобы события не происходили?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 30 авг 2016, 11:13 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 30 авг 2016, 17:01 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
Прерывание подписки в данный момент не предусмотрено.

Можем ли мы обсудить с вами платную доработку нужного нам функционала модуля Подписок?

А если через sql изменить период, удалить job и триггер?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 31 авг 2016, 09:52 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Прерывать подписку не есть правильно. Ведь за неё списаны средства в полном объеме. Я сделал, что при изменении подписки из ЛК - новая добавляется только с момента завершения активного периода старой и на новую вешается job активации. ТП тоже можно сменить только датой завершения старой подписки. В ТП прописаны все подписки, на договор добавляется нужная. Достаточность средств не отслеживаем, клиенту приходят уведомления о балансе за 3 дня до продления с информацией о стоимости продления. Нет средств для продления - подписка не активируется, нет активной подписки - договор блокируется. Написана кучка обработчиков для этого дела. Всё отлажено и работает чики-пики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 31 авг 2016, 10:17 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП.
Руководство готово заплатить за доработку функционала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 31 авг 2016, 13:16 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Хорошо, такая ситуация: подписка длится месяц, тариф - 1 Мбит/с, произошло списание подписки за весь месяц вперед. И вот клиент хочет перейти на 2Мбит/с через 5 дней, хотя остается до конца еще 25 дней. Что делать? списывать за новую подписку снова за месяц? А ему это понравится? Вам точно Subscription нужен?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 31 авг 2016, 17:52 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП.
Руководство готово заплатить за доработку функционала.


а чем вам мешает старая подписка? зачем ее обязательно закрывать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 13:32 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
по поводу повторений событий...
Код:
08-25/00:00:13 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGScheduler Event[ru.bitel.bgbilling.modules.subscription.server.event.SubscriptionRegistrationPeriodEndEvent] moduleId: 14; pluginId: no; cid: 21922; scid: -1; userId: -1; timestamp: 1472040013004


Судя по фразе "Caught from BGScheduler " событие кидается из планировщика, но в базовом варианте это событие кидается только из job`а... Т.е. второе событие возможно кидается из какого то скрипта, запускаемого из плаинировщика.

возможно в скрипте запускаемом в планировщике идет работа с job (например, добавляется)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 15:28 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Планировщик на отдельной машине?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 16:40 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Нет, планировщик на этой же машине.
Скрипт из планировщика отпадает, т.к. эти события вызываются в момент окончания подписки, в произвольныне вообщем-то моменты времени и даже если бы был скрипт в планировщике, вряд ли бы он каждый раз мог совпадать с этими моментами.

если вы хоть раз запустили в планировщике скрипт который добавляет job то после этого в планировщике будет работать вторая копия JobSheduler, которая будет вычитывать те же задания из БД что и первая копия, и они оба будут пытаться их выполнить. Вторая копия JobSheduler будет работать до перезагрузки шедулера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 16:42 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Первое событие как раз из BGScheduler приходит, что согласитесь странно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 16:50 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
Bazhutyan писал(а):
Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП.
Руководство готово заплатить за доработку функционала.


а чем вам мешает старая подписка? зачем ее обязательно закрывать?

По событию окончания подписки статус договора закрывается.
Абонент может переходить с одного тарифа на другой каждый день, в итоге старых подписок может быть много и по окончании каждой из них договор закроется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 17:06 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
skn писал(а):
Bazhutyan писал(а):
Ждать как раз не нужно. Нам нужно, чтобы клиент мог с любого дня начиная с завтрашнего перейти на другой ТП.
Руководство готово заплатить за доработку функционала.


а чем вам мешает старая подписка? зачем ее обязательно закрывать?

По событию окончания подписки статус договора закрывается.
Абонент может переходить с одного тарифа на другой каждый день, в итоге старых подписок может быть много и по окончании каждой из них договор закроется.


насколько я понимаю закрытие договора происходит скриптом, что мешает в этом скрипте проверять есть ли другие подписки с более поздним сроком окончанием, и если есть то не закрывать статус договора


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 17:07 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Bazhutyan писал(а):
Первое событие как раз из BGScheduler приходит, что согласитесь странно...


Там вроде нашли в чем дело.. А то что от планировщика - это нормально, может такое происходить в некоторых случаях. Т.е задачу может отработать либо сервер или планировщик. Но не должны оба - это исправляют.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 17:15 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
Первое событие как раз из BGScheduler приходит, что согласитесь странно...


а у шедулера случаем не появился job.log


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 17:17 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Файл имеете ввиду? Нет такого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 01 сен 2016, 17:19 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
Файл имеете ввиду? Нет такого.


а что в sheduler.mq.log


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 11 сен 2016, 18:11 
Не в сети
Клиент

Зарегистрирован: 30 авг 2013, 03:37
Сообщения: 183
Карма: 12
Господа! Может вопрос не в тему но про смену ТП.

У нас два ТП: ТП_Действующий и ТП_Новый.
Смену ТП настроил через группы, сама смена работает, но необходимо Провести "Добровольно-принудительный переход" то есть ТП_Новый на ТП_Действующий меняться не должен.
А они или не меняются (в логе - "Тариф не в этой группе") или "Новый" меняется на "Действующий"

Подскажите как периоды правильно выставить?

_________________
BGBilling 7.1.xxxx+BGCRM, update от ВЧЕРА, Ubuntu 17.04 64bit, JAVA 1.8.xxxx


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 12 сен 2016, 15:16 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
В редакторе тарифа ТП_Действующий убрать галочку "v используется". Причём тут периоды ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Смена ТП с подписками через ЛК
СообщениеДобавлено: 12 сен 2016, 19:27 
Не в сети
Клиент

Зарегистрирован: 30 авг 2013, 03:37
Сообщения: 183
Карма: 12
Спасибо помогло! А периоды в Группе ТП есть, я с начало там крутил.

_________________
BGBilling 7.1.xxxx+BGCRM, update от ВЧЕРА, Ubuntu 17.04 64bit, JAVA 1.8.xxxx


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2

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


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

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


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

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