Detail Rencana Angsuran

{{ $angsuran->mahasiswa->nama }} • {{ $angsuran->mahasiswa->nim }}

Print
@php // Hitung ulang total tagihan, dibayar, sisa dengan mempertimbangkan cuti dan potongan $totalTagihanRevisi = 0; $totalDibayarRevisi = 0; $totalSisaRevisi = 0; $cutiSemester = $angsuran->mahasiswa->cuti_semester; $cutiArray = []; if ($cutiSemester) { if (is_string($cutiSemester) && str_starts_with($cutiSemester, '[')) { $cutiArray = json_decode($cutiSemester, true); } elseif (is_array($cutiSemester)) { $cutiArray = $cutiSemester; } else { $cutiArray = [$cutiSemester]; } } // Hitung potongan total $totalPotongan = 0; foreach ($sortedDetails as $d) { $isCuti = in_array($d->semester, $cutiArray); $totalPotongan += $d->potongan; if ($isCuti) { // Jika cuti, total tagihan tetap, sisa = total (dibekukan) $totalTagihanRevisi += $d->total; $totalSisaRevisi += $d->total; } else { $totalTagihanRevisi += $d->total; $totalDibayarRevisi += $d->dibayar; $totalSisaRevisi += $d->sisa; } } @endphp
Total Tagihan
Rp {{ number_format($totalTagihanRevisi, 0, ',', '.') }}
@if ($totalPotongan > 0)
(potongan Rp {{ number_format($totalPotongan, 0, ',', '.') }})
@endif
Sisa Tagihan
Rp {{ number_format($totalSisaRevisi, 0, ',', '.') }}
@if (count($cutiArray) > 0)
(termasuk tagihan cuti)
@endif
Total Dibayar
Rp {{ number_format($totalDibayarRevisi, 0, ',', '.') }}
Status
{{ $totalSisaRevisi <= 0 ? 'LUNAS' : 'BELUM LUNAS' }}
@if ($totalSisaRevisi > 0 && count($cutiArray) > 0)
(ada tagihan cuti)
@endif
Pilih Semua
0 item dipilih
@csrf

Informasi Pembayaran Berurutan

Tidak dapat melewati tagihan karena harus menyelesaikan tagihan periode sebelumnya terlebih dahulu. Klik "Lihat Detail" untuk informasi lengkap.

