@extends('layouts.app') @section('title', 'Tagihan Siswa - ' . $siswa->nis) @push('styles') @endpush @section('content') @php $selectedTA = $tahunAjarans->firstWhere('id', $selectedTahunAjaranId); // Warna card sisa $totalSemuaTagihan = $tagihanSPP->count() + $tagihanDPP->count(); if ($totalSemuaTagihan === 0) { $sisaColor = 'secondary'; $sisaIcon = 'minus-circle'; } elseif ($totalSisa > 0) { $sisaColor = 'danger'; $sisaIcon = 'exclamation-triangle'; } else { $sisaColor = 'success'; $sisaIcon = 'check-double'; } $adaTagihanBelumLunas = $tagihanSPP->whereIn('status', ['belum_bayar','kurang'])->count() + $tagihanDPP->whereIn('status', ['belum_bayar','kurang'])->count(); @endphp {{-- ① Info Siswa --}}
{{-- Nama --}} {{ $siswa->nama_lengkap }} | {{-- NIS + Kelas (vertikal) --}} NIS: {{ $siswa->nis }}
Kelas: @if($siswa->kelas) {{ $siswa->kelas->nama_kelas }} @else - @endif
| {{-- Tahun Ajaran + Kategori (vertikal) --}} TA: @if($selectedTA) {{ $selectedTA->tahun }} @else - @endif
Kategori: {{ ucfirst($siswa->kategori) }}
| {{-- Status --}} @if($siswa->status == 'aktif') Aktif @else {{ ucfirst(str_replace('_', ' ', $siswa->status)) }} @endif {{-- Tunggak + Tombol WA berdampingan --}} @if($totalTunggakanSisa > 0) | Tunggak Rp {{ number_format($totalTunggakanSisa, 0, ',', '.') }} @if(!empty($waPesan) && $siswa->no_wa) @endif @endif
{{-- ② Filter + Summary + Aksi dalam satu baris area --}}
{{-- Filter TA --}}
{{-- Summary Cards --}}
@if($tagihanSPP->isNotEmpty())
Total Tagihan
Rp {{ number_format($totalTagihan, 0, ',', '.') }}
@endif
Terbayar
Rp {{ number_format($totalTerbayar, 0, ',', '.') }}
Sisa Tagihan
Rp {{ number_format($totalSisa, 0, ',', '.') }}
{{-- Tombol Bayar / Status --}} @if($tarifTidakTersedia || $tagihans->isEmpty())
Tarif belum tersedia.
@elseif($adaTagihanBelumLunas > 0) Bayar Sekarang {{ $adaTagihanBelumLunas }} @else
Semua lunas
@endif
{{-- ③ Tagihan SPP --}}

Tagihan SPP (Bulanan)

@if(auth()->user()->hasRole('admin') || auth()->user()->hasRole('bendahara')) @endif
@php $sortedTagihanSPP = $tagihanSPP->sortBy(function($t) { return $t->tahun . str_pad($t->bulan, 2, '0', STR_PAD_LEFT); })->values(); @endphp @forelse($sortedTagihanSPP as $index => $tagihan) @empty @endforelse
No Bulan Nominal Terbayar Sisa Status
{{ $index + 1 }} {{ $tagihan->nama_bulan }} {{ $tagihan->tahun ?? '' }} Rp {{ number_format($tagihan->jumlah_tagihan, 0, ',', '.') }} Rp {{ number_format($tagihan->jumlah_terbayar, 0, ',', '.') }} @if($tagihan->sisa_tagihan > 0) Rp {{ number_format($tagihan->sisa_tagihan, 0, ',', '.') }} @else Rp 0 @endif @if($tagihan->status == 'lunas') Lunas @elseif($tagihan->status == 'kurang') Kurang @elseif($tagihan->is_tunggakan) Tunggakan @else Belum Bayar @endif
Belum ada tagihan SPP.
{{-- ④ Tagihan DPP --}}

Tagihan DPP (Sekali Bayar / Cicilan)

@forelse($tagihanDPP as $index => $tagihan) @empty @endforelse
No Nominal Terbayar Sisa Status Aksi
{{ $index + 1 }} @if($tagihan->tarif_lama > 0) {{-- Nominal efektif = tarif_lama --}} Rp {{ number_format($tagihan->tarif_lama, 0, ',', '.') }}
Rp {{ number_format($tagihan->jumlah_tagihan, 0, ',', '.') }} @else Rp {{ number_format($tagihan->jumlah_tagihan, 0, ',', '.') }} @endif
Rp {{ number_format($tagihan->jumlah_terbayar, 0, ',', '.') }} @if($tagihan->sisa_tagihan > 0) Rp {{ number_format($tagihan->sisa_tagihan, 0, ',', '.') }} @else Rp 0 @endif @if($tagihan->status == 'lunas') Lunas @elseif($tagihan->status == 'kurang') Kurang @elseif($tagihan->is_tunggakan) Tunggakan @else Belum Bayar @endif @if(auth()->user()->hasRole('admin') || auth()->user()->hasRole('bendahara')) @else - @endif
Belum ada tagihan DPP.
{{-- Modal Set Tarif Lama --}} {{-- Modal Set Potongan SPP Bulk --}} @endsection @push('scripts') {{-- Toast Notifikasi WA --}}
@endpush