Copier @extends('layouts.app') @push('styles') @endpush @section('content') @php $fmtDt = static function ($v) { try { return $v ? \Carbon\Carbon::parse($v)->format('d/m/Y à H:i') : '—'; } catch (\Throwable $e) { return '—'; } }; $fmtDiff = static function ($v) { try { return $v ? \Carbon\Carbon::parse($v)->diffForHumans() : '—'; } catch (\Throwable $e) { return '—'; } }; @endphp
{{-- Hero --}}

🔒 Mes Paiements Sécurisés

Suivez vos transactions protégées

Retour
{{-- Stats --}}
En attente
{{ $escrows->where('status','pending')->count() }}
Terminées
{{ $escrows->where('status','released')->count() }}
Litiges
{{ $escrows->whereIn('status',['disputed','dispute_review'])->count() }}
Total bloqué
{{ number_format($escrows->where('status','pending')->sum('total_amount'),2) }} €
{{-- Liste --}}
Vos transactions sécurisées
@if($escrows->isEmpty())

Aucune transaction sécurisée

Vos prochains achats avec paiement sécurisé apparaîtront ici

@else @foreach($escrows as $escrow) @php $eType = (string)($escrow->escrowable_type ?? ''); $eSt = (string)($escrow->status ?? ''); $eAmt = (float)($escrow->total_amount ?? $escrow->amount ?? 0); $eDep = (float)($escrow->deposit_amount ?? 0); $eConfirmed = $escrow->client_confirmed_at ?? null; $eAuto = $escrow->auto_release_at ?? null; $iconBg = str_contains($eType,'Booking') ? '#dbeafe' : (str_contains($eType,'Equipment') ? '#ede9fe' : (str_contains($eType,'UrgentSale') ? '#ffedd5' : (str_contains($eType,'FoodOrder') ? '#fef3c7' : '#f3f4f6'))); $iconColor = str_contains($eType,'Booking') ? '#2563eb' : (str_contains($eType,'Equipment') ? '#7c3aed' : (str_contains($eType,'UrgentSale') ? '#ea580c' : (str_contains($eType,'FoodOrder') ? '#d97706' : '#6b7280'))); $badgeClass = match($eSt) { 'pending'=>'tp-badge-pending','released'=>'tp-badge-released','refunded'=>'tp-badge-refunded','partially_refunded'=>'tp-badge-partial-refund','disputed'=>'tp-badge-disputed','dispute_review'=>'tp-badge-dispute-review','cancelled'=>'tp-badge-cancelled', default=>'tp-badge-pending' }; $badgeText = match($eSt) { 'pending'=>'🔒 En attente','released'=>'✅ Libéré','refunded'=>'💰 Remboursé','partially_refunded'=>'💸 Remb. partiel','disputed'=>'⚠️ Litige','dispute_review'=>'📁 Dossier litige','cancelled'=>'❌ Annulé', default=>ucfirst($eSt) }; $typeLabel = str_contains($eType,'Booking') ? 'Réservation de service' : (str_contains($eType,'Equipment') ? 'Location d\'équipement' : (str_contains($eType,'UrgentSale') ? 'Vente urgente' : (str_contains($eType,'FoodOrder') ? '🍽️ Commande food' : 'Transaction'))); @endphp
@if(str_contains($eType,'Booking')) @elseif(str_contains($eType,'Equipment')) @elseif(str_contains($eType,'UrgentSale')) @else @endif

{{ $typeLabel }} #{{ $escrow->id }}

{{ $fmtDt($escrow->created_at) }}

@if($eAuto && $eSt === 'pending')

Libération auto : {{ $fmtDiff($eAuto) }}

@endif
{{ number_format($eAmt,2) }} €
@if($eDep > 0)
+ {{ number_format($eDep,2) }} € caution
@endif
{{ $badgeText }}
{{-- Actions --}} @if($eSt === 'pending' && empty($eConfirmed)) @php $isUS = str_contains($eType,'UrgentSale'); $confirmR = $isUS ? route('client.escrow.confirm-urgent-sale',$escrow->id) : route('client.escrow.confirm',$escrow->id); @endphp
@csrf
Détails
@elseif($eSt === 'released') @else @endif
@endforeach
{{ $escrows->links() }}
@endif
{{-- Modal Litige --}}
@csrf

Signaler un problème

Votre dossier est enregistré et visible par les parties.

@endsection