{{ __('Admin') }} {{ __('Invoices') }}
{{ __('Admin · Billing & plans · Invoices') }}

{{ __('All') }} {{ __('invoices') }}

{{ __('PDF invoices generated by :app. Filter by status, regenerate, void, or send a copy to the workspace owner.', ['app' => \App\Models\SystemSetting::get('app_name', config('app.name', 'WaDesk'))]) }}

{{ __('Total invoices') }}
{{ $stats['total'] }}
{{ __('all time') }}
{{ __('Paid') }}
{{ $stats['paid'] }}
{{ $stats['paidPct'] }}
{{ __('Outstanding') }}
{{ $stats['outstanding'] }}
{{ $stats['outstandingAmt'] }}
{{ __('Overdue') }}
{{ $stats['overdue'] }}
{{ __('>15 days late') }}
{{ __('This month') }}
{{ $stats['monthSum'] }}
{{ $stats['monthDelta'] }}
@php $statusPills = ['all' => 'All', 'paid' => 'Paid', 'outstanding' => 'Outstanding', 'overdue' => 'Overdue', 'refunded' => 'Refunded', 'void' => 'Void']; @endphp @foreach ($statusPills as $k => $label) @endforeach
@forelse ($invoices as $inv) @php $badge = \App\Http\Controllers\Admin\InvoicesController::badge($inv); $package = $inv->package_id ? \App\Models\Package::find($inv->package_id) : null; $rowBg = $badge['label'] === 'outstanding' ? 'bg-accent-amber/5' : ($badge['label'] === 'overdue' ? 'bg-accent-coral/5' : ''); $dueDate = $inv->created_at; $isOverdue = $badge['label'] === 'overdue'; $daysLate = $isOverdue ? $inv->created_at->diffInDays(now()) : null; $amountTone = match ($inv->status) { 'paid' => 'text-wa-deep', 'refunded' => 'text-accent-coral', 'pending' => $isOverdue ? 'text-accent-coral' : '', default => '', }; $invoiceNumber = 'INV-' . str_replace('ORD_', '', strtoupper((string) $inv->order_number)); @endphp @empty @endforelse @if (false) @endif
{{ __('Invoice #') }} {{ __('Issue date') }} {{ __('Due date') }} {{ __('Workspace') }} {{ __('Item') }} {{ __('Amount') }} {{ __('Status') }} {{ __('PDF') }}
{{ $invoiceNumber }} {{ $inv->created_at->format('Y-m-d') }} {{ $dueDate->format('Y-m-d') }}{{ $isOverdue ? ' · ' . $daysLate . 'd late' : '' }}
{{ $inv->workspace?->name ?? 'Workspace #' . $inv->workspace_id }}
{{ $inv->customer_email ?? ($inv->customer_name ?? '—') }}
{{ $package?->pname ?? 'Add-on' }} @if ($package) · {{ $package->plan_unit }} @endif
{{ $inv->status === 'refunded' ? 'refunded' : $inv->created_at->format('Y-m-d') . ' → ' . $inv->created_at->copy()->addMonth()->format('Y-m-d') }}
{{ $inv->status === 'refunded' ? '-' : '' }}{!! \App\Support\FormatSettings::formatIn((float) ($inv->total_amount ?? $inv->amount), $inv->currency) !!} {{ $badge['label'] }}
{{ __('No invoices in this window.') }}
{{ __('INV-2026-04820') }} 2026-04-11 2026-04-11
{{ __('FitKart') }}
{{ __('Meera S.') }}
{{ __('Pro · monthly') }}
2026-04-11 → 2026-05-11
$1,499.00 paid
{{ __('INV-2026-04816') }} 2026-04-08 2026-04-08
{{ __('QuickBite') }}
{{ __('Ravi T.') }}
{{ __('Starter · monthly') }}
2026-04-08 → 2026-05-08
$129.00 outstanding
{{ __('INV-2026-03791') }} 2026-03-04 2026-03-19 · 39d late
{{ __('PixelPlay Studio') }}
{{ __('Manish G.') }}
{{ __('Pro · monthly') }}
3 reminders sent
$899.00 overdue
{{ __('INV-2026-03790') }} 2026-04-04 2026-04-04
{{ __('Northstar Clinic') }}
{{ __('Anya M.') }}
{{ __('Enterprise · annual') }}
2026 fiscal year
$38,400.00 paid
{{ __('INV-2026-03789') }} 2026-04-04 2026-04-04
{{ __('DesignHub') }}
{{ __('Karthik N.') }}
{{ __('Pro · monthly') }}
{{ __('refunded') }}
-$899.00 {{ __('refunded') }}
Showing {{ $invoices->firstItem() ?? 0 }}–{{ $invoices->lastItem() ?? 0 }} of {{ number_format($invoices->total()) }} {{ __('invoices') }}
{{ $invoices->onEachSide(1)->links() }}