Employee Leave Request Documentation

Part 1: USER GUIDE - Leave Request


Table of Contents


1. Overview

The Leave Request Module allows you to request time off, track your leave balance, and manage your leave history.

What You Can Do

✅ Request different types of leave
✅ Check leave balance
✅ View approval timeline
✅ Cancel pending requests
✅ View leave history
✅ Generate leave certificates

Leave Management Flow

1. Request Leave
    ↓
2. Team Lead Reviews
    ↓
3. HR Department Reviews
    ↓
4. Approved ✅ or Rejected ❌
    ↓
5. Recorded in System
    ↓
6. Calendar Updated

2. Leave Types

2.1 Standard Leave Types

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

2.2 Leave Balance Check

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         │
│                                    │
└────────────────────────────────────┘

3. Creating Leave Request

3.1 Start Request

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]             │
│                                        │
└────────────────────────────────────────┘

3.2 Form Fields

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

3.3 Date Selection

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

3.4 Days Calculation

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)

3.5 Submit Request

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

4. Managing Requests

4.1 View Pending Requests

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]                                  │
│                                         │
└─────────────────────────────────────────┘

4.2 Edit Pending Request

Can Edit If:

  • Status is "PENDING"
  • Team Lead hasn't approved yet
  • Date is in the future

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

4.3 Cancel Request

Can Cancel If:

  • Status is "PENDING" or "APPROVED"
  • Date is more than 3 days away

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.

5. Viewing History

5.1 Leave History List

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) │
│                                           │
└───────────────────────────────────────────┘

5.2 View Request Details

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]             │
│                                        │
└────────────────────────────────────────┘

6. Approvals & Status

6.1 Request Status Cycle

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)

6.2 Status Meanings

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

6.3 Rejection Reasons

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.

7. FAQ & Troubleshooting

FAQ

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.

Troubleshooting

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.


END OF USER GUIDE - LEAVE REQUEST


PART 2: DEVELOPER GUIDE - Leave Request

Controller

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