ошибка учетного периода

Вопросы по UTM 3.0 и UTM 4.0 (поддержка прекращена)
Закрыто
Mechanic
Сообщения: 63
Зарегистрирован: Чт фев 03, 2005 01:33

ошибка учетного периода

Сообщение Mechanic »

раньше вроде не замечали таких глюков, но поставили майское обновление и в некоторых месяцах, у некоторых абонов происходят глюки с учетным периодом, при этом вываливается след ошибка:

Код: Выделить всё

Don't making traffic classify ... Command opt_c:fast
Discount period ended for user: 799
Discounting prod fee (end period): periodic_prod_code:18 delta_sum:0 uid:799
Day '31' out of range 1..30 at utm_func.pm line 1632
логически это можно пояснить так: в августе 31день, а в сентябре 30, у абона с окончание уч периода должен выставиться период 1октября. а утм пытается выставить 31 сентября.
Кто-нить еще сталкивался ?
Как правится?

ilya_evseev
Сообщения: 48
Зарегистрирован: Сб ноя 25, 2006 05:05
Откуда: Saint-Petersburg, Russia
Контактная информация:

Сообщение ilya_evseev »

Если UTM4 работает в бинарном виде, то эта ошибка не возникает,
т.к. старый вариант библиотечной функции, отвечающей за манипуляции с датами,
не содержит никаких проверок на правильность входных данных.
Для неё 32 января - это то же самое, что 1 февраля.

Если UTM декомпилированный, то он использует библиотеки, идущие в составе ОС.
В этом случае проблема появится.

Решить её можно многими способами, в частности:

1) вручную или автоматически найти всех клиентов, у которых граница учётного периода лежит после 28 числа, и сдвинуть её на 28 число.

2) наложить на main.pl небольшой патч, который будет делать это на лету в тех случаях, когда оно реально требуется.

Mechanic
Сообщения: 63
Зарегистрирован: Чт фев 03, 2005 01:33

Сообщение Mechanic »

уже поправили, заменив функцию

Закрыто