@php $spbDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'SPB'))->values(); $sppDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'SPP'))->values(); $uktDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'UKT'))->values(); $blDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'BL-'))->values(); $spDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'SP-'))->values(); $rutinDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'RUTIN-'))->values(); $btDetails = $sortedDetails->filter(fn($d) => str_starts_with($d->kode_biaya, 'BT-'))->values(); $activeTab = request('tab', 'all'); @endphp
@if ($activeTab == 'all')
@foreach ($angsuran->details as $d)
@include('angsuran.partials.card-all', [ 'd' => $d, 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'spb')
@foreach ($spbDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'SPB', 'jenisColor' => 'blue', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'spp')
@foreach ($sppDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'SPP', 'jenisColor' => 'green', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'ukt')
@foreach ($uktDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'UKT', 'jenisColor' => 'purple', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'bl')
@foreach ($blDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'BL', 'jenisColor' => 'orange', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'sp')
@foreach ($spDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'SP', 'jenisColor' => 'pink', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'rutin')
@foreach ($rutinDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'RUTIN', 'jenisColor' => 'teal', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@elseif($activeTab == 'bt')
@foreach ($btDetails as $d)
@include('angsuran.partials.card-simple', [ 'd' => $d, 'jenis' => 'BT', 'jenisColor' => 'cyan', 'angsuran' => $angsuran, 'bisaBayar' => $bisaBayar, ])
@endforeach
@endif
@php // Fungsi helper untuk menghitung ringkasan dengan mempertimbangkan cuti function hitungRingkasan($details, $cutiSemester) { $totalTagihan = 0; $totalDibayar = 0; $totalSisa = 0; $totalPotongan = 0; foreach ($details as $d) { // Cek apakah item ini cuti $isCuti = false; if ($cutiSemester) { $cutiArray = is_string($cutiSemester) && str_starts_with($cutiSemester, '[') ? json_decode($cutiSemester, true) : (is_array($cutiSemester) ? $cutiSemester : [$cutiSemester]); $isCuti = is_array($cutiArray) && in_array($d->semester, $cutiArray); } if ($isCuti) { // Jika cuti, yang dihitung hanya total tagihan (sisa dibekukan = total) $totalTagihan += $d->total; $totalSisa += $d->total; // sisa = total karena dibekukan } else { // Jika tidak cuti, hitung normal $totalTagihan += $d->total; $totalDibayar += $d->dibayar; $totalSisa += $d->sisa; } $totalPotongan += $d->potongan; } return [ 'total_tagihan' => $totalTagihan, 'total_dibayar' => $totalDibayar, 'total_sisa' => $totalSisa, 'total_potongan' => $totalPotongan, 'jumlah_item' => $details->count(), ]; } $cutiSemester = $angsuran->mahasiswa->cuti_semester; $spbRingkasan = hitungRingkasan($spbDetails, $cutiSemester); $sppRingkasan = hitungRingkasan($sppDetails, $cutiSemester); $uktRingkasan = hitungRingkasan($uktDetails, $cutiSemester); @endphp @if ($spbDetails->count() > 0)

Ringkasan SPB @if ($spbRingkasan['total_potongan'] > 0) Potongan Rp {{ number_format($spbRingkasan['total_potongan'], 0, ',', '.') }} @endif

Total Item: {{ $spbRingkasan['jumlah_item'] }}
Total Tagihan: Rp {{ number_format($spbRingkasan['total_tagihan'], 0, ',', '.') }}
@if ($spbRingkasan['total_potongan'] > 0)
Total Potongan: - Rp {{ number_format($spbRingkasan['total_potongan'], 0, ',', '.') }}
@endif
Total Dibayar: Rp {{ number_format($spbRingkasan['total_dibayar'], 0, ',', '.') }}
Sisa Tagihan: Rp {{ number_format($spbRingkasan['total_sisa'], 0, ',', '.') }}
@endif @if ($sppDetails->count() > 0)

Ringkasan SPP @if ($sppRingkasan['total_potongan'] > 0) Potongan Rp {{ number_format($sppRingkasan['total_potongan'], 0, ',', '.') }} @endif

Total Item: {{ $sppRingkasan['jumlah_item'] }}
Total Tagihan: Rp {{ number_format($sppRingkasan['total_tagihan'], 0, ',', '.') }}
@if ($sppRingkasan['total_potongan'] > 0)
Total Potongan: - Rp {{ number_format($sppRingkasan['total_potongan'], 0, ',', '.') }}
@endif
Total Dibayar: Rp {{ number_format($sppRingkasan['total_dibayar'], 0, ',', '.') }}
Sisa Tagihan: Rp {{ number_format($sppRingkasan['total_sisa'], 0, ',', '.') }}
@endif @if ($uktDetails->count() > 0)

Ringkasan UKT @if ($uktRingkasan['total_potongan'] > 0) Potongan Rp {{ number_format($uktRingkasan['total_potongan'], 0, ',', '.') }} @endif

Total Item: {{ $uktRingkasan['jumlah_item'] }}
Total Tagihan: Rp {{ number_format($uktRingkasan['total_tagihan'], 0, ',', '.') }}
@if ($uktRingkasan['total_potongan'] > 0)
Total Potongan: - Rp {{ number_format($uktRingkasan['total_potongan'], 0, ',', '.') }}
@endif
Total Dibayar: Rp {{ number_format($uktRingkasan['total_dibayar'], 0, ',', '.') }}
Sisa Tagihan: Rp {{ number_format($uktRingkasan['total_sisa'], 0, ',', '.') }}
@endif