1. Сделать вычисления продолжительности сессии в скрипте загрузки в отдельное поле len. 2. Убрать механизм склеивания сессий. 3. При добавлении пересекающейся сессии укорачивать её продолжительность (len), оставляя время начала и конца. 4. Убрать вычисление продолжительности из TIME (сделав условным? или рассчитав в базе len за весь прошлый период?)
5. Перенести вычисление продолжительности и связанного эфф. времени в базу (загрузку в базу) — то есть нужно добавить ещё поле efflen.
Добавил поле len, добавил его заполнение триггером, заполнил старые запросом. Добавил поле neglen (для обеда). Аналогично.
При добавлении сессии в TIME (работал удаленно) с 23:00-01:00 - он позволил это сделать, но рабочее время за тот день стало... отрицательным... Эффективное - почти сутки... Короче говоря, прошу или запретить такое добавление, или научить TIME корректно отрабатывать такие временные интервалы (включающие полночь).
Вообще раз автоматом могут задаваться сессии, переходящие за сутки, значит и вручную это должно быть без ошибок. По поводу эффективного времени - как оно может быть отрицательным, если оно вычисляется из багзиллы? Вообще если в TIME замечена ошибка, то стоило бы указать, на какой день произошла проблема, чтобы можно было увидеть её воочию.
(В ответ на comment #4) > Вообще если в TIME замечена ошибка, то стоило бы указать, на какой день > произошла проблема, чтобы можно было увидеть её воочию. Создал сессию с 23:00 до 01:00, 2013-01-24 - наблюдал "отрицательные" последствия. Удалил - добавил до 23:59. Хм... С 00:01 до 01:00 25-го куда-то пропала. Сейчас добавлю.
Откладываем задачи, к которым не обращались более 100 дней.