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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 2 [3] 4
  Печать  
Автор Тема: Клиент заблокирован, баланс идет в минус  (Прочитано 39389 раз)
Sokol
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #30 : 03 Марта 2011, 23:04:27 »


Если заработает, стоит, думаю, выложить исправленный new_month.pl

ну как, заработало?
Записан
Eugene
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 50


Просмотр профиля Email
« Ответ #31 : 13 Марта 2011, 10:10:48 »


Если заработает, стоит, думаю, выложить исправленный new_month.pl

ну как, заработало?
Вобщем то, да. Но при помесячной тарификации снятие денег останавливается только после снятия денег и за следующий месяц пока балланс не станет меньше лимита отключения. Я вышел из положения немного по-другому, сделал тарификацию посуточную, а по месяцам снимаю деньги у организаций, где +- один-два месяца роли не играет, всё равно их нельзя отключать пока контракт не разорвали... Так что как то так...

По второму примеру почему то продолжало снимать даже у тех кто в минусе, так что только правка 250-й строки помогла

Код:
$sql="SELECT * FROM users WHERE mid=0 and balance >= limit_balance";
« Последнее редактирование: 13 Марта 2011, 10:12:29 от Eugene » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #32 : 12 Мая 2011, 21:59:54 »

тут недавно немного изменил запросег, сталотгораздо красивее )
Файл: new_month.pl; Строка: 250
Код:
$sql="SELECT * FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) AND mid=0";
Файл: nodeny.pl; Строка: ~1090
Код:
$sql="SELECT id FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) and mid=0 AND paket=$i AND id NOT IN ".
"(SELECT u.id FROM users u LEFT JOIN pays p ON u.id=p.mid WHERE u.paket=$i and p.category=114 AND time>=$t1 AND time<=$t2)"

Суть такова: Если НЕ стоит галка возле лимита, то доступ не блочится но и бабло считается в "-" дальше.
Записан
olegotek
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #33 : 02 Августа 2011, 00:32:11 »

Какой критерий тогда неначисления абонплаты за прошедший месяц? Если я правильно понял, то это просто минусовый баланс. Если только это, то думаю стоит учесть + еще отсутствие трафика за месяц, потому как баланс по многим причинам до конца месяца может уйти в минус, а если трафик отсутствует значит точно абон не пользовался и списивать начисления не за что.
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #34 : 02 Августа 2011, 07:44:22 »

Некоторые как бы трафик не считают и статистику не держат. Так что при использовании авторизации проще смотреть авторизовывался абонент или нет
Записан
olegotek
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #35 : 02 Августа 2011, 21:43:28 »

По авторизациям принимать решение об снятии денег думаю не уместно поскольку абоненту авторизовавшемуся но с заблокированным доступом в инет придется заплатить абонплату и насколько я понимаю детализация трафика не имеет отношения к переменным "Интернет входящий, байт" и "Интернет исходящий, байт". Они все-равно считают мегабайты и обнуляются при переходе на новый месяц, что нам и нужно. то есть если трафика в интернет не было на протяжении месяца, значит клиенту со счета деньги не снимаем.
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #36 : 03 Августа 2011, 08:08:20 »

Некоторые как бы трафик не считают и статистику не держат. Так что при использовании авторизации проще смотреть авторизовывался абонент или нет
это глупо.
ситуация - звонит клиент - и говорит у меня инет не работает уже месяц -  за что платить ?
как посмотреть ? (у меня нет авторизации вообще - опция 82)  статы нет авторизации нет - трафик не считаем.
вот для этих то целей и нужен трафик. зашел глянул - а там по пару гиг каждый день . ткнул зверя носом в личный кабинет и все дела.
обычная ситуация - чадо запускает несколько торентов на закачку - а папаша звонит что почту получить не может .
 

Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #37 : 04 Августа 2011, 07:53:49 »

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

В том-то и дело, что у нас трафик не считается вообще, поэтому деньги со счета вообще сниматься не будут. А по сути - можно ж учитывать доступ к инету, а не просто авторизацию

