===== STRUCTURE ===== . ├── css │ └── app.css ├── js │ ├── app.js │ └── bootstrap.js ├── output.txt └── views ├── auth │ └── login.blade.php ├── layout │ ├── app.blade.php │ ├── header.blade.php │ └── sidebar.blade.php ├── pages │ ├── cities │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ └── index.blade.php │ ├── dashboard │ │ └── admin-dashboard.blade.php │ ├── dashboard.blade.php │ ├── deplacements │ │ ├── create.blade.php │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── listings │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ └── partials │ │ └── table.blade.php │ ├── permissions │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── salaries │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── tickets │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── users │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ ├── show.blade.php │ │ └── tracking.blade.php │ └── visits │ ├── index.blade.php │ ├── progress.blade.php │ └── show.blade.php ├── vendor │ └── pagination │ └── bootstrap-5-fa.blade.php └── welcome.blade.php 19 directories, 36 files ===== CONTENU DES FICHIERS ===== ----- ./output.txt ----- ----- ./js/app.js ----- import './bootstrap'; ----- ./js/bootstrap.js ----- import axios from 'axios'; window.axios = axios; window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; ----- ./views/pages/cities/create.blade.php ----- @extends('layout.app') @section('title', 'Ajouter un secteur') @section('page_title', 'Nouveau secteur') @section('content')
Nom : {{ $user->name }}
Email : {{ $user->email }}
Téléphone : {{ $user->phone ?? '—' }}
Mobile : {{ $user->mobile ?? '—' }}
Adresse : {{ $user->address ?? '—' }}
Rôle : {{ ucfirst($user->role) }}
Département : {{ $user->department ?? '—' }}
Date d’embauche : {{ optional($user->hire_date)->format('d/m/Y') ?? '—' }}
Contrat : {{ ucfirst($user->contract_type) }}
Taux de commission : {{ $user->commission_rate }}%
Immatriculation : {{ $user->car_registration ?? '—' }}
Modèle : {{ $user->car_model ?? '—' }}
Dernière connexion : {{ optional($user->last_login_at)->format('d/m/Y H:i') ?? '—' }}
IP : {{ $user->last_login_ip ?? '—' }}
| Début | Fin | Durée (minutes) |
|---|---|---|
| {{ $d['from'] }} | {{ $d['to'] }} | {{ $d['duration'] }} |
| Date | Établissement | Type | Distance | Statut | Action |
|---|---|---|---|---|---|
| {{ $visit->date_visit }} | {{ $visit->listing->name ?? '-' }} | {{ $visit->listing->type ?? '-' }} | @if($visit->distance_meters && $visit->distance_meters > 100) {{ $visit->distance_meters }} m @else {{ $visit->distance_meters ?? 0 }} m @endif | {{ $visit->status }} |
| Délégué | Fixe (DH) | Visites valides | Prime ({{ $primePerVisit }} DH/visite) | Total (DH) | Actions |
|---|---|---|---|---|---|
| {{ $s['delegue']->name }} | {{ number_format($s['fixe'],2) }} | {{ $s['visites'] }} | {{ number_format($s['prime'],2) }} | {{ number_format($s['total'],2) }} | Détails |
| Salaire fixe : | {{ number_format($fixe,2) }} DH |
|---|---|
| Visites valides : | {{ $visites->count() }} |
| Prime par visite : | {{ number_format($primePerVisit,2) }} DH |
| Prime totale : | {{ number_format($prime,2) }} DH |
| Total : | {{ number_format($total,2) }} DH |
| Date | Client | Type |
|---|---|---|
| {{ optional($v->date_visit)->format('d/m/Y H:i') }} | {{ $v->listing?->name ?? '-' }} | {{ ucfirst($v->visite_type) }} |
| ID | Délégué | Client | Type | Date visite | Coordonnées | Actions |
|---|---|---|---|---|---|---|
| {{ $v->id }} | {{ $v->user->name ?? '-' }} | {{ $v->listing->name ?? '-' }} | {{ $v->visite_type }} | {{ optional($v->date_visit)->format('d/m/Y H:i') }} | {{ $v->poslat ?? '-' }}, {{ $v->poslong ?? '-' }} | Voir / Corriger |
Type : {{ $visit->visite_type }}
Statut : {{ $visit->status }}
Coordonnées : {{ $visit->poslat }}, {{ $visit->poslong }}
Progression des 12 derniers mois
Distribution des visites
Selon les visites validées
Aucune donnée disponible.
@endforelsePoints nécessitant votre attention
Dernières visites enregistrées
Aucune activité récente.
@endforelse
ID : #{{ $visit->id }}
Date : {{ optional($visit->date_visit)->format('d/m/Y H:i') }}
Généré le : {{ now()->format('d/m/Y H:i') }}
| Nom | {{ $visit->user?->name }} |
|---|---|
| ID | {{ $visit->user?->id }} |
| Type visite | {{ $visit->visite_type }} |
| Durée | {{ gmdate('H:i:s', $visit->elapsed_time) }} |
| Nom | {{ $visit->listing?->name }} |
|---|---|
| Type | {{ ucfirst($visit->listing?->type) }} |
| Ville | {{ $visit->listing?->city?->name }} |
| Adresse | {{ $visit->listing?->address }} |
Évaluation du point de vente officinal incluant la disponibilité des produits, la rotation des stocks et la réceptivité aux recommandations du laboratoire.
@elseAnalyse des flux d’approvisionnement et du positionnement commercial dans le circuit de distribution.
@endif| Produit | Quantité |
|---|---|
| {{ $med['name'] ?? $med }} | {{ $med['unit'] ?? '-' }} |
Aucune demande.
@endif {{-- PRODUITS --}}| Produit | Retour |
|---|---|
| {{ $name }} | {{ $res['etat'] ?? 'Non défini' }} |
Niveau d’engagement : {{ $visit->important ? 'Élevé' : 'Modéré' }}
@if($visit->objection)Objections détectées nécessitant un suivi.
@endif @if($visit->rupture_stock)Opportunité liée à une rupture de stock identifiée.
@endif {{-- NOTES --}}{{ $visit->notes ?? 'Aucune note.' }}
{{-- STATUT --}}{{ strtoupper($visit->status) }}
| Date | Utilisateur | Action | Résultat |
|---|---|---|---|
| 20 Juin 2025 | Salah Salah | Ajout visite | Succès |
| 19 Juin 2025 | Admin | Modification Listing | Avertissement |
Aucune demande trouvée.
{{ $perm->start_date->format('d/m/Y') }} @if($perm->end_date) → {{ $perm->end_date->format('d/m/Y') }} @endif
Motif: {{ ucfirst($perm->reason) }}
@if($perm->notes){{ Str::limit($perm->notes,80) }}
@endif
| Délégué : | {{ $permission->user?->name }} |
|---|---|
| Date début : | {{ $permission->start_date->format('d/m/Y') }} |
| Date fin : | {{ $permission->end_date->format('d/m/Y') }} |
| Demi-journée : | {{ $permission->half_day ? 'Oui ('.$permission->period.')' : 'Journée complète' }} |
| Motif : | {{ ucfirst($permission->reason) }} |
| Notes : | {{ $permission->notes ?? '—' }} |
| Remarque Admin : | {{ $permission->remarque_admin ?? '—' }} |
| Statut : | {{ ucfirst($permission->status) }} |
| Délégué : | {{ $deplacement->user?->name }} |
|---|---|
| Départ : | {{ $deplacement->from_city }} |
| Arrivée : | {{ $deplacement->to_city }} |
| Distance : | {{ $deplacement->distance_km ?? '—' }} km |
| Date départ : | {{ $deplacement->date_depart->format('d/m/Y H:i') }} |
| Statut : | {{ ucfirst($deplacement->status) }} |
Connectez-vous pour accéder à votre espace
@if($errors->any())
Laravel has an incredibly rich ecosystem.
We suggest starting with the following.