forum.bitel.ru http://forum.bitel.ru/ |
|
Npay или Subscriptions http://forum.bitel.ru/viewtopic.php?f=60&t=8770 |
Страница 1 из 2 |
Автор: | borisk [ 14 дек 2013, 19:52 ] |
Заголовок сообщения: | Npay или Subscriptions |
Добрый день! Столкнулся с дилеммой. Начальство хочет некой свободы в абонплатах. Пока конечно относительной: месяц, квартал, год. И вроде бы все хорошо, можно использовать подписки, если бы не одно но. Нет, увы функционала "блокировка договора по недостатку средств". И что делать - на npay очень специфичный и написанные под конкретного заказчика квартальный режим, а subscription не блокирует договор. Господа, может все же можно довести какой-нибудь модуль до ума? Мне кажется, что у subscription большой потенциал и задумка хорошая, может прикрутить к нему возможность блокировки договора? |
Автор: | skn [ 14 дек 2013, 22:52 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
у подписок есть генерация событий, по ним можно выполнять любые действия, в том числе блокировку договоров |
Автор: | borisk [ 16 дек 2013, 10:11 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Прошу прощения за нескромный вопрос, а где об этом прочитать в документации? |
Автор: | dimOn [ 16 дек 2013, 13:02 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
про модуль: http://bgbilling.ru/v6.0/doc/ch30.html по классам и событиям (см. ru.bitel.bgbilling.modules.subscription.*): http://bgbilling.ru/v6.0/javadoc/index.html |
Автор: | borisk [ 16 дек 2013, 13:27 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
По модулю то понятно. По классам - документации то как раз и нет, приходится строить догадки В http://bgbilling.ru/v6.0/javadoc/ru/bitel/bgbilling/modules/subscription/server/event/package-summary.html "описаны" всего 3 события! Хотя судя по общему индексу, их больше. Теперь собственно самый главный вопрос - а как мне пригодятся эти события? Описания которое из них и когда возникает нет. Вот практический вопрос - создаю я ежемесячную подписку. При ее активации получу SubscriptionActivateEvent? Когда заканчивается срок подписки получаем SubscriptionRegistrationPeriodEndEvent? Хорошо. Тогда автопродление подписки должно генерировать два события PeriodEnd и ActivateEvent? А как, в случае PeriodEnd узнать будет продляться подписка дальше или нет? |
Автор: | skn [ 16 дек 2013, 16:51 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): При ее активации получу SubscriptionActivateEvent? да borisk писал(а): Когда заканчивается срок подписки получаем SubscriptionRegistrationPeriodEndEvent? да borisk писал(а): Тогда автопродление подписки должно генерировать два события PeriodEnd и ActivateEvent да borisk писал(а): А как, в случае PeriodEnd узнать будет продляться подписка дальше или нет? ну есть код подписки, можно попробовать проанализировать, например есть ли флаг автопродления, периоды, баланс и т.д. |
Автор: | borisk [ 16 дек 2013, 17:38 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Так ведь SubscriptionManager нет Получается по базе лазать? Или все же реализуете? |
Автор: | skn [ 16 дек 2013, 18:58 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Так ведь SubscriptionManager нет Получается по базе лазать? Или все же реализуете? см. SubscriptionUtils Но можно и не лазить, а делать проще на событие окончания периода ставить на договор статус Закрыт с завтрешнего дня а на событие активация статус Активен с текущей даты. |
Автор: | borisk [ 16 дек 2013, 21:05 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Мысль понял, спасибо, обдумаю. |
Автор: | borisk [ 16 дек 2013, 21:07 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
skn писал(а): см. SubscriptionUtils Где смотреть? В доке не нашел такого класса. |
Автор: | skn [ 16 дек 2013, 21:13 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): skn писал(а): см. SubscriptionUtils Где смотреть? В доке не нашел такого класса. http://bgbilling.ru/v6.0/javadoc/ru/bit ... frame.html |
Автор: | borisk [ 16 дек 2013, 22:41 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Совсем забыл немаловажный вопрос. А как у подписок обстоят дела с переобсчетами? Т. е. есть ли у них этот аналог Npay (зависимость наработки от статуса договора)? |
Автор: | skn [ 16 дек 2013, 23:53 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Совсем забыл немаловажный вопрос. А как у подписок обстоят дела с переобсчетами? Т. е. есть ли у них этот аналог Npay (зависимость наработки от статуса договора)? переобсчетов нету, по нескольким причинам 1) так как период подписки может быть произвольным, например год, и стоимость подписки снимается при ее активации, то что делать при переобсчете, править баланс годовой давности и изменять балансы всех месяцев до текущего? 2) подписки активируются только при положительном балансе, например имеем дневные подписки и по ошибке в тарифе указали стоимость 1 руб день вместо 10 руб. У клиента с 1 по 15 число месяца активировалось 15 периодов и списалось 15 руб. Мы запускаем перерасчет... Что должно произойти? клиенту начилить 150 руб и загнать его в минус? или создать несколько периодов пока баланс положительный, а остальные периоды удалить? Но клиент в удаленные периоды пользовался услугой... К тому же при перерасчете на начало очередного периода мы не знаем какой баланс был на тот период (хватало ли денег на новый период)... про зависимость наработки и статуса не понял. |
Автор: | borisk [ 17 дек 2013, 09:45 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Я имел в виду пропорциональное начисление. Договор закрыт пол-месяца, значит только за пол-месяца и начисляем. Эх, и что же делать то. Нужен, по сути, механизм Npay, но с возможностью произвольных периодов subscriptions. |
Автор: | skn [ 17 дек 2013, 13:08 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Я имел в виду пропорциональное начисление. Договор закрыт пол-месяца, значит только за пол-месяца и начисляем. Эх, и что же делать то. Нужен, по сути, механизм Npay, но с возможностью произвольных периодов subscriptions. если речь про досрочное закрытие учетного периода подписки, то такой функционал есть в планах но для его реализации нужен будет механизм резервирования средств и распределения наработки подписки по всему учетному периоду т.е. в момент активации подписки сумма за подписку будет не списывать, а резервироваться, затем например по суточно часть суммы из резерва будет переноситься в наработку, т.о. если мы сегодня решим досрочно закрыть подписку, мы просто закрываем период и возвращаем остаток средств из резерва на баланс текущего месяца и нам не нужно менять и перерасчитывать балансы прошлых месяцев. |
Автор: | borisk [ 17 дек 2013, 14:30 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Звучит здраво. Но тут сразу же следует предусмотреть вариант "безусловной" подписки. То есть не важно, закрыл ты ее до срока или нет, но сумма списалась вся. Ну и самый главный вопрос - а, собственно, когда планируется такая реализация? P.S. И, наверное уже даже догадываюсь, что такие вопросы будут - а зависимость подписки от наработки в других модулях не планируется? Ибо если планировать модуль подписки как замену абонплатам, то это тоже понадобится. |
Автор: | skn [ 17 дек 2013, 17:29 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Звучит здраво. Но тут сразу же следует предусмотреть вариант "безусловной" подписки. То есть не важно, закрыл ты ее до срока или нет, но сумма списалась вся. Ну и самый главный вопрос - а, собственно, когда планируется такая реализация? 1) насчет "безусловной" можно подумать... Там есть еще более сложные ситуации, например если провайдер дает скидки при оплате вперед за определенный период, а клиент разрывает договор раньше срока, вопрос должен ли провайдер возвращать неизрасходованную часть, а если должен то как ее расчитать. 2) по поводу сроков сложно сказать, механизм резервирования штатно есть начиная с 6.1, в 6.0 надо как то костылить, например с помощью перетираемых расходов... borisk писал(а): P.S. И, наверное уже даже догадываюсь, что такие вопросы будут - а зависимость подписки от наработки в других модулях не планируется? Ибо если планировать модуль подписки как замену абонплатам, то это тоже понадобится. Не понимаю с чего решили, что модуль подписок является заменой модуля абонплат, у них разное назначение и разное поведение. Я не понимаю какая зависимость должна быть от наработки...? Стоимость подписки определяется на момент ее активации, как на этот момент можно определить какая наработка будет в других модулях в учетный период подписки не понимаю. |
Автор: | borisk [ 17 дек 2013, 19:07 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Я собственно и не решал, что модуль подписки должен быть вместо абонплаты. Тем более что ранее вы уже об этом писали. Собственно поэтому тему эту и завел, что мне, по сути нужна абонплата. Но модуль Npay в существующем виде мне не подходит. Вот я и начал искать альтернативы. Модуль подписки весьма инетересен, и может быть даже поможет решить мою конкретную задачу, но, вы правы, это не абонплаты. Пойду пообщаюсь в ветке npay, может там что-нибудь подскажут. |
Автор: | borisk [ 11 май 2015, 14:24 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
И снова хочется вернуться к этой теме. Все так же пытаюсь применить subscriptions вместо npay. Есть определенные трудности. Уважаемые разработчики, может подскажете? Самая главная трудность в том, что subscriptions не реагирует на состояние договора, как другие модули. То бишь для него единственный критерий это наличие средств. Для обхода этой ситуации (по консультации с вами в параллельной теме) был использован механизм резерва. Подписки у меня все заканчиваются на границе дня, поэтому был написан скрипт, анализирующий хватает ли средств для активации всех подписок на следующий день, и если не хватает, то договор переводится в статус "приостановлен" (для корректной работы других модулей) и сумма баланса переносится на резерв. Написан обработчик события прихода платежа, который проверяет достаточно ли средств для активации всех подписок, и если да, меняет статус договора и возвращает деньги с резерва. И вот тут кроется (на мой взгляд) подводный камень. Событие PaymentEvent возникает уже после того, как система выполнила все операции с балансом (и, imho, после того как вызвано событие ContractBalanceChangedEvent). А подписки (опять таки imho) реагируют именно на ContractBalanceChangedEvent??? Иначе как подписка активируется (если стоит флаг автопродления) в момент прихода средств? Т. е. может возникнуть ситуация, когда у нас для активации всех подписок требуется 100 рублей, но для активации одной из подписок достаточно 50 рублей. Пользователь положил на баланс 60 рублей и одна из подписок активировалась. Увы, мне же требуется чтобы все подписки активировались одной и той же датой. Можете более подробно описать механизм активации подписок? Ибо я в тупике. Самый замечательный выход, конечно, если вы реализуете реагирование модуля subscriptions на состояние договора. Другой вариант - если бы существовало событие активации подписки возникающее _до_ ее реальной активации, и в этом событии мы могли бы отменять активацию. |
Автор: | skn [ 12 май 2015, 01:58 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
а может не ставить флаг автопродления? а самим обрабатывать событие изменения баланса? или может сделать чтобы на договоре в один момент была только одна подписка? |
Автор: | borisk [ 12 май 2015, 09:01 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Про одну подписку - однозначно не вариант. Про автопродление - подумаю. А неужели событие про активацию подписки такой уж плохой вариант? В этом случае мы сможем сами весьма гибко реализовать логику активации. А реализовать вам его вроде как и не очень трудно. |
Автор: | borisk [ 12 май 2015, 09:12 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Просто ладно у меня на границе дня подписки заканчиваются, а если у кого-то вообще произвольные будут? IMHO должен быть какой-то сдерживающий фактор для подписок кроме баланса. И событие "запрос учетного периода" как в Inet мне видится лучшим вариантом. |
Автор: | skn [ 13 май 2015, 00:32 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Просто ладно у меня на границе дня подписки заканчиваются, а если у кого-то вообще произвольные будут? IMHO должен быть какой-то сдерживающий фактор для подписок кроме баланса. И событие "запрос учетного периода" как в Inet мне видится лучшим вариантом. запрос какого периода? подписка сама и является задающим периодом... |
Автор: | borisk [ 13 май 2015, 11:21 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Погодите, существует событие SubscriptionActivateEvent, возникающее, как я понимаю в момент активации/продления подписки на очередной период. Но, насколько я знаю, для нас это событие исключительно информативное. А вот если бы мы могли им пользоваться по аналогии с InetAccountingPeriodActivateEvent, это было бы здорово. |
Автор: | skn [ 13 май 2015, 18:34 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
вы бы описали задачу целиком, а так не понятно что и зачем хотите. |
Автор: | borisk [ 13 май 2015, 21:18 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Так это продолжение темы. Ищем способ реализации "плавающей" абонплаты. То есть абонплата начилсяется в выбранный абонентом день. Если у абонента нет денег на счету, договор приостанавливается. При поступлении денег на счет датой начисления абонплаты становится это новое число и так по кругу. Деньги за услуги должны списываться сразу в полном объеме в день начисления абонплаты. Денежная компенсация невостребованных услуг не предусматривается. |
Автор: | skn [ 14 май 2015, 03:45 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Абонплата одна? |
Автор: | stark [ 14 май 2015, 13:06 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
borisk писал(а): Так это продолжение темы. Ищем способ реализации "плавающей" абонплаты. То есть абонплата начилсяется в выбранный абонентом день. Если у абонента нет денег на счету, договор приостанавливается. При поступлении денег на счет датой начисления абонплаты становится это новое число и так по кругу. Деньги за услуги должны списываться сразу в полном объеме в день начисления абонплаты. Денежная компенсация невостребованных услуг не предусматривается. Т.е вам нужно что-то вроде механизма дебетовых абонпат, но для подписок. |
Автор: | borisk [ 14 май 2015, 13:18 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
Ну да, об этом и тред И вот всем подписки подходят под эту реализацию, кроме того, что их никак "не остановить" кроме как балансом. Вот и прошу какой-нибудь механизм для этого. |
Автор: | borisk [ 14 май 2015, 13:21 ] |
Заголовок сообщения: | Re: Npay или Subscriptions |
skn писал(а): Абонплата одна? Нет, может быть несколько. Например за собственно услугу инета и + выделенный IP. Но поведение у всех одно - все абонплаты стартуют и останавливаются синхронно, реагируя на статус договора. |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |