Semua penerimaan tunai wajib masuk melalui sesi kas. Tabungan santri terpisah dari saldo belanja dan tidak dapat digunakan untuk membayar tagihan. @if (session('status')) @endif @error('sesi') @enderror @error('setoran') @enderror @if ($perangkat->isEmpty()) Akun Anda belum tertaut dengan perangkat kios aktif. Seluruh transaksi dan sesi kas dinonaktifkan. Hubungi administrator untuk menambahkan penugasan pada menu Perangkat Kios. @elseif ($sesiMenungguVerifikasi)
Menunggu verifikasi admin

Sesi sebelumnya belum selesai diverifikasi

Anda belum dapat membuka sesi baru sampai admin memeriksa hasil penutupan berikut.

Nomor sesi

{{ $sesiMenungguVerifikasi->nomor }}

Kas sistem

Rp {{ number_format($sesiMenungguVerifikasi->saldo_seharusnya, 0, ',', '.') }}

Uang fisik dilaporkan

Rp {{ number_format($sesiMenungguVerifikasi->uang_fisik_akhir, 0, ',', '.') }}

@elseif (! $sesi)

Persiapan operasional

Buka sesi kas

Pilih perangkat dan hitung seluruh uang fisik di laci sebagai kas awal.

@if ($sesiPerangkatDipilih)
{{ $sesiPerangkatDipilih->petugas->name }} sedang bertugas sejak {{ $sesiPerangkatDipilih->dibuka_at->format('d/m/Y H:i') }}. Anda tidak dapat memproses transaksi pada perangkat ini sebelum sesi tersebut ditutup.
@elseif ($deviceId) @if ($sesiSebelumnya) @php $sesiSudahDiverifikasi = in_array($sesiSebelumnya->status, [ \App\Models\SesiKas::STATUS_SESUAI, \App\Models\SesiKas::STATUS_SELISIH, ], true) && $sesiSebelumnya->diverifikasi_at; $selisihSebelumnya = (int) $sesiSebelumnya->selisih; @endphp

Sesi sebelumnya

@if ($sesiSudahDiverifikasi) {{ $sesiSebelumnya->status === \App\Models\SesiKas::STATUS_SESUAI ? 'Sudah diverifikasi · sesuai' : 'Sudah diverifikasi · ada selisih' }} @else Menunggu verifikasi admin @endif

{{ $sesiSebelumnya->petugas?->name ?? 'Petugas tidak tersedia' }} · ditutup {{ $sesiSebelumnya->ditutup_at?->format('d/m/Y H:i') ?? '-' }}

@if ($sesiSudahDiverifikasi) @endif

Kas sistem

Rp {{ number_format($sesiSebelumnya->saldo_seharusnya, 0, ',', '.') }}

Uang fisik

Rp {{ number_format($sesiSebelumnya->uang_fisik_akhir, 0, ',', '.') }}

Selisih

{{ $selisihSebelumnya > 0 ? '+' : ($selisihSebelumnya < 0 ? '-' : '') }}Rp {{ number_format(abs($selisihSebelumnya), 0, ',', '.') }}

@if (! $sesiSudahDiverifikasi)

Nominal ini hanya sebagai informasi serah-terima dan belum dapat digunakan sebagai saldo awal sebelum diverifikasi admin.

@elseif ($selisihSebelumnya !== 0)

Sesi sebelumnya memiliki selisih. Hitung kembali uang yang benar-benar diterima sebelum membuka sesi baru.

@endif
@endif

Lokasi mengikuti data perangkat kios dan tidak dapat diubah oleh petugas.

Rp

Kas awal yang akan dicatat

Rp {{ number_format($saldoAwal, 0, ',', '.') }}

Periksa & Buka Sesi
@endif
@else @if ($halaman === 'beranda')
Sesi aktif {{ $sesi->device?->nama }}

{{ $sesi->nomor }}

Dibuka {{ $sesi->dibuka_at->format('d/m/Y H:i') }} · {{ number_format($sesi->mutasi_count) }} mutasi

Kas menurut sistem

Rp {{ number_format($sesi->saldo_seharusnya, 0, ',', '.') }}

