Биллинговая система Nodeny

Главная категория => Ревизии => Тема начата: Efendy от 24 Августа 2014, 20:23:32



Название: rev 267. Еще один способ "не уходить в минус"
Отправлено: Efendy от 24 Августа 2014, 20:23:32
Эта ревизия и несколько предыдущих добавляют некоторые механизмы в локализацию, работа пока не завершена.

Главное - благодаря идее Redmen, похоже наконец, красиво решена проблема ухода в минус. Спасибо ему за это. Суть:

в услугах (пока только в inet_unlim) появился параметр "Не уходить в минус" - если установить его, то при подключении услуги будет подключена новая со стоимостью 0 денег. При этом длительность услуги будет 1 секунда. Также будет установлен флаг "ждем пополнения счета". Модуль ядра services попытается завершить такую услугу (ведь через секунду она завершается), но сам модуль "посмотрит на баланс" и если денег не хватает - он запрещает завершать услугу. Следующая попытка будет через 2 минуты.

Теперь другими словами для тех, кто не понял техническую реализацию:

У клиента подключена услуга стоимостью 100 грн и в данный момент она завершается. На балансе 99грн. Поскольку денег не хватает для подключения этой услуги - доступ в интернет не дается, баланс не меняется, заглушка показывает "пополните счет", а администратор при просмотре данных услуги у клиента видит: стоимость ПОКА 0 грн, ждем пополнения счета.

Клиент пополняет счет через 3 дня и ему с ЭТОГО момента подключается услуга стоимостью 100 грн и длится ровно столько времени, сколько в ней прописано


Название: Re: rev 267
Отправлено: Efendy от 24 Августа 2014, 20:28:16
Кстати, если никто не возражает, то в services.cfg я уберу похожий, но менее удобный вариант:

Цитировать
# Если после завершения услуги баланс станет отрицательным, то услуги отключаются и создается
# событие "подключить такие-то услуги когда баланс станет достаточным для их подключения"

и чтобы было проще всем, уберу еще и

Цитировать
# Типы услуг, которые не будут завершаться, если баланс отрицательный
# В таком случае услуга завершится и подключится следующая только после пополнения баланса


Название: Re: rev 267
Отправлено: Redmen от 24 Августа 2014, 20:37:18
я за  ;D


Название: Re: rev 267
Отправлено: xspirit от 27 Августа 2014, 11:54:02
Апдейт это хорошо, но куда делся tune.cfg...
Код:
Патчим cfg/tune.cfg модулями pingserver
[!] Не могу прочитать файл cfg/tune.cfg


Название: Re: rev 267
Отправлено: YuSHa от 27 Августа 2014, 11:59:13
заново нужно модули качать и распаковывать. если они конечно есть в личном кабинете)
http://forum.nodeny.com.ua/index.php?topic=2546.msg26134#msg26134


Название: Re: rev 267
Отправлено: xspirit от 27 Августа 2014, 12:00:30
да собственно модули я и скачал заново


Название: Re: rev 267
Отправлено: YuSHa от 27 Августа 2014, 12:12:54
tune.cfg переехал в подпапки языков. RU  и UA соответственно.
нужно менять адресс в первой строке.
Код:
#<ACTION> file=>'cfg/tune.cfg',hook=>'end'
на
Код:
#<ACTION> file=>'cfg/RU/tune.cfg',hook=>'end'

но это костыль.
Думаю Станислав разберется централизованно.


Название: Re: rev 267
Отправлено: xspirit от 27 Августа 2014, 12:22:24
Понял, спасибо, пока симлинк сделаю....


Название: Re: rev 267
Отправлено: Efendy от 27 Августа 2014, 14:42:29
Я сначала хотел посоветовать симлинк, но потом подумал, что с ним проблема растянется - лучше сразу пофиксить во всех местах патчи


Название: Re: rev 267
Отправлено: poxy. от 27 Августа 2014, 16:03:08
В патче :

Код:
#<ACTION> file=>'web/lang/RU_admin.pl',hook=>'priv_descr'

        {  title => 'Клиент' },
    { priv => 201,   title => 'Просмотр списка клиентов' },

#<ACTION> file=>'web/users.pl',hook=>'other_top_menu'

    Adm->chk_privil_or_die(201);
#<ACTION> file=>'web/users.pl',replace=>''
Doc->template('top_block')->{add_info} .= "найдено: $rows";
#<REPLACE>
if (Adm->chk_privil('SuperAdmin')) {
    Doc->template('top_block')->{add_info} .= "найдено: $rows" ;
}

