{{-- ===== KOP SURAT ===== --}}
Sistem Pemberitahuan Bantuan
{{-- ===== BODY SURAT ===== --}}
{{-- Nomor, Sifat, Lampiran, Hal --}} @php $totalPeserta = $pesertas->count(); $bersedia = collect($responses)->where('status', 'bersedia')->count(); $tidakBersedia = collect($responses)->where('status', 'tidak_bersedia')->count(); $belumMerespons = $totalPeserta - $bersedia - $tidakBersedia; @endphp
Nomor : {{ now()->format('Y') }}/KEG/{{ $kegiatan->id }}/{{ now()->format('m/Y') }}
Lampiran : 1 (satu) berkas
Hal : Laporan Peserta Kegiatan
{{ now()->translatedFormat('d F Y') }}
{{-- Judul Dokumen --}}

Laporan Peserta Kegiatan

{{-- Info Kegiatan --}}
📅 Informasi Kegiatan
Nama Kegiatan : {{ $kegiatan->judul }}
Tanggal : {{ $kegiatan->tanggal->translatedFormat('l, d F Y') }}, Pukul {{ $kegiatan->tanggal->format('H:i') }} WIB
Jorong : {{ $kegiatan->jorong_label ?? '-' }}
Deskripsi : {{ $kegiatan->deskripsi ?: '-' }}
{{-- Rekapitulasi --}}
Rekapitulasi Kehadiran
Total Peserta Merespons {{ $totalPeserta }} orang Bersedia Hadir {{ $bersedia }} orang
Persentase Kehadiran {{ $totalPeserta > 0 ? round(($bersedia / $totalPeserta) * 100) : 0 }}% Tidak Bersedia {{ $tidakBersedia }} orang
@php $groupedPesertas = $pesertas->groupBy(function($user) { return $user->kelompok ? $user->kelompok->name : 'Tanpa Kelompok'; })->sortBy(function($group, $key) { return $key === 'Tanpa Kelompok' ? 'zzzzzzz' : $key; }); @endphp {{-- Grouped Tables --}} @forelse($groupedPesertas as $kelompokName => $members)
{{ $kelompokName }} ({{ $members->count() }} orang)
@foreach($members as $j => $peserta) @php $response = $responses[$peserta->id] ?? null; $status = $response ? $response->status : 'belum_menanggapi'; $updatedAt = $response ? \Carbon\Carbon::parse($response->updated_at) : null; @endphp @endforeach
No. Nama Lengkap Nomor WhatsApp Status Kehadiran Waktu Tanggapan
{{ $j + 1 }}. {{ $peserta->name }} {{ $peserta->no_telepon ?? '-' }} @if($status === 'bersedia') ✓ Bersedia @elseif($status === 'tidak_bersedia') ✗ Tidak Bersedia @if(isset($response->alasan) && $response->alasan)
Alasan: {{ $response->alasan }} @endif @else Belum Merespons @endif
{{ $updatedAt ? $updatedAt->translatedFormat('d/m/Y') . ' ' . $updatedAt->format('H:i') . ' WIB' : '-' }}
@empty
Tidak ada data peserta di jorong ini.
@endforelse