Дано скрипт который ставит при отрицательных значениях клиента на паузу.
Код |
---|
<br>APIPass = "apiltvkoaei"<br>ServName = "192.168.251.1"<br>'---------------------------------<br>'Sign up for TI<br>'---------------------------------<br>If Trim(ServName) = "" Then<br> Set Srv = CreateObject("TrafInsp.TrafInspAdmin")<br>Else<br> Set Srv = CreateObject("TrafInsp.TrafInspAdmin", ServName)<br>End If<br>Srv.APILogon (APIPass)<br>UserList = Srv.ApiGetBillProp(3, Obj)<br>' Получили список клиентов группы<br>' Проверяем, что это таблица - двухмерный массив<br>If Not IsArray(UserList) Or Not IsArray(UserList(0)) Then<br> WScript.Echo "Нет данных" <br> WScript.Quit <br>End If<br>For I = 0 To UBound(UserList, 1)<br> User = UserList(I)<br> ' Получили строку - описание пользователя<br> UserID = User(1)<br> UserState = Srv.APIGetUserState(UserID)<br> ' Считываем текущее состояние сессии<br> OldBall = Srv.ApiGetAttr(3, User(1), 48)<br> Set objRegExp = CreateObject("VBScript.RegExp")<br> objRegExp.Pattern = "Домашний+"<br> if OldBall =< 0 Then<br> if objRegExp.Test(UserState(2)) = -1 then<br> ' Переводим пользователя в паузу<br> WScript.Echo User(0) ," ", UserState(2), " ", OldBall<br> Srv.APISetUserState UserId, 0, 1, "Script", "123"<br> WScript.Quit<br> end if<br> End if<br>Next <br> |
Сделан естественно по мурзилке. Но вместо утсановки баланса в 0 у клиента списывается некислая суммма денег.
Код |
---|
<br>Время Событие Баланс Оплата Трафик, Мб За трафик За время Дополнительно<br>12.10 14:00 Введена оплата 2000.00 Руб -67.46 Руб 1999.00 Руб 53576.478 0.00 Руб 2066.46 Руб server-ti\gunner<br>12.10 14:02 Введена оплата -1999.00 Руб -2066.46 Руб 0.00 Руб 53576.478 0.00 Руб 2066.46 Руб 123 <br> |
Клиент сидит на тарифе где абонетская плата списывается каждые сутки по 33.33 рубля.
Где искать ошибку ?