{{-- resources/views/itins/index.blade.php --}} @extends('layouts.base') @section('title', __('Itineraries')) @section('content') @php /** @var \Illuminate\Support\Collection|\App\Models\Itinerary[] $itins */ /** @var \Illuminate\Support\Collection|\App\Models\Society[] $societyOptions ?? null */ $isAdminCtx = request()->routeIs('admin.*'); $isProCtx = request()->routeIs('pro.*'); // pour le filtre société côté super admin uniquement // $selectedSocietyId doit venir du contrôleur (nullable) $canFilterBySociety = $isAdminCtx && (auth()->user()?->isSuperAdmin() ?? false); @endphp

{{ __('Itineraries') }}

{{ __('Manage and follow company routes / visits.') }}

@if($canFilterBySociety) {{-- Filtre société --}}
@endif {{-- Bouton créer --}} @if($isAdminCtx) {{ __('New itinerary') }} @elseif($isProCtx) {{ __('New itinerary') }} @endif
@if(session('ok'))
{{ session('ok') }}
@endif @if($errors->any())
@endif
@forelse($itins as $itinerary) @php // URLs par ligne, selon contexte if ($isAdminCtx) { $editUrl = route('admin.itins.edit', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); $mapUrl = route('admin.itins.map', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); $delUrl = route('admin.itins.destroy', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); } elseif ($isProCtx) { $editUrl = route('pro.itins.edit', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); $mapUrl = route('pro.itins.map', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); $delUrl = route('pro.itins.destroy', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); } else { // user normal -> pas d'édition / suppression, juste la map perso $editUrl = null; $delUrl = null; $mapUrl = route('itins.user.map', [ 'locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id ]); } // petites infos d'affichage $socName = $itinerary->society->name ?? '—'; $ownerName = $itinerary->owner?->firstname .' ' .$itinerary->owner?->lastname; $ownerName = trim($ownerName) ?: '#'.$itinerary->owner?->id; $scheduled = $itinerary->scheduled_date ? $itinerary->scheduled_date->timezone('Europe/Paris')->format('d/m/Y H:i') : '—'; $wpCount = $itinerary->points_count ?? $itinerary->points?->count() ?? 0; $assignees = $itinerary->assignedUsers ? $itinerary->assignedUsers->map(function($u){ $nm = trim(($u->firstname ?? '').' '.($u->lastname ?? '')); return $nm !== '' ? $nm : ('#'.$u->id); })->join(', ') : '—'; @endphp @empty @endforelse
{{ __('ID') }} {{ __('Name') }} {{ __('Company') }} {{ __('Manager') }} {{ __('Scheduled date') }} {{ __('Waypoints') }} {{ __('Assigned users') }}
#{{ $itinerary->id }} {{ $itinerary->name }} {{ $socName }} {{ $ownerName }} {{ $scheduled }} {{ $wpCount }} {{ $assignees }} {{-- Voir carte / progression --}} {{ __('Map') }} @if($editUrl) {{ __('Edit') }} @endif @if($delUrl)
@csrf @method('DELETE')
@endif
{{ __('No itinerary yet.') }}
@endsection