# Peta halaman admin CI3 → CI4

Dokumen ini menjadikan **CodeIgniter 3** (`bij.mwp.co.id`, modul `admin`) sebagai sumber kebenaran fitur dan alur menu. **CI4** (`bij.mwp.co.id-ci4`) adalah implementasi baru dengan UI TailAdmin (shell + komponen utility Tailwind via CDN, ikon & logo lokal di `public/assets/tailadmin/`).

**Sumber menu & otorisasi CI3**

- `application/modules/admin/config/ci_bootstrap.php` — array `menu`, `page_auth`, `useful_links`.
- `application/modules/admin/views/_partials/sidemenu.php` — render menu; cek `page_auth` per URL induk/anak (URL kosong pada induk = semua grup).

**Konvensi URL CI3:** relatif ke basis modul admin, umumnya `{baseURL}admin/{path}`. Contoh: `presensi/riwayat` → `.../admin/presensi/riwayat`.

---

## Ringkasan `page_auth` (Ion Auth)

Hanya path berikut yang punya pembatasan eksplisit di `ci_bootstrap.php`; path lain mengikuti aturan sidemenu (kosong = semua grup yang login).

| Path CI3 | Grup |
|----------|------|
| `panel` | webmaster |
| `panel/admin_user` | webmaster |
| `panel/admin_user_create` | webmaster |
| `laporan` | webmaster, hrd |
| `pegawai` | webmaster, hrd |
| `util` | webmaster |

**Useful links (APK):** role `webmaster`, `penyelenggara`, `operator_cabang`, `operator_ranting`, `operator_sekolah`, `admin_soal`, `operator_soal` — di CI4 dipetakan ke fitur `apk_link` di `Config\AdminAccess`.

---

## 1. Dashboard (Beranda)

| URL CI3 | Controller | Method | Tujuan | Peran (efektif) |
|---------|------------|--------|--------|------------------|
| `admin` atau `admin/home` | `Home` | `index` | Dashboard statistik beranda | Semua login (tidak di `page_auth`) |

**CI4:** `GET /admin` → `App\Controllers\Admin\Dashboard::index` (setara beranda + API).

---

## 2. Presensi

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/presensi` | `Presensi` | `index` | Redirect ke riwayat | Semua |
| `admin/presensi/riwayat` | `Presensi` | `riwayat` | Data presensi (Grocery CRUD + filter tanggal) | Semua |
| `admin/presensi/lapangan` | `Presensi` | `lapangan` | Tugas luar / lapangan | Semua |
| `admin/presensi/lembur` | `Presensi` | `lembur` | Jadwal lembur | Semua |
| `admin/presensi/jadwal` | `Presensi` | `jadwal` | Management jadwal | Semua |
| `admin/presensi/libur` | `Presensi` | `libur` | Hari libur | Semua |
| `admin/presensi/aktifitas` | `Presensi` | `aktifitas` | Rekaman aktivitas harian | Semua |

**CI4:** `GET /admin/presensi`, `GET /admin/presensi/detail/{id}` — **Data Presensi**; `GET /admin/presensi/lapangan|lembur|jadwal|libur|aktivitas` — submenu alat presensi (API `presensi/dilapangan`, dll.).

---

## 3. Perusahaan

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/perusahaan` | `Perusahaan` | `index` | Redirect ke data | Semua |
| `admin/perusahaan/data` | `Perusahaan` | `data` | Lokasi kerja | Semua |
| `admin/perusahaan/unit_kerja` | `Perusahaan` | `unit_kerja` | Unit kerja | Semua |
| `admin/perusahaan/golongan` | `Perusahaan` | `golongan` | Golongan | Semua |
| `admin/perusahaan/jabatan` | `Perusahaan` | `jabatan` | Jabatan | Semua |
| `admin/perusahaan/berita` | `Perusahaan` | `berita` | Berita / pengumuman | Semua |

**CI4:** `GET /admin/perusahaan/kantor|unit_kerja|golongan|jabatan|berita` — CRUD master (API `company/*`).

---

## 4. Pegawai

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/pegawai` | `Pegawai` | `index` | Redirect ke `data` | webmaster, hrd |
| `admin/pegawai/data` | `Pegawai` | `data` | Daftar / kelola pegawai | webmaster, hrd |
| `admin/pegawai/reset_pass/{id}` | `Pegawai` | `reset_pass` | Reset password | webmaster, hrd |
| `admin/pegawai/cuti` | `Pegawai` | `cuti` | Data cuti (aliran lama) | webmaster, hrd |
| `admin/pegawai/dokumen_cuti/...` | `Pegawai` | `dokumen_cuti` | Dokumen cuti | webmaster, hrd |
| `admin/pegawai/get_dokumen_cuti/...` | `Pegawai` | `get_dokumen_cuti` | Ambil file dokumen | webmaster, hrd |
| `admin/pegawai/approve_cuti/...` | `Pegawai` | `approve_cuti` | Setujui cuti | webmaster, hrd |
| `admin/pegawai/reject_cuti/...` | `Pegawai` | `reject_cuti` | Tolak cuti | webmaster, hrd |

**CI4:** `GET /admin/pegawai`, create/edit/store/update/delete/reset — modul cuti terpisah di `/admin/cuti` (setara fungsi cuti admin).

---

## 5. Cuti (alur baru CI4)

Di CI3 cuti utama dari menu Pegawai → **Data Cuti** (`pegawai/cuti`). Di CI4 dipisah menjadi modul `admin/cuti` dengan API terpusat.

---

## 6. Laporan

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/laporan/fstatistik` | `Laporan` | `fstatistik` | Statistik presensi | webmaster, hrd |
| `admin/laporan/cetak_statistik` | `Laporan` | `cetak_statistik` | Cetak statistik | webmaster, hrd |
| `admin/laporan/jatuhtempo` | `Laporan` | `jatuhtempo` | Piutang jatuh tempo | webmaster, hrd |
| `admin/laporan/cetak_piutang_jatuh_tempo` | `Laporan` | `cetak_piutang_jatuh_tempo` | Cetak | webmaster, hrd |
| `admin/laporan/penjualan` | `Laporan` | `penjualan` | Penjualan | webmaster, hrd |
| `admin/laporan/cetak_penjualan` | `Laporan` | `cetak_penjualan` | Cetak | webmaster, hrd |
| `admin/laporan/laba` | `Laporan` | `laba` | Laba | webmaster, hrd |
| `admin/laporan/cetak_laba` | `Laporan` | `cetak_laba` | Cetak | webmaster, hrd |
| `admin/laporan/fcuti` | `Laporan` | `fcuti` | Laporan cuti pegawai | webmaster, hrd |
| `admin/laporan/cetak_cuti` | `Laporan` | `cetak_cuti` | Cetak cuti | webmaster, hrd |

