·
17 commits
to main
since this release
🚀 v2.0.0-alpha.4 — Leave Management Workflow + Reports + Export
✨ Highlights
- Added complete Leave Application workflow for employees.
- Added Leave Approvals queue for supervisor/HR roles.
- Added scoped Leave Reports with date/category/status filters.
- Added CSV Export for both Leave Reports and Leave Approvals.
- Completed leave menu wiring and permission-based access behavior.
✅ Added
- Apply Leave module (self-service)
- New leave request form
- Half-day support
- Validation rules for overlap, date range, balance checks, and category limits
- Leave Approvals module
- Approve/reject actions with remarks
- Role/scope based queue visibility
- Auto updates to leave balance (
availed,closing_balance) on approval
- Leave Reports module
- Own/subordinates/all visibility by role/permission
- Employee, category, status, date range filters
- Exports
- Leave Reports export (CSV)
- Leave Approvals export (CSV)
- Employee code + salary grade included in exported/reported columns
🛠 Improved
- Leave balance sync now aligns with salary-grade policy mapping and employee eligibility.
- Earned leave policy fields are integrated into balance generation.
- Generated sync values normalized to whole-day business output (no invalid fraction-style generated values).
- Employee-facing balance page improved with clear My Leave Balance behavior in self scope.
🔐 Permissions
Included/used leave permission set:
leave.viewleave.applyleave.approveleave.manage-categoriesleave.manage-quotasleave.manage-balancesleave.report
Also added:
- Seeder:
LeavePermissionAssignmentSeeder - Raw SQL:
database/sql/leave_permissions_assignments_seed.sql
🧭 Navigation
Leave menu now points to working routes:
- Leave Balances
- Apply Leave
- Leave Approvals
- Leave Reports
- Leave Categories
- Leave Policies
🗃 Release Tags
laravel hrm payroll leave-management workflow approvals reports csv-export permissions self-service alpha
📌 Post-Release Commands
php artisan migrate
php artisan db:seed --class=Database\\Seeders\\PermissionSeeder
php artisan db:seed --class=Database\\Seeders\\RolePermissionSeeder
php artisan db:seed --class=Database\\Seeders\\LeavePermissionAssignmentSeeder📝 Operational Notes
- Ensure employees have valid
salary_grade_id; otherwise leave balance sync will skip those employees. - Leave application approval depends on existing balance rows for employee/category/year.