Страница печати | Закрыть окно

Работа Испектора при балансе 0

Распечатать форум: Форум компании Смарт-Софт
Категория: Главный раздел
Название форума: Traffic Inspector - тарифы, дополнения и интеграция
Описание форума: Все вопросы, связанные с дополнениями к программе.
URL: http://forum.smart-soft.ru/forum_posts.asp?TID=18269
Дата печати: 16-Фев-19 в 05:53
Версия ПО: Web Wiz Forums 10.14 - http://www.webwizforums.com


Тема: Работа Испектора при балансе 0
Автор: Миха-комсомольс
Тема: Работа Испектора при балансе 0
Дата отправки: 04-Апр-09 в 15:38
Описание. Люди подключены к безлимитному тарифу.. при 0 руб. у них работает целый день до 24 часов Интернет пока не снимут снова абонентку.. а почему он не отключается при 0 руб? как это сдлеать?



Ответов:
Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 14:42
Помогите!!


Автор: DmitryPC
Дата отправки: 05-Апр-09 в 16:07

рестарт сессии делаете при снятии абонентки? работа в кредит разрешена? описали бы поподробнее как все организовано(включая настройки группы и пользователей)...



Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 16:23
. абонентка снимается каждые сутки. стандартными средствами ТИ. Стоит галка: Блокировать трафик при работе в кредит..

Сам тариф(группа) Безлимит, с ежесуточным снятием 20 руб.

Например мне принесли 600 руб. 600/20=30 дней. но после всего получается баланс 0 и инет работает лишние сутки. Приходиться делать баланс на рубль менье.. тоесть поплнять так чтобы было например не 600 а 599. Но есть задиристые клиенты кому видите ли нужно чтобы показовало столько сколько положили.

Вот и вопрос как это реализовать?


Автор: sant78
Дата отправки: 05-Апр-09 в 20:17

Я вас не совсем понял. Я принес Вам 20р. в 12 часов дня. Инет у меня не включился, так как билинг происходит в 0-00 часов. Я жду до 0-00 часов, у Вас проходит билинг, и у меня на счете 0р. Соответственно Вы сняли с моего счета 20р., чтобы я мог работать в инете сутки.

Что Вас не устраивает?

Делал нечто похожее....

К примеру тариф_20.
Для определенного тарифа делал еще группу (Неоплата_20). В 0-00 часов запускал скрипт, проверял группу "Неоплата_20". Если баланс более абон. платы тарифа группы клиента, клиента перемещал в группу с его тарифом_20. Далее запускал скрипт со списанием абон. платы, в скрипте проверка, если баланс меньше абон. платы клиента в группу "Неоплата_20".

Первый скрипт можно запускать чаще, но это должно быть оговорено в договоре с клиентом. Если клиент согласен с тем, что  у него можно списать 20р. в 23-00 и ему буден дан интернет за 20р. всего на час, тогда в первом скрипте можно добавить еще и списание абон.платы с перемещением клиента в основной тариф_20, запуская этот скрипт хоть каждые 5 минут.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:23
нет. Вы принести 20 руб в 12 часов дня. Я их пополнил на счет и вы стали пользоваться Интернетом. в 0 часов произошло списание и Вы должны перестать пользоваться Интернетом т.к. у Вас на счету 0. Но вы продолжаете ещё сутки пользоваться пока не произойдет снова списание и бюудет -20


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:24
Тоесть списание абонентской платы произходит за использованный день...


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:30
А то что говорите Вы. просто пополняю не 20 а 30 руб.. и ночью становиться просто 10 руб. т.к. половину суток вы уже пользовались


Автор: sant78
Дата отправки: 05-Апр-09 в 20:42
Исходное сообщение sant78 sant78 :

Первый скрипт можно запускать чаще, но это должно быть оговорено в договоре с клиентом. Если клиент согласен с тем, что  у него можно списать 20р. в 23-00 и ему буден дан интернет за 20р. всего на час, тогда в первом скрипте можно добавить еще и списание абон.платы с перемещением клиента в основной тариф_20, запуская этот скрипт хоть каждые 5 минут.

Читаем внимательно.

PS.

Вы можете со мной поспорить, но мне кажется у Вас как-то через одно место все настроено в смысле тарифа.

Давайте так...
Вы опишите Ваши тарифы, я Вам предложу схему и скрипты с расписанием.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:45
Дописовать не хорошо 

Не хочу скрипты.. хочу стандартными средствами... мне эти скрипты.. лишний геморой не нужен...
Как сделать чтобы если баланс 0 то происходит блокировка

С клиент обговорено то что например он пользовался инетом а у него было 15 руб.. и потом после списание произошло отключение по задолжности.. и например он пришел оплачивать через 2 дня... вообще ему делается перерасчет.. и у него на балансе "-5 руб"
а что там остальное он не платит...


Автор: sant78
Дата отправки: 05-Апр-09 в 20:48

Исходное сообщение Миха-комсомольс Миха-комсомольс :

Не хочу скрипты.. хочу стандартными средствами... мне эти скрипты.. лишний геморой не нужен...

