# 📐 BLUEPRINT ARSITEKTUR SISTEM: UNIVERSAL TRANSACTION INSPECTOR (360° TRANSACTION CONTROL)
**File Location:** `z:\everest_29agus\BLUEPRINT_UNIVERSAL_TRANSACTION_INSPECTOR.md`  
**Standar Acuan:** Best Practice ERP Architecture, ISO 27001 (Security & Auditability), ISO 9001:2015 (Traceability), PSAK 72 / IFRS 15 (Pendapatan & Uang Muka), & PSAK 1 (Penyajian Laporan Keuangan).

---

## 1. EXECUTIVE SUMMARY & LATAR BELAKANG ARSITEKTUR

### 1.1 Evaluasi Kondisi Saat Ini (As-Is State)
Saat ini, antarmuka pemeriksaan transaksi (`viewResume`) pada aplikasi ERP Everest baru menyajikan sudut pandang parsial logistik (seperti rantai dokumen `Pre-PO -> PO -> GRN`). Hal ini menimbulkan beberapa *gap* operasional dan akuntansi yang signifikan:
1. **Blind Spot Keuangan (Financial Blind Spot):** Transaksi Uang Muka (Kas/Bank), Ganti Relasi Uang Muka, dan Pembayaran Faktur tidak terintegrasi pada resume dokumen logistik.
2. **Diskrepanasi Informasi (Misleading Status):** Teks `- no journal affected by this transaction -` muncul pada resume PO yang sebenarnya memiliki entri Uang Muka dan Jurnal Keuangan berelasi di Buku Besar.
3. **Resiko Auditing & Operasional:** Pembatalan pembayaran (*payment reversal*) atau pemindahan Uang Muka (*ganti relasi*) sulit dilacak secara langsung oleh pengguna di luar modul Keuangan/Kas.

### 1.2 Target Solusi Arsitektur (To-Be State)
Membangun **Universal Transaction Inspector ("Kaca Pembesar Transaksi Universal 360°")** terpusat yang:
- Mengonsolidasikan 4 layer data: **Dokumen Logistik/Fisik**, **Mutasi Keuangan/DP**, **Postingan Jurnal GL**, dan **Audit Trail Pembatalan**.
- Bersifat **Universal & Dynamic**: Dapat dipanggil dari modul mana saja di seluruh ERP cukup dengan menyertakan **Nomor Transaksi**.
- Memenuhi standar kepatuhan akuntansi (PSAK/IFRS) dan standar manajemen/keamanan informasi (ISO 9001 & ISO 27001).

---

## 2. MATRIKS STANDAR REGULATORIS & KEPATUHAN (COMPLIANCE MATRIX)

| Standar / Regulasi | Domain Kepatuhan | Implementasi Spesifik dalam Universal Transaction Inspector |
| :--- | :--- | :--- |
| **PSAK 72 / IFRS 15** | *Revenue & Contract Liabilities* | Memisahkan secara eksplisit antara Komitmen Kontrak/PO, Uang Muka (*Contract Liabilities*), Faktur Terbit, dan Progres Prestasi/Pelunasan. Uang muka tidak boleh diakui sebagai pendapatan/beban sebelum barang/jasa diserahterimakan. |
| **PSAK 1** | *Penyajian Laporan Keuangan* | Menjamin seluruh transaksi berelasi memiliki entri jurnal terhubung ke Buku Besar Pembantu tanpa ada transaksi mengambang (*unlinked/unposted journals*). |
| **Prinsip Storno (PSAK)** | *Imutabilitas Akuntansi* | Dilarang keras melakukan *hard delete*. Setiap pembatalan pembayaran/transaksi harus dicatat sebagai **Jurnal Reversal/Storno** yang terekam permanen di timeline. |
| **ISO 27001 (A.12.4)** | *Logging & Auditability* | Menyediakan Audit Trail 360° yang mencatat identitas user, IP address, timestamp, serta rincian tindakan (*create, edit, re-link DP, cancel/reversal*). |
| **ISO 9001:2015 (8.5.2)** | *End-to-End Traceability* | Menjamin *mampu telusur* 2-arah (hulu ke hilir & hilir ke hulu) dari dokumen paling awal hingga pelunasan kas dan dampak buku besar. |
| **ERP Best Practice** | *Single Source of Truth (SSOT)* | Menggunakan 1 Engine Inspeksi Terpusat (*Central Aggregator*) yang dikonsumsi secara seragam oleh seluruh modul (Purchasing, Sales, Inventory, Finance, Taxes). |

---

