# Checklist UI Hirarki Rekening Kas (Reusable)

Checklist ini khusus perubahan tampilan (UI-only) untuk implementasi hirarki rekening kas, kompatibel dengan PHP 5.6 dan CodeIgniter 3.

## 0. Metadata Implementasi
- [x] Nama aplikasi: `san_15apr`
- [x] Nama modul/halaman: `Ledger - Kas (Balance)`
- [x] URL halaman: `Ledger/viewBalances_l1/RekeningPembantuKas/1010010010`
- [x] Tanggal implementasi: `2026-04-15`
- [x] PIC implementasi: `Codex (pairing dengan user)`
- [ ] PIC reviewer:

## 1. Scope & Guardrail
- [x] Perubahan dibatasi pada `view`, CSS, dan JS.
- [x] Tidak mengubah struktur database.
- [x] Tidak mengubah posting jurnal, COA engine, atau logic transaksi.
- [x] Tidak mengubah endpoint API utama.
- [x] Tidak mengubah perhitungan saldo existing (hanya cara tampil).
- [x] Tentukan status akun legacy sejak awal: `hide` (default untuk fase UI-only, jika ditemukan akun legacy).

## 2. Kompatibilitas Teknis
- [x] Valid untuk PHP 5.6 (tanpa syntax PHP 7+).
- [x] Valid untuk CodeIgniter 3 (struktur controller/view/helper CI3).
- [x] Tidak menambahkan dependency front-end modern yang tidak ada di proyek.
- [x] Tetap kompatibel dengan plugin tabel existing (DataTables/komponen internal).

## 3. Discovery File
- [x] Identifikasi controller yang menyiapkan data halaman kas. (`application/controllers/Ledger.php`, entry `viewBalances_l1`)
- [x] Identifikasi view utama yang merender summary + tabel detail. (`application/views/ledger.php`)
- [x] Identifikasi partial template yang dipakai ulang di halaman lain. (`ledger.php` dipakai banyak mode `Ledger`, jadi risiko reuse tinggi)
- [x] Identifikasi helper/formatter saldo dan periode. (`he_mass_table` di `Ledger.php`, formatter `formatField` di `ledger.php`)
- [x] Identifikasi CSS/JS global yang berpotensi terdampak. (inline style/script filter-periode, search bar, dan table header di `application/views/ledger.php`)

## 3A. Catatan Discovery Teknis (2026-04-15)
- [x] Menu kas mengarah ke: `application/config/heMenu.php` -> `Ledger/viewBalances_l1/RekeningPembantuKas/1010010010`
- [x] Mapping akun kas utama: `application/config/heAccounting.php` -> `1010010010 => RekeningPembantuKas`
- [x] Mapping item kas: `application/config/heAccounting.php` -> `1010010010 => RekeningPembantuKasItem`

## 4. Definisi Hirarki Kas (UI)
- [x] Tetapkan Level 1: akun utama `Kas & Bank`.
- [x] Tetapkan Level 2: kategori operasional `Kas Utama` dan `Pettycash` (sesuai keputusan opsi 1).
- [x] Tetapkan Level 3: dimensi organisasi mengikuti parameter cabang existing (`?o=`/session cabang).
- [x] Tetapkan Level 4: rekening kas detail berdasarkan subledger `RekeningPembantuKasItem`.
- [x] Tetapkan label dan kode akun yang akan ditampilkan di kartu.
- [x] Dokumentasikan akun legacy yang disembunyikan dari UI.

## 4A. Mapping Keputusan Implementasi (2026-04-15)
- [x] Kartu 1: `Kas Utama` -> rekening `1010010010` (RekeningPembantuKas).
- [x] Kartu 2: `Pettycash` -> rekening `1010010040` (RekeningPembantuKas).
- [x] Data detail tetap dari struktur existing `Ledger/viewBalances_l1/RekeningPembantuKas/...`.
- [x] Legacy mode: disembunyikan dari panel ringkasan (jika ada item legacy).

## 5. Komponen UI yang Harus Ada
- [x] Panel ringkasan hirarki kas.
- [x] Kartu per kategori utama (Kas Utama/Pettycash).
- [x] Nilai saldo besar (visual priority) pada setiap kartu.
- [x] Meta count yang relevan (jumlah rekening aktif/unit).
- [x] Badge total gabungan kategori aktif.
- [x] Catatan mode aktif (contoh: legacy hidden).

