Страница 1 из 2
Смена тарифного плана пользователем
Добавлено: Пт фев 15, 2008 12:17 pm
NiTr0
Смена тарифного плана по расписанию не работает. Денег на счету пользователя - достаточно для изменения. В крон скрипты прописал, для проверки пускал вручную - результат прежний.
2я проблема - при смене тарифного плана немедленно выдается ошибка сервера, при этом в логах остается строчка
Код: Выделить всё
malformed header from script. Bad header=<p>SELECT u.uid,: index.cgi, referer: http://billing.xxx.xxx/index.cgi?index=33&sid=7LVNTJy6gMBhj3GL
Версия - 0.40b, апдейт от 13 февраля.
Добавлено: Пт фев 15, 2008 12:37 pm
ran
да всё работает... лично у меня больше года
Добавлено: Пт фев 15, 2008 12:41 pm
NiTr0
ran
Какая версия движка у вас сейчас?
ЗЫ при немедленной смене тарифного плана, несмотря на выдаваемую ошибку, тарифный план все же меняется.
Добавлено: Пт фев 15, 2008 12:59 pm
ran
рабочая 037 и давно... ну с ноября 07 не обновлял (реально Абиллс у меня пашет... ну гте-то с начала 07)
тестовая на каррент 04 иперейду сразу как перестрою свои почтовики
нюансы есть Автор знает...
Добавлено: Пт фев 15, 2008 2:02 pm
NiTr0
Смена тарифного плана же происходит в установленный пользователем день по старту daily/monthly скрипта? Или в следующий день?
Добавлено: Пн фев 18, 2008 9:25 pm
NiTr0
Хм... Вроде как тарифный план меняет (похоже на следующий день, еще проверю), но - время окончания пакета остается старое

Это глюк, либо так и задумано?
Добавлено: Вт фев 19, 2008 6:16 am
chtito
Конечно глюк. И если в доках как использовать не расписано - тоже глюк...
Добавлено: Вт фев 19, 2008 9:18 am
~AsmodeuS~
NiTr0 писал(а):Смена тарифного плана же происходит в установленный пользователем день по старту daily/monthly скрипта? Или в следующий день?
в день записанный в дате расписания.
Добавлено: Вт фев 19, 2008 11:54 am
NiTr0
Таки не меняются тарифные планы. Причина - в том, что в базе день/месяц хранятся без предшествующего нуля, при этом день и месяц - записи типа char(2):
Код: Выделить всё
id uid date type action aid counts d m y h module
3 1 2008-02-18 tp 5 2 0 19 2 2008 * Dv
В sql запросе же день и месяц - всегда 2-значные, вот пример (в Abills/mysql/Schedule.pm вставил в 158 строке
print($WHERE); ):
Временный фикс - в Shedule.pm в строке 184 (добавление записи) добавлено
Код: Выделить всё
if (length($H) == 1 && $H ne '*') {
$H='0'.$H;
}
if (length($D) == 1 && $D ne '*') {
$D='0'.$D;
}
if (length($M) == 1 && $M ne '*') {
$M='0'.$M;
}
и для спокойствия изменил строки (формирование выборки):
127:
заменен на
Код: Выделить всё
(length($attr->{M}) == 1 && $attr->{M} ne '*') ? push @WHERE_RULES, "s.m='0$attr->{M}'" : push @WHERE_RULES, "s.m='$attr->{M}'";
131:
заменен на
Код: Выделить всё
(length($attr->{D}) == 1 && $attr->{D} ne '*') ? push @WHERE_RULES, "s.d='0$attr->{D}'" : push @WHERE_RULES, "s.d='$attr->{D}'";
Добавлено: Вт фев 19, 2008 12:20 pm
chtito
Ну и ну, неужели все так плохо... У вас надеюсь куррент?
Добавлено: Вт фев 19, 2008 12:40 pm
NiTr0
chtito писал(а):У вас надеюсь куррент?
Версия и дата апдейта указана в 1м посте...
Re: Смена тарифного плана пользователем
Добавлено: Вт фев 19, 2008 1:26 pm
NiTr0
NiTr0 писал(а):2я проблема - при смене тарифного плана немедленно выдается ошибка сервера, при этом в логах остается строчка
Код: Выделить всё
malformed header from script. Bad header=<p>SELECT u.uid,: index.cgi, referer: http://billing.xxx.xxx/index.cgi?index=33&sid=7LVNTJy6gMBhj3GL
С этим тоже разобрался - в Dv.pm есть строка 272:
которая и включает вывод дебаг инфо. Закомментировал - теперь все ОК.
Добавлено: Вт фев 19, 2008 3:16 pm
~AsmodeuS~
уже все поправил
Добавлено: Ср фев 20, 2008 1:47 pm
sopov
Не стал создавать отдельную тему - спрошу здесь - сильно не пинайте...Как работает смена тарифного пользователем? Дело в том, что я создал групу тар. планов - добавил туда соответствующие тп, добавил в конфиг нужные опции, а у пользователей в админке пишется "Неразрешенная операция"
Добавлено: Ср фев 20, 2008 2:10 pm
ran
да по-идее на это должно влиять вот это:
$conf{DV_USER_CHG_TP}
$conf{DV_USER_CHG_TP_SHEDULE}
$conf{DV_USER_CHG_TP_NPERIOD}
хотя я сам не пробовал - я не разрешаю менять