@extends('layouts.admin') @section('title', 'Financeiro — Reserva ' . $reservation->locator) @section('breadcrumb') Reservas / {{ $reservation->locator }} / Financeiro @endsection @push('styles') @endpush @section('content') {{-- Flash messages --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif
{{-- ═══════════════════════════ COLUNA PRINCIPAL ═══════════════════════════ --}}
{{-- ── CARDS DE TOTAIS ─────────────────────────────────────────────── --}}
Resumo Financeiro @if($summary->financialStatus === 'paid') ✓ Quitado @elseif($summary->financialStatus === 'partial') ⚠ Parcial @elseif($summary->financialStatus === 'credit') ↺ Crédito @else ✗ Pendente @endif
Total Geral
R$ {{ number_format($summary->totalGeneral, 2, ',', '.') }}
{{ $summary->nights }} diária{{ $summary->nights > 1 ? 's' : '' }}
Diárias Base
R$ {{ number_format($summary->baseTotal, 2, ',', '.') }}
R$ {{ number_format($summary->dailyRate, 2, ',', '.') }}/diária
@if($summary->hasDiscount || $summary->hasSurcharge)
Ajustes
{{ $summary->totalAdjustments >= 0 ? '+' : '' }}R$ {{ number_format($summary->totalAdjustments, 2, ',', '.') }}
@endif @if($summary->hasItems)
Consumos
R$ {{ number_format($summary->totalItems, 2, ',', '.') }}
@endif
Recebido
R$ {{ number_format($summary->totalPaid, 2, ',', '.') }}
{{ $summary->balance < 0 ? 'Crédito' : 'Saldo a Receber' }}
R$ {{ number_format(abs($summary->balance), 2, ',', '.') }}
{{-- ── PAGAMENTOS ───────────────────────────────────────────────────── --}}
Pagamentos @can('financial.add_payment') @if(!in_array($reservation->status, ['canceled','checked_out'])) @endif @endcan
@forelse($reservation->payments as $payment)
{{ $payment->method?->name ?? 'N/D' }}
{{ $payment->paid_at->format('d/m/Y H:i') }} @if($payment->reference) · {{ $payment->reference }}@endif · {{ $payment->createdBy?->name ?? 'Sistema' }}
R$ {{ number_format((float)$payment->amount, 2, ',', '.') }}
{{ $payment->status_label }}
@if($payment->isActive())
@can('financial.cancel_payment') @endcan
@endif
@empty

Nenhum pagamento registrado ainda.

@endforelse
{{-- ── DESCONTOS E ACRÉSCIMOS ───────────────────────────────────────── --}}
Descontos e Acréscimos @if(auth()->user()->can('financial.apply_discount') || auth()->user()->can('financial.apply_surcharge')) @if(!in_array($reservation->status, ['canceled','checked_out'])) @endif @endif
@forelse($reservation->adjustments as $adj)
{{ $adj->isDiscount() ? '▼ Desconto' : '▲ Acréscimo' }} {{ $adj->calc_label }}
{{ $adj->reason }} · {{ $adj->createdBy?->name ?? 'Sistema' }} · {{ $adj->created_at->format('d/m/Y H:i') }}
{{ $adj->isDiscount() ? '-' : '+' }}R$ {{ number_format(abs((float)$adj->amount), 2, ',', '.') }} @if(auth()->user()->can('financial.apply_discount') || auth()->user()->can('financial.apply_surcharge')) @if(!in_array($reservation->status, ['canceled','checked_out']))
@csrf @method('DELETE')
@endif @endif
@empty

Nenhum desconto ou acréscimo aplicado.

@endforelse
{{-- ── CONSUMOS / ITENS ─────────────────────────────────────────────── --}}
Consumos e Serviços @can('financial.add_item') @if(!in_array($reservation->status, ['canceled','checked_out'])) @endif @endcan
@forelse($reservation->items as $item)
{{ $item->description }} {{ $item->type_label }} @if($item->status === 'reversed') Estornado @endif
{{ number_format((float)$item->quantity,2,',','.') }} × R$ {{ number_format((float)$item->unit_price,2,',','.') }} · {{ $item->createdBy?->name ?? 'Sistema' }} · {{ $item->created_at->format('d/m/Y H:i') }}
R$ {{ number_format((float)$item->total_price, 2, ',', '.') }} @can('financial.reverse_item') @if($item->isActive() && !in_array($reservation->status, ['canceled','checked_out'])) @endif @endcan
@empty

Nenhum produto ou serviço lançado.

@endforelse @if($summary->hasItems)
Total consumos: R$ {{ number_format($summary->totalItems, 2, ',', '.') }}
@endif
{{-- ═══════════════════════════ SIDEBAR ═══════════════════════════════════ --}}
{{-- Info da Reserva --}}
Dados da Reserva
Localizador {{ $reservation->locator }}
Hóspede {{ $reservation->guest->full_name }}
UH {{ $reservation->room?->number ?? 'N/D' }}
Check-in {{ $reservation->check_in_expected->format('d/m/Y') }}
Check-out {{ $reservation->check_out_expected->format('d/m/Y') }}
Diárias {{ $summary->nights }}
Status {{ ucfirst($reservation->status) }}
@if($openCashbox)
Caixa Aberto ✓ Sim
@endif
{{-- Ações Rápidas --}} @if(!in_array($reservation->status, ['canceled','checked_out']))
Ações Rápidas
@can('financial.add_payment') @endcan @can('financial.add_item') @endcan @can('financial.apply_discount') @endcan @can('financial.apply_surcharge') @endcan
@endif {{-- Caixa do Turno --}} @if($openCashbox)
Caixa Aberto
Abertura {{ $openCashbox->opened_at->format('d/m H:i') }}
Conta {{ $openCashbox->account?->name ?? 'N/D' }}
Saldo Esperado R$ {{ number_format($openCashbox->expected_balance, 2, ',', '.') }}
@endif
{{-- ═══════════════════════ MODAIS ═══════════════════════════════════════════ --}} {{-- Modal Pagamento --}} {{-- Modal Ajuste --}} {{-- Modal Item --}} {{-- Modal Cancelar Pagamento --}} {{-- Modal Estornar Item --}} @endsection @push('scripts') @endpush