# Checklist UI Hirarki Hutang Ke Konsumen (Reusable)

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

## 0. Metadata Implementasi
- [ ] Nama aplikasi:
- [ ] Nama modul/halaman:
- [ ] URL halaman:
- [ ] Tanggal implementasi:
- [ ] PIC implementasi:
- [ ] PIC reviewer:

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

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

## 3. Discovery File
- [ ] Identifikasi controller yang menyiapkan data halaman hutang ke konsumen.
- [ ] Identifikasi view utama yang merender summary + tabel detail.
- [ ] Identifikasi partial template yang dipakai ulang di halaman lain.
- [ ] Identifikasi helper/formatter saldo dan periode.
- [ ] Identifikasi CSS/JS global yang berpotensi terdampak.

## 3A. Catatan Discovery Teknis
- [ ] Mapping menu ke halaman target terverifikasi.
- [ ] Mapping akun induk hutang ke konsumen terverifikasi.
- [ ] Mapping subledger/item hutang ke konsumen terverifikasi.

## 4. Definisi Hirarki Hutang Ke Konsumen (UI)
- [ ] Tetapkan Level 1: akun utama `Hutang Ke Konsumen`.
- [ ] Tetapkan Level 2: dimensi bisnis (contoh `Reguler`, `Project`).
- [ ] Tetapkan Level 3: dimensi organisasi (contoh cabang/unit).
- [ ] Tetapkan Level 4: konsumen/pihak terkait (subledger detail).
- [ ] Tetapkan label dan kode akun yang akan ditampilkan di kartu.
- [ ] Dokumentasikan akun legacy yang disembunyikan dari UI.

## 4A. Mapping Keputusan Implementasi
- [ ] Kartu 1: label + kode akun.
- [ ] Kartu 2: label + kode akun.
- [ ] Data detail tetap dari struktur existing halaman ledger.
- [ ] Legacy mode: `show` / `hidden` (pilih salah satu).

## 5. Komponen UI yang Harus Ada
- [ ] Panel ringkasan hirarki hutang ke konsumen.
- [ ] Kartu per kategori utama sesuai mapping final.
- [ ] Nilai saldo besar (visual priority) pada setiap kartu.
- [ ] Meta count yang relevan (jumlah konsumen aktif/unit).
- [ ] Badge total gabungan kategori aktif.
- [ ] Catatan mode aktif (contoh: legacy hidden).

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

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

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

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

## 9A. Catatan Validasi Statis
- [ ] Theme modul hanya aktif saat flag hirarki hutang ke konsumen aktif.
- [ ] Export/print/search tetap memakai mekanisme existing.
- [ ] Filter periode tetap berbasis query string existing.

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

## 11. Dokumentasi Hasil
- [ ] Catat daftar file yang diubah.
- [ ] Catat keputusan bisnis (termasuk status legacy).
- [ ] Simpan screenshot sebelum dan sesudah.
- [ ] Simpan catatan known limitation jika ada.

## 12. Template Catatan Implementasi
- [ ] Scope perubahan: UI-only pada file controller/view terkait.
- [ ] Akun/kategori yang ditampilkan: isi label + kode final.
- [ ] Akun legacy yang di-hide: tulis status final.
- [ ] Daftar file yang diubah: isi path lengkap file.
- [ ] Hasil uji fungsi: lint + filter/search/export/link kartu.
- [ ] Hasil uji visual: panel hirarki + styling filter/search/table.
- [ ] Risiko tersisa: isi risiko nyata yang belum ditutup.
- [ ] Rencana tahap berikutnya: isi langkah UAT/handover berikutnya.