заменяю Doc->template('top_block')->{add_info} .= "найдено: $rows" ; на Doc->template('top_block')->{add_info} .= L('найдено: []', $rows); пишет "[?] в web/users.pl больше чем один фрагмент:
Doc->template('top_block')->{add_info} .= L('найдено: []', $rows);"

как правильно поправить?


Название: Re: rev 267
Отправлено: Efendy от 27 Августа 2014, 16:33:22
во-первых, я уже изменил эту строку. Во-вторых, если фрагмент уже есть, то нужно указать бОльший фрагмент - захватить соседние строки


Название: Re: rev 267
Отправлено: poxy. от 27 Августа 2014, 16:38:38
Можешь поправить патч :

Цитировать
#<ACTION> file=>'web/lang/RU_admin.pl',hook=>'priv_descr'

        {  title => 'Клиент' },
    { priv => 201,   title => 'Просмотр списка клиентов' },

#<ACTION> file=>'web/users.pl',hook=>'other_top_menu'

    Adm->chk_privil_or_die(201);
#<ACTION> file=>'web/users.pl',replace=>''
Doc->template('top_block')->{add_info} .= "найдено: $rows";
#<REPLACE>
if (Adm->chk_privil('SuperAdmin')) {
    Doc->template('top_block')->{add_info} .= "найдено: $rows" ;
}
#<ACTION> file=>'web/users.pl',replace=>''
my($sql, $page_buttons, $rows, $db) = Show_navigate_list($Sql, $start, $max_lines, $UrlF);
#<REPLACE>
if (!Adm->chk_privil('SuperAdmin')) {
    $max_lines = 1;
}
my($sql, $page_buttons, $rows, $db) =  Show_navigate_list($Sql, $start, $max_lines, $UrlF);
    if (!Adm->chk_privil('SuperAdmin')) {
    $page_buttons = '';
}
#<ACTION> file=>'web/main.pl',replace=>'',after=>'turbosms'
    $SuperAdmin or last;
    $cfg::turbosms_db_pass or last;
#<REPLACE>
#$SuperAdmin or last;
$cfg::turbosms_db_pass or last;
#<ACTION> file=>'web/ajUserIpList.pl',replace=>'',after=>'dhcp'
    push @mac_lines, url->a($mac, a=>'op', op=>'edit', act=>'mac_uid', id=>$p{id});
#<REPLACE>
            if (Adm->chk_privil('Admin')) {
                push  @mac_lines, url->a($mac, a=>'op', op=>'edit', act=>'mac_uid', id=>$p{id});
            }
#<ACTION> file=>'web/ajUserMenu.pl',replace=>'',after=>'turbosms'
    Adm->chk_privil('Admin') or last;
#<REPLACE>
    #Adm->chk_privil('Admin')  or last;
   


Название: Re: rev 267
Отправлено: poxy. от 27 Августа 2014, 17:57:33
проблема с патчем только в users.pl


Название: Re: rev 267
Отправлено: Efendy от 28 Августа 2014, 07:26:30
Да, обнаружился бок - нельзя заменить тем же самым фрагментом - оно его снова находит, поэтому заменяй
не на Doc->template('top_block')->{add_info} .= "найдено: $rows" ;
а на Doc->template('top_block')->{'add_info'} .= "найдено: $rows" ;
(добавил кавычки)

Кстати, этот фрагмент уже иной: Doc->template('top_block')->{add_info} .= L('найдено: []', $rows);


Название: Re: rev 267
Отправлено: poxy. от 28 Августа 2014, 08:48:50
Вообщем как ни пробовал все равно пишет есть фрагмент или не найдено, Стас поправь патч плиз, теперь ругается тут Adm->chk_privil('Admin') or last; - фрагмент не найден


Название: Re: rev 267
Отправлено: Efendy от 28 Августа 2014, 09:30:20
Вообщем как ни пробовал все равно пишет есть фрагмент или не найдено, Стас поправь патч плиз, теперь ругается тут Adm->chk_privil('Admin') or last; - фрагмент не найден
я у себя попробовал твой патч (исправил только фрагмент - см. в предыдущем моем сообщении) и все сработало


Название: Re: rev 267
Отправлено: poxy. от 28 Августа 2014, 09:56:14
Разобрался, спасибо.


Название: Re: rev 267
Отправлено: ivanmfan от 31 Августа 2014, 11:22:08
Получайте патч, думаю он всем нужен.
Это патч для модуля "Кредит" теперь выдает кредит в таких случаях
1) У абона отрицательный баланс
2) У абона услуга в режиме ожидания т.е. то что реализовал Стас
3) У абона услуга вот вот закончится... т.е. кредит даете вы на 10 дней а услуга закончится через 5 то он может взять кредит на 10 дней...
Так же все эти 3 условия суммируются, т.е. денег в кредите хватит что бы у абона работал инет.

