Как поменять тип блокировки, так чтобы прекратить списания?

Технические вопросы по UTM 5.0
Ответить
Vartushkin
Сообщения: 12
Зарегистрирован: Сб авг 01, 2009 17:01
Контактная информация:

Как поменять тип блокировки, так чтобы прекратить списания?

Сообщение Vartushkin »

Господа! Нужен совет по двум вопросам:

Надо было сделать так, чтобы списания денег с лицевых счетов останавливалось после снижения баланса до -100 руб. Я накропал скрипт, который запускался из крона, проверял балансы и если находил что-нибудь меньше -100, то менял блокировку с типа 16(авт. блок. со спис. денег) на тип 48(авт. блок. без списания денег).

Код: Выделить всё

Тип блокировки менялся примерно так:
UPDATE accounts SET is_blocked='48' WHERE id=$X;
UPDATE blocks_info SET is_deleted=1,expire_date=unix_timestamp(now())-1 WHERE account_id=$X ORDER BY id DESC LIMIT 1;
INSERT INTO blocks_info(user_id,account_id,slink_id,what_blocked,block_type,start_date,expire_date,is_planning,unabon,unprepay,service_id) 
VALUE('0',$X,'0','2','1',unix_timestamp(now()),'2000000000','0','1','0','0');
Все работало на ура, несколько дней, пока я не заметил, что это останавливает списание денег с л.с. НАВСЕГДА. То есть абонент пополняет счет до положительного значения, блокировка снимается, но деньгии уже НИКОГДА не списываются.
(подобная ситуация: viewtopic.php?t=5759 )

Единственный способ который я нашел для исправления ситуации - это перевыставление тарифного плана.

Вопросы следующие:
1) Как мне исправть ситуацию, перевыставлять т.п. такой куче абонентов руками муторно, да и несписанные деньги дарить не хочется?
2) Как решить изначальную задачу правильно?

FreeBSD 6.2-RELEASE-p7
utm-5.2.1-004-bsd6

Pei0t
Сообщения: 258
Зарегистрирован: Чт дек 13, 2007 20:48

Сообщение Pei0t »

Актуально, подписываюсь.

duzer
Сообщения: 82
Зарегистрирован: Сб ноя 04, 2006 12:50

Сообщение duzer »

Так же планируем вводить такую систему блокировок. У кого работает - откликнитесь!

Vartushkin
Сообщения: 12
Зарегистрирован: Сб авг 01, 2009 17:01
Контактная информация:

Сообщение Vartushkin »

У меня все заработало, совершенно случайно,
после того как я сделал
UPDATE discount_periods SET discount_interval=6*60*60;
killall -1 utm5_core
до этого там были нули.
Похоже, система просто не успевала пересчитать абонентов со сложной комбинацией приостановок.
:)

Pei0t
Сообщения: 258
Зарегистрирован: Чт дек 13, 2007 20:48

Сообщение Pei0t »

Vartushkin писал(а):У меня все заработало, совершенно случайно,
после того как я сделал
UPDATE discount_periods SET discount_interval=6*60*60;
killall -1 utm5_core
до этого там были нули.
Похоже, система просто не успевала пересчитать абонентов со сложной комбинацией приостановок.
:)
Тоесть после этого апдейта списания АП продолжились у тех кто положил деньги?

Vartushkin
Сообщения: 12
Зарегистрирован: Сб авг 01, 2009 17:01
Контактная информация:

Сообщение Vartushkin »

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

Vartushkin
Сообщения: 12
Зарегистрирован: Сб авг 01, 2009 17:01
Контактная информация:

Сообщение Vartushkin »

Нет. так как я делать не надо.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

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

Vartushkin
Сообщения: 12
Зарегистрирован: Сб авг 01, 2009 17:01
Контактная информация:

Сообщение Vartushkin »

Напишите как, если знаете.

Ответить