# Hasil UAT UI Hirarki Hutang (Liabilitas) (2026-04-16)

Dokumen ini adalah hasil eksekusi dari `UAT_QUICKCHECK_UI_HIRARKI_KEUANGAN.md` untuk modul hirarki hutang/liabilitas (strict existing COA).

## 1. Identitas UAT
- Aplikasi: `san_15apr`
- Modul yang diuji: `Hutang (Liabilitas)`
- URL kandidat uji:
  - `Ledger/viewBalances_l1/RekeningPembantuSupplier/2010010`
  - `Ledger/viewBalances_l1/RekeningPembantuCustomer/2010050`
  - `Ledger/viewBalances_l1/RekeningPembantuBank/2020020`
  - `Ledger/viewBalances_l1/RekeningPembantuHutangJangkaPanjang/hutang%20jangka%20panjang`
  - `Ledger/viewBalances_l1/RekeningPembantuHutangSaham/2020010`
  - `Ledger/viewBalances_l1/RekeningPembantuHutangPihakLain/2020030`
- Tanggal uji: `2026-04-16`
- Penguji: `Codex (static validation)` + `User (manual validation executed)`
- Role penguji: `manual desktop/mobile + cross-role executed`

## 2. Ringkasan Metode Uji
- Metode 1: validasi statis via inspeksi kode.
- Metode 2: syntax check PHP (`php -l`) untuk file yang diubah.
- Metode 3: uji manual browser desktop/mobile dan cross-role sudah dieksekusi.

## 3. Hasil Quickcheck

### 3.1 Prasyarat
- [x] Mapping akun active/planned tersusun sesuai strict existing COA.
- [x] URL kandidat uji lintas section (lancar/tidak lancar) sudah disiapkan.
- [x] Data saldo nyata tersedia pada minimal 2 kategori kartu saat uji manual.
- [x] Role operasional + holding tervalidasi membuka halaman target pada sesi manual.

### 3.2 UAT Visual Ringkas
- [x] Panel hirarki hutang/liabilitas ditambahkan di atas tabel.
- [x] Kartu utama tampil berdasarkan section `Kewajiban Lancar` dan `Kewajiban Tidak Lancar`.
- [x] Badge total aktif + subtotal section (`lancar`/`tidak_lancar`) sudah dirender.
- [x] Catatan mode aktif tampil (`strict existing COA`).
- [x] Layout desktop 1366x768 tervalidasi manual.
- [x] Layout mobile 390x844 tervalidasi manual.

Catatan:
- Panel baru diprioritaskan untuk mode liabilitas; panel `Hutang Supplier` lama dinonaktifkan ketika mode liabilitas aktif agar tidak dobel.
- Evidence visual desktop dan mobile menunjukkan panel, kartu, subtotal section, dan catatan mode aktif tampil konsisten.

### 3.3 UAT Interaksi Ringkas
- [x] Filter periode tetap tersedia (reuse blok existing).
- [x] Search keyword tetap tersedia (reuse blok existing).
- [x] Tombol reset keyword tetap tersedia.
- [x] Tombol export/print tetap mengikuti mekanisme role existing.
- [x] Klik kartu ke detail per rel tervalidasi manual pada URL kandidat.
- [x] Sorting/paging/footer tabel tervalidasi runtime manual.

### 3.4 UAT Cross-Role Ringkas
- [x] Role operasional: panel + tabel + tombol sesuai hak akses.
- [x] Role holding/management: panel + tabel + tombol sesuai hak akses.
- [x] Tidak ada error JS/PHP saat pindah role.
- [x] Tidak ada perbedaan anomali tampilan antar role.

## 4. Kriteria Lulus
- [x] Tidak ada error syntax pada file PHP yang diubah.
- [x] Tidak ada indikasi regresi statis pada query string filter (periode/q/o/w).
- [x] Tidak ada regresi fungsi tabel berdasarkan uji runtime manual.
- [x] Tidak ada layout break kritikal di desktop/mobile berdasarkan uji runtime manual.
- [x] Bukti screenshot before/after lengkap.

## 5. Bukti Teknis
- [x] `php -l application/controllers/Ledger.php` -> no syntax errors.
- [x] `php -l application/views/ledger.php` -> no syntax errors.
- [x] Screenshot desktop sebelum. (evidence user, 2026-04-16)
- [x] Screenshot desktop sesudah. (evidence user, 2026-04-16)
- [x] Screenshot mobile sesudah. (evidence user, 2026-04-16)
- [x] Capture URL saat filter + search aktif dari environment uji:
  - `https://demo.mayagrahakencana.com/san_15apr/Ledger/viewBalances_l1/RekeningPembantuHutangSaham/2020010`
  - `https://demo.mayagrahakencana.com/san_15apr/Ledger/viewBalances_l1/RekeningPembantuHutangSaham/2020010?o=-1&periode=full&q=gunawan`

## 6. Status Akhir
- Status akhir: `LULUS`.
- Catatan:
  - Implementasi UI-only + mapping data tampilan untuk hirarki hutang/liabilitas sudah terpasang.
  - Struktur akun `active/planned` dan total section sudah dihitung di controller.
  - Tema visual `liabilitas` untuk panel/filter/search/tabel sudah diterapkan.
  - Evidence uji manual desktop + mobile + cross-role sudah dilampirkan.
- Risiko tersisa:
  - Tidak ada risiko kritikal terbuka pada scope UI-only.
- Next action:
1. Arsipkan evidence UAT ke paket handover implementasi.
2. Lanjutkan pola yang sama untuk modul berikutnya bila diperlukan.

## 7. Skrip Eksekusi Manual (Urutan Cepat)

Gunakan URL relatif berikut:
1. `Ledger/viewBalances_l1/RekeningPembantuSupplier/2010010` (Hutang Usaha).
2. `Ledger/viewBalances_l1/RekeningPembantuCustomer/2010050` (Hutang ke Konsumen).
3. `Ledger/viewBalances_l1/RekeningPembantuBank/2020020` (Hutang Bank).
4. `Ledger/viewBalances_l1/RekeningPembantuHutangJangkaPanjang/hutang%20jangka%20panjang` (Hutang Jangka Panjang).
5. `Ledger/viewBalances_l1/RekeningPembantuHutangSaham/2020010` (Hutang ke Pemegang Saham).
6. `Ledger/viewBalances_l1/RekeningPembantuHutangPihakLain/2020030` (Hutang ke Pihak Lain).

Urutan uji (10-20 menit):
1. Buka URL `2010010`, pastikan panel liabilitas tampil.
2. Verifikasi kartu section lancar/tidak lancar tampil sesuai mapping.
3. Klik 3-4 kartu dari rel berbeda, pastikan pindah ke detail yang benar.
4. Uji filter periode `Tahunan` lalu `Bulanan`, pastikan URL update benar.
5. Isi keyword pada search, submit, pastikan `q` terisi di URL.
6. Klik reset keyword, pastikan `q` hilang dan periode tetap.
7. Verifikasi sorting/paging/footer tabel tetap jalan.
8. Ulangi langkah inti pada role operasional dan role holding.
9. Simpan screenshot desktop before/after + mobile + capture URL filter/search.

Expected result:
- Tidak ada error PHP/JS.
- Tidak ada layout pecah pada panel, filter, dan tabel.
- Saldo kartu liabilitas konsisten dengan posisi normal akun (`kredit - debet` untuk default kredit).
- Hak akses tombol export/print sesuai role.
