﻿# Checklist UI Hirarki Piutang (PSAK 71, Strict Existing COA)

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

Status saat ini: `DONE` (implementasi selesai, UAT lulus).

## 0. Metadata Implementasi
- [x] Nama aplikasi: `san_15apr`
- [x] Nama modul/halaman: `Ledger > viewBalances_l1 > RekeningPembantuCustomer`
- [x] URL halaman: `https://demo.mayagrahakencana.com/san_15apr/Ledger/viewBalances_l1/RekeningPembantuCustomer/1010020010`
- [x] Mode implementasi: `Strict Existing COA`
- [x] Tanggal persiapan dokumen: `2026-04-16`
- [ ] PIC dokumen:
- [ ] PIC reviewer:

## 1. Scope & Guardrail
- [x] Perubahan dibatasi pada `view`, CSS, dan JS (mapping data tampilan boleh di controller).
- [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 piutang 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 piutang yang akan dipakai pada implementasi.

## 3A. Baseline Akun Piutang Existing (Draft)
- [x] Piutang usaha terdeteksi: `1010020010`, `1010020080`, `1010020050`, `piutang valas`.
- [x] Piutang non-usaha terdeteksi: `piutang lain`, `1010060010`, `1010060030`, `1010060040`, `1010060020`.
- [x] Akun legacy terdeteksi: `1010020090` (Marketplace).
- [x] Akun planned/inactive: `CKPN`, `piutang retensi`, `piutang pajak restitusi` (jika belum ada route final aktif).
- [x] Modul terpisah terkonfirmasi: `1010020030` (piutang pembelian) tidak masuk panel ini.

## 4. Definisi Hirarki Piutang (UI)
- [x] Tetapkan Level 1: `Piutang`.
- [x] Tetapkan section utama: `Piutang Usaha`, `Piutang Non-Usaha`.
- [x] Tetapkan Level detail: akun existing per section (tanpa akun baru).
- [x] Tetapkan aturan summary: total utama 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 piutang usaha: `1010020010`, `1010020080`, `1010020050`, `piutang valas`.
- [x] Mapping final piutang non-usaha: `piutang lain`, `1010060010`, `1010060030`, `1010060040`, `1010060020`.
- [x] Daftar akun legacy yang di-hide: `1010020090`.
- [x] Daftar akun planned/inactive: `CKPN-PIUTANG`, `piutang retensi`, `piutang pajak restitusi`.
- [x] Catatan route/subledger yang belum siap: akun planned di-nonaktifkan (`route_enabled = false`).

## 5. Komponen UI yang Harus Ada
- [x] Panel ringkasan hirarki piutang.
- [x] Kartu per section utama (usaha dan non-usaha).
- [x] Nilai saldo besar (visual priority) pada setiap kartu.
- [x] Meta count dimensi aktif per kartu.
- [x] Badge total aktif + subtotal section + dimensi aktif.
- [x] Catatan mode aktif (`strict existing COA`) ditampilkan.

## 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 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] Subtotal section `usaha` dan `non_usaha` sesuai mapping.
- [x] Jumlah dimensi aktif sesuai data yang dirender.
- [x] Akun legacy/planned mengikuti aturan tampil yang disepakati.
- [x] Posisi normal saldo piutang terjaga (`debet - kredit` untuk default debet).

## 9. Regression Checklist
- [x] Tidak merusak halaman lain yang memakai template sama.
- [x] Tidak merusak sorting, paging, dan footer total di tabel.
- [x] 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.
- [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 status akun (`active/legacy/planned`).
- [x] Simpan screenshot sebelum dan sesudah.
- [x] Simpan catatan known limitation jika ada.
- [x] Dokumen hasil UAT dibuat (sesuai tanggal implementasi).

## 12. Template Catatan Implementasi
- [x] Scope perubahan: strict existing COA + mapping totals di controller + panel UI hirarki piutang.
- [x] Section akun yang ditampilkan: `Piutang Usaha`, `Piutang Non-Usaha`.
- [x] Akun legacy/planned yang di-hide: `1010020090`, `CKPN-PIUTANG`, `piutang retensi`, `piutang pajak restitusi`.
- [x] Daftar file yang diubah: `application/controllers/Ledger.php`, `application/views/ledger.php`.
- [x] Hasil uji fungsi: syntax check PHP lulus; UAT manual lulus.
- [x] Hasil uji visual: desktop + search state + mobile verified.
- [x] Risiko tersisa: tidak ada blocker kritikal; monitoring pasca-deploy tetap disarankan.
- [x] Rencana tahap berikutnya: handover dan penutupan task implementasi.
