@extends('layouts.app') @section('title', 'Voids & Overrides') @section('nav_reports', 'bg-teal-50 text-teal-700 font-semibold') @section('page_title', 'Reports') @section('page_subtitle', 'Voids & Overrides Audit') @section('content') @php $groupBadge = [ 'Voids' => 'bg-red-50 text-red-600 border-red-200', 'Reversals' => 'bg-blue-50 text-blue-700 border-blue-200', 'Overrides' => 'bg-purple-50 text-purple-700 border-purple-200', ]; @endphp @include('reports._filter', [ 'active' => 'reports.voids', 'mode' => 'range', 'from' => $from, 'to' => $to, 'title' => 'Voids & Overrides Audit', 'subtitle' => 'Payment/charge voids, reversals and room overrides · ' . \Carbon\Carbon::parse($from)->format('M j') . ' – ' . \Carbon\Carbon::parse($to)->format('M j, Y'), ]) {{-- Summary tiles --}}

Total Events

{{ number_format($total) }}

{{ $byUser->count() }} staff involved

Voids

{{ $groupCounts['Voids'] }}

₱{{ number_format($voidedValue, 2) }} value voided

Reversals

{{ $groupCounts['Reversals'] }}

check-in/out, cancel undo

Overrides

{{ $groupCounts['Overrides'] }}

room transfers & status

{{-- By action --}}

By Action

@if($byAction->isEmpty())

No audit events for this period.

@else
@foreach($byAction as $a) @endforeach
{{ $a['label'] }} {{ $a['count'] }}
@endif
{{-- By user (repeat offenders) --}}

By Staff

Most events first

@if($byUser->isEmpty())

No audit events for this period.

@else
@foreach($byUser as $u) @endforeach
Staff Events Value Voided
{{ $u['name'] }} {{ $u['count'] }} {{ $u['value'] > 0 ? '₱' . number_format($u['value'], 2) : '—' }}
@endif
{{-- Detail --}}

Audit Trail

Most recent first · immutable activity log

@if($rows->isEmpty())

No voids, reversals or overrides in this period.

@else
@foreach($rows as $row) @endforeach
When Staff Action Subject Amount IP

{{ $row['at']->format('M j, Y') }}

{{ $row['at']->format('g:i A') }}

{{ $row['user'] }} {{ $row['label'] }} @if($row['description'])

{{ $row['description'] }}

@endif
{{ $row['subject'] ?? '—' }} {{ $row['amount'] !== null ? '₱' . number_format($row['amount'], 2) : '—' }} {{ $row['ip'] ?? '—' }}
@endif
@endsection