dev-master
9999999-dev https://github.com/pistol88/yii2-work-sessionyii2-work-session ведет учет прихода и ухода сотрудников на работу
BSD-3-Clause
The Requires
by Ilya Pistol
yii2 module application session work pistol88
yii2-work-session ведет учет прихода и ухода сотрудников на работу
Модуль предоставляет интерфейс для ведения учета рабочих смен сотрудников, а также организации в целом. Есть возможность планировать график и контролировать рабочие смены., (*1)
, (*2)
Фиксируется начало всей смены, время прихода и ухода каждого сотрудника, рассчитывается время фактического нахождения на рабочем месте., (*3)
Выполнить команду, (*4)
php composer require pistol88/yii2-work-session "*"
Или добавить в composer.json, (*5)
"pistol88/yii2-work-session": "*",
И выполнить, (*6)
php composer update
Далее, мигрируем базу:, (*7)
php yii migrate --migrationPath=vendor/pistol88/yii2-work-session/migrations
В конфигурационный файл приложения добавить модуль worksess, настроив его, (*8)
'modules' => [ //... 'worksess' => [ 'class' => 'pistol88\worksess\Module', 'adminRoles' => ['administrator'], //модуль пользователей 'userModel' => 'common\models\User', //Перечень смен 'shifts' => [ '07:00' => 'Дневная смена', '19:00' => 'Ночная смена', ], //кол-во часов в смене 'hoursCount' => 12, //callback функция, позвращающая список работников 'workers' => function() { return \common\models\User::findAll(['status' => 2, 'id' => Yii::$app->authManager->getUserIdsByRole(['washer'])]); }, ], //... ]
В модели пользователя подключить поведение pistol88\worksess\AttachSession, чтобы получать время работы через $user->getSessionTime($date), (*9)
Управление сессиями по роуту: worksess/session/current., (*10)
Управление расписанием выхода сотрудников по роуту: worksess/session/current., (*11)
<?php use pistol88\worksess\widgets\ControlButton; use pistol88\worksess\widgets\Info; use pistol88\worksess\widgets\SessionGraph; ?>
Информация об общей смене сменой:, (*12)
<?=Info::widget();?>
Информация о смене сотрудника ($worker - модель пользователя):, (*13)
<?=Info::widget(['for' => $worker]);?>
Кнопки переключения старта\остановки общей сессии и сессии отдельного сотрудника (если передано свойство $worker):, (*14)
<?=ControlButton::widget(['for' => $worker]);?>
Вывод визуализации рабочего дня сотрудников, (*15)
<?=SessionGraph::widget();?>
В момент создания и завершения сессии можно выполнять какие-либо пользовательские сценарии, вынесенные в конфиг:, (*16)
'components' => [ 'worksess' => [ 'class' => 'pistol88\worksess\Session', 'on start' => function($event) { //Сессия - $event->model; }, 'on stop' => function($event) { //Сессия - $event->model; } ], ], (*17)
yii2-work-session ведет учет прихода и ухода сотрудников на работу
BSD-3-Clause
yii2 module application session work pistol88