{{-- Liste des employes a affecter, partagee par les formulaires de chantier, d'intervention et de reparation vehicule. Attendus : `$users` (avec leur `secteur`), `$name` (nom du champ, `user_ids[]` ou `interventions[0][user_ids][]`), `$coches` (ids deja coches) et, au besoin, `$classe` (classes de la grille : `employees-list` que les scripts d'intervention cherchent). Rangee d'abord par secteur (users.secteur) : un bloc Pose, un bloc Maconnerie. Tout autre secteur, ou aucun, tombe dans « Autres » : un employe ne doit jamais disparaitre de la liste. Une seule grille, et non un bloc par secteur : des que les dates sont posees, js/plannings/occupations.js range chaque employe, dans son secteur, en « Disponibles », « Deja pris sur la periode » ou « Absents » par la propriete CSS `order`, sans deplacer les cases dans la page (les scripts d'absence et d'intervention les retrouvent ou elles sont). Sans dates, l'ordre de la page suffit : les secteurs y sont deja groupes. --}} @php $secteurs = [ 'pose' => __('Pose'), 'maçonnerie' => __('Maçonnerie'), 'autres' => __('Autres'), ]; $parSecteur = collect($users)->groupBy(function ($user) use ($secteurs) { $secteur = mb_strtolower(trim((string) $user->secteur)); return $secteur !== 'autres' && array_key_exists($secteur, $secteurs) ? $secteur : 'autres'; }); @endphp