Название: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 08:44:11 Доброго времени суток!
Лазил по форуму не нашел ничего похожего, так что если повторюсь заранее извиняюсь! Дело в том что при снятии денег 1-го числа у абонента баланс минусовой. Допустим что он не хочет пользоваться в этом месяце интернетом. Через месяц опять начинает пользоваться! А баланс в минус за 2 месяца! Я понимаю что если выставить другой пакет у которого абонплатны нет с заблокированым доступ это решит проблему. Но дело в том что если таких людей много ? Есть ли какое то решение данной проблемы? Допустим как при добавлении нового абонента, пока трафик не начнет бегать от него то и баланс не будет уходить в минус каждый месяц! Название: Re: Баланс и новый месяц! Отправлено: Belos от 01 Октября 2012, 09:00:13 Может это подойдет - forum.nodeny.com.ua/index.php?topic=1532.0
Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 09:37:49 $sql="SELECT * FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) AND mid=0";
надо поменять в файлике перехода на новый месяц. 250 строка Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 09:39:33 Спасибо!
Попробуем Название: Re: Баланс и новый месяц! Отправлено: elite от 01 Октября 2012, 09:49:42 $sql="SELECT * FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) AND mid=0"; а почему не SELECT * FROM users WHERE block_if_limit=1 AND balance>=limit_balance AND mid=0надо поменять в файлике перехода на новый месяц. 250 строка ? Название: Re: Баланс и новый месяц! Отправлено: Cell от 01 Октября 2012, 10:06:24 нифига это не решает проблему т.к. баланс с услугами и просто баланс - это разные вещи... всеравно 2 месяца отминусует
Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 10:16:03 Тогда вариант решения проблемы есть ?
Что бы пакет остался и в минус дальше не уходил Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 11:07:07 С триггером трафика проще
Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 12:12:49 Интересно как же проще ?
Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 12:29:08 У нас реализовано правда на суточной абонплате
Списывание происходит при условии наличия трафика Порог выставляется в тарифе Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 12:53:32 тоесть ты хочешь сказать что у тебя в тарифном плане есть какой то лимитированый трафик и оплата только за трафик идет ?
Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 12:58:37 Нет. Снятие абонплаты идет только тогда, когда был трафик
А сколько трафика определяется в тарифе. В вашем случае это не катит. Как раз тоже заинтересован в вашей задаче. Буду на работе - подумаю Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 13:04:43 что ж...
буду тогда что то думать сам. если получиться что то сделать, скину инфу! Но все таки если будут предложения выслушаю Название: Re: Баланс и новый месяц! Отправлено: Cell от 01 Октября 2012, 13:05:04 да все уже придумали 100500 раз за вас http://nodeny.info/moduli/priostanovka
Название: Re: Баланс и новый месяц! Отправлено: md5 от 01 Октября 2012, 13:07:51 Cell
Еще раз повторюсь! Не все заходят на статистику и приостанавливают вручную! Название: Re: Баланс и новый месяц! Отправлено: Cell от 01 Октября 2012, 15:10:29 А я где-то что-то написал про приостановку "вручную"? Вы, любезный, по ссылке были?
Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 19:52:02 $sql="SELECT * FROM users WHERE if(block_if_limit=1,balance>=limit_balance,1) AND mid=0"; только что проверил.надо поменять в файлике перехода на новый месяц. 250 строка снимает у тех у кого положительный баланс. у кого отрицательный - не снимает. только у меня заказчик поменял ТЗ. так что - пока я занят другим Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 20:06:30 у меня заказчик просит реализовать такое:
стоимость тарифа например - 105 грн на счету - 104 грн. у такого пользователя при запуске new_month.pl доступ должен заблочиться, а деньги не списаться. если у пользователя сумма > стоимости его тарифа, то сумма спишется и доступ не заблочится. поидее left join подкидываю таблицу Plans2, и если мой u.balance >= p.price, то тогда списывать Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Октября 2012, 22:10:13 $sql="SELECT * FROM users u LEFT JOIN plans2 p ON u.paket=p.id WHERE u.balance >= p.price AND mid=0";
чето не то....туплю на ночь Название: Re: Баланс и новый месяц! Отправлено: Cell от 02 Октября 2012, 00:58:05 Похвальное желание обойтись одним запросом, только боюсь, что ничего не выйдет )
Во-первых это нифига не универсальный способ, т.к. бывают еще доп тарифы... скидки, доп услуги ну и не забываем о потрафиковых списаниях )))) Я же говорю, все придумали до вас ))) Название: Re: Баланс и новый месяц! Отправлено: stix от 02 Октября 2012, 06:12:51 ну тот модуль это не совсем то, что нужно.
мне по-сути нужна только модификация new month. насчет доп услуг верно, я забыл за них. одним sql наверное не отделаешься, хотя опять Join ) но в srvs если не ошибаюсь битовые сдвиги плохо, что времени нет особо то.... Название: Re: Баланс и новый месяц! Отправлено: Cell от 02 Октября 2012, 10:45:02 ну тот модуль это не совсем то, что нужно. Судя по описанию как раз именно то. Т.к. если у юзера баланс 104 а услуга 105 - это обозначает что баланс с услугой (-1) т.е. как раз та ситуация, которую и обрабатывает мой модуль. )))Название: Re: Баланс и новый месяц! Отправлено: stix от 02 Октября 2012, 10:50:38 зачем модуль?
когда достаточно изменить new_month.pl как оно должно работать я понимаю, вопрос в том, что я не успеваю по времени сделать все правильно и горожу велосипеды. судя по описанию модулю, он замораживает и че-то там переводит пользователей. а мне достаточно тупо блочить пользователей, не снимая денег за новый месяц. Цитировать Модуль представляет из себя отдельный скрипт, запускаемый по cron. Если у абонента на момент запуска скрипта имеется заблокированная по финансовым причинам услуга, то считается, что абонент не пользовался услугами весь прошлый месяц и абонплата с него не списывается. Т.е. абонент становится "замороженным" до тех пор, пока он не пополнит баланс. После пополнения баланса система автоматически "размораживает" абонента. $got_money это ж сумма снятия с услугами, так?Название: Re: Баланс и новый месяц! Отправлено: stix от 02 Октября 2012, 19:34:17 Код: $sql="SELECT u.id,u.balance,u.grp,u.paket,u.paket3,u.srvs,u.start_day,u.discount,u.cstate,u.next_paket,u.next_paket3,p.price FROM users u LEFT JOIN plans2 p ON u.paket=p.id WHERE u.balance >= p.price "; u. и p. чтобы не путаться, а так грабли были в том, что снимало с p.id, а не u.id но не учитывает еще доп услуги. Название: Re: Баланс и новый месяц! Отправлено: blackjack от 02 Октября 2012, 22:07:34 а в каком месте это вставить?
Название: Re: Баланс и новый месяц! Отправлено: stix от 02 Октября 2012, 22:12:47 после:
$err_connect="$0: обрыв соединения с базой данных. Вероятно, переход на новый месяц не завершен. Запустите скрипт перехода повторно.\n"; 250 строка ща еще доделал велосипед к доп услугам. Название: Re: Баланс и новый месяц! Отправлено: stix от 02 Октября 2012, 22:43:13 также добавляем ниже:
$price=$p->{price}; и так: Код: # режим отчета=0 - необходим для формирования $service_list теперь логика работы такая: если например у пользователя на счету 100 грн тариф стоит 99 грн. система его тарифицирует. на счету остается 1 грн если на счету 98 грн тариф 99 грн в новом месяце на счету остается 98 грн, доступ блокируется пока не доложит 1 грн. если на счету 100 грн, стоимость тарифа 99 грн, но присутствует доп услуга стоимостью 30 грн в новом месяце остается на счету 100 грн, доступ блокируется пока не доложит 30 грн. вроде так как хотел заказчик. если есть где-то логические ошибки, напишите плиз, а то ночные бредни в голове поднадоели. ну и модуль соответственно покупать не имело смысл. остается еще поработать с доп услугами тарифов "заморозки" нужно поставить триггер на такой тариф, чтобы снимались доп услуги. Название: Re: Баланс и новый месяц! Отправлено: Cell от 03 Октября 2012, 00:34:49 ну и модуль соответственно покупать не имело смысл. Имело, т.к. ты целый день протрахался, но даже близко не подобрался к тому что делает модуль ))))Название: Re: Баланс и новый месяц! Отправлено: stix от 03 Октября 2012, 06:19:07 не целый день, а вечер и ночь )
другой работы тонна. сегодня еще доделаю по-человечески кое-чего. тебя затрахал бы заказчик с постоянным изменением ТЗ ;D Название: Re: Баланс и новый месяц! Отправлено: Cell от 03 Октября 2012, 08:36:10 Да я все изменения знаю уже... даже знаю что он тебя следующее попросить сделать. И ты будешь делать делать и делать... а всего-то нужно было 300 гр. )))
Я сам никогда не заморачиваюсь, если подходящий софт уже есть. Правда часто даже в купленном приходится находить и исправлять ошибки, ну дык все этим грешат.... куда деваться. Название: Re: Баланс и новый месяц! Отправлено: stix от 03 Октября 2012, 08:40:22 та дело не в том, что я принципиально не хочу покупать модуль, а в том, что я наверное не понимаю как он сможет подойти сюда.
но и не хочу доставать тебя каждый раз, чтобы ты допиливал и доставлял колеса в этот велосипед. Название: Re: Баланс и новый месяц! Отправлено: stix от 03 Октября 2012, 09:22:33 кстати таки натупил
надо так: Код: if ($got_money > $start_money) и добавить так: Код: if ($perehodim == 1) костыль, но вроде работает ;D Название: Re: Баланс и новый месяц! Отправлено: stix от 04 Октября 2012, 11:46:08 в финале все решилось еще проще и правильней.
250 строку оставляем как и есть $sql="SELECT * FROM users WHERE mid=0"; $price=$p->{price}; нафиг не нужно добавлять после Код: $h=&Money($money_param); Код: if ($got_money > $start_money) Код: chomp $reason; Код: if ($perehodim == 1) Название: Re: Баланс и новый месяц! Отправлено: md5 от 04 Октября 2012, 12:00:04 Это что бы в минус не уходил ?
Или по твоему тарифу ? Название: Re: Баланс и новый месяц! Отправлено: stix от 04 Октября 2012, 12:02:07 по твоему я писал вначале.
а это по-моему но чувствую, что заказчик забыл упомянуть, что доступ должен быть блокирован этому пользователю в след.месяце Название: Re: Баланс и новый месяц! Отправлено: kuhar от 01 Декабря 2012, 14:07:19 У меня возможно глупый вопрос, но что нужно сделать, если у клиента минус на счету, и он месяц не пользуется, чтобы у него абонплата не снималась еще больше в минус?
Название: Re: Баланс и новый месяц! Отправлено: stix от 01 Декабря 2012, 14:16:50 на форуме 10500 ответов
Название: Re: Баланс и новый месяц! Отправлено: Sergey от 01 Августа 2013, 00:06:46 если писали 10500 раз на форуме,так будь человеком покажи где оно!!!
Название: Re: Баланс и новый месяц! Отправлено: Efendy от 01 Августа 2013, 08:33:31 Ставь N+, там есть такая фича)
Название: Re: Баланс и новый месяц! Отправлено: Redmen от 01 Августа 2013, 11:12:46 Ставь N+, там есть такая фича) up |