@extends('layouts.admin') @section('page-title', 'Détails du client') @section('page-subtitle', 'Informations du client') @section('styles') @endsection @section('scripts') @stack('page-scripts') @endsection @section('content')
Informations générales
@php $isEntreprise = $client['client_type'] == 'entreprise'; // Pour les particuliers, on extrait les initiales du prénom et nom @endphp {!! \App\Helpers\ClientLogoHelper::renderClientLogo($client) !!}

{{ $client['client_name'] }} {{ isset($client['is_active']) ? ($client['is_active'] ? 'Actif' : 'Inactif') : ($client['client_status'] == 'actif' ? 'Actif' : 'Inactif') }}

{{ $client['client_type'] == 'entreprise' ? 'Entreprise' : 'Particulier' }}
@if(isset($client['pennylane_customer_id']) && !empty($client['pennylane_customer_id']))
Pennylane ID: {{ $client['pennylane_customer_id'] }} @php $pennylaneCustomerName = null; if (isset($pennylaneCustomers) && is_array($pennylaneCustomers)) { foreach ($pennylaneCustomers as $customer) { if (isset($customer['id']) && $customer['id'] == $client['pennylane_customer_id']) { $pennylaneCustomerName = $customer['name']; break; } } } @endphp @if($pennylaneCustomerName) ({{ $pennylaneCustomerName }}) @endif
@endif @if(isset($client['nombre_postes']) && !empty($client['nombre_postes']))
Postes: {{ $client['nombre_postes'] }}
@endif
Localisation
@if(isset($addresses) && count($addresses) > 0) @foreach($addresses as $address)
{{ $address['short_address'] }} @if($address['is_primary']) Principale @endif

{{ $address['full_address'] }}

@if(isset($address['floor']) && $address['floor']) {{ $address['floor'] }} @endif @if(isset($address['side']) && $address['side']) {{ $address['side'] }} @endif

@endforeach @else

Aucune adresse

@endif
Café
@if(isset($coffee_data) && !empty($coffee_data)) @foreach($coffee_data as $index => $contract_data)
Contrat café #{{ $contract_data['contract']['id'] }} @if(count($coffee_data) > 1) ({{ $index + 1 }}/{{ count($coffee_data) }}) @endif
@php $statusClass = match($contract_data['status']) { 'over' => 'pill-badge pill-badge--danger', 'under' => 'pill-badge pill-badge--warning', default => 'pill-badge pill-badge--success' }; $statusText = match($contract_data['status']) { 'over' => 'Surconsommation', 'under' => 'Sous-consommation', default => 'Normal' }; @endphp {{ $statusText }}
Quota mensuel: {{ number_format($contract_data['contract']['monthly_quota'], 1) }} kg
Total livré: {{ number_format($contract_data['total_delivered'], 1) }} kg
Début: {{ $contract_data['contract']['start_date'] ? date('d/m/Y', strtotime($contract_data['contract']['start_date'])) : 'Non défini' }}
Fin: {{ $contract_data['contract']['end_date'] ? date('d/m/Y', strtotime($contract_data['contract']['end_date'])) : 'Indéterminée' }}
Adresse de livraison: @if(!empty($contract_data['contract']['short_address'])) {{ $contract_data['contract']['short_address'] }} @else Non spécifiée @endif
Suivi détaillé
@endforeach @else

Aucun contrat café

@endif
Documents

Aucun document

Historique d'activité
@if(isset($activities) && count($activities) > 0) @php // Filtrer les activités pour ne garder que celles avec des données pertinentes $filteredActivities = []; foreach($activities as $activity) { $metadata = json_decode($activity['metadata'], true); $isValid = true; // Vérifier si c'est une activité de mise à jour sans changements réels if ($activity['activity_type'] === 'update') { $changes = $metadata['changes'] ?? []; if (empty($changes) || !(isset($changes['name']) || isset($changes['email']) || isset($changes['type']) || isset($changes['status']))) { $isValid = false; } } if ($isValid) { $filteredActivities[] = $activity; } } @endphp @foreach($filteredActivities as $activity)
@switch($activity['activity_type']) @case('create') @break @case('update') @break @case('status_change') @break @case('address_add') @break @case('address_update') @break @case('address_remove') @break @default @endswitch