Эти все доп условия работают с любым типом услуг так же с base


Название: Re: rev 267
Отправлено: Belos от 31 Августа 2014, 11:38:00
Цитировать
Вам не требуEтся кредит в данный момент!


Название: Re: rev 267
Отправлено: ivanmfan от 31 Августа 2014, 11:44:09
Цитировать
Вам не требуEтся кредит в данный момент!

Перезалил)


Название: Re: rev 267
Отправлено: Redmen от 31 Августа 2014, 11:56:00
+ карма

#<ACTION> file=>'web/lang/UA_user.pl',replace=>'',after=>'credit'
    submit_msg          => 'Отримати кредит',
#<REPLACE>
    submit_msg          => 'Отримати кредит ',
    no_need_credit          => 'Вам не потрібен кредит в даний момент!',


Название: Re: rev 267
Отправлено: ivanmfan от 31 Августа 2014, 12:05:58
+ карма

#<ACTION> file=>'web/lang/UA_user.pl',replace=>'',after=>'credit'
    submit_msg          => 'Отримати кредит',
#<REPLACE>
    submit_msg          => 'Отримати кредит ',
    no_need_credit          => 'Вам не потрібен кредит в даний момент!',
Спс, перезалил)


Название: Re: rev 267
Отправлено: poxy. от 31 Августа 2014, 16:27:12
Выдает нулевой кредит когда он не нужен (баланс больше 0)+снимает комиссию... Или я что то не понял?


Название: Re: rev 267
Отправлено: Docent от 31 Августа 2014, 23:45:40
в услугах (пока только в inet_unlim) появился параметр "Не уходить в минус" - если установить его, то при подключении услуги будет подключена новая со стоимостью 0 денег. При этом длительность услуги будет 1 секунда. Также будет установлен флаг "ждем пополнения счета". Модуль ядра services попытается завершить такую услугу (ведь через секунду она завершается), но сам модуль "посмотрит на баланс" и если денег не хватает - он запрещает завершать услугу. Следующая попытка будет через 2 минуты.

У всех не сработала данная функция? или только я такой счастливый
Почти во всех тарифах установил параметр "Не уходить в минус" в состояние ДА
На счету у абонента 100грн, стоимость услуги 65грн
Все равно тариф не включился


Название: Re: rev 267
Отправлено: poxy. от 01 Сентября 2014, 00:06:47
У меня работает.


Название: Re: rev 267
Отправлено: poxy. от 01 Сентября 2014, 00:12:52
как изменить модуль кредита чтоб давался при балансе равном нулю, для фичи "не уход в минус"

PS верхний вариант не заработал


Название: Re: rev 267
Отправлено: poxy. от 01 Сентября 2014, 07:45:26
И еще помимо кредита на выдачу при балансе=0, сделать бы фильтр "Будет активирована когда будет достаточно финансов".


Название: Re: rev 267
Отправлено: Efendy от 01 Сентября 2014, 10:18:37
PS верхний вариант не заработал
так работает или не работает фича?


Название: Re: rev 267
Отправлено: poxy. от 01 Сентября 2014, 11:08:59
Фича работает как часы! Я имел ввиду что патч к кредиту не работает. Поэтому и просьба сделать возможным брать кредит при этой фиче, а также фильтр поиска по ней. Спасибо.


Название: Re: rev 267
Отправлено: SerjioMati от 01 Сентября 2014, 12:11:33
автор ivanfan


Название: Re: rev 267
Отправлено: poxy. от 01 Сентября 2014, 12:46:27
автор ivanfan
ну не работает этот патч у меня, он дает и при положительном и при отрицательном, и даже отрицательный кредит  :o


Название: Re: rev 267
Отправлено: ivanmfan от 01 Сентября 2014, 19:10:27
автор ivanfan
ну не работает этот патч у меня, он дает и при положительном и при отрицательном, и даже отрицательный кредит  :o
Готово)


Название: Re: rev 267
Отправлено: ivanmfan от 01 Сентября 2014, 20:36:09
Прошу прощения, ошибся. Вот последняя работающая версия


Название: Re: rev 267
Отправлено: Docent от 01 Сентября 2014, 22:54:27

У всех не сработала данная функция? или только я такой счастливый
Почти во всех тарифах установил параметр "Не уходить в минус" в состояние ДА
На счету у абонента 100грн, стоимость услуги 65грн
Все равно тариф не включился


