Sokol
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 76
|
|
« Ответ #30 : 03 Марта 2011, 23:04:27 » |
|
Если заработает, стоит, думаю, выложить исправленный new_month.pl
ну как, заработало?
|
|
|
Записан
|
|
|
|
Eugene
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 50
|
|
« Ответ #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
Сообщений: 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
Сообщений: 38
|
|
« Ответ #33 : 02 Августа 2011, 00:32:11 » |
|
Какой критерий тогда неначисления абонплаты за прошедший месяц? Если я правильно понял, то это просто минусовый баланс. Если только это, то думаю стоит учесть + еще отсутствие трафика за месяц, потому как баланс по многим причинам до конца месяца может уйти в минус, а если трафик отсутствует значит точно абон не пользовался и списивать начисления не за что.
|
|
|
Записан
|
|
|
|
Demeo
NoDeny
Постоялец
Карма: 6
Offline
Сообщений: 204
|
|
« Ответ #34 : 02 Августа 2011, 07:44:22 » |
|
Некоторые как бы трафик не считают и статистику не держат. Так что при использовании авторизации проще смотреть авторизовывался абонент или нет
|
|
|
Записан
|
|
|
|
olegotek
NoDeny
Пользователь
Карма: 1
Offline
Сообщений: 38
|
|
« Ответ #35 : 02 Августа 2011, 21:43:28 » |
|
По авторизациям принимать решение об снятии денег думаю не уместно поскольку абоненту авторизовавшемуся но с заблокированным доступом в инет придется заплатить абонплату и насколько я понимаю детализация трафика не имеет отношения к переменным "Интернет входящий, байт" и "Интернет исходящий, байт". Они все-равно считают мегабайты и обнуляются при переходе на новый месяц, что нам и нужно. то есть если трафика в интернет не было на протяжении месяца, значит клиенту со счета деньги не снимаем.
|
|
|
Записан
|
|
|
|
ser970
NoDeny
Спец
Карма: 70
Offline
Сообщений: 1323
|
|
« Ответ #36 : 03 Августа 2011, 08:08:20 » |
|
Некоторые как бы трафик не считают и статистику не держат. Так что при использовании авторизации проще смотреть авторизовывался абонент или нет
это глупо. ситуация - звонит клиент - и говорит у меня инет не работает уже месяц - за что платить ? как посмотреть ? (у меня нет авторизации вообще - опция 82) статы нет авторизации нет - трафик не считаем. вот для этих то целей и нужен трафик. зашел глянул - а там по пару гиг каждый день . ткнул зверя носом в личный кабинет и все дела. обычная ситуация - чадо запускает несколько торентов на закачку - а папаша звонит что почту получить не может .
|
|
|
Записан
|
|
|
|
Demeo
NoDeny
Постоялец
Карма: 6
Offline
Сообщений: 204
|
|
« Ответ #37 : 04 Августа 2011, 07:53:49 » |
|
По авторизациям принимать решение об снятии денег думаю не уместно поскольку абоненту авторизовавшемуся но с заблокированным доступом в инет придется заплатить абонплату и насколько я понимаю детализация трафика не имеет отношения к переменным "Интернет входящий, байт" и "Интернет исходящий, байт". Они все-равно считают мегабайты и обнуляются при переходе на новый месяц, что нам и нужно. то есть если трафика в интернет не было на протяжении месяца, значит клиенту со счета деньги не снимаем.
В том-то и дело, что у нас трафик не считается вообще, поэтому деньги со счета вообще сниматься не будут. А по сути - можно ж учитывать доступ к инету, а не просто авторизацию это глупо. ситуация - звонит клиент - и говорит у меня инет не работает уже месяц - за что платить ? как посмотреть ? (у меня нет авторизации вообще - опция 82) статы нет авторизации нет - трафик не считаем. вот для этих то целей и нужен трафик. зашел глянул - а там по пару гиг каждый день . ткнул зверя носом в личный кабинет и все дела. обычная ситуация - чадо запускает несколько торентов на закачку - а папаша звонит что почту получить не может .
А я для того и уточнил, что это касается авторизации без коллекторов трафика
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #38 : 01 Декабря 2011, 00:46:31 » |
|
Суть такова: Если НЕ стоит галка возле лимита, то доступ не блочится но и бабло считается в "-" дальше.
Суть такова, что абонку снимает два раза, первый раз загоняя в ноль, и во второй месяц загоняя в минус. Что не есть гуд. ИМХО здесь необходимо вычислять баланс с "учетом услуг" и оперировать именно этим значением.
|
|
|
Записан
|
|
|
|
SlavaD
Новичок
Карма: 0
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
Сообщений: 4
|
|
« Ответ #40 : 05 Мая 2012, 11:41:15 » |
|
предлагаю оставить впокое лимит баланс, и добавить признак заблокировано AND state='on'; тогда по логике если блокирован то деньги не считаются
|
|
|
Записан
|
|
|
|
klu4ik
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #42 : 28 Ноября 2012, 15:10:11 » |
|
я пользуюсь
незнаю насчет нюансов, потому что под свои задачи много модифицировал
|
|
|
Записан
|
|
|
|
klu41k
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 38
|
|
« Ответ #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
Сообщений: 204
|
|
« Ответ #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)";
...тестирую
|
|
|
Записан
|
|
|
|
|