@extends('admin-layouts.master') @section('title', $title) @section('content')

{{ $title }}

{{ $subtitle }}

Total Tamu
{{ number_format($statistics['totalGuests']) }}
Baru Bulan Ini
{{ $statistics['newThisMonth'] }}
Sedang Menginap
{{ $statistics['currentlyStaying'] }}
Check-in 7 Hari
{{ $statistics['upcomingGuests'] }}
Tamu VIP
{{ $statistics['vipGuests'] }}
5+ booking
Returning Rate
{{ $statistics['returningRate'] }}%
{{ $statistics['returningGuests'] }} tamu
Aktivitas Terbaru
Tamu Baru (7 hari terakhir)
@forelse($recentActivities['new_registrations'] as $guest)
{{ substr($guest->name, 0, 1) }}
{{ $guest->name }}
{{ $guest->created_at->diffForHumans() }} @if($guest->bookings->count() > 0) {{ $guest->bookings->count() }} booking @endif
@empty

Tidak ada tamu baru

@endforelse
Booking Baru (7 hari terakhir)
@forelse($recentActivities['recent_bookings'] as $booking)
{{ substr($booking->guest->name ?? 'U', 0, 1) }}
{{ $booking->guest->name ?? 'Unknown' }}
{{ $booking->created_at->diffForHumans() }}
@if($booking->bookingDetails->count() > 0) {{ $booking->bookingDetails->pluck('room.room_number')->join(', ') }} @endif
@php $statusConfig = [ 'booked' => ['class' => 'info', 'text' => 'Booked'], 'checked_in' => ['class' => 'warning', 'text' => 'Check-in'], 'checked_out' => ['class' => 'success', 'text' => 'Check-out'], 'cancelled' => ['class' => 'danger', 'text' => 'Cancelled'] ]; $config = $statusConfig[$booking->status] ?? ['class' => 'secondary', 'text' => $booking->status]; @endphp {{ $config['text'] }}
@empty

Tidak ada booking baru

@endforelse
Top 5 Tamu Setia
@forelse($topGuests->take(5) as $guest)
@if($loop->first) @else {{ $loop->iteration }} @endif
{{ $guest->name }}
{{ $guest->bookings_count }} booking @if($guest->total_spent_formatted) • {{ $guest->total_spent_formatted }} @endif
@empty

Belum ada data

@endforelse
Pencarian & Filter
Reset

{{--
Aksi Cepat:
--}}
Menampilkan {{ $guests->firstItem() ?? 0 }} - {{ $guests->lastItem() ?? 0 }} dari {{ $guests->total() }} tamu @if($search || $status) Difilter @endif
@if($guests->count() > 0)
@foreach($guests as $guest)
{{ substr($guest->name, 0, 1) }}
{{ $guest->name }}
@if($guest->bookings_count > 0) {{ $guest->bookings_count }} booking @if($guest->bookings_count >= 5) @endif @else Tamu baru @endif
{{-- --}}
@if($guest->phone)
{{ $guest->phone }}
@endif @if($guest->email)
{{ Str::limit($guest->email, 25) }}
@endif @if($guest->identity_number)
{{ $guest->identity_number }}
@endif @if($guest->gender)
{{ $guest->gender }}
@endif @if($guest->birth_date)
{{ $guest->getUmur() }} Tahun
@endif
@if($guest->address)
{{ Str::limit($guest->address, 60) }}
@endif @if($guest->bookings->count() > 0)
Booking Terakhir:
@foreach($guest->bookings->take(2) as $booking)
{{ $booking->booking_code ?? 'B-' . $booking->id }}
{{ $booking->created_at->format('d/m/Y') }}
@php $statusConfig = [ 'booked' => ['class' => 'info', 'text' => 'Booked'], 'checked_in' => ['class' => 'warning', 'text' => 'Check-in'], 'checked_out' => ['class' => 'success', 'text' => 'Check-out'], 'cancelled' => ['class' => 'danger', 'text' => 'Cancelled'] ]; $config = $statusConfig[$booking->status] ?? ['class' => 'secondary', 'text' => $booking->status]; @endphp {{ $config['text'] }}
@endforeach
@endif
@endforeach
@else

Tidak ada tamu ditemukan

@if($search || $status)

Coba ubah kata kunci pencarian atau filter yang digunakan.

Reset Filter @else

Belum ada tamu yang terdaftar. Mulai dengan menambahkan tamu pertama.

@endif Tambah Tamu Pertama
@endif
@if ($guests->hasPages())
Halaman {{ $guests->currentPage() }} dari {{ $guests->lastPage() }} ({{ $guests->total() }} total tamu)
{{ $guests->appends(request()->query())->links('pagination::bootstrap-4') }}
@endif
@csrf @method("DELETE")
@endsection @push('scripts') @endpush