После перезарузки сервера все заработало

Единственный минус данной функции что он включает услугу только при оплате полной стоимости услуги.

Объясняю на пальцах
Самое большое неудобство это когда абонент спустя 5-10 дней после начала месяца придет оплачивать интернет
Девочке кассиру, придется посчитать вручную сколько денег за этот месяц должен оплатить абонент.
Потом положить всю сумму тарифа на счет, дождаться когда произойдет автоматическая активация абона
И только потом списать с его счета лишние (не оплаченные) деньги
А если очередь собралась...
Или как объяснить человеку который оплачивает через privat24
Что он должен положить всю сумму за услугу, а остаток получит в виде бонуса не следующий месяц
Некоторые за 10 коп удавятся...

Вот еще одна неточность
У нас услуги работают в режиме "конец месяца"
У абонента на счету лежит сумма в 64.5 грн
Стоимость услуги 65 грн в месяц
Получается что примерно через 6 часов после начала месяца сумма на его счету уже достаточная для активации услуги
Но активация не происходит пока вся сумма за услугу не будет лежать на счету
После пополнения счета услуга включается а остаток средств зачисляется на счет


Название: Re: rev 267
Отправлено: poxy. от 02 Сентября 2014, 06:13:36
Эта ревизия и несколько предыдущих добавляют некоторые механизмы в локализацию, работа пока не завершена.

Главное - благодаря идее Redmen, похоже наконец, красиво решена проблема ухода в минус. Спасибо ему за это. Суть:

в услугах (пока только в inet_unlim) появился параметр "Не уходить в минус" - если установить его, то при подключении услуги будет подключена новая со стоимостью 0 денег. При этом длительность услуги будет 1 секунда. Также будет установлен флаг "ждем пополнения счета". Модуль ядра services попытается завершить такую услугу (ведь через секунду она завершается), но сам модуль "посмотрит на баланс" и если денег не хватает - он запрещает завершать услугу. Следующая попытка будет через 2 минуты.

Теперь другими словами для тех, кто не понял техническую реализацию:

У клиента подключена услуга стоимостью 100 грн и в данный момент она завершается. На балансе 99грн. Поскольку денег не хватает для подключения этой услуги - доступ в интернет не дается, баланс не меняется, заглушка показывает "пополните счет", а администратор при просмотре данных услуги у клиента видит: стоимость ПОКА 0 грн, ждем пополнения счета.

Клиент пополняет счет через 3 дня и ему с ЭТОГО момента подключается услуга стоимостью 100 грн и длится ровно столько времени, сколько в ней прописано

Появилось сообщение:

Цитировать
Уровень проблемы   Проблема
3   Есть услуги, которые должны были быть завершены больше суток назад

Я так понимаю из за "не уходить в минус" как сделать чтоб не появлялось?


Название: Re: rev 267
Отправлено: poxy. от 02 Сентября 2014, 06:24:25
Прошу прощения, ошибся. Вот последняя работающая версия
Да работает, но теперь не выдает клиентам с услугами без "не уходить в минус"


Название: Re: rev 267
Отправлено: ivanmfan от 02 Сентября 2014, 07:20:47
Прошу прощения, ошибся. Вот последняя работающая версия
Да работает, но теперь не выдает клиентам с услугами без "не уходить в минус"
Профи тестер! Спс, вот еще посмотри плиз)


Название: Re: rev 267
Отправлено: poxy. от 02 Сентября 2014, 07:36:23
Прошу прощения, ошибся. Вот последняя работающая версия
Да работает, но теперь не выдает клиентам с услугами без "не уходить в минус"
Профи тестер! Спс, вот еще посмотри плиз)
Работает, Спасибо в карму )


Название: Re: rev 267
Отправлено: Efendy от 02 Сентября 2014, 09:14:45
Появилось сообщение:

Цитировать
Уровень проблемы   Проблема
3   Есть услуги, которые должны были быть завершены больше суток назад

Я так понимаю из за "не уходить в минус" как сделать чтоб не появлялось?
пофикшу


Название: Re: rev 267
Отправлено: poxy. от 02 Сентября 2014, 09:38:35
Появилось сообщение:

Цитировать
Уровень проблемы   Проблема
3   Есть услуги, которые должны были быть завершены больше суток назад

Я так понимаю из за "не уходить в минус" как сделать чтоб не появлялось?
пофикшу
Спасибо, добавь фильтр плиз по тарифам с "не уходом в минус"


Название: Re: rev 267
Отправлено: Efendy от 02 Сентября 2014, 15:36:38
Появилось сообщение:

