раньше вроде не замечали таких глюков, но поставили майское обновление и в некоторых месяцах, у некоторых абонов происходят глюки с учетным периодом, при этом вываливается след ошибка:
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 сентября.
Кто-нить еще сталкивался ?
Как правится?
Если UTM4 работает в бинарном виде, то эта ошибка не возникает,
т.к. старый вариант библиотечной функции, отвечающей за манипуляции с датами,
не содержит никаких проверок на правильность входных данных.
Для неё 32 января - это то же самое, что 1 февраля.
Если UTM декомпилированный, то он использует библиотеки, идущие в составе ОС.
В этом случае проблема появится.
Решить её можно многими способами, в частности:
1) вручную или автоматически найти всех клиентов, у которых граница учётного периода лежит после 28 числа, и сдвинуть её на 28 число.
2) наложить на main.pl небольшой патч, который будет делать это на лету в тех случаях, когда оно реально требуется.