Надо было сделать так, чтобы списания денег с лицевых счетов останавливалось после снижения баланса до -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