@extends('layouts.app') @section('content')
Retour à la liste

{{ $client->nom }}

@if($client->actif) Actif @else Inactif @endif
@if($client->code_client) {{ $client->code_client }} @endif @if($client->code_client && $client->ville) · @endif {{ $client->ville }}
Modifier

Partenaire
{{ $client->partenaire?->cabinet ?? 'Non renseigné' }}
Gestionnaire
{{ $client->gestionnaire?->nom ?? 'Non affecté' }}
Convention collective
{{ $client->conventionCollective?->libelle ?? 'Non renseignée' }}

Informations générales

SIRET
{{ $client->siret ?: 'Non renseigné' }}
Date de création
{{ $client->date_creation?->format('d/m/Y') ?? 'Non renseignée' }}
Adresse
@if($client->adresse) {{ $client->adresse }}
@if($client->complement_adresse) {{ $client->complement_adresse }}
@endif {{ $client->code_postal }} {{ $client->ville }} @else Non renseignée @endif
Contact
{{ $client->contact_nom ?: 'Non renseigné' }}
Téléphone
{{ $client->contact_telephone ?: 'Non renseigné' }}
Email
{{ $client->contact_email ?: 'Non renseigné' }}

Options

@if($client->option_silae_rh) Silae RH @endif @if($client->option_silae_rh_pro) Silae RH Pro @endif @if($client->option_vip) VIP @endif @if($client->option_demat) Démat @endif @if($client->option_mysilae) MySilae @endif @if( !$client->option_silae_rh && !$client->option_silae_rh_pro && !$client->option_vip && !$client->option_demat && !$client->option_mysilae ) Aucune option @endif

Informations de connexion

{{ $client->infos_connexion ?: 'Aucune information enregistrée.' }}

Commentaires

@if($client->commentaire) {!! $client->commentaire !!} @else Aucun commentaire. @endif

Établissements