@switch($activity['activity_type']) @case('create') Création du client @break @case('update') Mise à jour des informations @break @case('status_change') Changement de statut @break @case('address_add') Ajout d'une adresse @break @case('address_remove') Suppression d'une adresse @break @default {{ $activity['description'] }} @endswitch

{{ \Carbon\Carbon::parse($activity['created_at'])->format('d/m/Y') }}

Par {{ $activity['user_name'] ?? 'l\'administrateur' }}

@switch($activity['activity_type']) @case('create')

@php $metadata = json_decode($activity['metadata'], true); @endphp @if(!empty($metadata)) Création du client {{ $metadata['client_name'] ?? '' }}

  • Type: {{ $metadata['client_type'] ?? '' }}
  • @if(!empty($metadata['client_email']) && $metadata['client_email'] !== 'Non spécifié')
  • Email: {{ $metadata['client_email'] }}
  • @endif
  • Statut initial: {{ $metadata['is_active'] ?? '' }}
@else {{ $activity['description'] }} @endif

@break @case('update') @php $metadata = json_decode($activity['metadata'], true); $changes = $metadata['changes'] ?? []; $fieldsUpdated = $metadata['fields_updated'] ?? []; $hasChanges = !empty($changes) && (isset($changes['name']) || isset($changes['email']) || isset($changes['type']) || isset($changes['status'])); @endphp @if($hasChanges)

Mise à jour des informations:

    @if(isset($changes['name']))
  • Nom: {{ $changes['name']['old'] }}{{ $changes['name']['new'] }}
  • @endif @if(isset($changes['email']))
  • Email: {{ $changes['email']['old'] }}{{ $changes['email']['new'] }}
  • @endif @if(isset($changes['type']))
  • Type: {{ $changes['type']['old'] }}{{ $changes['type']['new'] }}
  • @endif @if(isset($changes['status']))
  • Statut: {{ $changes['status']['old'] }}{{ $changes['status']['new'] }}
  • @endif

@endif @break @case('status_change')

@php $metadata = json_decode($activity['metadata'], true); $newStatus = $metadata['new_status'] ?? null; $previousStatus = $metadata['previous_status'] ?? null; @endphp @if($newStatus && $previousStatus) Status changé de {{ ucfirst($previousStatus) }} à {{ ucfirst($newStatus) }} @else {{ $activity['description'] }} @endif

@break @case('address_add')

@php $metadata = json_decode($activity['metadata'], true); $address = $metadata['address'] ?? null; @endphp @if($address)

{{ $address }}
@if(isset($metadata['floor']) || isset($metadata['side']))
@if(isset($metadata['floor'])) {{ $metadata['floor'] }} @endif @if(isset($metadata['side'])) {{ $metadata['side'] }} @endif
@endif
@else {{ $activity['description'] }} @endif

@break @case('address_update')

@php $metadata = json_decode($activity['metadata'], true); $address = $metadata['address'] ?? null; @endphp @if($address)

{{ $address }}
@if(isset($metadata['floor']) || isset($metadata['side']))
@if(isset($metadata['floor'])) {{ $metadata['floor'] }} @endif @if(isset($metadata['side'])) {{ $metadata['side'] }} @endif
@endif
@else {{ $activity['description'] }} @endif

@break @case('address_remove')

@php $metadata = json_decode($activity['metadata'], true); $address = $metadata['address'] ?? null; @endphp @if($address)

{{ $address }}
@if(isset($metadata['floor']) || isset($metadata['side']))
@if(isset($metadata['floor'])) {{ $metadata['floor'] }} @endif @if(isset($metadata['side'])) {{ $metadata['side'] }} @endif
@endif
@else {{ $activity['description'] }} @endif

@break @default @if($activity['description'])

{{ $activity['description'] }}

@endif @endswitch
@endforeach @else

Création du client

@if(isset($client['created_at'])) {{ \Carbon\Carbon::parse($client['created_at'])->format('d/m/Y') }} @else Date inconnue @endif

@if(isset($client['creator_name'])) Par {{ $client['creator_name'] }} @else Par l'administrateur @endif

@if(isset($client['updated_at']) && (!isset($client['created_at']) || $client['updated_at'] != $client['created_at']))

Dernière modification

{{ \Carbon\Carbon::parse($client['updated_at'])->format('d/m/Y') }}

Par {{ isset($client['updated_by_name']) ? $client['updated_by_name'] : 'l\'administrateur' }}

@endif @endif