@php /** * Partial: Salary Histories management * Variables: * - $employee (Employee) * - $histories (Collection) optional * - $history (optional) when editing */ // ✅ جلب آخر سجل تعويض لملء النموذج تلقائياً عند الإضافة $lastHistory = null; if (!isset($history)) { $lastHistory = $employee->salaryHistories()->orderByDesc('effective_from')->first(); } // ✅ إذا لم يكن هناك سجل تعويض سابق، استخدم بيانات الموظف الأساسية if (!isset($history) && !$lastHistory) { // إنشاء كائن افتراضي يحتوي على بيانات الموظف $defaultHistory = new stdClass(); $defaultHistory->base_salary = $employee->salary ?? 0; $defaultHistory->incentives = $employee->incentives ?? 0; $defaultHistory->overtime_rate = $employee->overtime_hourly_rate ?? null; $defaultHistory->monthly_leave_entitlement = $employee->monthly_leave_days_allowed ?? null; $defaultHistory->annual_leave_entitlement = $employee->annual_entitlement ?? null; $defaultHistory->note = null; // تحويل hire_date إلى Carbon إذا كان موجوداً if ($employee->hire_date) { $defaultHistory->effective_from = $employee->hire_date instanceof \Carbon\Carbon ? $employee->hire_date : \Carbon\Carbon::parse($employee->hire_date); } else { $defaultHistory->effective_from = \Carbon\Carbon::now(); } // ✅ جمع المكونات الإضافية من العلاقة salaryComponents $components = []; if ($employee->relationLoaded('salaryComponents')) { foreach ($employee->salaryComponents as $comp) { if (!empty($comp->name) && ($comp->pivot->value ?? 0) > 0) { $components[$comp->name] = (float) $comp->pivot->value; } } } else { // إذا لم تكن العلاقة محمّلة، قم بتحميلها $employee->load('salaryComponents'); foreach ($employee->salaryComponents as $comp) { if (!empty($comp->name) && ($comp->pivot->value ?? 0) > 0) { $components[$comp->name] = (float) $comp->pivot->value; } } } // ✅ إضافة المكونات من الحقول الثابتة (component_1 إلى component_7) for ($i = 1; $i <= 7; $i++) { $nameField = "component_name_$i"; $valueField = "component_$i"; $name = $employee->{$nameField}; $value = (float) ($employee->{$valueField} ?? 0); if (!empty($name) && $value > 0) { $components[$name] = $value; } } $defaultHistory->components = $components; } else { // إذا كان هناك $history (تعديل)، استخدمه، وإلا استخدم $lastHistory $defaultHistory = $history ?? $lastHistory; } @endphp
| {{ __('employees.salary_histories.table.effective_from') }} | {{ __('employees.salary_histories.table.base_salary') }} | {{ __('employees.salary_histories.table.incentives') }} | {{ __('employees.salary_histories.table.overtime_rate') }} | {{ __('employees.salary_histories.table.monthly_leave') }} | {{ __('employees.salary_histories.table.annual_leave') }} | {{ __('employees.salary_histories.table.components') }} | {{ __('employees.salary_histories.table.note') }} | {{ __('employees.salary_histories.table.actions') }} |
|---|---|---|---|---|---|---|---|---|
| {{ optional($h->effective_from)->toDateString() }} | {{ number_format($h->base_salary,2) }} | {{ number_format($h->incentives ?? 0,2) }} | {{ $h->overtime_rate ?? '-' }} | {{ $h->monthly_leave_entitlement ?? '-' }} | {{ $h->annual_leave_entitlement ?? '-' }} |
@if(is_array($h->components) && count($h->components) > 0)
|
{{ Str::limit($h->note ?? '', 50) }} | {{ __('employees.show.actions.edit') }} |
{{ __('employees.salary_histories.no_records') }}
@endif