ianvizarra / attendance
Laravel应用的人员出勤包。
v0.1.1
2022-11-11 06:49 UTC
Requires
- php: ^8.0|^8.1
- illuminate/contracts: ^9.0
- spatie/enum: ^3.13
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-11 11:08:44 UTC
README
轻松添加出勤功能到您的Laravel应用中。
安装
您可以通过composer安装此包
composer require ianvizarra/attendance
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="attendance-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="attendance-config"
这是已发布配置文件的内容
return [ 'logs_table' => 'attendance_logs', 'schedule' => [ 'timeIn' => 9, 'timeOut' => 17, 'requiredDailyHours' => 8, 'timeInAllowance' => 30, // minutes 'workDays' => [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ], 'offDays' => [ 'Saturday', 'Sunday' ] ], 'user_model' => config('auth.providers.users.model', \App\Models\User::class), 'users_table' => 'users' ];
将CanLogAttendance接口和HasAttendance特质添加到您的User模型中。
class User extends Authenticatable implements CanLogAttendance { use HasAttendance; }
用法
使用用户模型
$user->attendance(); // HasMany relationship to attendance log model $user->timeIn(); // create an time-in attendance log entry $user->timeOut(); // create an time-out attendance log entry $user->hasTimeIn(); // return true if user already time-in for today $user->hasTimeOut(); // return true if user already time-out for today $user->hasWorked(); // return true if user already time-in and time-out for today $user->getTimeIn(); // return the time-in attendance log for today $user->logAttendance('in', 'on-time', now()); // manually log an attendance by type, status and time
使用外观
use Ianvizarra\Attendance\Facades\Attendance; // create an attendance log entry for the currently logged-in user // by default it will the current time Attendance::timeIn(); Attendance::timeOut(); // manually set the time logged instead of the current time Attendance::timeIn(now()->subMinutes(30)); // manually set the schedule configuration // the default config values can be found in config/attendance.php `config('attendance.schedule.hours')` Attendance::timeIn(now(), [ 'timeIn' => 8, 'timeOut' => 16, 'requiredDailyHours' => 8 ]); // manually set the user other than the logged-in user Attendance::setUser($user)->timeIn(); // get the time in status Attendance::timeInStatus(); // on-time, late // manually set the time using Carbon instance Attendance::timeInStatus(now()->subMinutes(30)); // on-time, late // manually set the schedule configuration Attendance::timeInStatus(now(), [ 'timeIn' => 8, 'timeOut' => 16, 'requiredDailyHours' => 8 ]); // on-time, late // get the time out status Attendance::timeOutStatus(); // on-time, under-time // manually set the time using Carbon instance Attendance::timeOutStatus(now()->subMinutes(30)); // on-time, under-time // manually set the schedule configuration Attendance::timeOutStatus(now(), [ 'timeIn' => 8, 'timeOut' => 16, 'requiredDailyHours' => 8 ]); // on-time, under-time
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。