@extends('layouts.app') @section('title', 'Créer une réservation') @push('styles') @endpush @section('content')
{{-- ══ HERO ══ --}}
Gestion des réservations
Nouvelle réservation
🏨 {{ $activeHostel?->name }}
Retour
1 Réservation
2 Guests
3 Extras
4 Récap
5 Validation
{{-- ══ PROGRESS ══ --}}
Progression
0%
{{-- ══ ALERTS ══ --}} @if(session('success'))
✅ {{ session('success') }}
@endif @if($errors->has('error'))
❌ {{ $errors->first('error') }}
@endif @if($errors->any() && !$errors->has('error'))
@endif
@csrf {{-- ══ 1 — Informations réservation ══ --}}
1
Informations réservation
Dates, capacité, source et nationalité
📅
{{-- Ligne 1 : Dates + Nuits --}}
{{-- Ligne 2 : Personnes + Statut + Source + Nationalité (Analytics Sprint) --}}
{{-- Datalist nationalités (Analytics Sprint) --}} {{-- Notes --}}
{{-- ══ 2 — Guests & Affectations ══ --}}
2
Guests & Affectations
Informations personnelles et attribution des lits
{{-- Sidebar --}}

Liste des guests

    {{-- Detail panel --}}
    Définissez le nombre de personnes
    pour renseigner les guests.
    {{-- ══ 3 — Extras ══ --}}
    3
    Extras (optionnel)
    Services et prestations additionnels
    @if(isset($extras) && $extras->count() > 0)
    @foreach($extras as $extra) @php $isTracked = in_array($extra->stock_mode, ['consumable','rentable']); $stock = $extra->stock_quantity; $isAvailable = !$isTracked || $stock > 0; $badgeCls = $isTracked ? ($stock > 5 ? 'rv-badge-ok' : ($stock > 0 ? 'rv-badge-low' : 'rv-badge-none')) : 'rv-badge-inf'; $badgeTxt = $isTracked ? ($stock > 0 ? "Stock : {$stock}" : 'Rupture') : '∞ Illimité'; @endphp
    {{ $extra->name }}
    @if($extra->description)
    {{ $extra->description }}
    @endif
    {{ $badgeTxt }}
    Quantité
    @endforeach
    @else
    🛒 Aucun extra disponible pour cet hostel.
    @endif
    {{-- ══ 4 — Récapitulatif ══ --}}
    4
    Récapitulatif tarification
    Prix par guest et conversion de devises
    📊
    Guest Affectation Prix saisi Devise ≈ TND
    Aucun guest configuré
    Total TND0.000
    Total EUR0.000
    Total USD0.000
    @php $eurRate = $rates->get('EUR'); $usdRate = $rates->get('USD'); $eurSell = $eurRate ? number_format((float)$eurRate->sell_rate_to_tnd, 4, '.', '') : null; $eurBuy = $eurRate ? number_format((float)$eurRate->buy_rate_to_tnd, 4, '.', '') : null; $usdSell = $usdRate ? number_format((float)$usdRate->sell_rate_to_tnd, 4, '.', '') : null; $usdBuy = $usdRate ? number_format((float)$usdRate->buy_rate_to_tnd, 4, '.', '') : null; @endphp
    🔄 Taux de change EUR Vente : {{ $eurSell ?? '—' }} · Achat : {{ $eurBuy ?? '—' }} USD Vente : {{ $usdSell ?? '—' }} · Achat : {{ $usdBuy ?? '—' }}
    {{-- ══ 5 — Confirmation ══ --}}
    5
    Confirmation & Sécurité
    Validation par mot de passe avant création
    🔒
    {{ strtoupper(mb_substr($currentUser['name'], 0, 1)) }}
    {{ $currentUser['name'] }}
    {{ $currentUser['role'] }}
    ● Connecté

    Mot de passe requis pour valider la réservation.
    @php $eurRate = $rates->get('EUR'); $usdRate = $rates->get('USD'); $jsEurSell = $eurRate ? (float)$eurRate->sell_rate_to_tnd : 0; $jsEurBuy = $eurRate ? (float)$eurRate->buy_rate_to_tnd : 0; $jsUsdSell = $usdRate ? (float)$usdRate->sell_rate_to_tnd : 0; $jsUsdBuy = $usdRate ? (float)$usdRate->buy_rate_to_tnd : 0; @endphp @push('scripts') @endpush @endsection