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