# Checklist UI Hirarki Rekening Perpajakan (Strict Existing COA)

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

Status saat ini: `LULUS DENGAN CATATAN` (UAT visual + interaksi utama lulus, regression lintas halaman/role operasional masih pending).

## 0. Metadata Implementasi
- [x] Nama aplikasi: `san_15apr`
- [x] Nama modul/halaman: `Ledger -> viewBalances_l1 (RekeningPembantuSupplier/1010040070)`
- [x] URL halaman: `https://demo.mayagrahakencana.com/san_15apr/Ledger/viewBalances_l1/RekeningPembantuSupplier/1010040070`
- [x] Mode implementasi: `Strict Existing COA`
- [x] Tanggal persiapan dokumen: `2026-04-16`
- [x] PIC dokumen: `Codex (pairing dengan user)`
- [x] PIC reviewer: `User`

## 1. Scope & Guardrail
- [ ] Perubahan dibatasi pada `view`, CSS, dan JS. (Catatan: ada mapping UI pada `application/controllers/Ledger.php`, tanpa ubah transaksi/jurnal.)
- [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] Tidak menambah akun pajak baru pada fase UI-only.
- [x] Status akun non-existing ditetapkan sebagai `planned/inactive` atau `hide`.

## 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 target hirarki existing (`application/controllers/Ledger.php`).
- [x] Identifikasi view utama (`application/views/ledger.php`).
- [x] Identifikasi source config akuntansi (`application/config/heAccounting.php`).
- [x] Identifikasi source alias akun dari DB (`application/helpers/he_accounting_helper.php`, `application/models/Mdls/MdlAccounts.php`).
- [x] Identifikasi final route halaman pajak yang akan dipakai pada implementasi.

## 3A. Baseline Akun Pajak Existing (Draft)
- [x] Kelompok aset terdeteksi: `ppn in`, `ppn in jasa`, `ppn in realisasi`, `ppn in jasa realisasi`, `pib`, `pph22`, `pph22 dibayar dimuka`, `pph 23 dibayar di muka`, `pph25`, `pph 25 dibayar di muka`, `pph4 ayat 2`, `pph29`, `ppn dibayar bendahara negara`, `deposit pajak`.
- [x] Kelompok liabilitas terdeteksi: `hutang ppn`, `ppn out`, `ppn out sudah ada faktur`, `hutang pph21`, `hutang pph23`, `hutang pph29`, `hutang pph4 ayat 2`, `pph25_29`.
- [x] Kelompok beban terdeteksi: `biaya pph21`.
- [x] Kode akun yang terlihat pada config: `1010040050`, `1010040070`, `2030060`, `2030070`.
- [x] Gap baseline: `PPh 26` belum ditemukan pada config existing.
- [ ] Validasi final daftar akun aktif terhadap master `acc_coa` sebelum coding UI.

## 4. Definisi Hirarki Perpajakan (UI)
- [x] Tetapkan Level 1: `Perpajakan`.
- [x] Tetapkan Level 2: `Pajak Dibayar di Muka (Aset)`, `Utang Pajak (Liabilitas)`, `Beban Pajak (Laba Rugi)`.
- [x] Tetapkan Level 3: akun existing per kelompok (tanpa akun baru).
- [x] Tetapkan status item per akun: `active`, `legacy`, `planned/inactive`.
- [x] Tetapkan aturan summary: total hanya dari akun `active`.
- [x] Tetapkan kebijakan tampilan akun `legacy/planned` (show/hide) sebelum implementasi.

## 4A. Mapping Keputusan Implementasi (Diisi Saat Eksekusi)
- [x] Mapping final akun aset pajak: `1010040050`, `1010040070`, `pph25`, `pph 23 dibayar di muka`, `pph22 dibayar dimuka`.
- [x] Mapping final akun utang pajak: `2030060`, `2030070`, `hutang pph23`, `hutang pph4 ayat 2`.
- [x] Mapping final akun beban pajak: `-` (akun beban belum diaktifkan pada mode strict existing saat ini).
- [x] Daftar akun yang di-hide: `hutang pph21`, `hutang pph29`, `biaya pph21`.
- [x] Daftar akun planned/inactive: `hutang pph21`, `hutang pph29`, `biaya pph21`.

## 5. Komponen UI yang Harus Ada
- [x] Panel ringkasan hirarki perpajakan.
- [x] Kartu per kelompok utama pajak.
- [x] Nilai saldo besar (visual priority) pada setiap kartu.
- [x] Meta count akun aktif per kelompok.
- [x] Badge total gabungan kelompok aktif.
- [x] Catatan mode aktif (misalnya `legacy hidden` atau `planned shown as info`).

## 6. Filter & Interaksi
- [x] Filter periode tetap tersedia dan berfungsi.
- [x] Search keyword tetap tersedia dan berfungsi.
- [ ] Tombol reset keyword tetap berfungsi. (Belum diuji klik eksplisit)
- [ ] Tombol export/print existing tetap berfungsi. (Belum diuji klik eksplisit)
- [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 konsisten.
- [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).

## 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 akun aktif sesuai data yang dirender.
- [x] Akun legacy/planned mengikuti aturan tampil yang disepakati.
- [x] Tabel detail tetap menampilkan data sesuai filter existing.

## 9. Regression Checklist
- [ ] Tidak merusak halaman lain yang memakai template sama.
- [ ] Tidak merusak sorting, paging, dan footer total di tabel.
- [ ] Tidak merusak akses role berbeda (operasional, supervisor, holding).
- [x] Tidak merusak state query string (periode, keyword, cabang, gudang).

## 10. Quality Gate
- [x] Lulus `php -l` untuk semua file yang diubah.
- [x] Uji manual desktop (Chrome/Edge).
- [x] Uji manual mobile/tablet viewport.
- [ ] 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 status akun (`active/legacy/planned`).
- [ ] Simpan screenshot sebelum dan sesudah. (Saat ini tersedia screenshot sesudah)
- [x] Simpan catatan known limitation jika ada.
- [x] Dokumen hasil UAT dibuat (sesuai tanggal implementasi).

## 12. Template Catatan Implementasi
- [x] Scope perubahan: `UI-only hierarchy perpajakan + mapping data tampilan pada controller Ledger`.
- [x] Kelompok akun yang ditampilkan: `Aset pajak (5 akun aktif), Liabilitas pajak (4 akun aktif)`.
- [x] Akun legacy/planned yang di-hide: `hutang pph21`, `hutang pph29`, `biaya pph21`.
- [x] Daftar file yang diubah: `application/controllers/Ledger.php`, `application/views/ledger.php`, `RUNBOOK_UI_HIRARKI_PERPAJAKAN.md`, `CHECKLIST_UI_HIRARKI_PERPAJAKAN.md`, `RUNBOOK_INDEX_UI_HIRARKI_KEUANGAN.md`.
- [x] Hasil uji fungsi: `Filter periode aktif, search keyword aktif, klik kartu mengarah ke detail rekening sesuai mapping`.
- [x] Hasil uji visual: `Desktop dan mobile menampilkan panel perpajakan dengan komposisi kartu, badge total, dan keterbacaan baik`.
- [x] Risiko tersisa: `Belum uji klik reset keyword, export/print, role operasional, regression lintas halaman bertemplate sama`.
- [x] Rencana tahap berikutnya: `Selesaikan regression pending, lengkapi screenshot before/after, lalu tutup dengan status LULUS penuh`.