@extends('layouts.app') @section('title', 'User Report') @push('styles') @endpush @section('content') @can('view_user_report') @php $currency = config('settings.currency_symbol', '$'); @endphp

User Report

View system users, roles, and activity metrics

@include('reports.partials.branch-filter')
@if($selectedUser)
{{ strtoupper(substr($selectedUser->name, 0, 1)) }}

{{ $selectedUser->name }}

{{ $selectedUser->email ?? '' }} {{ $selectedUser->phone ? '| ' . $selectedUser->phone : '' }}

{{ $selectedUser->role->label ?? $selectedUser->role->name ?? 'N/A' }} @if($selectedUser->is_active) Active @else Inactive @endif @if($selectedUser->branch_id) {{ $selectedUser->branch->name ?? 'Branch #' . $selectedUser->branch_id }} @endif

{{ $userSales->count() }}

Sales

{{ $userPurchases->count() }}

Purchases

{{ $userExpenses->count() }}

Expenses

{{ $userProjectTransactions->count() }}

Project Txns

@if($userSales->count() > 0)

Sales Created by {{ $selectedUser->name }}

{{ $dateFrom }} to {{ $dateTo }}
@foreach($userSales as $sale) @endforeach
Invoice Customer Branch Amount Paid Status Date
{{ $sale->invoice_no }} {{ $sale->customer->name ?? 'Walk-in' }} {{ $sale->branch->name ?? 'N/A' }} {{ $currency }} {{ number_format($sale->total_amount, 2) }} {{ $currency }} {{ number_format($sale->paid_amount, 2) }} @php $statusClass = $sale->payment_status == 'paid' ? 'emerald' : ($sale->payment_status == 'partial' ? 'amber' : 'red'); @endphp {{ ucfirst($sale->payment_status) }} {{ $sale->created_at->format('M d, Y') }}
Total {{ $currency }} {{ number_format($userSales->sum('total_amount'), 2) }} {{ $currency }} {{ number_format($userSales->sum('paid_amount'), 2) }}
@endif @if($userPurchases->count() > 0)

Purchases Created by {{ $selectedUser->name }}

{{ $dateFrom }} to {{ $dateTo }}
@foreach($userPurchases as $purchase) @endforeach
Purchase No Supplier Branch Amount Paid Date
{{ $purchase->purchase_no }} {{ $purchase->supplier->name ?? 'N/A' }} {{ $purchase->branch->name ?? 'N/A' }} {{ $currency }} {{ number_format($purchase->total_amount, 2) }} {{ $currency }} {{ number_format($purchase->paid_amount, 2) }} {{ $purchase->created_at->format('M d, Y') }}
Total {{ $currency }} {{ number_format($userPurchases->sum('total_amount'), 2) }} {{ $currency }} {{ number_format($userPurchases->sum('paid_amount'), 2) }}
@endif @if($userExpenses->count() > 0)

Expenses Created by {{ $selectedUser->name }}

{{ $dateFrom }} to {{ $dateTo }}
@foreach($userExpenses as $expense) @endforeach
Title Category Branch Amount Status Date
{{ $expense->title }} {{ $expense->category->name ?? 'N/A' }} {{ $expense->branch->name ?? 'N/A' }} {{ $currency }} {{ number_format($expense->amount, 2) }} @php $cls = $expense->status == 'approved' ? 'emerald' : ($expense->status == 'pending' ? 'amber' : 'red'); @endphp {{ ucfirst($expense->status) }} {{ $expense->expense_date->format('M d, Y') }}
Total {{ $currency }} {{ number_format($userExpenses->sum('amount'), 2) }}
@endif @if($userProjectTransactions->count() > 0)

Project Transactions by {{ $selectedUser->name }}

{{ $dateFrom }} to {{ $dateTo }}
@foreach($userProjectTransactions as $txn) @endforeach @php $incomeTotal = $userProjectTransactions->where('type', 'income')->sum('amount'); $expenseTotal = $userProjectTransactions->where('type', 'expense')->sum('amount'); @endphp
Project Type Description Amount Date
{{ $txn->project->name ?? 'N/A' }} {{ ucfirst($txn->type) }} {{ $txn->description ?? '-' }} {{ $currency }} {{ number_format($txn->amount, 2) }} {{ $txn->date->format('M d, Y') }}
Income Total {{ $currency }} {{ number_format($incomeTotal, 2) }}
Expense Total {{ $currency }} {{ number_format($expenseTotal, 2) }}
@endif @endif @if(!$selectedUser)

Total Users

{{ $totalUsers }}

System users

Active

{{ $activeUsers }}

{{ $activeUsers > 0 ? number_format(($activeUsers / max($totalUsers, 1)) * 100, 1) . '% of total' : 'No active users' }}

Inactive

{{ $inactiveUsers }}

{{ $inactiveUsers > 0 ? number_format(($inactiveUsers / max($totalUsers, 1)) * 100, 1) . '% of total' : 'All users active' }}

Roles

{{ $roles->count() }}

{{ $roles->where('is_active', true)->count() }} active
@forelse($users as $user) @empty @endforelse
User Email / Phone Role Status Sales Purchases Expenses Created
{{ strtoupper(substr($user->name, 0, 1)) }}

{{ $user->name }}

{{ $user->email ?? '-' }}
{{ $user->phone ?? '' }}
{{ $user->role->label ?? $user->role->name ?? 'N/A' }} @if($user->is_active) Active @else Inactive @endif {{ $user->sales_count }} {{ $user->purchases_count }} {{ $user->expenses_count }} {{ $user->created_at->format('M d, Y') }}

No users found

Try adjusting your filters

@if($users->count() > 0)

Users by Role

@php $roleCounts = $users->groupBy(fn($u) => $u->role->label ?? $u->role->name ?? 'Unknown'); @endphp
@foreach($roleCounts as $roleName => $roleUsers)
{{ $roleName }} {{ $roleUsers->count() }}
@endforeach

Activity Summary

@php $totalAllSales = $users->sum('sales_count'); $totalAllPurchases = $users->sum('purchases_count'); $totalAllExpenses = $users->sum('expenses_count'); @endphp
Total Sales Created
{{ $totalAllSales }}
Total Purchases Created
{{ $totalAllPurchases }}
Total Expenses Created
{{ $totalAllExpenses }}
@endif @endif @endcan @endsection