手枪88 / yii2-work-session
yii2-work-session 用于记录员工上下班情况
dev-master
2017-04-25 13:59 UTC
Requires
- php: >=5.4.0
- kartik-v/yii2-grid: *
- nex/yii2-datepicker: *
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
This package is auto-updated.
Last update: 2024-08-27 21:28:53 UTC
README
模块提供了记录员工工作班次和整体组织班次的接口。可以安排班次并监控工作班次。
记录整个班次开始时间,每个员工上下班时间,计算实际工作时间。
安装
执行以下命令
php composer require pistol88/yii2-work-session "*"
或者将以下内容添加到 composer.json
"pistol88/yii2-work-session": "*",
然后执行
php composer update
接下来,迁移数据库
php yii migrate --migrationPath=vendor/pistol88/yii2-work-session/migrations
连接和配置
在应用程序配置文件中添加模块 worksess,并配置它
'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) 获取工作时间
通过路由 worksess/session/current 管理会话
通过路由 worksess/session/current 管理员工出勤时间
小部件
<?php use pistol88\worksess\widgets\ControlButton; use pistol88\worksess\widgets\Info; use pistol88\worksess\widgets\SessionGraph; ?>
整体班次信息
<?=Info::widget();?>
员工班次信息($worker - 用户模型)
<?=Info::widget(['for' => $worker]);?>
切换总班次和单个员工班次(如果传递了属性 $worker)的按钮
<?=ControlButton::widget(['for' => $worker]);?>
显示员工工作日的可视化
<?=SessionGraph::widget();?>
触发器
在会话创建和结束时,可以执行配置中的自定义场景
'components' => [ 'worksess' => [ 'class' => 'pistol88\worksess\Session', 'on start' => function($event) { //会话 - $event->model; }, 'on stop' => function($event) { //会话 - $event->model; } ], ],