Страницы: 1
RSS
Непонятки со списанием
 


Дано скрипт который ставит при отрицательных значениях клиента на паузу.
Код
<br>APIPass = "apiltvkoaei"<br>ServName = "192.168.251.1"<br>'---------------------------------<br>'Sign up for TI<br>'---------------------------------<br>If Trim(ServName) = "" Then<br>&nbsp;&nbsp;&nbsp; Set Srv = CreateObject("TrafInsp.TrafInspAdmin")<br>Else<br>&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Echo "Нет данных"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Quit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>End If<br>For I = 0 To UBound(UserList, 1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User = UserList(I)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Получили строку - описание пользователя<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserID = User(1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserState = Srv.APIGetUserState(UserID)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Считываем текущее состояние сессии<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OldBall = Srv.ApiGetAttr(3, User(1), 48)<br>&nbsp;&nbsp;&nbsp; Set objRegExp = CreateObject("VBScript.RegExp")<br>&nbsp;&nbsp;&nbsp; objRegExp.Pattern = "Домашний+"<br>&nbsp;&nbsp;&nbsp; if OldBall =&lt; 0 Then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if objRegExp.Test(UserState(2)) = -1 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Переводим пользователя в паузу<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.Echo User(0) ," ", UserState(2), " ", OldBall<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Srv.APISetUserState UserId, 0, 1, "Script", "123"<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.Quit<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br>&nbsp;&nbsp;&nbsp; End if<br>Next <br>

Сделан естественно по мурзилке. Но вместо утсановки баланса в 0 у клиента списывается некислая суммма денег.
Код
<br>Время&nbsp;&nbsp;&nbsp; Событие&nbsp;&nbsp;&nbsp; Баланс&nbsp;&nbsp;&nbsp; Оплата&nbsp;&nbsp;&nbsp; Трафик, Мб&nbsp;&nbsp;&nbsp; За трафик&nbsp;&nbsp;&nbsp; За время&nbsp;&nbsp;&nbsp; Дополнительно<br>12.10 14:00&nbsp;&nbsp;&nbsp; Введена оплата&nbsp; 2000.00 Руб&nbsp;&nbsp;&nbsp; -67.46 Руб&nbsp;&nbsp;&nbsp; 1999.00 Руб&nbsp;&nbsp;&nbsp; 53576.478&nbsp;&nbsp;&nbsp; 0.00 Руб&nbsp;&nbsp;&nbsp; 2066.46 Руб&nbsp;&nbsp;&nbsp; server-ti\gunner<br>12.10 14:02&nbsp;&nbsp;&nbsp; Введена оплата&nbsp; -1999.00 Руб&nbsp;&nbsp;&nbsp; -2066.46 Руб&nbsp;&nbsp;&nbsp; 0.00 Руб&nbsp;&nbsp;&nbsp; 53576.478&nbsp;&nbsp;&nbsp; 0.00 Руб&nbsp;&nbsp;&nbsp; 2066.46 Руб&nbsp;&nbsp;&nbsp; 123&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>

 Клиент сидит на тарифе где абонетская плата списывается каждые сутки по 33.33 рубля.
 Где искать ошибку ?


GunnerAVS2011-10-12 10:49:22
 


Что бы у клиента баланс был 0, его необходимо ставить в стоп.
Или рассчитывать по формуле: Баланс = Оплачено - Начислено
В функции APISetUserState задается Оплачено, а не Баланс, как вы, наверное, подумали.






Dmitriy2011-10-12 12:45:40
 
Спасибо действительно так - чтоб оставить баланс без изменений использую UserState(8)
Страницы: 1
Читают тему (гостей: 2)