Биллинговая система Nodeny
25 Апреля 2024, 10:58:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3 4
  Печать  
Автор Тема: rev 267. Еще один способ "не уходить в минус"  (Прочитано 23848 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« : 24 Августа 2014, 20:23:32 »

Эта ревизия и несколько предыдущих добавляют некоторые механизмы в локализацию, работа пока не завершена.

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

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

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

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

Клиент пополняет счет через 3 дня и ему с ЭТОГО момента подключается услуга стоимостью 100 грн и длится ровно столько времени, сколько в ней прописано
« Последнее редактирование: 31 Июля 2015, 00:40:25 от Efendy » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 24 Августа 2014, 20:28:16 »

Кстати, если никто не возражает, то в services.cfg я уберу похожий, но менее удобный вариант:

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

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

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

Карма: 62
Offline Offline

Сообщений: 546


Подяку в КАРМУ


Просмотр профиля WWW
« Ответ #2 : 24 Августа 2014, 20:37:18 »

я за  Смеющийся
Записан

Приймаю подяку у вигляді карми... та/або грошей Подмигивающий
t.me/MrMethod
xspirit
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #3 : 27 Августа 2014, 11:54:02 »

Апдейт это хорошо, но куда делся tune.cfg...
Код:
Патчим cfg/tune.cfg модулями pingserver
[!] Не могу прочитать файл cfg/tune.cfg
Записан
YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #4 : 27 Августа 2014, 11:59:13 »

заново нужно модули качать и распаковывать. если они конечно есть в личном кабинете)
http://forum.nodeny.com.ua/index.php?topic=2546.msg26134#msg26134
Записан
xspirit
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #5 : 27 Августа 2014, 12:00:30 »

да собственно модули я и скачал заново
Записан
YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #6 : 27 Августа 2014, 12:12:54 »

tune.cfg переехал в подпапки языков. RU  и UA соответственно.
нужно менять адресс в первой строке.
Код:
#<ACTION> file=>'cfg/tune.cfg',hook=>'end'
на
Код:
#<ACTION> file=>'cfg/RU/tune.cfg',hook=>'end'

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

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #7 : 27 Августа 2014, 12:22:24 »

Понял, спасибо, пока симлинк сделаю....
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #8 : 27 Августа 2014, 14:42:29 »

Я сначала хотел посоветовать симлинк, но потом подумал, что с ним проблема растянется - лучше сразу пофиксить во всех местах патчи
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #9 : 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);"

как правильно поправить?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #10 : 27 Августа 2014, 16:33:22 »

во-первых, я уже изменил эту строку. Во-вторых, если фрагмент уже есть, то нужно указать бОльший фрагмент - захватить соседние строки
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #11 : 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;
   
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #12 : 27 Августа 2014, 17:57:33 »

проблема с патчем только в users.pl
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #13 : 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);
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #14 : 28 Августа 2014, 08:48:50 »

Вообщем как ни пробовал все равно пишет есть фрагмент или не найдено, Стас поправь патч плиз, теперь ругается тут Adm->chk_privil('Admin') or last; - фрагмент не найден
Записан
Страниц: [1] 2 3 4
  Печать  
 
Перейти в:  

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