Здесь все пользуются скриптами. Правильно написанные скрипты и настроенные группы - 100% успеха.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:49
а что стандартными средствами никак?????


Автор: sant78
Дата отправки: 05-Апр-09 в 20:50

Исходное сообщение Миха-комсомольс Миха-комсомольс :

С клиент обговорено то что например он пользовался инетом а у него было 15 руб.. и потом после списание произошло отключение по задолжности.. и например он пришел оплачивать через 2 дня... вообще ему делается перерасчет.. и у него на балансе "-5 руб"
а что там остальное он не платит...

Благотворительность?



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:51
нет.. просто он оплачивает долг за то что пользовался инетом ...
и его долг составил 5 руб.. в остальном случае т.к. баланс был мене нуля. то услуга не предоставлялась изза задолжности. и не вижу смысла за неё брать деньги...


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 20:52
Вообще по идеи после того как стал минус, в идеале чтобы абонентская плата вообще переставала сниматься...


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 21:17
Вообщем нужен скрипт такой

Если баланс 0 и менее то в паузу
если более то все работает

Для всех групп и все пользователей...


Автор: Миха-комсомольс
Дата отправки: 05-Апр-09 в 21:25
также чтобы при пополнении баланса либо активации карточки он стартовался...


Автор: sant78
Дата отправки: 05-Апр-09 в 21:31

Пробуй...

Set Args = WScript.Arguments.Unnamed

If Args.Count <> 1 Then

       WScript.Echo "??? usage: cscript.exe User_Resatart.vbs APIPassword /sn:ServerName"       

       WScript.Quit       

End If

 

APIPass = Args(0)


If WScript.Arguments.Named.Exists("sn") Then

       ServName = WScript.Arguments.Named.Item("sn")

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin",ServName)

Else

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin")

End If

Srv.APILogon(APIPass)

BillData = Srv.ApiGetBillProp(3, "")

 

If Not IsArray(BillData) Then

       WScript.Echo "Нет данных"       

       WScript.Quit       

End If

If IsArray(BillData(0)) Then

       For I = 0 To UBound(BillData, 1)

                Data = BillData(I)
               
                UserID = Data(1)

                UserState = Srv.APIGetUserState(UserID)
               
                Balans = UserState(19)
               
                Cash = UserState(8)

                 State = UserState(4)
                 
                 If Balans <=0 Then
               
                 If State = 2 Then
                 Srv.APISetUserState UserID, Cash, 1, "Script", "Поставлен в паузу из-за отсутсвия средств."
                  End If                  
                 Else
                 If State = 1 Then                  
                 Srv.APISetUserState UserID, Cash, 2, "Script", "Пополнен счет, работа возобновлена."
                 End If       
                 End If
       
         Next

End If

Содеожание BAT файла при условии, что cscript.exe лежит там же где BAT файл и скрипт:
cscript.exe ИМЯ_СКРИПТА.vbs APIPassword /sn:ServerName

или

%SystemRoot%\system32\cscript.exe "Полный путь до скрипта и имя скрипта" параметры.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Alex11
Дата отправки: 16-Апр-09 в 12:33

Подскажите это реально рабочий скрипт, если баланс 0 или минус то абонента в паузу? что то не могу запустить, в запуске скриптов я полный ноль. Оень нужна помощь.



Автор: Alex11
Дата отправки: 16-Апр-09 в 12:54
всё разобрался


Автор: Миха-комсомольс
Дата отправки: 13-Сен-09 в 01:00
Нужен такой же скрипт только для версии 2.0.0. поможете?

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 14-Сен-09 в 11:25
ау

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 15-Сен-09 в 08:48
Что никто не поможет поменять скрипт?

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 23-Сен-09 в 14:26
Напишите пожалуйста скрипт

вот рабочий скрипт для ТИ 1.1.5.224 если 0 руб или меньше то пауза иначе работа


Set Args = WScript.Arguments.Unnamed

If Args.Count <> 1 Then

       WScript.Echo "??? usage: cscript.exe User_Resatart.vbs APIPassword /sn:ServerName"      

       WScript.Quit      

End If

 

APIPass = Args(0)


If WScript.Arguments.Named.Exists("sn") Then

       ServName = WScript.Arguments.Named.Item("sn")

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin",ServName)

Else

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin")

End If

Srv.APILogon(APIPass)

BillData = Srv.ApiGetBillProp(3, "")

 

If Not IsArray(BillData) Then

       WScript.Echo "Нет данных"      

       WScript.Quit      

End If

If IsArray(BillData(0)) Then

       For I = 0 To UBound(BillData, 1)

                 Data = BillData(I)
               
                 UserID = Data(1)

                 UserState = Srv.APIGetUserState(UserID)
               
                 Balans = UserState(19)
               
                 Cash = UserState(8)
               
                 If Balans =<0 Then
               
                 Srv.APISetUserState UserID, Cash, 1, "Script", "Поставлен в паузу из-за отсутсвия средств."
               
                 Else
               
                 Srv.APISetUserState UserID, Cash, 2, "Script", "Пополнен счет, работа возоблена."
               
                 End If

        Next
               