## 3. EMPAT PILAR ARSITEKTUR ENGINE INSPECTOR

```mermaid
graph TD
    A["Nomor Transaksi<br>(cth: PO, SO, GRN, INV, Kas)"] --> B["Universal Inspector Engine Gateway"]
    
    subgraph "Engine Aggregator Terpusat"
        B --> C["Pilar 1: Document Hierarchy Resolver"]
        B --> D["Pilar 2: Financial & Settlement Aggregator"]
        B --> E["Pilar 3: Ledger & Audit Reversal Inspector"]
    end
    
    C --> F["Document Tree (Parent/Child/Rejection)"]
    D --> G["Mutasi Kas, Uang Muka, Ganti Relasi, & Pelunasan"]
    E --> H["Baris Jurnal GL & Reversal Audit Trail"]
    
    F --> I["Pilar 4: Universal Inspector UI Renderer"]
    G --> I
    H --> I
    
    I --> J["360° Inspector Modal / Control Panel"]
```

### 3.1 Pilar 1: Document Hierarchy Resolver (Pelacak Rantai Dokumen)
- **Fungsi:** Menelusuri silsilah dokumen fisik/logistik ke atas (*Induk/Parent*) dan ke bawah (*Anak/Children*).
- **Cakupan Data:** `Pre-Order`, `Main Order (PO/SO)`, `Goods Receipt (GRN) / Delivery (DO)`, `Rejection`, dan `Return`.
- **Aturan Operasional:** Mengidentifikasi status penyelesaian fisik (% barang diterima/dikirim vs % barang dipesan).

### 3.2 Pilar 2: Financial & Settlement Aggregator (Pengumpul Mutasi Keuangan & Uang Muka)
- **Fungsi:** Mengumpulkan seluruh mutasi keuangan yang mengikat atau me-refer nomor dokumen tersebut.
- **Cakupan Data:**
  - **Uang Muka Awal (DP):** Pembayaran Kas/Bank untuk UM beserta nominal awal.
  - **Alokasi DP:** Pemotongan saldo UM untuk pelunasan Invoice/PM.
  - **Ganti Relasi DP (Mutasi Relasi):** Pencatatan pemindahan saldo UM dari PO/SO Asal ke PO/SO Tujuan (Debet/Kredit relasi).
  - **Pembayaran Kas Direct:** Pelunasan invoice via Kas/Bank non-DP.

### 3.3 Pilar 3: Ledger & Audit Reversal Inspector (Pemeriksa Jurnal & Storno)
- **Fungsi:** Menyajikan dampak postingan jurnal akunting dan merekam audit trail pembatalan.
- **Cakupan Data:**
  - **Postingan Jurnal GL:** Entri Debet/Kredit pada akun Persediaan, Hutang/Piutang, Kas/Bank, PPN, dan Selisih Adjustment.
  - **Buku Besar Pembantu:** Saldo rekonsiliasi real-time akun GL terkait.
  - **Log Reversal / Storno:** Catatan pembatalan pembayaran (seperti pembatalan PM 02 Sep 2026), termasuk alasan dan pelaksana.

### 3.4 Pilar 4: Universal Inspector UI Renderer (Antarmuka Kontrol 360°)
- **Fungsi:** Komponen visual terpusat yang menampilkan seluruh informasi dalam modal dialog terstruktur.
- **Navigasi Tab UI:**
  1. **Tab 1: Overview Matrix** (Ringkasan Nilai Transaksi, Total DP, Total Tagihan, Sisa Utang/Piutang, Status Jurnal).
  2. **Tab 2: Rantai Dokumen & Logistik** (Pohon hirarki Pre-Order -> Order -> Receipt/Delivery).
  3. **Tab 3: Mutasi Keuangan & Uang Muka** (Kronologis Kas, Alokasi DP, Ganti Relasi DP, Pelunasan).
  4. **Tab 4: Jurnal Akunting & Reversal Audit** (Matriks Jurnal GL & Log Pembatalan/Storno).

---

## 4. SPESIFIKASI TAMPILAN UI & MATRIKS KONTROL

### 4.1 Header & Overview Financial Position Matrix
Di bagian atas Inspector Modal, disajikan **Matriks Ringkasan Posisi Keuangan 1-Detik**:

