Перейти до

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


Рекомендованные сообщения

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

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

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

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

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...