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

{{ __('leaves.show.title') }}

{{ __('leaves.show.request', ['id' => $leave->id]) }}

{{ __('leaves.show.submitted_by') }} {{ $leave->employee?->name ?? __('leaves.unknown_employee') }}

@php $statusClasses = [ 'pending' => 'bg-warning', 'approved' => 'bg-success', 'rejected' => 'bg-danger', 'cancelled' => 'bg-secondary', 'modified' => 'bg-info', ]; $statusLabels = [ 'pending' => __('leaves.status.pending'), 'approved' => __('leaves.status.approved'), 'rejected' => __('leaves.status.rejected'), 'cancelled' => __('leaves.status.cancelled'), 'modified' => __('leaves.status.modified'), ]; @endphp {{ $statusLabels[$leave->status] ?? $leave->status }}
{{ __('leaves.show.leave_info') }}
@if(($leave->excluded_days_count ?? 0) > 0) @if(($leave->unpaid_deducted_days ?? 0) > 0) @endif @endif
{{ __('leaves.fields.type') }} @php $code = $leave->leave_type; $label = $leave->leaveTypeModel->name ?? __('leaves.types.' . $code, [], null) ?? $code; $classes = [ 'annual' => 'bg-primary', 'sick' => 'bg-warning text-dark', 'emergency' => 'bg-danger', 'maternity' => 'bg-pink', 'paternity' => 'bg-info', 'unpaid' => 'bg-secondary', ]; $class = $classes[$code] ?? 'bg-dark'; @endphp {{ $label }}
{{ __('leaves.fields.from') }}{{ $leave->start_date?->format('Y-m-d') ?? __('leaves.not_specified') }}
{{ __('leaves.fields.to') }}{{ $leave->end_date?->format('Y-m-d') ?? __('leaves.not_specified') }}
{{ __('leaves.fields.days') }}{{ $leave->days_count ?? 0 }} {{ __('leaves.days_unit') }}
{{ __('leaves.fields.excluded_days') ?? 'أيام مستثناة' }} {{ $leave->excluded_days_count ?? 0 }} {{ __('leaves.days_unit') }} (عطل أسبوعية/رسمية)
{{ __('leaves.fields.deductible_days') ?? 'أيام قابلة للخصم' }} {{ $leave->deductible_days ?? 0 }} {{ __('leaves.days_unit') }}
{{ __('leaves.fields.unpaid_deducted_days') ?? 'أيام مخصومة من الراتب (بدون راتب)' }} {{ $leave->unpaid_deducted_days ?? 0 }} {{ __('leaves.days_unit') }}
{{ __('leaves.show.request_details') }}
@if($leave->status !== 'pending' && $leave->updated_at) @endif
{{ __('leaves.fields.requested_at') }}{{ $leave->created_at?->format('Y-m-d H:i') ?? __('leaves.not_specified') }}
{{ __('leaves.fields.updated_at') }}{{ $leave->updated_at->format('Y-m-d H:i') }}
{{ __('leaves.fields.contact') }}{{ $leave->contact_details ?? __('leaves.not_specified') }}
{{ __('leaves.fields.reason') }}
{{ $leave->reason ?? __('leaves.no_reason') }}
@if($leave->status == 'rejected' && $leave->rejection_reason)
{{ __('leaves.fields.rejection_reason') }}
{{ $leave->rejection_reason }}
@endif @if(($leave->excluded_days_count ?? 0) > 0 && $leave->excluded_days)
{{ __('leaves.fields.excluded_days') ?? 'أيام مستثناة من الخصم' }}
{{ __('leaves.fields.deductible_days') ?? 'أيام قابلة للخصم' }}: {{ $leave->deductible_days ?? 0 }} من {{ $leave->days_count ?? 0 }} أيام إجمالياً.
الأيام المستثناة: @php $excludedDates = $leave->excluded_days ?? []; $datesByType = [ 'weeklyOff' => [], 'holiday' => [], ]; foreach ($excludedDates as $date) { $carbonDate = \Carbon\Carbon::parse($date); // تحقق من Holiday $isHoliday = \App\Models\Holiday::whereDate('date', '=', $date)->exists(); if ($isHoliday) { $datesByType['holiday'][] = $carbonDate; } else { // افترض أنها عطلة أسبوعية $datesByType['weeklyOff'][] = $carbonDate; } } @endphp
    @if(count($datesByType['weeklyOff']) > 0)
  • أيام عطل أسبوعية: {{ implode(', ', array_map(fn($d) => $d->format('Y-m-d (l)'), $datesByType['weeklyOff'])) }}
  • @endif @if(count($datesByType['holiday']) > 0)
  • أيام عطل رسمية: @foreach($datesByType['holiday'] as $date) @php $holiday = \App\Models\Holiday::whereDate('date', '=', $date->format('Y-m-d'))->first(); @endphp
    {{ $date->format('Y-m-d') }} - {{ $holiday->title ?? 'عطلة رسمية' }}
    @endforeach
  • @endif
@endif
تراكم الإجازات - التفاصيل الشهرية والسنوية ({{ now()->year }})
@php // حساب بيانات التراكم من بداية السنة الحالية لحد تاريخ الإجازة الحالية $startOfYear = Carbon\Carbon::create(now()->year, 1, 1); $leaveEndDate = $leave->end_date ? Carbon\Carbon::parse($leave->end_date) : now(); // نحسب من بداية السنة الحالية لحد نهاية الإجازة الحالية $leaveMonthlyDetails = $leave->employee->calculateLeaveDeductionDetailsNew( $leaveEndDate->year, $leaveEndDate->month ); // نفلتر البيانات من بداية السنة الحالية فقط $currentYearDetails = $leaveMonthlyDetails->filter(fn($d) => $d['year'] == now()->year && $d['month'] <= $leaveEndDate->month ); @endphp @if(!$leave->employee->isAccrualEnabled()) @elseif($currentYearDetails && count($currentYearDetails) > 0)
@foreach($currentYearDetails as $detail) @endforeach
الإجازات الشهرية الإجازات السنوية
الشهر الممنوح (شهري) المستخدم (شهري) الرصيد قبل الرصيد بعد الزيادة (شهري) الخصم (شهري) الإجمالي ملاحظات المستخدم (سنوي) الرصيد قبل الرصيد بعد الزيادة (سنوي) الخصم (سنوي) الاستحقاق السنوي
{{ $detail['month_name'] ?? \Carbon\Carbon::create()->month($detail['month'])->translatedFormat('F') }} {{ number_format($detail['granted_monthly'] ?? 0, 2) }} {{ number_format($detail['used_monthly'] ?? 0, 2) }} {{ number_format($detail['balance_before_monthly'] ?? 0, 2) }} {{ number_format($detail['balance_after_monthly'] ?? 0, 2) }} {{ number_format($detail['excess_monthly'] ?? 0, 2) }} {{ format_currency($detail['deduction_amount_monthly'] ?? 0) }} {{ format_currency($detail['leave_deduction_amount'] ?? 0) }} - {{ number_format($detail['used_annual'] ?? 0, 2) }} {{ number_format($detail['balance_before_annual'] ?? 0, 2) }} {{ number_format($detail['balance_after_annual'] ?? 0, 2) }} {{ number_format($detail['excess_annual'] ?? 0, 2) }} {{ format_currency($detail['deduction_amount_annual'] ?? 0) }} {{ number_format($leave->employee->annual_entitlement ?? ($leave->employee->monthly_leave_days_allowed * 12), 2) }}
@php $currentYearMonthlyDeductions = $currentYearDetails->sum('deduction_amount_monthly'); $currentYearAnnualDeductions = $currentYearDetails->sum('deduction_amount_annual'); $totalCurrentYearDeductions = $currentYearMonthlyDeductions + $currentYearAnnualDeductions; @endphp @else @endif
@endsection