# Aplikasi Koperasi Simpan Pinjam

Aplikasi koperasi simpan pinjam berbasis **CodeIgniter 4 + PHP 8.2 + MySQL/MariaDB (InnoDB)** dengan template **Metronic**, dilengkapi akuntansi double-entry dan laporan keuangan.

## Teknologi
- CodeIgniter 4.7.4, PHP 8.2
- MySQL/MariaDB (semua tabel InnoDB, mendukung transaction)
- Autentikasi berbasis session (MySQLi driver)
- Role & permission (RBAC)
- Export: PDF (dompdf), Excel/CSV (PhpSpreadsheet), Print
- UI: Metronic (`public/assets`)

## Menjalankan Aplikasi

1. Pastikan MySQL/MariaDB berjalan dan database `db_koperasi` tersedia.
2. Jalankan migrasi & seeder (jika belum):
   ```
   php spark migrate
   php spark db:seed DatabaseSeeder
   ```
3. Jalankan server:
   ```
   php spark serve --port 8080
   ```
4. Buka `http://localhost:8080`

## Akun Default (password: `password`)

| Username    | Role        | Akses |
|-------------|-------------|-------|
| superadmin  | Super Admin | Semua menu |
| admin       | Admin       | Pembelian, penjualan |
| supervisor  | Supervisor  | Jurnal, transaksi, laporan, approve pinjaman |
| manager     | Manager     | Monitoring & laporan |
| anggota     | Anggota     | Simpanan/pinjaman sendiri, pengajuan pinjaman |

## Modul
- **Anggota** — kelola data anggota
- **Simpanan** — setor/tarik (pokok, wajib, sukarela) + jurnal otomatis
- **Pinjaman** — pengajuan → approval → pencairan + jadwal angsuran
- **Angsuran** — pembayaran cicilan (pokok + bunga) + jurnal otomatis
- **Jurnal** — jurnal manual & otomatis, buku besar
- **Akun (COA)** — chart of accounts
- **Laporan Keuangan** — Neraca, Laba Rugi (SHU), Arus Kas, laporan simpanan & pinjaman (export PDF/Excel/CSV/Print)

## Logika Akuntansi (double-entry)
- Setor simpanan: Debit Kas / Kredit Akun Simpanan
- Tarik simpanan: Debit Akun Simpanan / Kredit Kas
- Pencairan pinjaman: Debit Piutang Pinjaman / Kredit Kas
- Pembayaran angsuran: Debit Kas / Kredit Piutang (pokok) + Kredit Pendapatan Bunga (bunga)

Semua transaksi dijalankan dalam DB transaction dan divalidasi balance (debit = kredit).