$$\begin{aligned}
\text{Total Nilai Transaksi (PO/SO)} &= \text{Rp 1.100.000.000} \\
\text{Total Uang Muka Dibayar (Initial DP)} &= \text{Rp 687.487.700} \\
\text{Uang Muka Dialokasikan (Settled DP)} &= \text{Rp 0 (Akibat Pembatalan Pelunasan)} \\
\text{Uang Muka Ganti Relasi (Transferred DP)} &= \text{Rp 662.211.000 (Dipindah ke PO.FG.-1.3392)} \\
\text{Sisa Uang Muka Aktif Terikat} &= \text{Rp 25.276.700} \\
\text{Status Postingan Jurnal} &= \text{\textbf{TERHUBUNG (4 Event Jurnal)}}
\end{aligned}$$

### 4.2 Timeline Visual Audit Trail (Contoh Kasus PO.FG.-1.3308)

```
[28 Jul 2026 16:46] 📦 PRE-PO Created: PRE.PO.FG.-1.3163 (Oleh: Jihad)
[28 Jul 2026 16:47] 🛒 PO Issued: PO.FG.-1.3308 (Oleh: Jihad)
[30 Jul 2026 16:40] 💳 UANG MUKA DIBAYAR: Rp 687.487.700 via Kas/Bank (Debet: UM, Kredit: Kas)
[03 Aug 2026 12:59] 🚚 GOODS RECEIVED: GRN.-1.5137-05137 (Oleh: Alia)
[27 Aug 2026 15:50] 🧾 ALOKASI PEMBAYARAN: PM.FG.-1.21.335 dipotong dari UM sebesar Rp 38.946.600
[27 Aug 2026 15:59] 🔄 GANTI RELASI UM: Rp 662.211.000 dipindahkan relasinya ke PO.FG.-1.3392
[02 Sep 2026 16:00] ⚠️ PEMBATALAN PEMBAYARAN: Reversal PM.FG.-1.21.335 (Debet UM Rp 38.946.600 dipulihkan)
```

---

## 5. SPESIFIKASI TEKNIS & ARSITEKTUR KODE (HMVC CODEIGNITER 3)

### 5.1 Struktur Komponen Terpusat
Untuk menjaga keteraturan codebase HMVC CodeIgniter 3 di `z:\everest_29agus`:

1. **Library Core Service:** `application/libraries/ComTransactionInspector.php`
   - Berisi logika agregasi query 4 pilar.
2. **Helper Gateway:** `application/helpers/he_inspector_helper.php`
   - Menyediakan fungsi penjelas format link clickable: `render_inspector_link($nomer, $label)`.
3. **Controller Gateway:** `application/controllers/UniversalInspector.php`
   - Endpoint AJAX terpusat: `UniversalInspector/getInspectorData/$nomer`.
4. **Global View Modal:** `application/views/inspector/v_universal_inspector_modal.php`
   - Template modal dialog universal 360 derajat.

### 5.2 Aturan Kompatibilitas Kode (Aturan Global Project)
- **PHP 5.6 Compatibility:** Menghindari sintaks `??`, short array `[]`, atau arrow function `fn()`.
- **HMVC Extension:** Kompatibel dengan Wiredesignz MX v5.5 (`MY_Loader`, `MY_Router`).
- **Database Safety:** Menggunakan Active Record / Query Binding CodeIgniter 3 untuk mencegah SQL Injection.

---

## 6. MATRIKS VERIFIKASI PENGUJIAN (AUDIT VERIFICATION)

| Skenario Pengujian | Ekspektasi Hasil Inspeksi | Indikator Sukses |
| :--- | :--- | :--- |
| **PO dengan Uang Muka Kas** | Uang Muka tercatat di Tab Keuangan, Jurnal Kas/UM muncul di Tab Jurnal. | Teks `- no journal affected -` digantikan dengan Rincian Jurnal Kas. |
| **Ganti Relasi Uang Muka** | Terlihat pencatatan transfer saldo UM dari PO Asal ke PO Tujuan di kedua resume PO. | Balance saldo UM PO Asal berkurang dan PO Tujuan bertambah secara presisi. |
| **Pembatalan Pembayaran PM** | Reversal terbit, saldo utang/UM dipulihkan, timeline mencatat log pembatalan. | Riwayat lama tidak hilang (Storno), posisi piutang/utang kembali aktif. |
| **Klik dari Modul Mana Saja** | Klik nomor transaksi dari Sales, Purchase, Warehouse, atau Finance menghasilkan dialog 360° yang sama persis. | Single Source of Truth (SSOT) tercapai 100%. |

---
*Dokumen Blueprint ini disimpan secara permanen pada `z:\everest_29agus\BLUEPRINT_UNIVERSAL_TRANSACTION_INSPECTOR.md` sebagai acuan resmi pengkodean.*