## 6. Filter & Interaksi
- [x] Filter periode tetap tersedia dan berfungsi.
- [x] Search keyword tetap tersedia dan berfungsi.
- [x] Tombol reset keyword tetap berfungsi.
- [x] Tombol export/print existing tetap berfungsi.
- [x] Link klik kartu menuju detail yang sesuai tetap valid.

## 7. Aturan Visual (Pixel-Perfect)
- [x] Warna panel mengikuti acuan desain.
- [x] Komposisi layout kartu sesuai acuan.
- [x] Tipografi mengikuti hierarchy visual (judul, angka, meta).
- [x] Spacing konsisten antar panel/filter/tabel.
- [x] Kontras teks dan background cukup terbaca.
- [x] Tampilan mobile tetap usable (wrap kartu/filter tidak rusak; lebar kartu mobile sudah seragam).

## 8. Validasi Data Ringkasan
- [x] Saldo per kartu sesuai sumber data (tanpa ubah rumus backend).
- [x] Total gabungan kategori aktif sesuai penjumlahan kartu.
- [x] Jumlah rekening/unit aktif sesuai data yang dirender.
- [x] Akun legacy hidden tidak muncul di panel summary.
- [x] Tabel detail tetap menampilkan data sesuai filter existing.

## 9. Regression Checklist
- [x] Tidak merusak halaman lain yang memakai partial/template sama (guard kondisi kas + default variabel aman).
- [x] Tidak merusak sorting, paging, dan footer total di tabel (blok DataTables/footer tidak diubah).
- [x] Tidak merusak akses role berbeda (operasional, supervisor, holding).
- [x] Tidak merusak state query string (periode, keyword, cabang, gudang) (route kartu + filter tetap membawa query existing).

## 9A. Catatan Validasi Statis (2026-04-15)
- [x] Theme kas hanya aktif saat `showKasHierarchy=true`, sehingga mode lain tetap default.
- [x] Export/print/search tetap memakai mekanisme existing, hanya disuntik style berbasis `hierarchyTheme`.
- [x] Filter periode tetap berbasis query string (`periode`, `thn`, `bln`, `date`, `q`) tanpa ubah endpoint.

## 10. Quality Gate
- [x] Lulus `php -l` untuk semua file yang diubah.
- [x] Uji manual desktop (Chrome/Edge).
- [x] Uji manual mobile/tablet viewport.
- [x] Uji minimal 1 akun role operasional.
- [x] Uji minimal 1 akun role holding/management.

## 11. Dokumentasi Hasil
- [x] Catat daftar file yang diubah.
- [x] Catat keputusan bisnis (termasuk status legacy).
- [x] Simpan screenshot sebelum dan sesudah. (evidence desktop/mobile tersedia dari user)
- [x] Simpan catatan known limitation jika ada. (Tidak ada limitation kritikal tersisa dalam scope UI-only.)
- [x] Dokumen hasil UAT dibuat: `UAT_HASIL_UI_HIRARKI_KAS_2026-04-15.md`.
- [x] Skrip langkah manual UAT dicantumkan di dokumen hasil UAT.
- [x] Status UAT saat ini: `LULUS`.

## 12. Template Catatan Implementasi
- [x] Scope perubahan: UI-only pada `application/controllers/Ledger.php` dan `application/views/ledger.php`.
- [x] Akun/kategori yang ditampilkan: `Kas Utama (1010010010)` dan `Pettycash (1010010040)`.
- [x] Akun legacy yang di-hide: mode default `hidden` (jika terdapat akun legacy di panel).
- [x] Daftar file yang diubah: `application/controllers/Ledger.php`, `application/views/ledger.php`, `CHECKLIST_UI_HIRARKI_KAS.md`, `UAT_HASIL_UI_HIRARKI_KAS_2026-04-15.md`.
- [x] Hasil uji fungsi: lint PHP lolos, filter/search/export/link kartu dipertahankan via struktur existing.
- [x] Hasil uji visual: panel hirarki kas + styling filter/search/table theme kas sudah diterapkan.
- [x] Risiko tersisa: tidak ada risiko kritikal terbuka pada scope UI-only.
- [x] Rencana tahap berikutnya: arsip evidence UAT, lalu replikasi pola implementasi ke modul berikutnya.