**CI4:** `GET /admin/laporan` — ringkasan agregat; `GET /admin/laporan/cuti` — tabel cuti rentang (setara `fcuti`, cetak via browser). **Keuangan / cetak spreadsheet** CI3 tidak di-port ke modul ini.

---

## 7. Panel (Akses pengguna + akun)

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/panel/admin_user` | `Panel` | `admin_user` | Daftar pengguna Ion | webmaster |
| `admin/panel/admin_user_create` | `Panel` | `admin_user_create` | Tambah pengguna | webmaster |
| `admin/panel/admin_user_group` | `Panel` | `admin_user_group` | Grup pengguna | webmaster |
| `admin/panel/admin_user_reset_password/{id}` | `Panel` | `admin_user_reset_password` | Reset password admin | webmaster |
| `admin/panel/account` | `Panel` | `account` | Profil akun | Login |
| `admin/panel/account_update_info` | `Panel` | `account_update_info` | Update info | Login |
| `admin/panel/account_change_password` | `Panel` | `account_change_password` | Ganti password | Login |
| `admin/panel/logout` | `Panel` | `logout` | Keluar | Login |

**CI4:** `GET /admin/logout` + login terpadu; `GET/POST /admin/panel/users` (+ create, reset password). **Grup-only screen** (`admin_user_group`) belum ada halaman dedikasi (grup dipilih saat buat user).

---

## 8. Utilitas

| URL CI3 | Controller | Method | Tujuan | Peran |
|---------|------------|--------|--------|-------|
| `admin/util/list_db` | `Util` | `list_db` | Daftar file backup DB | webmaster |
| `admin/util/backup_db` | `Util` | `backup_db` | Backup | webmaster |
| `admin/util/restore_db` | `Util` | `restore_db` | Restore | webmaster |
| `admin/util/remove_db` | `Util` | `remove_db` | Hapus file backup | webmaster |
| `admin/util/download_db/{file}` | `Util` | `download_db` | Unduh backup | webmaster |

**CI4:** `GET/POST /admin/util/backup` — daftar file, jalankan backup, unduh, hapus (tanpa restore otomatis).

---

## 9. Errors

| URL CI3 | Controller | Method | Tujuan |
|---------|------------|--------|--------|
| (routing error) | `Errors` | `page_missing` | Halaman tidak ditemukan |

**CI4:** penanganan error bawaan CI4.

---

# Pemetaan CI3 → CI4

| Halaman / alur CI3 | Status CI4 | Catatan |
|----------------------|------------|---------|
| `Home::index` | `/admin` — `Admin\Dashboard` | Parity fungsi inti via API |
| `Presensi::riwayat` | `/admin/presensi`, detail | Filter tanggal + q |
| `Presensi::lapangan/lembur/libur/jadwal/aktifitas` | `/admin/presensi/...` | CRUD lewat API |
| `Perusahaan::*` | `/admin/perusahaan/...` | CRUD lewat API |
| `Pegawai::data` | `/admin/pegawai` | + create/edit |
| `Pegawai::cuti` + approve/reject | `/admin/cuti` | Alur dipisah modul |
| `Laporan::fstatistik` + cetak | `/admin/laporan` | Ringkasan; cetak spreadsheet tidak |
| `Laporan::fcuti` | `/admin/laporan/cuti` | Tabel + cetak browser |
| `Laporan::keuangan*` | — | Tidak di-port |
| `Panel::admin_user*` | `/admin/panel/users` | + create / reset password |
| `Panel::admin_user_group` | — | Grup lewat dropdown create user |
| `Panel::account*` | — | Bisa memakai profil API; belum halaman dedikasi |
| `Panel::logout` | `/admin/logout` | |
| `Util::list/backup/download/remove_db` | `/admin/util/backup` | Tanpa restore |

---

## Referensi file CI3

- Controller: `application/modules/admin/controllers/*.php`
- Menu & auth: `application/modules/admin/config/ci_bootstrap.php`
- Sidemenu view: `application/modules/admin/views/_partials/sidemenu.php`
