@extends('layouts.print') @section('title', 'Guest Folio — ' . $reservation->booking_no) @section('content') @php $catLabels = [ 'food_beverage' => 'Food & Bev.', 'laundry' => 'Laundry', 'telephone' => 'Telephone', 'minibar' => 'Minibar', 'damage' => 'Damage', 'other' => 'Misc.', ]; $vatRate = (float) ($settings['vat_rate'] ?? 12); $vatDivisor = 1 + ($vatRate / 100); $totalExtras = $charges->sum('amount'); $totalChargesGross = (float) $reservation->amount + $totalExtras; $subtotalPreVat = $totalChargesGross / $vatDivisor; $vatAmount = $totalChargesGross - $subtotalPreVat; $totalPaid = $payments->sum('amount'); $balance = max(0, $totalChargesGross - $totalPaid); $statusLabel = [ 'pending' => 'Pending', 'confirmed' => 'Confirmed', 'checked_in' => 'Checked In', 'checked_out' => 'Checked Out', 'cancelled' => 'Cancelled', 'no_show' => 'No Show', ]; @endphp
{{-- Screen-only: toolbar --}}
Back to Reservation
{{-- ===== LETTERHEAD ===== --}}

{{ $settings['property_name'] ?? config('app.name', 'Hotel') }}

@if(!empty($settings['property_address']))

{{ $settings['property_address'] }}

@endif @if(!empty($settings['property_city']))

{{ $settings['property_city'] }}

@endif @if(!empty($settings['property_phone']))

Tel: {{ $settings['property_phone'] }}

@endif @if(!empty($settings['property_email']))

{{ $settings['property_email'] }}

@endif

Guest Folio

{{ $reservation->booking_no }}

Printed: {{ now()->format('M j, Y g:i A') }}

@if(!empty($settings['bir_tin']))

TIN: {{ $settings['bir_tin'] }}

@endif
{{-- ===== GUEST & STAY INFO ===== --}}

Guest

{{ $reservation->guest_name }}

Contact

{{ $reservation->guest_phone }}

@if($reservation->guest_email)

{{ $reservation->guest_email }}

@endif

Room

{{ $reservation->room_no }} — {{ $reservation->room_type }}

Status

{{ $statusLabel[$reservation->status] ?? $reservation->status }}

Check-in

{{ $reservation->check_in->format('l, F j, Y') }}

Check-out

{{ $reservation->check_out->format('l, F j, Y') }}

Duration

{{ $reservation->nights }} Night{{ $reservation->nights > 1 ? 's' : '' }}

Guests

{{ $reservation->pax }} Pax

{{-- ===== CHARGES TABLE ===== --}}

Charges

{{-- Room charge --}} {{-- Extra charges --}} @foreach($charges as $ch) @endforeach @if($charges->isEmpty()) @endif
Date Description Amount
{{ $reservation->check_in->format('M j') }}

Room {{ $reservation->room_no }} — Accommodation

{{ $reservation->nights }} night{{ $reservation->nights > 1 ? 's' : '' }} @ ₱{{ number_format($reservation->rate, 0) }}/night · {{ $reservation->room_type }}

₱{{ number_format($reservation->amount, 2) }}
{{ $ch->charge_date->format('M j') }}

{{ $ch->description }} @if($ch->fromPos()) POS #{{ $ch->pos_transaction_id }} @endif

{{ $catLabels[$ch->category] ?? $ch->category }} @if($ch->quantity > 1) · Qty {{ $ch->quantity }} @endif

₱{{ number_format($ch->amount, 2) }}
No extra charges.
Subtotal (excl. VAT {{ $vatRate }}%) ₱{{ number_format($subtotalPreVat, 2) }}
VAT ({{ $vatRate }}%) ₱{{ number_format($vatAmount, 2) }}
Total ₱{{ number_format($totalChargesGross, 2) }}
{{-- ===== PAYMENTS TABLE ===== --}}

Payments

@if($payments->isNotEmpty()) @foreach($payments as $pmt) @endforeach
Date Method Reference Amount
{{ $pmt->payment_date->format('M j, Y') }} {{ $pmt->method }} {{ $pmt->reference ?? '—' }} ₱{{ number_format($pmt->amount, 2) }}
Total Paid ₱{{ number_format($totalPaid, 2) }}
@else

No payments recorded.

@endif
{{-- ===== BALANCE DUE ===== --}}

{{ $balance > 0 ? 'Balance Due' : 'Account Settled' }}

@if($balance <= 0)

Thank you — payment received in full.

@else

Amount remaining to be collected.

@endif

₱{{ number_format($balance, 2) }}

{{-- ===== SIGNATURE BLOCK ===== --}}

Guest Signature / Date

{{ $reservation->guest_name }}

Authorized Signatory / Date

{{ $settings['property_name'] ?? '' }}

{{ $settings['bir_name'] ?? ($settings['property_name'] ?? '') }} @if(!empty($settings['bir_tin'])) — TIN {{ $settings['bir_tin'] }} @endif @if(!empty($settings['bir_or_prefix'])) — OR Prefix: {{ $settings['bir_or_prefix'] }} @endif

NXT-ePMS — This is not an official receipt unless stamped and signed.

@endsection