@php $currentSchedule = collect($scheduleDayLabels) ->mapWithKeys(function ($label, $key) use ($contract) { $schedule = $contract->weekly_schedule[$key] ?? ['enabled' => false, 'start' => null, 'end' => null]; return [$key => array_merge($schedule, old("weekly_schedule.$key", []))]; }) ->all(); $isParentView = $isParentView ?? false; $isLinkedParentContract = $contract->child?->employer?->linked_parent_user_id !== null || $contract->child?->employer?->user?->isParent(); $isWaitingForParentCompletion = ! $isParentView && $isLinkedParentContract && $contract->status === 'draft'; $readonly = ! $contract->isEditable() || ($isParentView && $contract->status !== 'draft') || $isWaitingForParentCompletion; $canCreateAmendment = $contract->status === 'active' && ! $contract->hasPendingAmendment(); $lockedForParentWithAssistant = $isParentView && $contract->assistant() !== null; $creatorLabel = match (true) { $contract->createdBy === null => null, $contract->createdBy->isParent() => 'Créé par le parent employeur', $contract->createdBy->isNounou() => "Créé par l'assistante maternelle", default => null, }; $statusBadgeModifier = match ($contract->status) { 'draft' => ' contract-status-badge--draft', 'to_sign' => ' contract-status-badge--to-sign', 'cancelled' => ' contract-status-badge--cancelled', 'ended', 'superseded' => ' contract-status-badge--ended', default => '', }; $minimumDurationRaw = (string) old('minimum_duration', $contract->minimum_duration); preg_match('/\d+/', $minimumDurationRaw, $minimumDurationMatch); $minimumDurationValue = $minimumDurationMatch[0] ?? 3; $minimumDurationUnit = match (true) { str_contains($minimumDurationRaw, 'sem') => 'week', str_contains($minimumDurationRaw, 'jour') => 'day', default => 'month', }; @endphp

Contrat de garde de {{ $contract->child->display_name }}

@if ($creatorLabel)

{{ $creatorLabel }}

@endif @if (($isParentView ?? false) && $contract->source_template_id !== null && $contract->status === 'draft')

Je complète le cadre, mon planning de garde et les semaines travaillées avant validation.

@endif
@unless ($readonly)
Complétion
Formulaire complet
@endunless
@if ($contract->canBeReopenedBy(auth()->user()))
@csrf @method('patch')
@endif @if (! $isParentView && $contract->status === 'to_sign')
Si je modifie ce projet de contrat, mes changements sont d’abord vérifiés par le parent employeur, puis le contrat me revient pour validation.
@endif @if ($isParentView && $contract->status === 'draft' && $assistantChangeSummary !== [])
Mon assistante maternelle a modifié le contrat

Je vérifie ses changements, signalés dans le formulaire, puis je lui renvoie mon contrat pour validation.

    @foreach ($assistantChangeSummary as $change)
  • {{ $change['label'] }} @if ($change['new'] === 'Modifié') Modifié @else {{ $change['old'] }} {{ $change['new'] }} @endif
  • @endforeach
