Поле "Стаж работы сотрудника"

Поле "Стаж работы сотрудника"

от Нелли Габдулхакова -
Количество ответов: 9

Здравствуйте!

Необходимо, чтобы в отчете итоговых оценок отображался столбец "Стаж работы сотрудника".

Добавила в профиль пользователя поле "Стаж работы сотрудника", но проблема в том, что необходимо, чтобы стаж  считался автоматически и не приходилось всё время вручную  изменять информацию. Как можно это реализовать?


В ответ на Нелли Габдулхакова

Re: Поле "Стаж работы сотрудника"

от Evgeniy Schuetz -

Заносите в поле не стаж работы, а дату начала работы, тогда стаж можно получить = текущая дата - <значение поля стаж работы>. Как эту инфу вывести в итоговый отчет по оценкам в курсе ? - либо ковырять форму вывода итоговой оценки (недавно обсуждалась в форуме схожая тема) и опять же варианты - при выводе на экран или при экспорте в файл?; либо второй вариант - ставить Configurable Report, взять готовый запрос итоговых оценок и дополнить вывод нужной  колонкой. ИМХО - второй вариант проще, если нужны только итоговые оценки за курс.

Есть и третий вариант - экспортировать оценки и данные пользователей и делать пост-обработку в Excel.

В ответ на Evgeniy Schuetz

Re: Поле "Стаж работы сотрудника"

от Нелли Габдулхакова -

Нужно вывести при экспорте в файл

Спасибо

В ответ на Нелли Габдулхакова

Re: Поле "Стаж работы сотрудника"

от Vadim Tabunshchik -
Изображение пользователя Developers

В базе плагинов есть дополнительное поле для профиля пользователя: https://moodle.org/plugins/profilefield_timestamp

Я его немного «допилил», вот что выводит в профиле пользователя:

001

Почему то стандартная функция Мудл format_time считает с ошибкой в несколько дней. Кажется, функция не учитывает наличие високосных лет за период с 1997 года (как раз 5 штук набирается) улыбаюсь

Как добавить столбик с этими данными в файл Excel с оценками знаете? На форуме уже обсуждали.

Подправленный плагин прикрепил к сообщению.

В ответ на Vadim Tabunshchik

Re: Поле "Стаж работы сотрудника"

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Действительно, алгоритм не учитывает високосные годы, просто делит общее число секунд на число секунд в обычном году и берет остаток. Создал тикет MDL-57641

В ответ на Vadim Tabunshchik

Re: Поле "Стаж работы сотрудника"

от Нелли Габдулхакова -
Спасибо

А как вывести в отчет в виде "3 г. 1 день"?

У меня при экспорте в колонке стаж  вывело "1389591300", где можно изменить формат?

В ответ на Нелли Габдулхакова

Re: Поле "Стаж работы сотрудника"

от Vadim Tabunshchik -
Изображение пользователя Developers

Вы какой архив скачивали? Нужно было скачать и установить отсюда: https://moodle.org/mod/forum/discuss.php?d=345643#p1394169

Отредактируйте файл timestamp/field.class.php, заменив строку 42 на это:

                '('. format_time(time() - $this->data) .')';
В ответ на Vadim Tabunshchik

Re: Поле "Стаж работы сотрудника"

от Нелли Габдулхакова -

Скачивала Ваш архив

В профиле выводит в нормальном виде, а вот в экспортированном отчете в unix формате

В ответ на Нелли Габдулхакова

Re: Поле "Стаж работы сотрудника"

от Vadim Tabunshchik -
Изображение пользователя Developers
а вот в экспортированном отчете в unix формате

Следовательно, данные нестандартных полей экспортируются в Эксель в необработанном виде, «как есть». В принципе, это можно понять, ведь неизвестно, какое поле придумает пользователь, и система не может знать, как его привести в нужный пользователю вид.

Придется вам пересчитывать это в Эксель. Вот набросок функции для подсчета:

=РАЗНДАТ(A1/86400+"1/1/1970";ТДАТА();"y")&" г. " & РАЗНДАТ(A1/86400+"1/1/1970";ТДАТА();"ym") & " мес. " & РАЗНДАТ(A1/86400+"1/1/1970";ТДАТА();"md") & " дн."

где А1 - ячейка с данными из Мудл