Цитировать
Уровень проблемы   Проблема
3   Есть услуги, которые должны были быть завершены больше суток назад

Я так понимаю из за "не уходить в минус" как сделать чтоб не появлялось?
пофикшу
Спасибо, добавь фильтр плиз по тарифам с "не уходом в минус"
Пофиксил. Фильтр добавил


Название: Re: rev 267
Отправлено: Efendy от 02 Сентября 2014, 16:20:31
Вот еще одна неточность
У нас услуги работают в режиме "конец месяца"
У абонента на счету лежит сумма в 64.5 грн
Стоимость услуги 65 грн в месяц
Получается что примерно через 6 часов после начала месяца сумма на его счету уже достаточная для активации услуги
Но активация не происходит пока вся сумма за услугу не будет лежать на счету
После пополнения счета услуга включается а остаток средств зачисляется на счет
подумаю как это пофиксить


Название: Re: rev 267
Отправлено: Warlock от 13 Октября 2014, 07:33:12
Когда услуга заморожена и прописана скидка, к примеру 50%, она не подлючается заново, пока не будет накинута полная стоимость услуги... как исправить?


Название: Re: rev 267
Отправлено: Warlock от 03 Декабря 2014, 08:38:29
Добрый день!
Решился ли в нговых ревизиях вопрос со скидкой?


Название: Re: rev 267
Отправлено: Warlock от 07 Декабря 2014, 17:10:15
ап


Название: Re: rev 267
Отправлено: kosmich от 05 Января 2016, 11:09:41
Вот еще одна неточность
У нас услуги работают в режиме "конец месяца"
У абонента на счету лежит сумма в 64.5 грн
Стоимость услуги 65 грн в месяц
Получается что примерно через 6 часов после начала месяца сумма на его счету уже достаточная для активации услуги
Но активация не происходит пока вся сумма за услугу не будет лежать на счету
После пополнения счета услуга включается а остаток средств зачисляется на счет
подумаю как это пофиксить
Стоимость услуги 65 грн в месяц. Не 64.5, не 66, не 60.48, а ровно 65 !!!

Зачем это фиксить ? Это привычная, нормальная, ожидаемая "помесячная" абонплата.
Предлагаю сделать возможность выбора вариантов этой опции, кому необходимо пусть настраивает эту опцию(фикс), кому это ненужно пусть пользуется как есть с патчем ivanmfan.

Например есть компания, тарифы только "помесячные", с соответствующей абонплатой, с патчем ivanmfan(+ в карму) всех всё утраивает.
И тут такая "подача", биллинг вдруг "стал честный", стал считать на своё усмотрение сколько необходимо оплатить за месяц если какой то абонент (по неважно какой причине) решил неоплатить услуги заблаговременно, а решил пополнить 1-2-5-10го числа, в итоге компания недополучила прибыль на которую расчитывала раньше, WTF ?! (это просто возмущение в слух)
У нас же не посуточные тарифы ! Договора есть, в которых указана логика списания, действие тарифов.
Бухгалтерии как прикажете такую (в случае фикса) херню с абонплатами разгребать ?!

Проведите аналогию с текущей абонплатой Фрегата, Даты, Вега например, там именно так и начисляют абонплату, 65 и неипет какого числа после начала месяца оплатил.
Хочеш шаровые/доступные тарифы - плати заблаговременно.

Предлагаю, если это возможно, запилить патч ivanmfan в виде опции в базовый функционал биллинга.


Название: Re: rev 267
Отправлено: kosmich от 05 Января 2016, 14:40:28
Прошу прощения, ошибся. Вот последняя работающая версия
Да работает, но теперь не выдает клиентам с услугами без "не уходить в минус"
Профи тестер! Спс, вот еще посмотри плиз)
Патч актуален для последней версии биллинга ? Что то неполучается поставить, материться.


Название: Re: rev 267
Отправлено: kosmich от 24 Апреля 2017, 18:15:37
Патч актуален для последней версии биллинга ?
С тех пор вопрос решен, патч на текущий момент актуален ? Из коробки планируется или уже работает ?


Название: Re: rev 267
Отправлено: ivanmfan от 12 Июня 2017, 15:02:52
Патч актуален для последней версии биллинга ?
С тех пор вопрос решен, патч на текущий момент актуален ? Из коробки планируется или уже работает ?
Привет, я посмотрел последнюю версии модуля кредита, если я все верно понял по коду, то возможность взять кредит для замороженной услуги есть, но я не устанавливал не пробовал) Т.е. последняя версия модуля кредита должна работать так же как с моим патчем на старую версию