Снять абонплату не 1-го числа, а 3-го

Модуль организации Diulup и VPN доступа
Makioro
Сообщения: 241
Зарегистрирован: Ср апр 27, 2011 11:09 am

Re: Снять абонплату не 1-го числа, а 3-го

Сообщение Makioro » Пн дек 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;
Можно подкорректировать, чтобы устанавливались даты кредитов - тогда они снимутся сами в нужную дату, однако, могут возникнуть проблемы с клиентами, у которых какой-то долгосрочный кредит установлен. Можно также кучу проверок добавить - по вкусу, так сказать.

seth
Сообщения: 23
Зарегистрирован: Пт авг 30, 2013 7:16 am

Re: Снять абонплату не 1-го числа, а 3-го

Сообщение seth » Чт янв 02, 2014 8:08 am

Возникла подобная ситуация, только по беспечности подумал, что достаточно закоментировать в /etc/crontab строку 31 числа и раскоментировать 1, что бы ночью снялась абонплата. Само по себе, естественно, ничего не списалось. Вопрос: как списать деньги сегодня если стоимость всех ТП снимается в первый день, т.е. стоит 100 грн. и все они списываются 1 числа?
На тестовом пробовал:

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

/usr/abills/libexec/periodic monthly MODULES=Dv DATE=2014-01-02
/usr/abills/libexec/periodic monthly MODULES=Abon DATE=2014-01-02
деньги не списались.

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

$ cat /usr/abills/libexec/config.pl
...
@MODULES = ('Dv'
);
...
Не понятно как списать деньги если в config.pl указан только модуль Dv, а в настройках снятия денег Abon...
Вложения
снятие денег.png
снятие денег.png (28.82 КБ) 3297 просмотров

seth
Сообщения: 23
Зарегистрирован: Пт авг 30, 2013 7:16 am

Re: Снять абонплату не 1-го числа, а 3-го

Сообщение seth » Чт янв 02, 2014 8:54 am

разобрался, там нужно дату активации указывать, а не текущую, т.е. первое число:

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

/usr/abills/libexec/periodic monthly MODULES=Dv DATE=2014-01-01

Ответить