{{-- Le corps du formulaire d'un chantier, partage par create et edit : un seul fichier pour que la modification reste le calque de la creation. Attendus : `$planning` (null a la creation), `$devisIds` (ids des devis deja lies, vide a la creation), `$equipes`, `$users`, `$valider` (libelle du bouton). Tout tient a l'ecran, sans faire defiler : les boutons en haut, puis deux colonnes qui se remplissent en parallele — a gauche pour qui et ou (client, devis, nature, observation), a droite quand et avec qui (dates, equipe, employes). Empiles, ces blocs faisaient deux ecrans de haut et le bouton d'envoi etait sous la liste des employes. Sur telephone les colonnes s'empilent, la gauche d'abord (css/plannings/chantier-form.css). Les partiels gardent leurs classes de colonnes bootstrap : c'est la feuille de style qui les replace dans une demi-largeur. --}} @php $creation = $planning === null; $debut = $planning?->date_debut; $fin = $planning?->date_fin; $observation = old('observations', $creation ? null : optional($planning->observations->first())->observation); @endphp
{{-- Les actions en haut, jamais sous la liste des employes. --}}
{{ __('Annuler') }}
{{-- ================= POUR QUI ET OU ================= --}}
{{ __('Client') }}
@include('admin.plannings.chantiers._client', [ 'clientId' => old('client_id', $planning?->client_id), ])
Devis liés
{{-- Les devis deja lies sont deroules : ils sont la matiere de l'ecran. La ligne vide, elle, est posee repliee : tous les chantiers n'ont pas de devis, et des champs grises en tete d'ecran se lisaient comme un formulaire a remplir. Le premier clic sur « Ajouter un devis » la deroule, les suivants en clonent une autre. --}}
@forelse ($devisIds as $devisId) @include('admin.plannings.chantiers._devis_ligne', [ 'devisId' => $devisId, 'ouvert' => true, ]) @empty @include('admin.plannings.chantiers._devis_ligne', [ 'devisId' => null, 'ouvert' => false, ]) @endforelse
@include('admin.plannings.chantiers._nature', ['planning' => $planning])
{{-- Pas d'adresse ici : elle se saisit à la commande, une par devis, et le planning la lit par ses devis (le détail la montre). --}} {{-- Repliee tant qu'elle est vide, comme sur la creation d'une commande : elle est rare, et un textarea vide donnait surtout l'impression qu'il fallait le remplir. Replier vide le champ, et le controleur ignore une note vide. Deroulee d'entree quand le chantier en porte une : la replier la cacherait a qui vient justement la relire. --}}
{{-- ================= QUAND ET AVEC QUI ================= --}}
{{ __('Dates') }}
{{-- A la creation, l'equipe et les employes n'apparaissent qu'une fois la plage de dates posee (js/plannings/absences.js) : qui est libre en depend. Effacer une date les replie et les remet a zero. En modification les dates sont deja la, et rien ne doit se vider sous les doigts : pas de conteneur a replier. --}} @if ($creation)
Veuillez sélectionner une plage de dates pour choisir l'équipe et les employés.
@endif
$creation])>
$creation])>
$creation])>
Employés
@include('admin.plannings._employes', [ 'users' => $users, 'name' => 'user_ids[]', 'coches' => array_map('intval', old('user_ids', $creation ? [] : $planning->users->pluck('id')->all())), 'classe' => 'employes-repliables', ])