@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
| 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' }} |