@extends('layouts.app') @section('title', 'الحضور — الموارد البشرية') @section('breadcrumb') الرئيسية الموارد البشرية الحضور @endsection @section('content') @php $presentRate = ($summary['total'] ?? 0) > 0 ? round((($summary['present'] ?? 0) / $summary['total']) * 100, 1) : 0; $openImport = request()->boolean('open_import'); @endphp

الحضور

تتبع وإدارة حضور الموظفين اليومي

العمل الإضافي
@if (session('error'))
{{ session('error') }}
@endif @if (session('success'))
{{ session('success') }}
@endif @if (session('attendance_import_report')) @php $rep = session('attendance_import_report'); @endphp

تقرير آخر استيراد

ناجح: {{ $rep['success'] ?? 0 }} — فاشل: {{ count($rep['failed'] ?? []) }}

@if (! empty($rep['failed']))
@foreach ($rep['failed'] as $f) @endforeach
الصف السبب التفاصيل
{{ $f['row'] ?? '—' }} {{ $f['reason'] ?? '—' }} {{ $f['detail'] ?? '—' }}
@endif
@endif
إجمالي الموظفين
{{ $summary['total'] }}
حاضر
{{ $summary['present'] }}
متأخر
{{ $summary['late'] }}
غائب
{{ $summary['absent'] }}
إجازة مدفوعة
{{ $summary['leave'] ?? 0 }}
نسبة الحضور
{{ $presentRate }}%
@forelse($attendanceRows as $row) @empty @endforelse
الموظف القسم تسجيل الحضور تسجيل الانصراف ساعات العمل دقائق التأخير قيمة الخصم الحالة
{{ $row['employee']->name }} {{ $row['employee']->department?->name ?? $row['employee']->department ?? '—' }} {{ $row['check_in'] }} {{ $row['check_out'] }} {{ $row['work_hours'] }} {{ $row['minutes_late_display'] }} {{ $row['deduction_display'] }} @if($row['status_key'] === 'present') حاضر @elseif($row['status_key'] === 'late') متأخر @elseif($row['status_key'] === 'leave') إجازة مدفوعة @else غائب @endif
لا توجد سجلات حضور مطابقة للتصفية.
{{-- مودال استيراد الحضور (نفس أسلوب استيراد الموردين/الأصناف) --}}
@push('scripts') @endpush @endsection