Kas saat buka

Rp {{ number_format($sesi->saldo_awal, 0, ',', '.') }}

Total kas masuk

+ Rp {{ number_format($sesi->total_masuk, 0, ',', '.') }}

Total kas keluar

− Rp {{ number_format($sesi->total_keluar, 0, ',', '.') }}

@endif @if ($halaman === 'beranda')

Menu cepat

Akses pekerjaan utama petugas kios.

@endif @if ($halaman === 'transaksi')

Transaksi baru

Catat transaksi tunai

Pilih kebutuhan transaksi, cari santri, lalu periksa nominal sebelum diproses.

@if (trim($santriSearch) !== '' && $santris->isEmpty())

Santri aktif tidak ditemukan. Coba nama atau NIS lain.

@elseif (trim($santriSearch) === '')

Menampilkan maksimal 30 santri. Gunakan pencarian untuk menemukan data lainnya.

@endif
@if ($aksi === 'tagihan') @endif
Rp
@php $labelAksi = match ($aksi) { 'tabungan' => 'Setor Tabungan Tunai', 'tagihan' => 'Bayar Tagihan Tunai', default => 'Setor Saldo Tunai', }; $transaksiSiap = $santriDipilih && $nominal >= 1000 && ($aksi !== 'tagihan' || $tagihanId); @endphp

Ringkasan transaksi

{{ $labelAksi }} · Rp {{ number_format($nominal, 0, ',', '.') }}

{{ $santriDipilih?->nama ?? 'Santri belum dipilih' }}

Tinjau & Proses
@endif @if ($halaman === 'tutup')

Tutup sesi kas

Hitung kas fisik dan lengkapi bukti penutupan.

Perlu verifikasi

Hitung seluruh uang fisik di laci. Sistem mengharapkan Rp {{ number_format($sesi->saldo_seharusnya, 0, ',', '.') }}.

Rp
@if($uangFisikAkhir === $sesi->saldo_seharusnya)
✓Uang fisik sesuai dengan kas sistem. Kronologi selisih tidak diperlukan.
@endif @if($uangFisikAkhir !== $sesi->saldo_seharusnya)
Terdapat selisih {{ $uangFisikAkhir < $sesi->saldo_seharusnya ? 'kurang' : 'lebih' }} Rp {{ number_format(abs($uangFisikAkhir - $sesi->saldo_seharusnya), 0, ',', '.') }}. Tuliskan kronologi sebelum menutup sesi.
@endif @if($uangFisikAkhir !== $sesi->saldo_seharusnya) @endif

Uang fisik yang akan dilaporkan

Rp {{ number_format($uangFisikAkhir, 0, ',', '.') }}

Kas sistem: Rp {{ number_format($sesi->saldo_seharusnya, 0, ',', '.') }}

Periksa & Tutup Sesi

Sesi tidak dapat digunakan lagi setelah ditutup.

@endif @if ($halaman === 'mutasi')

Riwayat Mutasi Kas Sesi

Seluruh uang masuk dan keluar pada sesi aktif ini.

Kas saat ini: Rp {{ number_format($sesi->saldo_seharusnya, 0, ',', '.') }}

@forelse ($sesi->mutasi as $mutasi) @empty @endforelse
Waktu Jenis Mutasi Keterangan Petugas Nominal
{{ $mutasi->created_at->format('d/m/Y H:i') }} {{ match ($mutasi->kategori) { 'setoran_saldo' => 'Setoran Saldo', 'setoran_tabungan' => 'Setoran Tabungan', 'pembayaran_tagihan' => 'Bayar Tagihan', 'penarikan_tunai_mandiri' => 'Penarikan Tunai', default => ucwords(str_replace('_', ' ', $mutasi->kategori)), } }} {{ $mutasi->keterangan ?: '-' }} {{ $mutasi->diprosesOleh?->name ?? '-' }} {{ $mutasi->arah === \App\Models\MutasiKas::ARAH_MASUK ? '+' : '−' }} Rp {{ number_format($mutasi->nominal, 0, ',', '.') }}
@endif @endif