@php use Carbon\Carbon; $nomeIgreja = $igreja ? $igreja->Nome : 'Todas as igrejas'; $periodoFmt = Carbon::parse($ini)->translatedFormat('d/m/Y') . ' a ' . Carbon::parse($fim)->translatedFormat('d/m/Y'); // Agrupa por membro (pode ter múltiplas categorias) $porMembro = $dizimistas->groupBy('idMembro'); $totalGlobalMembros = $porMembro->count(); @endphp Dizimistas — {{ $nomeIgreja }}
{{-- Cabeçalho --}}

RELATÓRIO DE DIZIMISTAS

{{ $nomeIgreja }}

Período {{ $periodoFmt }}
Emitido em {{ now()->translatedFormat('d/m/Y H:i') }}
{{-- Resumo --}}
Membros contribuintes
{{ $totalGlobalMembros }}
Nº de contribuições
{{ $dizimistas->sum('qtd') }}
Total arrecadado
R$ {{ number_format($totalGeral, 2, ',', '.') }}
{{-- Tabela de dizimistas --}} @php // Agrupa por membro, somando todos os valores de categorias diferentes $membrosTotais = $porMembro->map(function ($rows) { $totalMembro = $rows->sum('total'); $qtdMembro = $rows->sum('qtd'); $categorias = $rows->pluck('categoria')->implode(', '); return (object)[ 'membro' => $rows->first()->membro, 'idMembro' => $rows->first()->idMembro, 'total' => $totalMembro, 'qtd' => $qtdMembro, 'categorias'=> $categorias, ]; })->sortByDesc('total')->values(); $maxTotal = $membrosTotais->max('total') ?: 1; @endphp @forelse ($membrosTotais as $idx => $mem) @php $pct = ($mem->total / $maxTotal) * 100; $corValor = $pct >= 66 ? 'valor-alto' : ($pct >= 33 ? 'valor-medio' : 'valor-baixo'); @endphp @empty @endforelse @if ($membrosTotais->count()) @endif
# Membro Categoria(s) Qtd. Total
{{ $idx + 1 }} {{ $mem->membro }} {{ Str::limit($mem->categorias, 30) }} {{ number_format($mem->qtd) }} R$ {{ number_format($mem->total, 2, ',', '.') }}
Nenhum membro com contribuições vinculadas no período.
TOTAL GERAL {{ $dizimistas->sum('qtd') }} R$ {{ number_format($totalGeral, 2, ',', '.') }}
{{-- Nota --}}
Nota: Este relatório considera apenas lançamentos compensados com membro vinculado no período selecionado. Para exibir somente dízimos, filtre pela categoria correspondente no Extrato.
{{-- Rodapé --}}