@extends('layouts.portal') @section('title', 'Invoices') @section('subtitle', 'Everything billed to learners and companies, what has been collected, and what is still outstanding.') @section('actions') New invoice@endsection @section('content') @php $st = $filters['status'] ?? null; $tabs = ['' => 'All', 'draft' => 'Draft', 'sent' => 'Sent', 'partial' => 'Partial', 'paid' => 'Paid', 'overdue' => 'Overdue', 'void' => 'Void']; @endphp
Outstanding{{ money($totals['outstanding']) }}sent & part-paid invoices
Overdue{{ $totals['overdue'] }}past their due date
Collected{{ money($totals['collected']) }}verified payments received
Billed{{ money($totals['billed']) }}excluding drafts and void
@forelse($invoices as $i) @php $late = $i->isOverdue(); $pct = (float) $i->total > 0 ? min(100, round($i->amount_paid / $i->total * 100)) : 0; @endphp @empty @endforelse
InvoiceCustomerTotalBalanceStatusActions
{{ $i->number }}Due {{ $i->due_date?->format('d M Y') ?? '—' }} {{ $i->customer_name }}@if($i->company){{ $i->company }}@endif{{ $i->customer_email }} {{ money2($i->total) }} {{ $i->status === 'void' ? '—' : money2($i->balance()) }}@if($i->status !== 'void' && (float) $i->amount_paid > 0){{ money2($i->amount_paid) }} paid@endif @if($i->status === 'partial')
@endif
@if(in_array($i->status, ['sent', 'partial'], true) && $i->balance() > 0)
@csrf
@elseif($i->status === 'draft')
@csrf
@endif
New invoice
@csrf
0 selected
{{ $invoices->links() }} @endsection @push('scripts')@endpush