@php if (!function_exists('formatNbJours')) { function formatNbJours($nbJours) { if (!is_numeric($nbJours)) return '0 jrs = 0.00 sem = 0.00 an'; $semaines = $nbJours / 7; $annees = $nbJours / 365; return sprintf('%d jrs = %.2f sem = %.2f an', $nbJours, $semaines, $annees); } } if (!function_exists('formatNbJoursForItems')) { function formatNbJoursForItems($items, $filter_start_date = null, $filter_end_date = null) { if (is_string($items)) { $items = json_decode($items); } $totalNbJours = 0; if (is_array($items) || is_object($items)) { foreach ($items as $item) { // If no filter is applied, use original nbJours if ($filter_start_date === null || $filter_end_date === null) { if (isset($item->nbJours) && is_numeric($item->nbJours)) { $totalNbJours += $item->nbJours; } } else { // Calculate filtered days for items with from/to dates if (isset($item->from) && isset($item->to)) { $itemFrom = \Carbon\Carbon::parse($item->from); $itemTo = \Carbon\Carbon::parse($item->to); $filterStart = \Carbon\Carbon::parse($filter_start_date); $filterEnd = \Carbon\Carbon::parse($filter_end_date); // Get the overlap period $overlapStart = $itemFrom->gt($filterStart) ? $itemFrom : $filterStart; $overlapEnd = $itemTo->lt($filterEnd) ? $itemTo : $filterEnd; // Calculate days only if there's an overlap if ($overlapStart->lte($overlapEnd)) { $totalNbJours += $overlapStart->diffInDays($overlapEnd) + 1; } } elseif (isset($item->from) && $item->to === null) { // Handle ongoing events (no end date) $itemFrom = \Carbon\Carbon::parse($item->from); $filterStart = \Carbon\Carbon::parse($filter_start_date); $filterEnd = \Carbon\Carbon::parse($filter_end_date); $overlapStart = $itemFrom->gt($filterStart) ? $itemFrom : $filterStart; // Calculate days from start to filter end if ($overlapStart->lte($filterEnd)) { $totalNbJours += $overlapStart->diffInDays($filterEnd) + 1; } } else { // Fallback to original nbJours for items without proper date structure if (isset($item->nbJours) && is_numeric($item->nbJours)) { $totalNbJours += $item->nbJours; } } } } } return formatNbJours($totalNbJours); } } if (isset($employee->hiringDate)) { $anciennete = $employee->seniority; $anneeDeService = \Carbon\Carbon::parse($employee->hiringDate)->diffInYears(\Carbon\Carbon::now()); $anneeDeService = floor($anneeDeService); } if (isset($employee->birthdate)) { $age = date('Y') - explode('-', $employee->birthdate)[0]; $birthdate = \Carbon\Carbon::parse($employee->birthdate)->format('Y-m-d'); } if (!function_exists('getValueByKey')) { function getValueByKey($parametres, $key) { foreach ($parametres as $parametre) { if ($parametre->key === $key) { $value = $parametre->value; } } return $value; } } $team = App\Models\Team::where('id', $employee->team_id)->first(); $derniereAffectation = App\Models\ParametresAffectation::where('id', $employee->derniereAffectation_affectation_id)->first(); $derniereAffectationLieu = App\Models\ParametresInstallation::where('id', $employee->derniereAffectation_installation_id)->first(); // Find the last section that will be displayed $sectionsOrder = [ 'fiche', 'affectation', 'suivi', 'invalidite', 'absence', 'accidentTravail', 'dossierDisciplinaire', 'formation', 'soutien', 'evaluation', 'rappel' ]; $lastDisplayedSection = null; foreach (array_reverse($sectionsOrder) as $section) { if (isset($listeTableau[$section])) { $lastDisplayedSection = $section; break; } } @endphp Sommaire employé(e) - {{ $employee->firstName }} {{ $employee->lastName }}

{{ $team->name }}

@if (!isset($listeTableau['fiche']))

@else
Nom complet {{ $employee->firstName . ' ' . $employee->lastName }}
Poste {{ isset($employee->job) ? $employee->job : 'N/A' }}
Affectation {{ isset($derniereAffectation) ? $derniereAffectation->nom : 'N/A' }}
Lieu {{ isset($derniereAffectationLieu) ? $derniereAffectationLieu->nom : 'N/A' }}
Statut {{ isset($employeeArray["status"]) ? $employeeArray["status"]["nom"] : 'N/A' }}
Qualification {{ isset($employeeArray["qualification"]) ? $employeeArray["qualification"]["nom"] : 'N/A' }}
Date d'embauche {{ isset($employee->hiringDate) ? $employee->hiringDate : 'N/A' }}
Date de départ {{ isset($employee->departure_date) ? $employee->departure_date : 'N/A' }}
Années de service {{ isset($anneeDeService) ? $anneeDeService : 'N/A' }}
Ancienneté (Années et décimales) {{ isset($anciennete) ? $anciennete : 'N/A' }}
Date de naissance {{ isset($employee->birthdate) ? $birthdate : 'N/A' }}
Âge {{ isset($age) ? $age : 'N/A' }}
@endif @include('pdf.sommaireEmploye.includes.affectation') @include('pdf.sommaireEmploye.includes.suiviEvenementIncident') @include('pdf.sommaireEmploye.includes.invalidite') @include('pdf.sommaireEmploye.includes.absence') @include('pdf.sommaireEmploye.includes.accidentTravail') @include('pdf.sommaireEmploye.includes.dossierDisciplinaire') @include('pdf.sommaireEmploye.includes.formation') @include('pdf.sommaireEmploye.includes.soutien') @include('pdf.sommaireEmploye.includes.evaluationAnnuelle') @include('pdf.sommaireEmploye.includes.rappels')