@extends('adminlte::page') @section('title', 'Global Reports') @include('partials.ui-polish') @section('content_header')

Global Reports

Platform-only tenant, subscription, billing, security, usage, growth, and audit reports
Overview Security
@stop @section('content')
These reports show platform administration data only. Employee records, timesheets, payroll, leave, and other NGO operations remain inside each organization's own workspace.
@forelse($organizationReport['rows'] as $organization) @empty @endforelse
OrganizationPlanSubscriptionBillingUsers
{{ $organization->name }}
{{ $organization->contact_email }}
{{ $organization->plan }} {{ $organization->subscription_status }} {{ $organization->billing_status }} {{ $organization->users_count }}
No organizations found.
 Active{{ $subscriptionReport['active'] }}
 Trial{{ $subscriptionReport['trial'] }}
 Suspended{{ $subscriptionReport['suspended'] }}
 Cancelled{{ $subscriptionReport['cancelled'] }}
 Expiring in 30 days{{ $subscriptionReport['expiring_soon'] }}

Plans
@foreach($organizationReport['by_plan'] as $plan => $count) @endforeach
{{ $plan }}{{ $count }}
@forelse($revenueReport['rows'] as $invoice) @empty @endforelse
InvoiceOrganizationStatusAmountDue
{{ $invoice->invoice_number }} {{ $invoice->organization?->name }} {{ $invoice->status }} {{ $invoice->currency }} {{ number_format($invoice->amount, 2) }} {{ $invoice->due_date->format('M d, Y') }}
No invoices in range.
By Role
@forelse($userGrowthReport['by_role'] as $role => $count) @empty @endforelse
{{ $role }}{{ $count }}
No new users in range.
By Month
@forelse($userGrowthReport['by_month'] as $month => $count) @empty @endforelse
{{ $month }}{{ $count }}
No monthly growth data.
Organizations{{ $usageReport['organizations'] }}
Active Module Access{{ $usageReport['active_modules'] }}
Invoices in Range{{ $usageReport['invoices'] }}
Login Events{{ $usageReport['login_events'] }}
Storage Usage{{ number_format($usageReport['storage_gb'], 2) }} GB
Support Tickets{{ $usageReport['support_tickets'] }}
Top Actions
@forelse($auditReport['by_action'] as $action => $count) @empty @endforelse
{{ str_replace('.', ' ', $action) }}{{ $count }}
No audit activity.
Recent Events
@forelse($auditReport['events'] as $event) @empty @endforelse
ActionOrganizationTime
{{ str_replace('.', ' ', $event->action) }} {{ $event->organization?->name ?? 'Platform' }} {{ $event->created_at->format('M d, H:i') }}
No audit events in range.
@stop