Название: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 12:37:05 Все знают проблему когда подключаем нового пользователя, например, в феврале, ставим ему день начала потребления, а перерасчет происходит с расчетом 31 день в месяце. Много уже ругались по этому поводу. Оказывается, все фиксится очень просто: в файле nomoney.pl ищем строку
Код: $k=sprintf("%.2f",(32-$start_day)/31); Код: chop($mounth_days=`date -v1d -v\`date -v +1m +%m\`m -v-1d +%d`); Сохраняем, радуемся. PS жмем плюсик ::) Название: Re: Перерасчет при подкючении Отправлено: Efendy от 05 Июля 2010, 14:44:53 скрипт перехода на новый месяц запускается в начале _следующего_ месяца. Эта ситуация разруливается?
Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 15:01:28 скрипт перехода на новый месяц запускается в начале _следующего_ месяца. Эта ситуация разруливается? А это тут при чем? Я изменил только алгоритм перерасчета, больше ничего. Название: Re: Перерасчет при подкючении Отправлено: Efendy от 05 Июля 2010, 15:03:31 а при том, что в следующем месяце обычно дней не такое количество как в предыдущем. Скрипт запускается в следующем месяце чем том, на который идет расчет
Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 15:05:53 Ну и какая разница. Берется первый день следующего месяца минус один день. Получаем дату, выводим в формате %d итого получаем число последнего дня текущего месяца, оно же количество дней в текущем месяце.
Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 15:09:16 [root@host /scripts/ping]# date -v1d
четверг, 1 июля 2010 г. 16:10:03 (EEST) [root@host /scripts/ping]# date -v1d -v08m воскресенье, 1 августа 2010 г. 16:10:46 (EEST) [root@host /scripts/ping]# date -v1d -v08m -v-1d суббота, 31 июля 2010 г. 16:10:55 (EEST) [root@host /scripts/ping]# date -v1d -v08m -v-1d +%d 31 Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 15:17:40 скрипт перехода на новый месяц запускается в начале _следующего_ месяца. Стоп, или ты хочешь сказать что скрипт nomoney.pl запускается дважды? В момент первой активности юзера и в начале следующего месяца? Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 05 Июля 2010, 15:26:57 Специально посмотрел: в таблице users есть поле start_day, в которое соответственно записывается день начала потребления услуги (вычисляется в nomoney.pl в момент первой активности), а уже потом new_month.pl достает из базы значение этого поля, так что все должно быть нормально.
Название: Re: Перерасчет при подкючении Отправлено: blackjack от 05 Июля 2010, 20:01:30 вот не пойму вас, есть функция GetMaxDayInMonth()
так почему не зделать по формуле сумма снятия=(GetMaxDayInMonth($mon_now)-$day_now)*(стоимость тарифа/GetMaxDayInMonth($mon_now)) все. Название: Re: Перерасчет при подкючении Отправлено: stix от 05 Июля 2010, 20:10:12 Код: use Date::Manip; Название: Re: Перерасчет при подкючении Отправлено: Efendy от 05 Июля 2010, 20:26:04 Скрипт перехода на новый месяц не запускается дважды. Суть вот в чем:
для одного и того же снятия, подпрограмма подсчета денег запускается в разные месяцы. Сейчас июль. Когда мы просматриваем баланс клиента, то этот баланс считается динамически. Допустим при подсчете баланса используется текущий месяц. Баланс посчитается правильно. Наступит август и нужно произвести непосредственное снятие денег. Т.е. До этого момента баланс считался динамически, а в момент проводок платежа "снятие за инет" он уже фиксируется в базе. Запускается в августе, т.е. количество дней будет уже не то. Можно сделать минус 1 день. Но тогда 1 числа каждого месяца динамический баланс будет неверный. Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 06 Июля 2010, 08:28:00 Ну в таком случае надо просто задать одно условие: так как скрипт_перехода запускается только первого числа, необходимо сделать так:
if (дата_сейчас==первое_число) {высчитать сколько дней было в прошлом месяце}; Название: Re: Перерасчет при подкючении Отправлено: Efendy от 06 Июля 2010, 08:38:26 Ну в таком случае надо просто задать одно условие: так как скрипт_перехода запускается только первого числа, необходимо сделать так: if( запуск из скрипта перехода) {высчитать сколько дней было в прошлом месяце}if (дата_сейчас==первое_число) {высчитать сколько дней было в прошлом месяце}; Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 06 Июля 2010, 09:03:30 Мой вариант:
Код: chomp($mounth_days=`date -v1d -v\`date -v +1m +%m\`m -v-1d +%d`); А как узнать откуда запуск? Было-бы феншуйнее. Название: Re: Перерасчет при подкючении Отправлено: Efendy от 06 Июля 2010, 14:10:35 Краткий пересказ:
- сделайте эту фичу - разраб занят другим, фича будет в новой версии - хорошо, мы сделали фичу сами - разраб грит, что в фиче есть бока - хорошо, разраб сделай фичу Отвечаю: Цитировать разраб занят другим, фича будет в новой версии Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 06 Июля 2010, 14:43:44 Так сложно сказать метод?
Название: Re: Перерасчет при подкючении Отправлено: Efendy от 07 Июля 2010, 10:03:50 вот не пойму вас, есть функция GetMaxDayInMonth() из nodeny.pl недоступна т.к. он не вызывает calls.plтак почему не зделать по формуле сумма снятия=(GetMaxDayInMonth($mon_now)-$day_now)*(стоимость тарифа/GetMaxDayInMonth($mon_now)) все. Название: Re: Перерасчет при подкючении Отправлено: Efendy от 07 Июля 2010, 10:04:28 Так сложно сказать метод? = сделай. Я же говорил, что сделаю. В новой версии.Название: Re: Перерасчет при подкючении Отправлено: stix от 07 Июля 2010, 10:13:18 Так сложно сказать метод? = сделай. Я же говорил, что сделаю. В новой версии.Название: Re: Перерасчет при подкючении Отправлено: VitalVas от 07 Июля 2010, 11:00:05 следует ждать встречного вопроса, когда будет next ver. ? :D через пол года ;Dили когда выйдет, тогда и будет ;D Название: Re: Перерасчет при подкючении Отправлено: versus от 07 Июля 2010, 11:27:42 Переход с 45 ветки на 48 длился почти 2 года
Переход с 48 ветки на 50 длился больше года Переход с 50.32 .6 на 50.next длится всего c марта месяца, при этом полностью переписывается вэб движок админки, переписываются и оптимизируются основные запросы к базе и учтено множество замечаний по улучшению работы программы. Откуда такое нетерпение к дате релиза, чем текущий стейбл не устраивает ??? Нодени славится тем, что это очень проверенное решение, тщательное тестирование, которого проводится во внутренних сетях. Заметьте, 49.33 была выпущена уже протестированной и рабочей. С момента выхода 49.33 никаких ошибок не замечено, ночь на первое число, я спецально сижу в инете что бы оперативно реагировать на проблемы пользователей. Так вот за 2 последних месяца вобще нет вопросов. Я с чистой совестью в 2 часа ночи иду спать. Хотите ловить баги на своих сетях и быть тестерами новых версий на живых пользователях??? По мне так хоть и полгода и год пусть Стас делает релиз, лишь бы потом не обрывали у вас телефоны пользователи требуя компенсаций за проблемы с биллингом. ЗЫ кому не терпится, записываемся в теме, основное требование работа на тестовой версии на не меньше чем 300 абонентов в течении 2-х месяцев, багрепорты и отчеты еженедельно. Доступ в админку и к ссш сервера приветствуется. Как только поток проблем иссякнет, то сразу же выпускаем релиз. Название: Re: Перерасчет при подкючении Отправлено: VitalVas от 07 Июля 2010, 12:13:34 Переход с 45 ветки на 48 длился почти 2 года я лутше подожду и откажуся от такого заманчевого предложения...Переход с 48 ветки на 50 длился больше года Переход с 50.32 .6 на 50.next длится всего c марта месяца, при этом полностью переписывается вэб движок админки, переписываются и оптимизируются основные запросы к базе и учтено множество замечаний по улучшению работы программы. Откуда такое нетерпение к дате релиза, чем текущий стейбл не устраивает ??? Нодени славится тем, что это очень проверенное решение, тщательное тестирование, которого проводится во внутренних сетях. Заметьте, 49.33 была выпущена уже протестированной и рабочей. С момента выхода 49.33 никаких ошибок не замечено, ночь на первое число, я спецально сижу в инете что бы оперативно реагировать на проблемы пользователей. Так вот за 2 последних месяца вобще нет вопросов. Я с чистой совестью в 2 часа ночи иду спать. Хотите ловить баги на своих сетях и быть тестерами новых версий на живых пользователях??? По мне так хоть и полгода и год пусть Стас делает релиз, лишь бы потом не обрывали у вас телефоны пользователи требуя компенсаций за проблемы с биллингом. ЗЫ кому не терпится, записываемся в теме, основное требование работа на тестовой версии на не меньше чем 300 абонентов в течении 2-х месяцев, багрепорты и отчеты еженедельно. Доступ в админку и к ссш сервера приветствуется. Как только поток проблем иссякнет, то сразу же выпускаем релиз. и другим так советую... Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 27 Августа 2010, 10:39:02 Так сложно сказать метод? = сделай. Я же говорил, что сделаю. В новой версии.в таком случае извиняюсь, я думал что метод уже известен Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 01 Сентября 2010, 15:37:40 Стас, а почему фактическое снятие средств со счета происходит не 1-го числа в 0:00 а минутой раньше? т.е. 31-го в 23:59 ??? ??? И каким это макаром выходит, если скрипт_новый_месяц запускается именно в 0:00 ??
Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 01 Сентября 2010, 16:25:54 Понял, это фича такая...
Кстате, сокращалка %.2f в коэф-те перерасчета грабит честных юзеров на десятки копеек! :) Себе исправил на %.4f Название: Re: Перерасчет при подкючении Отправлено: blackjack от 01 Сентября 2010, 16:54:47 Цитировать Ув. абонент, вы начали пользоваться услугой с 1 числа, т.е. не полный месяц. Мы уменьшили стоимость тарифного плана и предоплаченный трафик: данные тарифного плана умножены на коэффициент 1.00 Актуально ли такое сообщение? :) Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 01 Сентября 2010, 19:11:44 читсо в косметических интересах его легко убрать
Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 01 Октября 2010, 09:24:35 Можно сделать минус 1 день. Но тогда 1 числа каждого месяца динамический баланс будет неверный. А нафига высчитывать динамический баланс 1-го числа? :) Коэфициент все равно будет равен 1! Конечный вариант всего блока: Код: { Название: Re: Перерасчет при подкючении Отправлено: Aivanzipper от 01 Октября 2010, 09:44:46 Актуально ли такое сообщение? :) Да, Вы правы, не так Вас раньше понял. Теперь все стало на свои места. Название: Re: Перерасчет при подкючении Отправлено: relikts от 04 Марта 2020, 10:16:13 Здравствуйте, как отключить перерасчет коэфициента вообще? Чтобы он все время был равен 1. Бухгалтерия требует ровных сумм в отчете без копеек. Нужно чтобы с клиента снималась полная сумма тарифа в не зависимости в какой день месяца он подключился или начал потреблять трафик.
Название: Re: Перерасчет при подкючении Отправлено: WideAreaNetwork от 04 Марта 2020, 10:27:43 Здравствуйте, как отключить перерасчет коэфициента вообще? Чтобы он все время был равен 1. Бухгалтерия требует ровных сумм в отчете без копеек. Нужно чтобы с клиента снималась полная сумма тарифа в не зависимости в какой день месяца он подключился или начал потреблять трафик. начать с того чтобы не плодить один и тот же вопрос в разных темах |