Romeshik 144 Posted 2012-02-27 13:56:30 Share Posted 2012-02-27 13:56:30 Ребята, есть микротик и к нему прикручен Старгейзер. Уже хз сколько времени борюсь, чтобы сделать корректное снятие абонплаты, ежесуточно, но нифига не получается. Если в месяце 30 дней, а тариф 100грн, получается каждый день снимается 3.33333... и в итоге 31 числа, на счету 0,111111 и тогда не отключает в полночь Вариант снимать 1 числа сразу за весь месяц не предлагайте. Ну должно же оно как то работать?!?! Мож какую то поправочку в конце мес делать? Мож у кого то какая то хирая формула есть? Подскажите а? Link to post Share on other sites
dnserg 6 Posted 2012-02-27 15:38:26 Share Posted 2012-02-27 15:38:26 fee_month/DAY(LAST_DAY(NOW())) Link to post Share on other sites
dnserg 6 Posted 2012-02-27 15:40:57 Share Posted 2012-02-27 15:40:57 Вот так выглядит у меня с учетом того, что у пользователя может быть несколько логинов и свой дискоунт на каждом логине: 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
Romeshik 144 Posted 2012-02-27 16:03:51 Author Share Posted 2012-02-27 16:03:51 Мдаа хитро сделано) и таки работает? )) Link to post Share on other sites
dnserg 6 Posted 2012-02-27 16:08:37 Share Posted 2012-02-27 16:08:37 таки да =) вроде деньги несут потихоньку =) Link to post Share on other sites
dnserg 6 Posted 2012-02-27 16:10:34 Share Posted 2012-02-27 16:10:34 Если нужно могу еще запостить как оно записывает это все в таблицу снятия денежных средств ... а то могут быть проблемы с пользователями по поводу того что их обворовывают =) Link to post Share on other sites
Romeshik 144 Posted 2012-02-27 16:11:22 Author Share Posted 2012-02-27 16:11:22 Если не сложно, буду благодарен Link to post Share on other sites
dnserg 6 Posted 2012-02-27 16:12:04 Share Posted 2012-02-27 16:12:04 може кому-то надо будет : 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
dnserg 6 Posted 2012-02-27 16:13:17 Share Posted 2012-02-27 16:13:17 пишет сколько за каждый логин сняло + название тарифа в поле комент, в fee общая сумма снятия, в deposit депозит после снятия если выполнять после снятия =) Link to post Share on other sites
dnserg 6 Posted 2012-02-27 16:18:09 Share Posted 2012-02-27 16:18:09 но это ж не на старгейзер =) Link to post Share on other sites
Romeshik 144 Posted 2012-02-27 17:31:10 Author Share Posted 2012-02-27 17:31:10 Да я уже по скрптам понял что не старгейзер) но сам смысл важен) Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now