@extends('includes/layout') @section('main-page-content')
Hours Required
{{ number_format($payroll->working_hours / 60, 1) }}h
Hours Required
Hours Worked
{{ number_format($payroll->actual_working_hours / 60, 1) }}h
Hours Worked
Leave Hours
{{ $approvedLeaveHours }}h
Leave Worked
Basic Salary
PKR {{ number_format($payroll->basic_salary, 0) }}
Monthly Basic
Calculated
PKR {{ number_format($payroll->calculated_salary, 0) }}
Before Adjustments
Final Amount
PKR {{ number_format($adjustedSalary, 0) }}
Net Payable
Employee Information
Full Name {{ $payroll->employee->first_name ?? '' }} {{ $payroll->employee->middle_name ?? '' }} {{ $payroll->employee->last_name ?? '' }}
Mobile Number {{ $payroll->employee->mobile ?? 'Not Available' }}
Email Address {{ $payroll->employeCom->employee_email ?? 'Not Available' }}
Employee ID #{{ $payroll->employee->emp_id ?? 'N/A' }}
Salary Breakdown
Basic Salary PKR {{ number_format($payroll->basic_salary, 0) }}
Total Working Hours {{ number_format($payroll->working_hours / 60, 1) }} hours
Hours Worked {{ number_format($payroll->actual_working_hours / 60, 1) }} hours
Approved Leaves {{ $approvedLeave }}
Approved Leave Hours {{ $approvedLeaveHours }} hours
Unpaid Leave Hours {{ number_format($unpaidLeaveHours, 1) }} hours
Paid Leave Hours {{ number_format($paidLeaveHours, 1) }} hours
Holidays {{ $totalHolidays }}
Overtime Hours {{ number_format($payroll->overtime_hours / 60, 1) }} hours
Paid Worked Hours {{ number_format($paidWorkedHours, 1) }} hours
Total Fines PKR {{ number_format($totalFines, 0) }}
Total Bonuses PKR {{ number_format($totalBonuses, 0) }}

Attendance Summary
{{ $totalWorkingDays }}
Total Working Days
{{ $totalHolidays }}
Holidays
{{ $presentDays }}
Present Days
{{ $absentDays }}
Absent Days
{{ $attendanceRate }}%
Attendance Rate
@if ($fines->count() > 0)
Fines & Bonuses
@foreach ($fines as $fine) @endforeach
Date Type Reason Amount
{{ date('d M Y', strtotime($fine->date)) }} @if ($fine->type == 0) Fine @else Bonus @endif {{ $fine->fine_reason }} {{ $fine->type == 0 ? '-' : '+' }}PKR {{ number_format($fine->fine_amount, 0) }}
Net Impact {{ $totalBonuses - $totalFines >= 0 ? '+' : '' }}PKR {{ number_format($totalBonuses - $totalFines, 0) }}
@endif @if (!empty($dailyAttendanceRows))
Daily Attendance
@foreach ($dailyAttendanceRows as $row) @endforeach
Date Check In Check Out Working Hours Status
{{ date('d M Y', strtotime($row['date'])) }} {{ $row['check_in'] ? date('H:i', strtotime($row['check_in'])) : 'N/A' }} {{ $row['check_out'] ? date('H:i', strtotime($row['check_out'])) : 'N/A' }} @if (!is_null($row['working_hours'])) {{ floor($row['working_hours'] / 60) }}h {{ $row['working_hours'] % 60 }}m @else N/A @endif @if (!empty($row['leave'])) @php $leaveStatus = $row['leave']['status'] ?? null; // 1=Approved (paid), 4=Approved Unpaid, 2=Rejected $badgeClass = 'badge-info'; if ($leaveStatus == 1 && ($row['leave']['is_paid'] ?? false)) { $badgeClass = 'badge-primary'; } elseif ($leaveStatus == 4 ) { $badgeClass = 'badge-info'; } elseif ($leaveStatus == 2) { $badgeClass = 'badge-danger'; } @endphp Leave ({{ $row['leave']['type'] ?? 'Leave' }}) - {{ ($leaveStatus == 2) ? 'Rejected' : (($row['leave']['is_paid'] ?? false) ? 'Paid' : 'Unpaid') }} @if ($leaveStatus == 2 && $row['check_in'] && $row['check_out'])
Present @endif @elseif ($row['check_in'] && $row['check_out']) Present @elseif($row['check_in']) Incomplete @else Absent @endif
@endif @if ($overtimeRecords->count() > 0)
Overtime Records
@foreach ($overtimeRecords as $overtime) @endforeach
Date Start Time End Time Duration Reason
{{ date('d M Y', strtotime($overtime->date)) }} {{ $overtime->check_in ? date('H:i', strtotime($overtime->check_in)) : 'N/A' }} {{ $overtime->check_out ? date('H:i', strtotime($overtime->check_out)) : 'N/A' }} @if ($overtime->working_hours) {{ floor($overtime->working_hours / 60) }}h {{ $overtime->working_hours % 60 }}m @else N/A @endif {{ $overtime->description ?? 'No reason provided' }}
@endif
@endsection @section('css-js') @endsection