Efendy
|
|
« : 24 Августа 2014, 20:23:32 » |
|
Эта ревизия и несколько предыдущих добавляют некоторые механизмы в локализацию, работа пока не завершена.
Главное - благодаря идее Redmen, похоже наконец, красиво решена проблема ухода в минус. Спасибо ему за это. Суть:
в услугах (пока только в inet_unlim) появился параметр "Не уходить в минус" - если установить его, то при подключении услуги будет подключена новая со стоимостью 0 денег. При этом длительность услуги будет 1 секунда. Также будет установлен флаг "ждем пополнения счета". Модуль ядра services попытается завершить такую услугу (ведь через секунду она завершается), но сам модуль "посмотрит на баланс" и если денег не хватает - он запрещает завершать услугу. Следующая попытка будет через 2 минуты.
Теперь другими словами для тех, кто не понял техническую реализацию:
У клиента подключена услуга стоимостью 100 грн и в данный момент она завершается. На балансе 99грн. Поскольку денег не хватает для подключения этой услуги - доступ в интернет не дается, баланс не меняется, заглушка показывает "пополните счет", а администратор при просмотре данных услуги у клиента видит: стоимость ПОКА 0 грн, ждем пополнения счета.
Клиент пополняет счет через 3 дня и ему с ЭТОГО момента подключается услуга стоимостью 100 грн и длится ровно столько времени, сколько в ней прописано
|
|
« Последнее редактирование: 31 Июля 2015, 00:40:25 от Efendy »
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #1 : 24 Августа 2014, 20:28:16 » |
|
Кстати, если никто не возражает, то в services.cfg я уберу похожий, но менее удобный вариант: # Если после завершения услуги баланс станет отрицательным, то услуги отключаются и создается # событие "подключить такие-то услуги когда баланс станет достаточным для их подключения" и чтобы было проще всем, уберу еще и # Типы услуг, которые не будут завершаться, если баланс отрицательный # В таком случае услуга завершится и подключится следующая только после пополнения баланса
|
|
|
Записан
|
|
|
|
Redmen
NoDeny
Ветеран
Карма: 62
Offline
Сообщений: 546
Подяку в КАРМУ
|
|
« Ответ #2 : 24 Августа 2014, 20:37:18 » |
|
я за
|
|
|
Записан
|
|
|
|
xspirit
Пользователь
Карма: 0
Offline
Сообщений: 20
|
|
« Ответ #3 : 27 Августа 2014, 11:54:02 » |
|
Апдейт это хорошо, но куда делся tune.cfg... Патчим cfg/tune.cfg модулями pingserver [!] Не могу прочитать файл cfg/tune.cfg
|
|
|
Записан
|
|
|
|
|
xspirit
Пользователь
Карма: 0
Offline
Сообщений: 20
|
|
« Ответ #5 : 27 Августа 2014, 12:00:30 » |
|
да собственно модули я и скачал заново
|
|
|
Записан
|
|
|
|
YuSHa
NoDeny
Постоялец
Карма: 6
Offline
Сообщений: 183
|
|
« Ответ #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
Сообщений: 20
|
|
« Ответ #7 : 27 Августа 2014, 12:22:24 » |
|
Понял, спасибо, пока симлинк сделаю....
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #8 : 27 Августа 2014, 14:42:29 » |
|
Я сначала хотел посоветовать симлинк, но потом подумал, что с ним проблема растянется - лучше сразу пофиксить во всех местах патчи
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
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
|
|
« Ответ #10 : 27 Августа 2014, 16:33:22 » |
|
во-первых, я уже изменил эту строку. Во-вторых, если фрагмент уже есть, то нужно указать бОльший фрагмент - захватить соседние строки
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
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
Сообщений: 844
|
|
« Ответ #12 : 27 Августа 2014, 17:57:33 » |
|
проблема с патчем только в users.pl
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #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
Сообщений: 844
|
|
« Ответ #14 : 28 Августа 2014, 08:48:50 » |
|
Вообщем как ни пробовал все равно пишет есть фрагмент или не найдено, Стас поправь патч плиз, теперь ругается тут Adm->chk_privil('Admin') or last; - фрагмент не найден
|
|
|
Записан
|
|
|
|
|