@extends('layouts.superadmin') @section('title','كشف التعارضات') @section('content') @php use Carbon\Carbon; $from = $from ?? now()->subDays(30)->toDateString(); $to = $to ?? now()->toDateString(); $conflicts = $conflicts ?? []; $total = count($conflicts); @endphp
{{-- HERO --}}
نظام الغيابات — كشف التعارضات

كشف التعارضات / التكرار

هذه الصفحة تكشف حالات وجود غيابين متداخلين لنفس العضو داخل نفس الفترة. الهدف: تنظيف البيانات، منع تكرار الغياب، وضبط التقارير والاحتساب.

{{-- AERO / Filters + Toggle --}}
{{-- Filters --}}
{{-- Guide / Key --}}
مفتاح الإرشاد
  • تعارض: فترتان غياب لنفس العضو تتداخلان (from/to).
  • الهدف: دمج/حذف الزائد أو تعديل الفترات لتكون دقيقة.
  • التبديل بين كروت و جدول بدون إعادة تحميل.
{{-- Toggle --}}
طريقة العرض
عدد التعارضات: {{ $total }}
{{-- Result Summary Cards --}}
الفترة
{{ $from }} → {{ $to }}
عدد التعارضات
{{ $total }}
تنبيه
راجع التعارضات قبل اعتماد أي تقارير أسبوعية.
{{-- Cards View --}}
@if($total === 0)
✅ لا يوجد تعارضات
الفترة الحالية نظيفة، ممتاز.
@else
@foreach($conflicts as $c) @php $u = $c['user']; $a = $c['a']; $b = $c['b']; @endphp
{{ mb_substr($u->name ?? $u->username ?? '؟',0,1) }}
{{ $u->name ?? $u->username }}
تعارض غيابين متداخلين
Conflict
الغياب A
{{ \Carbon\Carbon::parse($a->from_date)->toDateString() }} → {{ \Carbon\Carbon::parse($a->to_date)->toDateString() }}
{{ $a->excuse_reason }}
ID: {{ $a->id }}
الغياب B
{{ \Carbon\Carbon::parse($b->from_date)->toDateString() }} → {{ \Carbon\Carbon::parse($b->to_date)->toDateString() }}
{{ $b->excuse_reason }}
ID: {{ $b->id }}
@endforeach
@endif
{{-- Table View --}} {{-- Footer --}}
Golden Loyalty Army · Falcon Room · Absences Conflicts Monitor
@endsection