EmployeeSchedule - Расписание сотрудников, название говорит само за себя.
Принцип работы:
Из-за политики безопасности браузера скрипт лучше запускать на сервере, так как он подгружает json-данные аяксом. Без сервера может не работать.
Предполагается что данные запрашиваются с сервера через диапазон дат, данные приходят в формате json. Количество данных не ограничено.
Скрипт строит расписание по дням, далее дни разбиваются по часам и на определенные промежутки времени можно назчанить время работы сотрудника. На основе дат (DATETIME как в MYSQL формат) вычисляются такие данные как процентное соотношение выполненной работы и плана, кто не явился, опоздания и т.д. Потом все это визуально отображается.
- Из json получаем даты и сортируем от меньшей к большему, для визуального удобства, повторные исключаем. Жалательно чтобы дни приходили без разрывов, т.е последовательно 1, 2, 3 и т.д.
- У одного сотрудника может быть несколько смен, по этому объединяем пользователей в одну строку с одинаковыми данными (имя сотрудника, место работы). Так же сохраняем дополнительные данные: процент выполнения, кол-во занимаемых клеток, на сколько опоздали и т.д
- выводим на экран пользователей и смены - последовательно, с привязкой ко времени, независимо в каком порядке они пришли
- добавляем обработчики событий, летающее меню и тд
- После вычислений отображаем