@extends('layouts.app') @section('content') @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- ── FILTER + KPI ── --}}
@if(request('search')) @endif @if(request('sort')) @endif
{{-- Preset cepat --}}
@php $bulanIniDari = now()->startOfMonth()->format('Y-m-d'); $bulanIniSampai = now()->endOfMonth()->format('Y-m-d'); $isBulanIni = $dari === $bulanIniDari && $sampai === $bulanIniSampai; $isHariIni = $dari === now()->format('Y-m-d') && $sampai === now()->format('Y-m-d'); @endphp
{{-- ┌─────────────────────────────────────────────────────────────────────┐ │ KPI Cards │ │ │ │ Baris 1 (dipengaruhi filter tanggal): │ │ • Total Transaksi — jumlah baris transaksi di periode ini │ │ • Total Pemasukan — uang masuk ke santri di periode ini │ │ • Total Pengeluaran — uang keluar dari santri di periode ini │ │ • Selisih (Net) — pemasukan minus pengeluaran di periode ini │ │ positif = lebih banyak uang masuk (surplus) │ │ negatif = lebih banyak uang keluar (defisit)│ │ │ │ Baris 2 (REAL-TIME, tidak terpengaruh filter): │ │ • Total Saldo Seluruh Santri — total uang yang sedang dipegang │ │ oleh seluruh santri aktif saat ini │ └─────────────────────────────────────────────────────────────────────┘ --}} {{-- KPI Baris 1: berdasarkan filter periode --}}

Total Transaksi

{{ $kpi['total_transaksi'] }}

dari {{ $kpi['total_santri'] }} santri

Total Pemasukan

Rp {{ number_format($kpi['total_pemasukan'], 0, ',', '.') }}

{{ \Carbon\Carbon::parse($dari)->format('d M') }} – {{ \Carbon\Carbon::parse($sampai)->format('d M Y') }}

Total Pengeluaran

Rp {{ number_format($kpi['total_pengeluaran'], 0, ',', '.') }}

{{ \Carbon\Carbon::parse($dari)->format('d M') }} – {{ \Carbon\Carbon::parse($sampai)->format('d M Y') }}

Selisih Periode

{{ $kpi['selisih'] >= 0 ? '+' : '-' }} Rp {{ number_format(abs($kpi['selisih']), 0, ',', '.') }}

{{ $kpi['selisih'] >= 0 ? '✓ Surplus periode ini' : '✗ Defisit periode ini' }}
{{-- KPI Baris 2: real-time, tidak berubah meski filter diganti --}}

Total Saldo Seluruh Santri

Rp {{ number_format($kpi['total_saldo_realtime'], 0, ',', '.') }}

Real-time — tidak terpengaruh filter tanggal
{{-- ── DAFTAR SANTRI ── --}}
{{-- Toolbar: Tambah + Search + Sort --}}
Tambah Transaksi
{{-- Sort --}}
@if(request('search')) @endif
{{-- Search --}}
@if(request('search')) @endif
{{-- Legend saldo --}}
Saldo ≥ Rp 100rb Saldo Rp 20rb – 99rb Saldo < Rp 20rb
{{-- List santri --}} @if($santriList->count() > 0) @foreach($santriList as $santri) @php $saldoColor = $santri->saldo_terakhir >= 100000 ? '#6FBA9D' : ($santri->saldo_terakhir >= 20000 ? '#f5a623' : '#FF8B94'); $saldoDot = $saldoColor; @endphp
{{-- Baris utama — klik untuk expand --}}
{{-- Chevron + Nama --}}
{{ $santri->nama_lengkap }}
{{ $santri->id_santri }}
{{-- Saldo sekarang (prominent) --}}
Saldo
Rp {{ number_format($santri->saldo_terakhir, 0, ',', '.') }}
{{-- Divider --}}
{{-- Pemasukan bulan ini --}}
Masuk Bln Ini
+ Rp {{ number_format($santri->pemasukan_bulan, 0, ',', '.') }}
{{-- Pengeluaran bulan ini --}}
Keluar Bln Ini
- Rp {{ number_format($santri->pengeluaran_bulan, 0, ',', '.') }}
{{-- Divider --}}
{{-- Transaksi + tanggal terakhir --}}
Transaksi
{{ $santri->transaksi_bulan_ini }}x bln ini @if($santri->transaksi_terakhir_tgl)
terakhir {{ \Carbon\Carbon::parse($santri->transaksi_terakhir_tgl)->format('d/m/Y') }}
@endif
{{-- Aksi --}}
{{-- Detail transaksi (collapsed) --}}
@endforeach
{{ $santriList->links() }}
@else

Belum Ada Data

Belum ada santri dengan transaksi uang saku.

Tambah Transaksi
@endif
@endsection