End If



Он работает, ну нужен такой же для версии 2.0.0.623 БО


-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 24-Сен-09 в 15:30
Люди напишите пожалуйста скрипт.. я в этом ноль а очень нужен

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 28-Сен-09 в 13:18
Ну помогите

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Миха-комсомольс
Дата отправки: 06-Окт-09 в 18:33
все видимо никак..

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: Mops
Дата отправки: 29-Сен-10 в 17:39
Исходное сообщение sant78 sant78 :

Пробуй...

Set Args = WScript.Arguments.Unnamed

If Args.Count <> 1 Then

       WScript.Echo "??? usage: cscript.exe User_Resatart.vbs APIPassword /sn:ServerName"       

       WScript.Quit       

End If

 

APIPass = Args(0)


If WScript.Arguments.Named.Exists("sn") Then

       ServName = WScript.Arguments.Named.Item("sn")

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin",ServName)

Else

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin")

End If

Srv.APILogon(APIPass)

BillData = Srv.ApiGetBillProp(3, "")

 

If Not IsArray(BillData) Then

       WScript.Echo "Нет данных"       

       WScript.Quit       

End If

If IsArray(BillData(0)) Then

       For I = 0 To UBound(BillData, 1)

                Data = BillData(I)
               
                UserID = Data(1)

                UserState = Srv.APIGetUserState(UserID)
               
                Balans = UserState(19)
               
                Cash = UserState(8)

                 State = UserState(4)
                 
                 If Balans <=0 Then
               
                 If State = 2 Then
                 Srv.APISetUserState UserID, Cash, 1, "Script", "Поставлен в паузу из-за отсутсвия средств."
                  End If                  
                 Else
                 If State = 1 Then                  
                 Srv.APISetUserState UserID, Cash, 2, "Script", "Пополнен счет, работа возобновлена."
                 End If       
                 End If
       
         Next

End If

Содеожание BAT файла при условии, что cscript.exe лежит там же где BAT файл и скрипт:
cscript.exe ИМЯ_СКРИПТА.vbs APIPassword /sn:ServerName

или

%SystemRoot%\system32\cscript.exe "Полный путь до скрипта и имя скрипта" параметры.




Как применить его к определенной группе?


Автор: sant78
Дата отправки: 30-Сен-10 в 10:56
Версия ТИ какая?

-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: sant78
Дата отправки: 02-Окт-10 в 11:37

Set Args = WScript.Arguments.Unnamed

If Args.Count <> 2 Then

       WScript.Echo "??? usage: cscript.exe User_Resatart.vbs APIPassword GroupName /sn:ServerName"       

       WScript.Quit       

End If

 

APIPass = Args(0)
Group = Args(1)

If WScript.Arguments.Named.Exists("sn") Then

       ServName = WScript.Arguments.Named.Item("sn")

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin",ServName)

Else

       Set Srv = CreateObject("TrafInsp.TrafInspAdmin")

End If

Srv.APILogon(APIPass)

BillData = Srv.ApiGetBillProp(3, Group)

 

If Not IsArray(BillData) Then

       WScript.Echo "Нет данных"       

       WScript.Quit       

End If

If IsArray(BillData(0)) Then

       For I = 0 To UBound(BillData, 1)

                Data = BillData(I)
               
                UserID = Data(1)

                UserState = Srv.APIGetUserState(UserID)
               
                Balans = UserState(19)
               
                Cash = UserState(8)

                 State = UserState(4)
                 
                 If Balans <=0 Then
               
                 If State = 2 Then
                 Srv.APISetUserState UserID, Cash, 1, "Script", "Поставлен в паузу из-за отсутсвия средств."
                  End If                  
                 Else
                 If State = 1 Then                  
                 Srv.APISetUserState UserID, Cash, 2, "Script", "Пополнен счет, работа возобновлена."
                 End If       
                 End If
       
         Next

End If

Содеожание BAT файла при условии, что cscript.exe лежит там же где BAT файл и скрипт:
cscript.exe ИМЯ_СКРИПТА.vbs APIPassword GroupName /sn:ServerName

или

%SystemRoot%\system32\cscript.exe "Полный путь до скрипта и имя скрипта" параметры.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 04-Окт-10 в 15:07
а можно же его в самом ТИ там есть скрипты запустить?

-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: sant78
Дата отправки: 04-Окт-10 в 18:12

Исходное сообщение Миха-комсомольс Миха-комсомольс :

а можно же его в самом ТИ там есть скрипты запустить?

Этот, нет.

Появится свободное время, начну писать скрипты для 2.0.1.706.



-------------
Ни что не дается так дешево и не ценится так дорого, как ХАЛЯВА.


Автор: Миха-комсомольс
Дата отправки: 04-Окт-10 в 18:13
а такое реально? тоесть переписать его чтобы туда подходил?
спасибо


-------------
Windows server 2008 R2(NAT, DNS, DHCP, apache) ТИ 2.0.0.644 GOLD 30


Автор: AlexKMV
Дата отправки: 11-Окт-10 в 12:07
было бы неплохо...



Страница печати | Закрыть окно