{{-- |-------------------------------------------------------------------------- | Formulaire d'ajout d'un établissement |-------------------------------------------------------------------------- --}}
@csrf @if($saisieBulletinMoisCourant)
Attention : des bulletins sont déjà saisis pour le mois en cours
Une saisie de {{ $saisieBulletinMoisCourant->quantite }} bulletin{{ (int) $saisieBulletinMoisCourant->quantite > 1 ? 's' : '' }} existe déjà pour ce client.
La création d'un établissement passera le client en mode multi-établissements. Lors de la première saisie de bulletins sur un établissement, la saisie principale du mois sera supprimée automatiquement afin d'éviter tout doublon.
@endif
{{-- Nom --}}
{{-- SIRET --}}
{{-- Adresse --}}
{{-- Complément --}}
{{-- Code postal --}}
{{-- Ville --}}
{{-- Téléphone --}}
{{-- Email --}}
{{-- Commentaire --}}
@forelse($client->etablissements->where('actif', 1) as $etablissement)
{{-- |-------------------------------------------------------------------------- | Résumé de l'établissement |-------------------------------------------------------------------------- --}}
{{ $etablissement->nom }}
{{ $etablissement->code_postal }} {{ $etablissement->ville }}
@if($etablissement->commentaire)
{{ $etablissement->commentaire }}
@endif
{{-- |-------------------------------------------------------------------------- | Formulaire de modification |-------------------------------------------------------------------------- --}}

@csrf @method('PUT')
{{-- Nom --}}
{{-- SIRET --}}
{{-- Adresse --}}
{{-- Complément d'adresse --}}
{{-- Code postal --}}
{{-- Ville --}}
{{-- Téléphone --}}
{{-- Email --}}
{{-- Commentaire --}}
{{-- * Désactivation de l'établissement. * * Le bouton ne supprime pas réellement l'établissement : * il passe simplement son champ actif à 0. --}}
{{-- |-------------------------------------------------------------------------- | Formulaire de désactivation |-------------------------------------------------------------------------- --}}
@csrf @method('DELETE')
@empty
Ce client ne possède aucun établissement complémentaire.
@endforelse {{-- |-------------------------------------------------------------------------- | Établissements désactivés |-------------------------------------------------------------------------- | | Les établissements désactivés sont conservés afin de préserver | l'historique des anciennes saisies multi-établissements. | --}} @if($client->etablissements->where('actif', 0)->isNotEmpty())

Établissements désactivés

{{ $client->etablissements->where('actif', 0)->count() }}
@foreach($client->etablissements->where('actif', 0) as $etablissement)
{{ $etablissement->nom }}
@if($etablissement->siret) SIRET : {{ $etablissement->siret }} @endif @if( $etablissement->siret && ($etablissement->code_postal || $etablissement->ville) ) · @endif {{ $etablissement->code_postal }} {{ $etablissement->ville }}
Désactivé
@csrf
@endforeach
@endif
{{-- |-------------------------------------------------------------------------- | Ajout d'un tarif spécifique |-------------------------------------------------------------------------- --}}

Ajouter une nouvelle tarification

@if(auth()->user()->peutGererTarifsClients())
@csrf
{{-- Service --}}
{{-- Date de début d'application --}}
@error('date_debut')
{{ $message }}
@enderror
{{-- |-------------------------------------------------------------------------- | Type de tarification |-------------------------------------------------------------------------- | | L'utilisateur peut : | - définir un nouveau tarif spécifique ; | - remettre le client au tarif standard public/partenaire. | --}}
{{-- Prix --}}
{{-- Enregistrement --}}
@endif
@forelse( $client->tarifsClients ->groupBy('service_id') ->sortBy(function ($tarifsDuService) { return $tarifsDuService->first()?->service?->libelle ?? ''; }) as $serviceId => $tarifsDuService ) @php /* |-------------------------------------------------------------------------- | Informations du service |-------------------------------------------------------------------------- | | Tous les tarifs présents dans ce groupe concernent | le même service. | */ $service = $tarifsDuService->first()?->service; /* |-------------------------------------------------------------------------- | Tri des tarifs du plus récent au plus ancien |-------------------------------------------------------------------------- | | Les tarifs datés apparaissent en premier. | Les anciens tarifs historiques sans date apparaissent à la fin. | */ $tarifsTries = $tarifsDuService->sortByDesc(function ($tarif) { return $tarif->date_debut?->timestamp ?? 0; }); @endphp {{-- Ligne de séparation par service --}} @foreach($tarifsTries as $tarif) @php /* |-------------------------------------------------------------------------- | Vérification d'un tarif plus récent |-------------------------------------------------------------------------- | | Comme nous sommes déjà dans le groupe du même service, | il suffit de vérifier si un tarif daté plus récent existe. | | Aucune requête SQL supplémentaire n'est exécutée. | */ $aUnTarifPlusRecent = $tarifsDuService->contains( function ($autreTarif) use ($tarif) { /* * On ignore la ligne elle-même. */ if ((int) $autreTarif->id === (int) $tarif->id) { return false; } /* * Un tarif historique sans date * n'est jamais considéré comme plus récent. */ if ($autreTarif->date_debut === null) { return false; } /* * Si le tarif actuel n'a pas de date, * tout tarif daté est forcément plus récent. */ if ($tarif->date_debut === null) { return true; } /* * Sinon on compare simplement les dates. */ return $autreTarif->date_debut->gt( $tarif->date_debut ); } ); @endphp @if( auth()->user()->peutGererTarifsClients() && $tarif->prix_unitaire !== null && !$aUnTarifPlusRecent ) @endif @endforeach @empty @endforelse
Service Applicable à partir de Tarif spécifique Actions
{{ $service?->libelle ?? 'Service introuvable' }}
{{-- Le service est déjà affiché dans l'en-tête du groupe --}} @if($tarif->date_debut) {{ $tarif->date_debut ->locale('fr') ->translatedFormat('F Y') }} @else Tarif historique @endif @if($tarif->prix_unitaire === null) Tarif standard @else {{ number_format( $tarif->prix_unitaire, 2, ',', ' ' ) }} € @endif @if( auth()->user()->peutGererTarifsClients() && $tarif->prix_unitaire !== null && !$aUnTarifPlusRecent ) @else @endif
@csrf @method('PUT')
Aucun tarif spécifique.

Historique des saisies

Quantités et montants enregistrés pour ce client

@php $saisiesParPeriode = $client->saisies ->sortByDesc('periode') ->groupBy(function ($saisie) { return $saisie->periode?->format('Y-m'); }); @endphp @forelse($saisiesParPeriode as $periode => $saisies)
{{ \Carbon\Carbon::createFromFormat('Y-m', $periode) ->locale('fr') ->translatedFormat('F Y') }} {{ number_format($saisies->sum('montant'), 2, ',', ' ') }} €
@foreach($saisies as $saisie) @endforeach
Service Établissement Quantité Prix unitaire Montant Commentaire
{{ $saisie->service?->libelle ?? 'Service introuvable' }} @if($saisie->etablissement) {{ $saisie->etablissement->nom }} @else Client principal @endif {{ $saisie->quantite }} {{ number_format($saisie->prix_unitaire, 2, ',', ' ') }} € {{ number_format($saisie->montant, 2, ',', ' ') }} € {{ $saisie->commentaire ?: '—' }}
@empty
Aucune saisie enregistrée pour ce client.
@endforelse
{{-- Formulaire d'ajout --}}
Ajouter un document
@csrf
@error('type')
{{ $message }}
@enderror
@error('nom')
{{ $message }}
@enderror
@error('service_id')
{{ $message }}
@enderror
@error('date_document')
{{ $message }}
@enderror
@error('commentaire')
{{ $message }}
@enderror
PDF uniquement, 10 Mo maximum.
@error('fichier')
{{ $message }}
@enderror
{{-- Liste des documents --}}
Documents du client {{ $client->documents->count() }}
@forelse( $client->documents->sortByDesc('date_document') as $document )
{{ $document->nom }} {{ $document->type }} @if($document->service) {{ $document->service->libelle }} @endif
@if($document->date_document) Document du {{ $document->date_document->format('d/m/Y') }} @else Date non renseignée @endif @if($document->createur) · Ajouté par {{ $document->createur->nom ?? $document->createur->name }} @endif
@if($document->commentaire)

{{ $document->commentaire }}

@endif
Télécharger
@csrf @method('DELETE')
@empty
Aucun document n’a encore été ajouté.
@endforelse
@endsection