Биллинговая система Nodeny
24 Ноября 2024, 00:51:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Не замораживать услугу при балансе > -10 (Обратная совместимость с nodeny50)  (Прочитано 4178 раз)
dimonous
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 34


Просмотр профиля
« : 29 Июля 2015, 15:10:34 »

Добрый день, коллеги.

При переходе с Nodeny50 на Nodeny+ столкнулся с проблемой:

Описание:
В старом биллинге абонентам было разрешено пользоваться услугами доступа в интернет при балансе до -10 грн., limit_balance = -10. В Nodeny+ же для продления услуги класса "inet_unlim" требуется чтобы на счету была положительная сумма размером "стоимость тарифного плана за период", ведь при продлении услуг поле "limit_balance" игнорируется. Абонплата суточная (в старом - через скрипт 8:* , в новом - услуга с периодом 24 часа).

Почитав документацию и форум, способы решения, частично решающие  проблемы около:
- разрешить залазить в минус: плохо, они залазят в -50 и потом кошмарят техподдержку "почему не заблокировало при -10, я не собираюсь платить";
- модуль "кредит": не пошел, абоненты как оказалось, не заходят в личный кабинет вообще, баланс смотрят в терминалах;

Решение:
Пропатчил services/inet_unlim.pm, добавив условие проверки поля "inet_unlim":
 /usr/local/nodeny/services]# diff backup/inet_unlim.pm inet_unlim
139a140,150
>         # set 0 for datail log
>         my $mode = 0;
>         my $log = Debug->new(
>             -type       => 'file',
>             -file       => '/var/log/debug.txt',
>             -drop_chain => 1,
>             -only_log   => 1,
>         );
>
>
>
143c154
<     if( $service_new->{param}{wait_pos_balance} && $user->{balance} < $service_new->{price} )
---
>     if( $service_new->{param}{wait_pos_balance} && ($user->{balance} - $user->{limit_balance}) < $service_new->{price} )
144a156
>         $log->tolog("Не хватает денег на установку услуги: $uid $user->{balance} $user->{limit_balance} $service_new->{price}");
158a171,172
>         $log->tolog("action-pay");
>
165a180
>         $log->tolog("actions-set_service");

Вопрос:
Может быть в биллинге есть уже встроенное решение для эмуляции поведения "как в старом", как и в теме "Скрипт управления скоростью. Тег для трафика с начала месяца" ?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 30 Июля 2015, 12:49:33 »

Вот прикрепленная тема с вариантами "неухода" в минус http://forum.nodeny.com.ua/index.php?topic=2386.0
Записан
dimonous
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 34


Просмотр профиля
« Ответ #2 : 30 Июля 2015, 16:16:06 »

Всё верно. Я, конечно же, внимательно изучил этот топик когда искал решение поставленной задачи. Там нет решения что называется "exactly", в точности соответствующего требуемому поведению:
    1: не учитывается limit_balance
    2: не учитывается limit_balance
    3: не учитывается limit_blaance
    4: не решает поставленную задачу когда услуга = только одна "like %inet%"
    5: не о том, и опять же не учитывается limit_balance
    6: модуль приостановления услуг, так же как и модуль кредита , решают проблему "сбоку и сзади", не пошли
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!