Jump to content

Ежедневное снятие абонплаты Старгейзером


Recommended Posts

Ребята, есть микротик и к нему прикручен Старгейзер.

Уже хз сколько времени борюсь, чтобы сделать корректное снятие абонплаты, ежесуточно, но нифига не получается.

Если в месяце 30 дней, а тариф 100грн,

получается каждый день снимается 3.33333...

и в итоге 31 числа, на счету 0,111111 и тогда не отключает в полночь

Вариант снимать 1 числа сразу за весь месяц не предлагайте.

Ну должно же оно как то работать?!?!

Мож какую то поправочку в конце мес делать?

Мож у кого то какая то хирая формула есть?

Подскажите а?

Link to post
Share on other sites

Вот так выглядит у меня с учетом того, что у пользователя может быть несколько логинов и свой дискоунт на каждом логине:

 

UPDATE bills b

INNER JOIN

( SELECT l.id_client, SUM(t.fee_month*(1-l.discount/100))/(DAY(LAST_DAY(now()))) as fee

FROM logins l

LEFT JOIN tarifs t ON t.id=l.id_tarif

LEFT JOIN bills b ON b.id_client=l.id_client

WHERE l.disabled=0

GROUP BY l.id_client) t

ON b.id_client=t.id_client

SET b.deposit=b.deposit-t.fee

Link to post
Share on other sites

Если нужно могу еще запостить как оно записывает это все в таблицу снятия денежных средств ... а то могут быть проблемы с пользователями по поводу того что их обворовывают =)

Link to post
Share on other sites

може кому-то надо будет :

 

INSERT INTO fees (id_client, id_admin, fee, deposit, comment, date, ip)

SELECT

l.id_client,

1,

SUM(ROUND(t.fee_month*(1-l.discount/100)/(DAY(LAST_DAY(now()))), 4)) as fee,

b.deposit ,

GROUP_CONCAT(l.login, ": ", t.title, " - ", ROUND(fee_month*(1-l.discount/100)/(DAY(LAST_DAY(now()))), 4)) as comment,

NOW() as date,

INET_ATON("127.0.0.1")

FROM logins l

LEFT JOIN tarifs t ON t.id=l.id_tarif

LEFT JOIN bills b ON b.id_client=l.id_client

WHERE l.disabled=0 AND t.fee_month > 0

GROUP BY l.id_client

Link to post
Share on other sites

пишет сколько за каждый логин сняло + название тарифа в поле комент, в fee общая сумма снятия, в deposit депозит после снятия если выполнять после снятия =)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...