это глупо.
ситуация - звонит клиент - и говорит у меня инет не работает уже месяц -  за что платить ?
как посмотреть ? (у меня нет авторизации вообще - опция 82)  статы нет авторизации нет - трафик не считаем.
вот для этих то целей и нужен трафик. зашел глянул - а там по пару гиг каждый день . ткнул зверя носом в личный кабинет и все дела.
обычная ситуация - чадо запускает несколько торентов на закачку - а папаша звонит что почту получить не может .

А я для того и уточнил, что это касается авторизации без коллекторов трафика
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #38 : 01 Декабря 2011, 00:46:31 »

Суть такова: Если НЕ стоит галка возле лимита, то доступ не блочится но и бабло считается в "-" дальше.
Суть такова, что абонку снимает два раза, первый раз загоняя в ноль, и во второй месяц загоняя в минус. Что не есть гуд. ИМХО здесь необходимо вычислять баланс с "учетом услуг" и оперировать именно этим значением.
Записан
SlavaD
Новичок
*

Карма: 0
Offline Offline

Сообщений: 1


Просмотр профиля
« Ответ #39 : 22 Декабря 2011, 13:48:33 »

Посмотрел скрипты выше, по моему для получения доступа к БД лучше получать не пароль рута, а все параметры из конфига, например так:
Код:
config="/usr/local/nodeny/nodeny.cfg"
export `cat ${config} |\
    grep -R '\(Db_name[[:space:]]*=\)\|\(Db_user[[:space:]]*=\)\|\(Db_pw[[:space:]]*=\)\|\(Db_server[[:space:]]*=\)' |\
    sed "s/\\\\$//g; s/\;//g; s/[[:space:]]*//g; s/#.*//g; s/'//g;"`
Записан
newvds
Новичок
*

Карма: 0
Offline Offline

Сообщений: 4


Просмотр профиля Email
« Ответ #40 : 05 Мая 2012, 11:41:15 »

предлагаю оставить впокое лимит баланс, и добавить признак заблокировано  AND state='on';
тогда по логике если блокирован то деньги не считаются
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #41 : 28 Ноября 2012, 15:05:07 »

тут недавно немного изменил запросег, сталотгораздо красивее )
Файл: new_month.pl; Строка: 250
Код:
$sql="SELECT * FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) AND mid=0";
Файл: nodeny.pl; Строка: ~1090
Код:
$sql="SELECT id FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) and mid=0 AND paket=$i AND id NOT IN ".
"(SELECT u.id FROM users u LEFT JOIN pays p ON u.id=p.mid WHERE u.paket=$i and p.category=114 AND time>=$t1 AND time<=$t2)"

Суть такова: Если НЕ стоит галка возле лимита, то доступ не блочится но и бабло считается в "-" дальше.

Кто пользуеться данным решением ?
есть какие-либо нюансы ?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #42 : 28 Ноября 2012, 15:10:11 »

я пользуюсь

незнаю насчет нюансов, потому что под свои задачи много модифицировал
Записан
klu41k
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 38



Просмотр профиля Email
« Ответ #43 : 30 Ноября 2012, 21:05:52 »

понятно.

Ребята , а что если я в 250-строку внесу такой запрос :

Код:
$sql="SELECT * FROM users WHERE mid=0 and state="on"";



Тоесть снимать абонку только из тех у кого доступ разрешен, чем чревато такое решение ?
и правелен ли синтаксис ?
Блин.. через несколько часов новый месяц В замешательстве
« Последнее редактирование: 30 Ноября 2012, 21:46:40 от klu41k » Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #44 : 03 Июня 2016, 13:50:32 »

Добавил еще условие снятой галки "Блокировать при достижении лимита"

Получилось так...

Код:
$sql="SELECT id FROM users WHERE balance >= limit_balance AND block_if_limit=0 AND mid=0 AND paket=$i AND id NOT IN ".
"(SELECT u.id FROM users u LEFT JOIN pays p ON u.id=p.mid WHERE u.paket=$i and p.category=114 AND time>=$t1 AND time<=$t2)";

...тестирую
Записан
Страниц: 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!