@extends('layouts.app') @section('content')

{{ __('attendance.show_title') }}

{{ __('attendance.attendance_log') }} - {{ $attendance->employee->name }}

{{ __('attendance.date') }}: {{ $attendance->date->format('Y-m-d') }}

{{ __('attendance.status') }}: @if($attendance->status == 'present') {{ __('attendance.status_present') }} @elseif($attendance->status == 'absent') {{ __('attendance.status_absent') }} @elseif($attendance->status == 'late') {{ __('attendance.status_late') }} @elseif($attendance->status == 'early_departure') {{ __('attendance.status_early_leave') }} @else {{ __('attendance.unknown') }} @endif

{{ __('attendance.notes') }}: {{ $attendance->notes ?? __('attendance.no_notes') }}

{{ __('attendance.scheduled_check_in') }}: @if($attendance->scheduled_check_in) {{ $attendance->scheduled_check_in->format('H:i:s') }} @else {{ __('attendance.not_scheduled') }} @endif

{{ __('attendance.scheduled_check_out') }}: @if($attendance->scheduled_check_out) {{ $attendance->scheduled_check_out->format('H:i:s') }} @else {{ __('attendance.not_scheduled') }} @endif

{{ __('attendance.scheduled_work_duration') ?? 'مدة العمل المجدولة' }}: @if($attendance->scheduled_work_duration) {{ $attendance->scheduled_work_duration }} @else {{ __('attendance.not_scheduled') }} @endif

{{ __('attendance.actual_check_in') }}: @if($attendance->check_in) {{ $attendance->check_in->format('H:i:s') }} @else {{ __('attendance.not_checked_in') }} @endif

{{ __('attendance.actual_check_out') }}: @if($attendance->check_out) {{ $attendance->check_out->format('H:i:s') }} @else {{ __('attendance.not_checked_out') }} @endif

{{ __('attendance.work_duration') }}: @if($attendance->work_duration) {{ $attendance->work_duration }} @else {{ __('attendance.not_scheduled') }} @endif

@if($attendance->scheduled_work_duration && preg_match('/^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/', $attendance->scheduled_work_duration) && $attendance->work_duration && preg_match('/^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/', $attendance->work_duration)) @php try { // تحويل المدة المجدولة إلى ثوانٍ $scheduledDurationSeconds = \Carbon\Carbon::createFromFormat('H:i:s', $attendance->scheduled_work_duration)->secondsSinceMidnight(); // تحويل المدة الفعلية إلى ثوانٍ $actualDurationSeconds = \Carbon\Carbon::createFromFormat('H:i:s', $attendance->work_duration)->secondsSinceMidnight(); $comparison = $actualDurationSeconds - $scheduledDurationSeconds; echo '

' . __('attendance.duration_comparison') . ':'; if($comparison >= 0) { echo '+'.gmdate('H:i:s', abs($comparison)).' ' . __('attendance.more_than_scheduled') . ''; } else { echo ''.gmdate('H:i:s', abs($comparison)).' ' . __('attendance.less_than_scheduled') . ''; } echo '

'; } catch (\Exception $e) { // في حالة حدوث خطأ في التحويل، لا تظهر مقارنة echo '

' . __('attendance.duration_comparison') . ': ' . __('attendance.invalid_data') . '

'; } @endphp @elseif($attendance->scheduled_work_duration)

{{ __('attendance.duration_comparison') }}: {{ __('attendance.invalid_data') }}

@endif @if($attendance->scheduled_check_in && $attendance->check_in) @php try { $scheduledIn = \Carbon\Carbon::createFromFormat('H:i:s', $attendance->scheduled_check_in->format('H:i:s')); $actualIn = \Carbon\Carbon::createFromFormat('H:i:s', $attendance->check_in->format('H:i:s')); $lateBy = $actualIn->diffInSeconds($scheduledIn, false); // سالب إذا كان متاخراً echo '

' . __('attendance.early_late') . ':'; if($lateBy > 0) { echo '' . __('attendance.early_by') . ' ' . gmdate('H:i:s', $lateBy) . ''; } elseif($lateBy < 0) { echo '' . __('attendance.late_by') . ' ' . gmdate('H:i:s', abs($lateBy)) . ''; } else { echo '' . __('attendance.on_time') . ''; } echo '

'; } catch (\Exception $e) { // في حالة حدوث خطأ في التحويل، لا تظهر مقارنة echo '

' . __('attendance.early_late') . ': ' . __('attendance.invalid_data') . '

'; } @endphp @endif
@can('edit attendance') {{ __('attendance.edit') }} @endcan @can('viewAny', App\Models\Attendance::class) {{ __('attendance.back') }} @endcan
{{ __('attendance.employee_info') }}
@if($attendance->employee->photo) صورة الموظف @else
{{ substr($attendance->employee->name, 0, 1) }}
@endif
{{ $attendance->employee->name }}

{{ $attendance->employee->position?->name ?? __('attendance.not_scheduled') }}

{{ $attendance->employee->department?->name ?? __('attendance.not_scheduled') }}

@if(isset($relatedAttendances) && $relatedAttendances->count() > 0)
{{ __('attendance.previous_records') }}
@foreach($relatedAttendances as $related) @endforeach
{{ __('attendance.date') }} {{ __('attendance.actual_check_in') }} {{ __('attendance.actual_check_out') }} {{ __('attendance.work_duration') }} {{ __('attendance.status') }}
{{ $related->date->format('Y-m-d') }} {{ $related->check_in ? $related->check_in->format('H:i:s') : __('attendance.not_checked_in') }} {{ $related->check_out ? $related->check_out->format('H:i:s') : __('attendance.not_checked_out') }} {{ $related->work_duration ?? __('attendance.not_scheduled') }} @if($related->status == 'present') {{ __('attendance.status_present') }} @elseif($related->status == 'absent') {{ __('attendance.status_absent') }} @elseif($related->status == 'late') {{ __('attendance.status_late') }} @elseif($related->status == 'early_departure') {{ __('attendance.status_early_leave') }} @else {{ __('attendance.unknown') }} @endif
@endif
@endsection