The Leave Request Module allows you to request time off, track your leave balance, and manage your leave history.
✅ Request different types of leave
✅ Check leave balance
✅ View approval timeline
✅ Cancel pending requests
✅ View leave history
✅ Generate leave certificates
1. Request Leave
↓
2. Team Lead Reviews
↓
3. HR Department Reviews
↓
4. Approved ✅ or Rejected ❌
↓
5. Recorded in System
↓
6. Calendar Updated
Vacation Leave (🏖️)
Purpose: Planned vacation/holiday
Duration: Varies (typically 5-10 days per year)
Advanced Notice: 2+ weeks recommended
Approval: Team Lead + HR
Example: Holiday trips, family visits
Sick Leave (🏥)
Purpose: Medical or health issues
Duration: 10 days per year
Advanced Notice: Not required (or same day)
Approval: Quick (2-4 hours)
Example: Illness, medical appointments, rest days
Emergency Leave (⚠️)
Purpose: Unexpected situations
Duration: Immediate need (1-3 days)
Advanced Notice: None
Approval: Team Lead (immediate)
Example: Family emergency, accident, crisis
Maternity/Paternity Leave (👶)
Purpose: Birth of child
Duration: 60-90 days
Advanced Notice: 1 month
Approval: HR + Company President
Example: Childbirth, newborn care
Bereavement Leave (🕊️)
Purpose: Death of family member
Duration: 3-5 days
Advanced Notice: Not required
Approval: Immediate
Example: Funeral, family loss
Study Leave (📚)
Purpose: Educational pursuits
Duration: Varies (1 week to 6 months)
Advanced Notice: 1 month
Approval: HR + Management
Example: Exams, training courses
View Your Balance:
┌────────────────────────────────────┐
│ YOUR LEAVE BALANCE │
├────────────────────────────────────┤
│ │
│ Vacation Leave: │
│ ████░░░░░░░░░░░░░░░░ 4 of 10 days│
│ │
│ Sick Leave: │
│ ███████░░░░░░░░░░░░░ 3 of 10 days│
│ │
│ Emergency Leave: │
│ ██████████░░░░░░░░░░ 5 of 5 days │
│ (Renewed: Jan 1, 2026) │
│ │
│ Study Leave: │
│ Not Allocated (Special) │
│ │
│ Total Unused Days: 12 days │
│ │
└────────────────────────────────────┘
Step 1: Navigate to Leave Request
Left Menu → Leave Request → [+ New Request]
↓
Create Form Opens
Step 2: Fill Request Form
┌────────────────────────────────────────┐
│ CREATE LEAVE REQUEST │
├────────────────────────────────────────┤
│ │
│ * Leave Type: [Vacation ▼] │
│ ├─ Vacation │
│ ├─ Sick │
│ ├─ Emergency │
│ ├─ Study │
│ └─ Other │
│ │
│ * Start Date: [12/20/2025] 🗓️ │
│ * End Date: [12/27/2025] 🗓️ │
│ │
│ Number of Days: 8 days │
│ (Auto-calculated, excludes weekends) │
│ │
│ * Reason: │
│ [ ] │
│ [ Holiday celebration with family ] │
│ [ ] │
│ │
│ * Team Lead: [Maria Santos ▼] │
│ (Auto-filled from your profile) │
│ │
│ Contact During Leave: │
│ [Mobile: 09XX-XXX-XXXX ] │
│ [Email: juan@personal.com ] │
│ │
│ ☐ I confirm this leave is valid │
│ │
│ [Submit] [Clear] [Cancel] │
│ │
└────────────────────────────────────────┘
| Field | Required | Description |
|---|---|---|
| Leave Type | Yes | Category of leave |
| Start Date | Yes | First day of leave |
| End Date | Yes | Last day of leave |
| Reason | Yes | Why you need leave |
| Team Lead | Yes | Direct supervisor |
| Contact Info | Optional | Reachable during leave |
Step 1: Click Start Date
[Start Date: 12/20/2025] 🗓️
↓
Date picker opens
Step 2: Select Calendar
DECEMBER 2025
┌─────────────────────┐
│ S M T W T F S │
├─────────────────────┤
│ 1 2 3 4 5 6 │
│ 7 8 9 10 11 12 13 │
│14 15 16 17 18 19 20 │
│21 22 23 24 25 26 27 │ ← Dec 20 (click)
│28 29 30 31 │
└─────────────────────┘
Step 3: Repeat for End Date
[End Date: 12/27/2025] 🗓️
↓
Same calendar opens
↓
Days auto-calculate
Start Date: December 20 (Saturday)
End Date: December 27 (Saturday)
Calculation:
Dec 20 (Sat) - Weekend ✗
Dec 21 (Sun) - Weekend ✗
Dec 22 (Mon) - Working day ✓
Dec 23 (Tue) - Working day ✓
Dec 24 (Wed) - Working day ✓
Dec 25 (Thu) - Holiday ✗
Dec 26 (Fri) - Working day ✓
Dec 27 (Sat) - Weekend ✗
Total: 4 days (excluding weekends and holidays)
Step 1: Review Details
Review all information is correct:
✓ Leave Type: Vacation
✓ Dates: Dec 22-26, 2025
✓ Days: 4 days
✓ Reason: Holiday celebration
✓ Team Lead: Maria Santos
Step 2: Check Confirmation Box
☑ I confirm this leave request is valid
Step 3: Click Submit
[Submit] button
↓
Processing...
Step 4: Confirmation
✅ SUCCESS!
Your leave request has been submitted.
Request ID: LR-20250004
Status: PENDING (Awaiting Team Lead Review)
Next Steps:
1. Team Lead will review within 24 hours
2. You'll receive notification
3. HR will make final decision
4. Calendar will update when approved
You can check status in:
→ Leave Request History
→ Calendar
→ Notifications
Access Pending Requests:
Leave Request Menu → [Pending Requests] Tab
↓
Shows all requests awaiting approval
Pending List:
┌─────────────────────────────────────────┐
│ PENDING LEAVE REQUESTS │
├─────────────────────────────────────────┤
│ │
│ Request ID │ Type │ Dates │ Days│
├─────────────────────────────────────────┤
│ LR-20250004│ Vacation│ Dec 22-26 │ 4 │
│ Status: Pending Team Lead Review │
│ Submitted: 2 days ago │
│ [View] [Edit] [Cancel] │
│ │
│ LR-20250003│ Sick │ Dec 18-19 │ 2 │
│ Status: Approved by Team Lead │
│ Waiting: HR Review │
│ [View] │
│ │
└─────────────────────────────────────────┘
Can Edit If:
Step 1: Click [Edit]
[Edit] button appears on pending requests
Step 2: Modify Details
Same form as create, but pre-filled
Can change:
✓ Leave Type
✓ Dates
✓ Reason
✓ Contact Info
Step 3: Save Changes
[Update] button
↓
Changes saved
↓
Approvers notified
Can Cancel If:
Step 1: Click [Cancel]
[Cancel] button
↓
Confirmation dialog
Step 2: Confirm Cancellation
┌──────────────────────────────────┐
│ CANCEL LEAVE REQUEST? │
├──────────────────────────────────┤
│ │
│ Are you sure you want to cancel │
│ this leave request? │
│ │
│ Request: LR-20250004 │
│ Dates: Dec 22-26 │
│ │
│ Your leave balance will be │
│ restored to your account. │
│ │
│ [Cancel Request] [Go Back] │
│ │
└──────────────────────────────────┘
Step 3: Cancellation Confirmed
✅ Request Cancelled
LR-20250004 has been cancelled.
Your leave balance has been restored:
4 vacation days returned to your account
Approvers have been notified.
Access History:
Leave Request Menu → [History] Tab
↓
Shows all past and current requests
History View:
┌───────────────────────────────────────────┐
│ LEAVE REQUEST HISTORY │
├───────────────────────────────────────────┤
│ │
│ Filter: [All ▼] [2025 ▼] [Approved ▼] │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ ID │ Type │ From-To │ Status │ A│ │
│ ├─────────────────────────────────────┤ │
│ │ LR │Vaca │22-26 Dec │ ✅ APPR │V│ │
│ │004 │tion │ 2025 │ Approved│ │ │
│ │ │ │ │Jan 1 │ │ │
│ │ │ │ │ │ │ │
│ │ LR │Sick │18-19 Dec │ ✅ APPR │ │ │
│ │003 │ │ 2025 │ Approved│ │ │
│ │ │ │ │Dec 10 │ │ │
│ │ │ │ │ │ │ │
│ │ LR │Study │4-8 Dec │ ❌ REJE │ │ │
│ │002 │ │ 2025 │ Rejected │ │ │
│ │ │ │ │Conf.Cls │ │ │
│ │ │ │ │ │ │ │
│ │ LR │Vaca │1-5 Dec │ ✅ APPR │ │ │
│ │001 │tion │ 2025 │ Completed│ │ │
│ │ │ │ │ │ │ │
│ └─────────────────────────────────────┘ │
│ │
│ [Previous] [1] [2] [Next] (Showing 1-4) │
│ │
└───────────────────────────────────────────┘
Click any request to see:
┌────────────────────────────────────────┐
│ LEAVE REQUEST DETAILS │
├────────────────────────────────────────┤
│ │
│ Request ID: LR-20250004 │
│ Created Date: December 10, 2025 │
│ Effective Date: December 22, 2025 │
│ │
│ LEAVE DETAILS │
│ ──────────────────────────────────── │
│ Type: Vacation │
│ Start: December 22, 2025 │
│ End: December 26, 2025 │
│ Total Days: 4 days │
│ Reason: Holiday celebration │
│ │
│ APPROVAL TIMELINE │
│ ──────────────────────────────────── │
│ 1. Team Lead Review │
│ Submitted: Dec 10, 2025 │
│ Approved: Dec 10, 2025 (14:30) │
│ By: Maria Santos │
│ │
│ 2. HR Review │
│ Received: Dec 10, 2025 │
│ Approved: Dec 11, 2025 (09:15) │
│ By: HR Manager │
│ │
│ FINAL STATUS: ✅ APPROVED │
│ │
│ [Print] [Download] [Close] │
│ │
└────────────────────────────────────────┘
SUBMITTED
↓
🟡 PENDING (Team Lead Review)
↓
[Approved by TL / Rejected by TL]
├→ ❌ REJECTED (End)
│
↓
🟡 HR REVIEW (HR Decision)
↓
[Approved by HR / Rejected by HR]
├→ ❌ REJECTED (End)
│
↓
✅ APPROVED (Final)
↓
📅 SCHEDULED (Calendar Updated)
↓
[Leave Date Arrives]
↓
✅ COMPLETED (Historical Record)
| Status | Meaning | Next Step |
|---|---|---|
| PENDING | Awaiting approval | Wait for Team Lead |
| APPROVED (TL) | Team Lead approved, HR to decide | Wait for HR |
| APPROVED (HR) | Both approved, ready for leave | Enjoy your leave |
| REJECTED | Request denied | Review reason, resubmit if needed |
| COMPLETED | Leave period ended | Record archived |
| CANCELLED | You cancelled it | Balance restored |
If request is rejected, you'll see reason:
❌ REJECTION NOTICE
Request: LR-20250002
Reason: "Conflict with project deadline
on selected dates. Please
choose alternative dates."
Rejected By: Maria Santos (Team Lead)
Rejection Date: December 5, 2025
Action: You can resubmit with
different dates or discuss
with your Team Lead.
Q: How much leave do I get per year?
A: Standard is 10 vacation days + 10 sick days. Check your contract.
Q: Can I split my vacation into smaller chunks?
A: Yes, can request 1 day, 2 days, etc. Multiple requests allowed.
Q: How far in advance should I request leave?
A: 2 weeks recommended, but requirements vary by department.
Q: What if my request is rejected?
A: Review the reason and resubmit with different dates or discuss with Team Lead.
Q: Can I cancel after approval?
A: Yes, up to 3 days before leave date.
Q: What happens to unused leave days?
A: Policy varies. Check with HR. Some carry over, some are forfeited.
Q: Can I work during approved leave?
A: Generally no. Leave means no work.
Q: Can I extend my leave if approved?
A: Submit a new request for additional dates before original dates end.
Issue: "Cannot create request - insufficient balance"
Solution: You've exceeded your leave balance. Check balance first.
Issue: "Blackout dates blocked"
Solution: Those dates are company holidays or department blackouts. Choose different dates.
Issue: "Team Lead not selected"
Solution: Ensure your profile has Team Lead assigned. Contact HR.
public function create()
{
return view('users.employee.leave-request.create', [
'leaveTypes' => LeaveType::active()->get(),
'balance' => LeaveBalance::where('user_id', auth()->id())->get()
]);
}
public function store(StoreLeaveRequestRequest $request)
{
$leaveRequest = LeaveRequest::create([
'user_id' => auth()->id(),
'leave_type_id' => $request->leave_type_id,
'start_date' => $request->start_date,
'end_date' => $request->end_date,
'reason' => $request->reason,
'status' => 'PENDING'
]);
// Notify approvers
$user = auth()->user();
$user->teamLead->notify(new LeaveRequestNotification($leaveRequest));
return redirect()->route('employee.leave-request.index')
->with('success', 'Leave request submitted successfully');
}
public function index()
{
$requests = LeaveRequest::where('user_id', auth()->id())
->with('leaveType')
->orderBy('created_at', 'DESC')
->paginate(10);
return view('users.employee.leave-request.index', [
'requests' => $requests
]);
}
Documentation Version: 1.0
Last Updated: December 4, 2025