@extends('layouts.portal') @section('title', 'Finance Dashboard') @section('page_title', 'Finance Dashboard') @section('page_subtitle', 'Real-time Financial Overview & Performance Metrics') @section('sidebar') @include('admin.partials.sidebar', ['active' => 'finance-dashboard']) @endsection @section('content')

Finance Dashboard

Comprehensive Financial Overview & Reporting

Back
Reset

Client Income

RM {{ number_format($dashStats['total_client_paid'], 0) }}

{{ $dashStats['completed_payments'] }} completed

Agent Commission

RM {{ number_format($dashStats['total_agent_paid'], 0) }}

{{ $dashStats['total_agents'] }} agents active

Lawyer Invoices

RM {{ number_format($dashStats['total_lawyer_paid'], 0) }}

{{ $dashStats['total_lawyers'] }} lawyers

Net Income

RM {{ number_format($dashStats['net_income'], 0) }}

After all payouts

Transactions

{{ $dashStats['total_transactions'] }}

Total processed

Wills Created

{{ $dashStats['total_wills'] }}

+{{ $dashStats['wills_created_this_period'] }} this period

Total Clients

{{ $dashStats['total_clients'] }}

+{{ $dashStats['new_clients'] }} new

Wills Paid

{{ $dashStats['wills_paid'] }}

{{ $dashStats['wills_pending_payment'] }} pending

Completed

{{ $dashStats['completed_payments'] }}

{{ number_format(($dashStats['completed_payments'] / ($dashStats['total_transactions'] ?: 1)) * 100, 1) }}% success rate

Pending

{{ $dashStats['pending_payments'] }}

Awaiting completion

Failed

{{ $dashStats['failed_payments'] }}

Needs review

Success Rate

{{ number_format(($dashStats['completed_payments'] / ($dashStats['total_transactions'] ?: 1)) * 100, 0) }}%

Overall performance

Profit Breakdown

Total Client Income

RM {{ number_format($dashStats['total_client_paid'], 0) }}

Money In

Less

Agent Commission

RM {{ number_format($dashStats['total_agent_paid'], 0) }}

Paid Out

Less

Lawyer Invoices

RM {{ number_format($dashStats['total_lawyer_paid'], 0) }}

Paid Out

Net Profit After All Deductions

RM {{ number_format($dashStats['net_income'], 0) }}

Your remaining income after agent & lawyer payments

@php $profitMargin = $dashStats['total_client_paid'] > 0 ? ($dashStats['net_income'] / $dashStats['total_client_paid']) * 100 : 0; @endphp

{{ number_format($profitMargin, 1) }}%

Profit Margin

Income Breakdown

Total Income RM {{ number_format($dashStats['total_client_paid'], 0) }}
From {{ $dashStats['total_transactions'] }} transactions {{ $dashStats['completed_payments'] }} completed

Agent Payments

Total Paid RM {{ number_format($dashStats['total_agent_paid'], 0) }}
@if($dashStats['agent_commission_breakdown'] && $dashStats['agent_commission_breakdown']->count() > 0)
@foreach($dashStats['agent_commission_breakdown'] as $breakdown)
{{ $breakdown->user->name ?? 'Unknown Agent' }} RM {{ number_format($breakdown->total_commission, 0) }}
@endforeach
@else
No agent commissions in this period
@endif

Lawyer Payments

Total Paid RM {{ number_format($dashStats['total_lawyer_paid'], 0) }}
To {{ $dashStats['total_lawyers'] }} lawyers {{ $dashStats['total_lawyers'] > 0 ? number_format($dashStats['total_lawyer_paid'] / $dashStats['total_lawyers'], 0) : 0 }} avg

By Lawyers

Total Lawyers {{ $dashStats['total_lawyers'] }}
Wills Created by Lawyers {{ $dashStats['wills_by_lawyers'] }}
@if($dashStats['total_lawyers'] > 0)

Avg Wills per Lawyer: {{ number_format($dashStats['wills_by_lawyers'] / $dashStats['total_lawyers'], 1) }}

@endif

By Agents

Total Agents {{ $dashStats['total_agents'] }}
Wills Created by Agents {{ $dashStats['wills_by_agents'] }}
@if($dashStats['total_agents'] > 0)

Avg Wills per Agent: {{ number_format($dashStats['wills_by_agents'] / $dashStats['total_agents'], 1) }}

@endif

Transaction Details

@forelse($payments as $payment) @empty @endforelse
ID Will ID Client Name Amount Transfer To Status Method Date & Time
#{{ $payment->id }} {{ $payment->will_id ?? 'N/A' }} @if($payment->will && $payment->will->client) {{ $payment->will->client->full_name }} @elseif($payment->client) {{ $payment->client->full_name }} @elseif($payment->user_id && $payment->user) Admin @else N/A @endif RM {{ number_format($payment->amount, 2) }} @php $transferTo = 'Unknown'; $badgeClass = 'bg-gray-100 text-gray-800'; $icon = 'fa-question-circle'; $description = ''; // Priority 1: Check if payment has a user_id (admin sending to agent/lawyer) if ($payment->user_id && $payment->user) { $transferTo = $payment->user->name ?? 'Unknown User'; $description = $payment->user->name . ' (' . ucfirst($payment->user->role ?? 'user') . ')'; $userRole = $payment->user->role ?? null; if ($userRole === 'agent') { $badgeClass = 'bg-purple-100 text-purple-800'; $icon = 'fa-user-tie'; } elseif ($userRole === 'lawyer') { $badgeClass = 'bg-indigo-100 text-indigo-800'; $icon = 'fa-scale-balanced'; } } // Priority 2: Check if it's from a client (admin receives money) elseif ($payment->client_id || ($payment->will && $payment->will->client)) { $transferTo = 'Admin'; $badgeClass = 'bg-blue-100 text-blue-800'; $icon = 'fa-building'; $description = 'Company Account'; } // Priority 3: Check payment method for lawyer invoices elseif ($payment->amount && (strpos($payment->payment_method ?? '', 'lawyer') !== false || strpos(strtolower($payment->notes ?? ''), 'lawyer') !== false)) { $transferTo = 'Lawyer'; $badgeClass = 'bg-indigo-100 text-indigo-800'; $icon = 'fa-scale-balanced'; $description = 'Lawyer Invoice'; } @endphp
{{ $transferTo }} {{ $description }}
@php $statusClass = match($payment->status ?? 'pending') { 'completed' => 'bg-green-100 text-green-800', 'pending' => 'bg-yellow-100 text-yellow-800', 'failed' => 'bg-red-100 text-red-800', default => 'bg-gray-100 text-gray-800' }; @endphp {{ ucfirst($payment->status ?? 'pending') }} {{ $payment->payment_method ?? 'N/A' }} {{ $payment->created_at->format('d M Y H:i') }}
No transactions found for selected filters
@if($payments->total() > 0)
Showing {{ $payments->firstItem() }} to {{ $payments->lastItem() }} of {{ $payments->total() }} transactions
{{ $payments->links() }}
@endif
@endsection