@extends('layouts.staff') @section('title', 'Dashboard') @section('content')
{{-- ================= KARTU STATISTIK RINGKAS ================= --}}

Siswa Aktif

{{ number_format($stats['total_siswa_aktif']) }}

Rombel Aktif

{{ number_format($stats['jumlah_rombel_aktif']) }}

Tahun Ajaran / Semester

{{ $stats['tahun_ajaran_aktif'] }} · {{ $stats['semester_aktif'] }}

Pemasukan Bulan Ini

Rp{{ number_format($stats['pemasukan_bulan_ini'], 0, ',', '.') }}

Total Tunggakan

Rp{{ number_format($stats['total_tunggakan'], 0, ',', '.') }}

{{-- ================= CHART KEUANGAN ================= --}}

Tren Pemasukan SPP

6 bulan terakhir

@php $maxTren = max(1, max($chart['tren_bulanan']['values'])); @endphp
@foreach ($chart['tren_bulanan']['labels'] as $i => $label) @php $tinggi = round(($chart['tren_bulanan']['values'][$i] / $maxTren) * 100); @endphp
{{ $label }}
@endforeach
{{-- ================= BREAKDOWN PER KANAL ================= --}}

Pemasukan per Kanal

Bulan berjalan

@if (empty($chart['per_kanal']['labels']))

Belum ada pembayaran bulan ini.

@else @php $totalKanal = max(1, array_sum($chart['per_kanal']['values'])); @endphp
@foreach ($chart['per_kanal']['labels'] as $i => $label) @php $persen = round(($chart['per_kanal']['values'][$i] / $totalKanal) * 100); @endphp
{{ $label }} {{ $persen }}%
@endforeach
@endif
{{-- ================= PERLU PERHATIAN ================= --}}

Perlu Perhatian

@if ($alerts['jumlah_siswa_tanpa_tarif'] > 0)

{{ $alerts['jumlah_siswa_tanpa_tarif'] }} siswa aktif belum punya pemetaan tarif SPP di tahun ajaran ini.

@endif @if (empty($alerts['invoice_jatuh_tempo']))

Tidak ada invoice yang jatuh tempo dalam 7 hari ke depan.

@else
@foreach ($alerts['invoice_jatuh_tempo'] as $invoice) @endforeach
Siswa No. Invoice Jatuh Tempo Nominal
{{ $invoice->nama_siswa }} {{ $invoice->invoice_number }} {{ \Carbon\Carbon::parse($invoice->due_date)->translatedFormat('d M Y') }} Rp{{ number_format($invoice->total_amount, 0, ',', '.') }}
@endif
{{-- ================= AKTIVITAS TERBARU ================= --}}

Aktivitas Terbaru

@if (empty($activities))

Belum ada aktivitas.

@else
    @foreach ($activities as $item)
  • @if ($item->tipe === 'pembayaran') @elseif ($item->tipe === 'siswa_baru') @else @endif

    {{ $item->judul }}

    {{ \Carbon\Carbon::parse($item->waktu)->diffForHumans() }} @if ($item->nominal) · Rp{{ number_format($item->nominal, 0, ',', '.') }} @endif

  • @endforeach
@endif
{{-- ================= RINGKASAN AKADEMIK ================= --}}

Siswa per Jenjang

@if (empty($academic['per_grade_level']))

Belum ada data plotting siswa tahun ajaran ini.

@else @php $maxJenjang = max(1, collect($academic['per_grade_level'])->max('jumlah_siswa')); @endphp
@foreach ($academic['per_grade_level'] as $row) @php $persen = round(($row->jumlah_siswa / $maxJenjang) * 100); @endphp
{{ $row->nama_jenjang }} {{ $row->jumlah_siswa }} siswa
@endforeach
@endif

Keterisian Rombel

@if (empty($academic['keterisian_rombel']))

Belum ada rombel di tahun ajaran ini.

@else
@foreach ($academic['keterisian_rombel'] as $rombel)
{{ $rombel->nama_rombel }} @if ($rombel->kapasitas) {{ $rombel->jumlah_siswa }} / {{ $rombel->kapasitas }} @else Kapasitas belum diatur @endif
@if ($rombel->kapasitas) @php $persen = min(100, round(($rombel->jumlah_siswa / $rombel->kapasitas) * 100)); $warna = $persen >= 100 ? 'bg-red-500' : ($persen >= 80 ? 'bg-amber-500' : 'bg-green-500'); @endphp
@endif
@endforeach
@endif
@endsection