Re: Снять абонплату не 1-го числа, а 3-го
Добавлено: Пн дек 30, 2013 8:19 am
А мы в последний день месяца всем живым абонентам ставим кредит до нужного числа, в случае праздников.
Вот алгоритм:
Можно подкорректировать, чтобы устанавливались даты кредитов - тогда они снимутся сами в нужную дату, однако, могут возникнуть проблемы с клиентами, у которых какой-то долгосрочный кредит установлен. Можно также кучу проверок добавить - по вкусу, так сказать.
Вот алгоритм:
Код: Выделить всё
#I. Выборка клиентов, кому необходимо поставить кредит (обязательно делать в предыдущий месяц!)
use abills;
create table credit_20120831 select users.uid,users.credit,dv_main.tp_id,tarif_plans.month_fee
from users,dv_main,tarif_plans,bills
where bills.uid=dv_main.uid and bills.uid=users.uid and dv_main.tp_id = tarif_plans.id and bills.deposit + users.credit between 1 and tarif_plans.month_fee -1 and tarif_plans.month_fee > 0;
#II. Установка кредитов. Желательно делать в ночь на 1 число
use abills;
update users,credit_20120831 set users.credit = users.credit + credit_20120831.month_fee where users.uid=credit_20120831.uid;
#III. Снятие кредитов. Делать в ночь на первый будний день
use abills;
update users,credit_20120831 set users.credit=credit_20120831.credit where users.uid=credit_20120831.uid;