{{-- CSS Internal untuk Dompdf --}}
@php // Agregasi Statistik $studentIds = collect($data)->pluck('id_mahasiswa')->unique(); $studentCount = $studentIds->count(); $totalDibayarBulanIni = collect($data)->sum('total_dibayar_bulan_ini'); $totalTunggakan = collect($data)->sum('tunggakan_total_akumulatif'); $totalTunggakanBulanIni = collect($data)->sum('tunggakan_bulan_ini'); $lunasCount = collect($data)->where('lunas', true)->count(); $komponenCount = count($data); // Fungsi Formatter Angka function formatRupiah($amount) { return number_format($amount, 0, ',', '.'); } // Fungsi Status Pembayaran function getPaymentStatus($item) { if (empty($item)) { return array( 'status' => 'no-data', 'text' => '-', 'class' => 'status-belum-bayar' ); } $lunas = isset($item['lunas']) ? $item['lunas'] : false; $tunggakanBulanIni = isset($item['tunggakan_bulan_ini']) ? $item['tunggakan_bulan_ini'] : 0; $tglBayar = isset($item['tgl_bayar']) ? $item['tgl_bayar'] : null; $tglAngsuran = isset($item['tgl_angsuran']) ? $item['tgl_angsuran'] : null; $totalDibayar = isset($item['total_dibayar']) ? $item['total_dibayar'] : 0; $hasPayment = $totalDibayar > 0; if ($lunas) { try { $dateBayar = $tglBayar ? new DateTime($tglBayar) : null; $dateAngsur = $tglAngsuran ? new DateTime($tglAngsuran) : null; } catch (Exception $e) { $dateBayar = null; $dateAngsur = null; } if ($dateBayar && $dateAngsur) { if ($dateBayar->format('Y-m') === $dateAngsur->format('Y-m')) { $formattedTotal = formatRupiah($totalDibayar); return array( 'status' => 'lunas', 'text' => "LUNAS (Rp" . $formattedTotal . ")", 'class' => 'status-lunas' ); } else { $monthNames = array('Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des'); $formattedDate = $dateBayar->format('d') . ' ' . $monthNames[$dateBayar->format('n') - 1] . ' ' . $dateBayar->format('Y'); return array( 'status' => 'lunas-bulan', 'text' => "Lunas (" . $formattedDate . ")", 'class' => 'status-lunas-bulan' ); } } } if ($tunggakanBulanIni > 0) { $formattedTunggakan = formatRupiah($tunggakanBulanIni); return array( 'status' => 'tunggakan-bulan-ini', 'text' => "Tunggakan: Rp" . $formattedTunggakan, 'class' => 'status-tunggakan' ); } if ($hasPayment) { $formattedPartial = formatRupiah($totalDibayar); return array( 'status' => 'partial', 'text' => "Rp" . $formattedPartial, 'class' => 'status-partial' ); } return array( 'status' => 'belum-bayar', 'text' => 'Belum Dibayar', 'class' => 'status-belum-bayar' ); } @endphp|
Mahasiswa
{{ $studentCount }}
|
LUNAS (Komponen)
{{ $lunasCount }}
|
Tunggakan Total
Rp{{ formatRupiah($totalTunggakan) }}
|
Dibayar Bulan Ini
Rp{{ formatRupiah($totalDibayarBulanIni) }}
|
| Mahasiswa | Semester | Status | Prodi | Tahun Ajaran | Komponen | Angsuran Ke | Nominal | Status Pembayaran | Tunggakan Total |
|---|---|---|---|---|---|---|---|---|---|
| {{ $item['nama_mahasiswa'] ?? '-' }} | {{ $item['semester'] ?? '-' }} | @if(isset($item['status_mahasiswa'])) @if($item['status_mahasiswa'] === 'Aktif') Aktif @else {{ $item['status_mahasiswa'] }} @endif @else - @endif | {{ $item['prodi'] ?? '-' }} | {{ $item['th_ajar'] ?? '-' }} | {{ ucfirst($item['komponen'] ?? '-') }} | {{ $item['angsuran_ke_dibayar'] ?? $item['angsuran_ke'] ?? '-' }} | Rp{{ formatRupiah($item['nominal'] ?? 0) }} | {{ $paymentStatus['text'] }} | @if(($item['tunggakan_total_akumulatif'] ?? 0) > 0) Rp{{ formatRupiah($item['tunggakan_total_akumulatif']) }} @else - @endif |
| Tidak ada data komponen pembayaran untuk ditampilkan. | |||||||||