@endif @php($activeTermination = $activeTermination ?? null) @php($viewerIsInitiator = $activeTermination && $activeTermination->initiated_by_user_id === auth()->id()) {{-- Une fin de contrat n'est visible de l'autre partie qu'une fois transmise ; ses documents sont dans le menu « Télécharger ». --}} @php($terminationTransmitted = $activeTermination && ! $activeTermination->isCancelled() && $activeTermination->isSubmitted()) @php($awaitingAcknowledgement = $terminationTransmitted && $activeTermination->isAwaitingAcknowledgement()) {{-- Une fois la bonne réception confirmée, plus personne ne relance de fin de contrat : celle-ci est actée, que le contrat soit déjà clos ou non. --}} @php($terminationActed = $activeTermination && $activeTermination->isAcknowledged()) @php($endDocsUser = auth()->user()) @php($certAccess = $terminationTransmitted ? \App\Support\TerminationDocuments::access($endDocsUser, $activeTermination, \App\Support\TerminationDocuments::CERTIFICAT_TRAVAIL) : null) @php($soldeAccess = $terminationTransmitted ? \App\Support\TerminationDocuments::access($endDocsUser, $activeTermination, \App\Support\TerminationDocuments::SOLDE_TOUT_COMPTE) : null) @php($endDocsEmployerSide = $terminationTransmitted && \App\Support\TerminationDocuments::isEmployerSide($endDocsUser, $activeTermination)) {{-- L'assistante qui met fin au contrat n'a pas accès aux documents de fin de contrat dans naneasy. --}} @php($endDocsAny = $certAccess !== null || $soldeAccess !== null) @if ($endDocsAny) @include('contracts._termination-documents') @endif @if ($terminationTransmitted) @php($otherParty = $isParentView ? 'mon assistant(e) maternel(le)' : 'le parent employeur') @php($terminationEnd = $activeTermination->contract_end_date?->translatedFormat('d/m/Y'))
@if ($activeTermination->isAcknowledged()) La fin de contrat est confirmée{{ $terminationEnd ? " : le contrat prendra fin le {$terminationEnd}" : '' }}. Je retrouve les documents de fin de contrat dans « Télécharger », 3 jours avant le dernier jour. @elseif ($viewerIsInitiator) J'ai envoyé la fin de contrat{{ $terminationEnd ? " (dernier jour le {$terminationEnd})" : '' }}. J'attends que {{ $otherParty }} en confirme la bonne réception ; je peux l'annuler d'ici là depuis le bouton « Fin de contrat ». @else {{ ucfirst($otherParty) }} m'a transmis une fin de contrat{{ $terminationEnd ? " (dernier jour le {$terminationEnd})" : '' }}. Je confirme sa bonne réception depuis le bouton « Fin de contrat ». @endif
@endif
@csrf @method('patch') @include('contracts._form', [ 'record' => $contract, 'readonly' => $readonly, 'lockChild' => (! $isParentView && $isLinkedParentContract) || ! $contract->isChildChangeable(), 'canEditContractFrame' => ! $readonly, 'canEditCareLocation' => ! $readonly && ! $lockedForParentWithAssistant, 'canEditCompensation' => ! $readonly && ! $lockedForParentWithAssistant, 'canEditRest' => ! $readonly && ! $lockedForParentWithAssistant, 'canEditSchedule' => ! $readonly, 'canEditImageRights' => ! $readonly && ($isParentView || ! $isLinkedParentContract), 'profileSync' => $profileSync ?? null, 'canCommitImageRights' => ! $isParentView && $contract->status === 'to_sign', 'canEditScheduleNotice' => ! $readonly && ! $lockedForParentWithAssistant, 'canEditWeeks' => ! $readonly, 'hideContractFrameForLinkedParentFlow' => false, 'assistantCard' => $assistantCard, 'canChangeAssistant' => $canChangeAssistant, 'knownAssistants' => $knownAssistants, 'knownAssistantConditions' => $knownAssistantConditions, 'assistantFieldsRequired' => ! ($isParentView && $assistantCard === null), ])
@if ($errors->any())
Je dois corriger quelques informations.
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif {{ $contract->statusLabel() }} @if ($isWaitingForParentCompletion)

J'attends que le parent employeur complète ce brouillon et me le renvoie pour validation.

@elseif ($terminationActed)

Ce contrat {{ $contract->status === 'ended' ? 'a pris fin' : 'prendra fin' }} le {{ $activeTermination->contract_end_date?->translatedFormat('d/m/Y') ?? '—' }}.

@elseif ($readonly)

Je ne peux plus modifier ce contrat.

@else

Je complète la date de début pour générer le contrat.

@endif
@if ($contract->isAmendment()) Consulter le contrat initial @endif @if ($contract->amendments()->exists()) Consulter les avenants @endif @php($endDraftByViewer = $activeTermination && ! $activeTermination->isSubmitted() && ! $activeTermination->isCancelled() && $viewerIsInitiator) @if ($awaitingAcknowledgement || $endDraftByViewer) {{-- Fin de contrat transmise : l'initiateur peut l'annuler, l'autre partie en accuse réception. --}}
@elseif ($contract->canBeEndedBy(auth()->user()) && ! $terminationActed) {{ $activeTermination && ! $activeTermination->isSubmitted() && ! $activeTermination->isCancelled() && $viewerIsInitiator ? 'Reprendre la fin de contrat' : 'Mettre fin au contrat' }} @endif Je dois enregistrer mes modifications{{ ! $isParentView && $contract->status === 'to_sign' ? ' avec « Soumettre les changements »' : '' }} avant de télécharger les documents mis à jour. @php($contractDocuments = \App\Support\ContractDocuments::available($contract)) @php($terminationMenuCount = $terminationTransmitted ? ($activeTermination->reasonEnum() !== null ? 1 : 0) + ($certAccess !== null ? 1 : 0) + ($soldeAccess !== null ? 1 : 0) + ($endDocsAny ? 1 : 0) : 0) @php($documentsMenuCount = count($contractDocuments) + $terminationMenuCount)
@php($canDuplicate = $contract->canBeDuplicatedBy(auth()->user())) @if ($isParentView && ($canDuplicate || $canCreateAmendment))
@else @if ($canDuplicate) @endif @if ($canCreateAmendment) @endif @endif @if ($isParentView && $contract->status === 'draft' && $assistantCard !== null) @endif @if (! ($isParentView ?? false) && $contract->status === 'to_sign') @endif @if (! $readonly && ! (! ($isParentView ?? false) && $contract->status === 'to_sign')) @endif
@if (! ($isParentView ?? false) && $contract->status === 'to_sign')
@endif @if (! ($isParentView ?? false) && $contract->status === 'to_sign')
@csrf @method('patch')
@csrf @method('patch')
@include('contracts._documents-attestation-modal', ['formId' => 'contract_accept_form', 'submitLabel' => "J'accepte le contrat", 'submitIcon' => 'ph-check-circle']) @endif @if ($isParentView && $contract->status === 'draft' && $assistantCard !== null) @include('contracts._documents-attestation-modal', ['formId' => 'contract_main_form', 'submitName' => '_action', 'submitValue' => 'request_validation', 'submitLabel' => 'Envoyer pour validation', 'submitIcon' => 'ph-paper-plane-tilt']) @endif @if ($awaitingAcknowledgement)
@csrf @method('patch')
@csrf @method('patch')
@endif @if ($contract->canBeDuplicatedBy(auth()->user()))
@csrf
@endif
@csrf