@extends('layouts.app') @section('title', 'Commande #' . $foodOrder->order_number) @push('styles') @endpush @section('content') @php $statusConfig = [ 'pending' => ['gradient' => 'from-amber-400 to-orange-500', 'bg' => 'bg-amber-500', 'icon' => '⏳', 'label' => 'En attente', 'desc' => 'Le prestataire va confirmer votre commande', 'step' => 1], 'accepted' => ['gradient' => 'from-blue-400 to-indigo-500', 'bg' => 'bg-blue-500', 'icon' => '👍', 'label' => 'Acceptée', 'desc' => 'Votre commande va être préparée', 'step' => 2], 'preparing' => ['gradient' => 'from-purple-400 to-pink-500', 'bg' => 'bg-purple-500', 'icon' => '👨🍳', 'label' => 'En préparation', 'desc' => 'Le chef prépare votre commande', 'step' => 3], 'ready' => ['gradient' => 'from-green-400 to-emerald-500', 'bg' => 'bg-green-500', 'icon' => $foodOrder->delivery_type === 'pickup' ? '🎉' : '🚚', 'label' => $foodOrder->delivery_type === 'pickup' ? 'Prête !' : 'En route', 'desc' => $foodOrder->delivery_type === 'pickup' ? 'Venez récupérer votre commande' : 'Votre commande arrive bientôt', 'step' => 4], 'delivered' => ['gradient' => 'from-emerald-400 to-teal-500', 'bg' => 'bg-teal-500', 'icon' => '📦', 'label' => 'Livrée', 'desc' => 'Bon appétit !', 'step' => 5], 'completed' => ['gradient' => 'from-gray-400 to-gray-500', 'bg' => 'bg-gray-500', 'icon' => '✅', 'label' => 'Terminée', 'desc' => 'Merci pour votre commande', 'step' => 5], 'cancelled' => ['gradient' => 'from-red-400 to-rose-500', 'bg' => 'bg-red-500', 'icon' => '❌', 'label' => 'Annulée', 'desc' => 'Commande annulée', 'step' => 0], 'rejected' => ['gradient' => 'from-red-400 to-rose-500', 'bg' => 'bg-red-500', 'icon' => '🚫', 'label' => 'Refusée', 'desc' => 'Le prestataire a refusé', 'step' => 0], ]; $config = $statusConfig[$foodOrder->status] ?? $statusConfig['pending']; $isActive = !in_array($foodOrder->status, ['cancelled', 'rejected', 'completed']); $effectivePaymentPolicy = $foodOrder->getPaymentPolicy(); $effectivePaymentType = (string) ($effectivePaymentPolicy['type'] ?? (($foodOrder->payment_method ?? 'cash') === 'cash' ? 'cash' : 'full_prepay')); $isCashOnlyPayment = $effectivePaymentType === 'cash'; $canOfferOnlinePayment = function_exists('food_online_payment_enabled') && food_online_payment_enabled() && ($foodOrder->prestataire->stripe_onboarding_completed ?? false) && !$isCashOnlyPayment && !in_array($foodOrder->payment_status, ['paid', 'partial', 'pending_capture'], true) && !in_array($foodOrder->status, ['cancelled', 'rejected'], true); $clientCancelBreakdown = $foodOrder->getCancellationBreakdown('client'); @endphp
{{ $config['desc'] }}
@if($isActive && in_array($foodOrder->status, ['accepted', 'preparing'])){{ $foodOrder->delivery_type === 'pickup' ? 'Code de retrait' : 'Code de confirmation' }}
{{ $foodOrder->delivery_type === 'pickup' ? 'Donnez ce code au prestataire lors du retrait' : 'Donnez ce code au livreur à la réception' }}
{{ $foodOrder->delivery_code }}
Commande reçue ?
Confirmez la réception pour terminer
{{ $foodOrder->delivery_type === 'pickup' ? '📍 Adresse de retrait' : '🏠 Livraison' }}
@if($foodOrder->delivery_type === 'pickup') {{ $foodOrder->prestataire->address }}, {{ $foodOrder->prestataire->city }} @else {{ $foodOrder->delivery_address }} @endif
@if($foodOrder->delivery_floor)Étage {{ $foodOrder->delivery_floor }}@if($foodOrder->delivery_door_code) • Code: {{ $foodOrder->delivery_door_code }}@endif
@endifSuivre le livreur en direct
GPS temps réel sur la carte
Suivi de commande
Voir la progression en temps réel
Date de commande
{{ $foodOrder->created_at->format('d/m/Y') }}
{{ $foodOrder->created_at->format('H:i') }}
📅 Livraison souhaitée
{{ \Carbon\Carbon::parse($foodOrder->requested_at)->format('d/m/Y') }}
{{ \Carbon\Carbon::parse($foodOrder->requested_at)->format('H:i') }}
Mode de livraison
@if($foodOrder->delivery_type === 'pickup') 🏪 À emporter @elseif($foodOrder->delivery_type === 'delivery') 🚚 Livraison @else 📍 Sur place @endif
Mode de livraison
@if($foodOrder->delivery_type === 'pickup') 🏪 À emporter @elseif($foodOrder->delivery_type === 'delivery') 🚚 Livraison @else 📍 Sur place @endif
📝 Notes
{{ $foodOrder->notes }}
{{ $foodOrder->prestataire->company_name ?? $foodOrder->prestataire->business_name }}
{{ $foodOrder->prestataire->city }}
Voir le menu
💬 {{ $item->special_instructions }}
@endif @endforeach@if($isCashOnlyPayment) Espèces @elseif($foodOrder->payment_method === 'card') Carte bancaire @elseif(($foodOrder->payment_method ?? null) === 'online') Paiement en ligne @else Paiement en ligne @endif
{{ $foodOrder->payment_status === 'paid' ? '✓ Payé' : 'En attente' }}
Notes
{{ $foodOrder->notes }}
Merci pour votre avis !
{{ $foodOrder->rating }}/5 ★
Cette action est irréversible.
@if(($clientCancelBreakdown['action'] ?? 'none') === 'cancel_authorization')Paiement non débité
Le paiement est seulement autorisé. En annulant maintenant, aucun débit final ne sera pris.
Estimation remboursement après annulation
Montant payé: {{ number_format((float) ($clientCancelBreakdown['amount_paid'] ?? 0), 2, ',', ' ') }} €
Frais Stripe: -{{ number_format((float) ($clientCancelBreakdown['stripe_fee_amount'] ?? 0), 2, ',', ' ') }} €
Vous serez remboursé: {{ number_format((float) ($clientCancelBreakdown['client_refund_amount'] ?? 0), 2, ',', ' ') }} €