Задача [#7.1]: График работ по должности или по подразделению

Формулировка проблемы: требуется возможность:

Решение:

Замечание: далее читать «дата» как «дата/время».

Разработать график работ с возможностью создавать и перемещать работы по графику. Необходима возможность работать на графике нагрузки как с должностями, так и с подразделениями. Временные ограничения на графике: день и неделя.

По умолчанию график нагрузки отображает работы в режиме «День». Слева в графике, отображаются Ф.И.О. сотрудников (на сером фоне) выбранного подразделения или должности. Ниже, под списком размещён выпадающий список с возможностью переключения между режимами «День» и «Неделя». Справа от списка сотрудников размещен график. Под графиком — таймлайн с возможностью перехода вперед-назад по дням (неделям) и выбором дня или недели из календаря. Для привлечения внимания к самому графику, все окружающие его элементы имеют «мягкие» оттенки серого. Работы на графике отображаются как прямоугольники пастельных тонов: желтого — для работ невыполненных, зеленые — для выполненных работ и составные для индикации присутствия нескольких работ в одном и том же временном промежутке. Так же на составных прямоугольниках расположен индикатор количества работ, которые должны быть выполнены в тот же самый промежуток времени, а также размещена стрелка вниз.

Создать новую работу можно одинарным нажатием по любой пустой «клетке» на графике. При протягивании курсора направо либо налево (не отпуская левую кнопку мыши) под ним должен появится и растягиваться по строке полупрозрачный желтый прямоугольник. Размер прямоугольника работы при растягивании изменятся согласно сетке графика (т. е. для режима «день» он будет прибавлять по одному часу). Отпускание левой кнопки мыши установит прямоугольник на выделенной области графика, и вызовет диалоговое окно создания работы с преднастроенными параметрами, соответствующими положению работы на графике — ответственным, датой начала и датой завершения. После того, как поля диалога будут заполнены и работа будет создана, прямоугольник станет непрозрачным.

Пользователь с помощью графика может изменить ответственного работы (перемещая её по графику), дату начала и дату завершения (перемещая и «растягивая» соответствующий прямоугольник за правый либо левый край). Зона растяжки/сжатия составляет 5 пикселей. 2 пикселя по бокам и один пиксель — край прямоугольника.

Если у пользователя происходит наложение нескольких работ по времени, то они «сворачиваются» в особый блок с такой общей шириной, чтобы он охватывал по времени все перекрывающиеся работы. Внутри этого прямоугольника показаны работы, которые он «свернул» в виде прямоугольников, ширина и координаты которых вычисляются по датам начала и завершения «свёрнутых» работ, а высота равна общей высоте «свёрнутого» блока, делённой на количество перекрывающихся работ. В случае, если результирующая высота внутренних прямоугольников получается меньше 1 пикселя (очень много перекрывающихся работ), то за высоту прямоугольника принимается 1 пискель, а «свёрнутый» блок (и все блоки в этой строке, а также сама строка) соответственно увеличивается по высоте. Кроме того, на «свёрнутом» блоке появляется число, обозначающее количество «свёрнутых» работ и стрелка вниз — для разворачивания блока

Для того чтобы отредактировать или удалить работу, необходимо вызвать контекстное меню нажатием правой кнопки мыши по прямоугольнику работы. Контекстное меню содержит в себе два пункта: «Изменить работу» и «Удалить работу». Нажатие на «Изменить работу» вызовет диалог редактирования работы. «Удалить работу» вызовет диалоговое окно подтверждения удаления. Для «свёрнутого» блока эти команды недоступны.

Кнопка «График работы» будет расположена первой для должности в навигаторе модуля «Сотрудники», и доступна только в том случае, если пользователь является руководителем подразделения, в котором есть эта должность.

Кнопка «График работы» будет расположен первой для подразделения в навигаторе модуля «Сотрудники», и доступна только в том случае, если пользователь является руководителем этого подразделения.

Все манипуляции с работами сотрудников можно проделать, только если у вас на это есть соответствующие права.

Макет дизайна:

Рисунок 297. Основное окно Графика работ

Основное окно Графика работ

Рисунок 298. Основное окно Графика работ с раскрытым индикатором

Основное окно Графика работ с раскрытым индикатором

Рисунок 299. Основное окно Графика работ в режиме просмотра Неделя

Основное окно Графика работ в режиме просмотра Неделя

Рисунок 300. Отображение должности на графике

Отображение должности на графике

Рисунок 301. Отображение подразделения в графике

Отображение подразделения в графике