@extends('layouts.app') @section('content')

Gestion des Abonnements

@if(session('success')) @endif
Effacer
@if($abonnements->count() > 0)
@foreach($abonnements as $abonnement) @php $now = \Carbon\Carbon::now(); $dateFin = \Carbon\Carbon::parse($abonnement->date_fin); $joursRestants = $now->diffInDays($dateFin, false); // false pour avoir des valeurs négatives si expiré // Calcul SIMPLIFIÉ avec floor() pour garantir des entiers $moisRestants = 0; $semainesRestantes = 0; $joursRestantsFinal = 0; if ($joursRestants > 0) { // Méthode simple et fiable $joursTotalRestants = $joursRestants; // Mois entiers $moisRestants = floor($joursTotalRestants / 30); $joursApresMois = $joursTotalRestants % 30; // Semaines entières $semainesRestantes = floor($joursApresMois / 7); $joursRestantsFinal = $joursApresMois % 7; } // Formatage du texte dans le format "7M 3S 4J" $texte = ''; if ($moisRestants > 0) { $texte .= $moisRestants . 'M'; } if ($semainesRestantes > 0) { if ($texte !== '') $texte .= ' '; $texte .= $semainesRestantes . 'S'; } if ($joursRestantsFinal > 0 || ($moisRestants === 0 && $semainesRestantes === 0 && $joursRestants > 0)) { if ($texte !== '') $texte .= ' '; $texte .= $joursRestantsFinal . 'J'; } // Déterminer la classe de couleur en fonction des jours restants if ($joursRestants < 0) { $couleur = 'text-red-600'; $texte = 'Expiré'; } elseif ($joursRestants == 0) { $couleur = 'text-orange-600'; $texte = 'Dernier jour'; } elseif ($joursRestants <= 7) { $couleur = 'text-orange-600'; // Pour moins d'une semaine, on affiche seulement les jours if ($moisRestants == 0 && $semainesRestantes == 0) { $texte = $joursRestants . 'J'; } } else { $couleur = 'text-green-600'; } @endphp @endforeach
Client Type Prix Début Fin Temps restant Statut Actions
{{ $abonnement->client->prenom }} {{ $abonnement->client->nom }}
{{$abonnement->gps_numero}}
{{ $abonnement->type_abonnement }} mois {{ number_format($abonnement->prix, 0, ',', ' ') }} FCFA {{ $abonnement->date_debut->format('d/m/Y') }} {{ $abonnement->date_fin->format('d/m/Y') }} {{ $texte }} @if($abonnement->statut == 'Actif') Actif @elseif($abonnement->statut == 'En attente') En attente @elseif($abonnement->statut == 'Expiré') Expiré @else {{ $abonnement->statut }} @endif
{{ $abonnements->links() }}
@else

Aucun abonnement trouvé

@if(request()->hasAny(['search', 'statut', 'type_abonnement'])) Afficher tous les abonnements @endif
@endif

Légende des temps restants:

+7 jours : Abonnement valide
0-7 jours : Bientôt expiré
Négatif : Expiré
@endsection