# 📊 Laporan Audit Komprehensif — Project Produk Everest ERP

**Tanggal Audit:** 26 Agustus 2026
**Populasi:** 253 Proyek Aktif (`trash=0, status=1`) + 27 Proyek Terhapus
**Database:** `run_everest_modul` → tabel `project_produk`, `transaksi_payment_source`, `transaksi`

---

## Ringkasan Eksekutif

```mermaid
pie title Distribusi Status 253 Proyek Aktif
    "Faktur 7499 Lengkap" : 165
    "Faktur 7499 Belum Lengkap" : 60
    "Tanpa TPS/Aktivitas Tagihan" : 28
```

| # | Dimensi Audit | Jumlah Temuan | Severity |
|---|---|---|---|
| 1 | Cabang Mismatch (TPS vs project_produk) | 21 | ⚠️ MEDIUM |
| 2 | Proyek Terhapus (trash=1) | 27 | ℹ️ INFO |
| 3 | DP Request tapi Kasir Belum Terima | 0 | ✅ CLEAN |
| 4 | Faktur 7499 Belum Senilai Kontrak | 60 | ⚠️ MEDIUM |
| 5 | closing_status > 0 | 107 | ℹ️ INFO |
| 6a | Tanpa SO/SPK (quot_nomer kosong) | 15 | 🔴 HIGH |
| 6b | Harga Kontrak = Rp 0 | 21 | 🔴 HIGH |
| 6c | SPK ada, SO kosong | 0 | ✅ CLEAN |
| 6d | Customer kosong/NULL | 0 | ✅ CLEAN |
| 6e | Customer multi-cabang | 2 | ℹ️ INFO |
| 6f | SO Nomer duplikat | 0 | ✅ CLEAN |
| 6g | Overpayment (Bayar > Tagihan) | 0 | ✅ CLEAN |

---

## 1. Konsistensi Cabang (TPS Mismatch)

> [!WARNING]
> **21 proyek** memiliki data TPS dengan `cabang_id` yang tidak konsisten terhadap `project_produk.cabang_id`.

### Pola Temuan

Seluruh 21 kasus memiliki pola yang sama: TPS mengandung baris dengan `cabang_id = -1` (PUSAT/DC) bersamaan dengan cabang yang benar. Ini bukan mismatch yang merusak — melainkan indikasi bahwa **beberapa baris TPS diinput/diproses dari login PUSAT (DC)**.

```mermaid
flowchart LR
    A["project_produk.cabang_id = 1\n(CABANG PINANG)"]
    B["TPS cabang_id = -1, 1"]
    C["TPS cabang_id = -1"]
    
    A -->|"17 proyek"| B
    A -->|"3 proyek baru\n(#282, #283, #284)"| C
    
    D["project_produk.cabang_id = 33\n(SURABAYA)"]
    E["TPS cabang_id = -1, 33"]
    F["TPS cabang_id = -1"]
    
    D -->|"3 proyek"| E
    D -->|"1 proyek (#281)"| F

    style C fill:#ff6b6b,color:#fff
    style F fill:#ff6b6b,color:#fff
```

| Project ID | Nama | PP Cabang | TPS Cabang | Keterangan |
|---|---|---|---|---|
| #1 | New Karelia Village | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #29 | HVAC GUMMY INSTALASI | 33 (Surabaya) | -1, 33 | TPS ada dari PUSAT |
| #58 | NEW ASTER - MATERIAL AC | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #60 | PASADENA CLASSIC TAMBAHAN | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #61 | WF-100119118 | 33 (Surabaya) | -1, 33 | TPS ada dari PUSAT |
| #62 | RO-100134593 | 33 (Surabaya) | -1, 33 | TPS ada dari PUSAT |
| #66 | NEW SAMARA VILLAGE | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #91 | Dominos Teluk Gong | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #102 | Hyelasmo PIK | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #116 | ASTER - UNIT | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #156 | Dominos Pamulang Part II | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #157 | Dominos Bellagio Jakpus | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #158 | LILY - MATERIAL | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #160 | CANNA - UNIT | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #161 | CANNA - MATERIAL | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #166 | Bpk Majid Punjabi | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| #280 | Muhammad Fairuzaki | 1 (Pinang) | -1, 1 | TPS ada dari PUSAT |
| **#281** | **RUANG BROWNIES** | **33 (Surabaya)** | **-1** | ⚠️ **Hanya PUSAT, tanpa cabang 33** |
| **#282** | **VICTORIA CENTRAL DISTRICT** | **1 (Pinang)** | **-1** | ⚠️ **Hanya PUSAT, tanpa cabang 1** |
| **#283** | **AMARILLO VILLAGE** | **1 (Pinang)** | **-1** | ⚠️ **Hanya PUSAT** |
| **#284** | **CANNA - UNIT** | **1 (Pinang)** | **-1** | ⚠️ **Hanya PUSAT** |

> [!IMPORTANT]
> **4 proyek kritis** (#281, #282, #283, #284) memiliki TPS yang **hanya** tercatat di `cabang_id = -1` (PUSAT). Jika kasir login di cabang manapun, proyek-proyek ini **tidak akan terlihat** di panel EPFC karena filter isolasi cabang yang kita terapkan.

---

## 2. Proyek Terhapus (trash = 1)

Total **27 proyek** telah dihapus. Mayoritas adalah proyek PT. Paramount Enterprise International yang digabung/digantikan oleh proyek baru.

```mermaid
flowchart TB
    subgraph "27 Proyek Terhapus"
        direction TB
        A["21 proyek Paramount\n(Cabang 1)"]
        B["2 proyek Gereja Bernadeth\n(Cabang 1)"]
        C["1 proyek UPA Snack\n(Cabang 33)"]
        D["3 proyek lainnya\n(Cabang 1)"]
    end
    
    E{"Harga = 0?"}
    A --> E
    E -->|"16 proyek"| F["Proyek placeholder\natau draft awal"]
    E -->|"5 proyek"| G["Proyek pernah aktif\ntotal Rp 2.45M"]
    
    style G fill:#ff9f43,color:#fff
```

### Proyek Terhapus dengan Nilai Kontrak > 0

| Project ID | Nama | Customer | Harga | Oleh |
|---|---|---|---|---|
| #5 | AMARILLO VILLAGE | Paramount | Rp 198.799.495 | Jessi |
| #18 | KARELIA VILLAGE | Paramount | Rp 30.948.069 | - |
| #20 | GEREJA BERNADETH - UNIT AC | Gereja Bernadeth | Rp 215.677.543 | - |
| #21 | GEREJA BERNADETH - MATERIAL | Gereja Bernadeth | Rp 222.157.757 | - |
| #22 | HAMPTON AVENUE | Paramount | Rp 1.914.837.287 | - |
| #24 | NORTH MALIBU | Paramount | Rp 108.990.630 | - |

> [!NOTE]
> Proyek-proyek ini sudah di-close dengan `closing_status = 99` sebelum dihapus, menandakan prosedur penutupan dijalankan terlebih dahulu.

---

## 3. DP (Uang Muka) — Tidak Ada Temuan

✅ Tidak ditemukan proyek dengan `uang_muka_request > 0` yang belum diterima kasir. Semua alur DP berjalan konsisten.

---

## 4. Faktur 7499 Belum Senilai Kontrak

**60 proyek** memiliki nilai tagihan Faktur Proyek (`7499`) yang belum mencapai nilai kontrak/SPK.

```mermaid
flowchart TB
    subgraph "60 Proyek Faktur Belum Lengkap"
        direction TB
        A["0% — Belum ada faktur sama sekali\n17 proyek"]
        B["33.3% — Baru termin 1\n25 proyek"]
        C["55-78% — Termin lanjutan\n15 proyek"]
        D["83-99% — Hampir selesai\n3 proyek"]
    end
    
    style A fill:#e74c3c,color:#fff
    style B fill:#f39c12,color:#fff
    style C fill:#3498db,color:#fff
    style D fill:#2ecc71,color:#fff
```

### Top 10 Gap Terbesar (Potensi Tagihan Tertunda)

| # | Project ID | Nama | Kontrak | Faktur Terbit | % | Gap |
|---|---|---|---|---|---|---|
| 1 | #231 | GRAND PASADENA VILLAGE | Rp 2.893.310.335 | Rp 963.472.342 | 33.3% | **Rp 1.929.837.993** |
| 2 | #196 | MATERA RESIDENCES THP 5-9 | Rp 2.488.958.172 | Rp 828.823.072 | 33.3% | **Rp 1.660.135.100** |
| 3 | #102 | Hyelasmo PIK | Rp 489.833.918 | Rp 543.715.649 | 55.5% | **Rp 435.952.189** |
| 4 | #140 | HAMPTON EAST | Rp 650.307.933 | Rp 216.552.542 | 33.3% | **Rp 433.755.391** |
| 5 | #108 | HUDSON STUDIO LOFT | Rp 608.798.916 | Rp 202.730.039 | 33.3% | **Rp 406.068.877** |
| 6 | #110 | MENTENG STUDIO LOFT | Rp 484.271.865 | Rp 161.262.532 | 33.3% | **Rp 323.009.333** |
| 7 | #164 | MADISON GRANDE | Rp 341.296.362 | Rp 113.651.689 | 33.3% | **Rp 227.644.673** |
| 8 | #152 | IL LAGO SQUARE | Rp 193.708.746 | Rp 0 | 0% | **Rp 193.708.746** |
| 9 | #165 | MATERA LAKE SIDE VILLA | Rp 288.344.149 | Rp 96.018.602 | 33.3% | **Rp 192.325.547** |
| 10 | #83 | BPK EMOT - MATERIAL & JASA | Rp 294.902.310 | Rp 103.201.695 | 35% | **Rp 191.700.615** |

### Proyek 0% Faktur (Belum Ada Faktur Sama Sekali)

| Project ID | Nama | Kontrak | Ket |
|---|---|---|---|
| #152 | IL LAGO SQUARE | Rp 193.708.746 | Besar, perlu dicek |
| #236 | MATERA LAKESIDE | Rp 146.797.033 | |
| #148 | LILY PETALS - MATERIAL | Rp 101.537.345 | |
| #207 | OT PANDAAN - MORNING GLORY | Rp 80.000.000 | Surabaya |
| #248 | PT. CS2 POLA SEHAT | Rp 65.580.000 | |
| #177 | IL LAGO STUDIO LOFT | Rp 55.345.356 | |
| #178 | GARDENIA - UNIT | Rp 52.290.000 | |
| #141 | NEW SAMARA VILLAGE | Rp 26.499.948 | |
| #158 | LILY - MATERIAL | Rp 24.993.808 | |
| #179 | GARDENIA - MATERIAL | Rp 23.806.695 | |
| #195 | CLUSTER BOHEMIA | Rp 23.694.178 | |
| #234 | MANJID - KERJA TAMBAH | Rp 15.450.450 | |
| #139 | BOSTON VILLAGE | Rp 12.689.066 | |
| #244 | BOSTON VILLAGE | Rp 13.211.339 | |
| #126 | CLUSTER BOHEMIA | Rp 12.010.724 | |
| #153 | FRESCO @TRIMEZIA | Rp 11.997.089 | |
| #128 | GARDENIA MATERIAL | Rp 9.359.791 | |

---

## 5. Proyek dengan closing_status > 0

**107 proyek** memiliki `closing_status > 0`, dibagi menjadi 2 kelompok:

```mermaid
flowchart TB
    A["107 Proyek\nclosing_status > 0"]
    B["closing_status = 99\n(CLOSED FINAL)\n27 proyek"]
    C["closing_status = 1\n(CLOSED NORMAL)\n80 proyek"]
    
    A --> B
    A --> C
    
    B --> D["trash=1, status=0\n26 proyek\n→ Dihapus setelah closing"]
    B --> E["trash=0, status=1\n1 proyek\n→ ANOMALI"]
    
    C --> F["trash=0, status=1\n80 proyek\n→ Close tapi masih aktif"]
    
    style E fill:#e74c3c,color:#fff
    style F fill:#3498db,color:#fff
```

### Anomali: closing_status = 99 tapi Masih Aktif (trash=0, status=1)

| Project ID | Nama | Closed By | Closed Date | Keterangan |
|---|---|---|---|---|
| #8 | PASADENA GRAND RESIDENCES (TROPIS) | everest | 2024-10-31 17:12:15 | ⚠️ Seharusnya sudah di-trash |
| #9 | MENTENG VILLAGE | everest | 2024-10-31 17:13:06 | ⚠️ Seharusnya sudah di-trash |
| #11 | PASADENA GRAND RESIDENCES (CLASSIC) | everest | 2024-11-02 09:47:25 | ⚠️ Seharusnya sudah di-trash |
| #25 | NORTH MALIBU | sys_shadow | 2025-04-17 14:05:31 | ⚠️ Seharusnya sudah di-trash |

> [!CAUTION]
> **4 proyek** memiliki `closing_status = 99` (penutupan final) namun masih `trash=0, status=1` (aktif). Ini inkonsisten — proyek yang sudah final close seharusnya tidak muncul lagi di daftar aktif.

### closing_status = 1 — Proyek Sudah Closing tapi Masih Tampil

80 proyek sudah di-close secara normal (`closing_status = 1`) dengan audit trail lengkap (t1_closing oleh Yosua/Zahra/Nurul, tanggal jelas). **Ini normal** — proyek tetap `status=1` agar data historisnya bisa diakses untuk rekonsiliasi dan pelaporan.

---

## 6. Anomali Administrasi Lainnya

### 6a. Proyek Tanpa SO/SPK — 15 Proyek

> [!WARNING]
> **15 proyek aktif** tidak memiliki `quot_nomer` (SO) maupun `project_start_nomer` (SPK). Ini berarti proyek dibuat secara manual tanpa melalui alur penjualan standar (SO → SPK).

| Project ID | Nama | Customer | Cabang | Harga |
|---|---|---|---|---|
| #175 | Dominos Citra 2 | PT. DOM PIZZA INDONESIA | 33 (Surabaya) | Rp 0 |
| #245 | KRISTANTO - CITRA GARDEN 2 | BPK. KRISTANTO | 33 (Surabaya) | Rp 0 |
| #252 | PT. BRATANATA | PT. BRATANATA ELPIDIO ADYATAMA | 33 (Surabaya) | Rp 0 |
| #255 | LILY - UNIT | KSO PARAMOUNT PETALS | 1 (Pinang) | Rp 0 |
| #256 | LILY - MATERIAL | KSO PARAMOUNT PETALS | 1 (Pinang) | Rp 0 |
| #257 | LILY - UNIT | KSO PARAMOUNT PETALS | 1 (Pinang) | Rp 0 |
| #258 | LILY - MATERIAL | KSO PARAMOUNT PETALS | 1 (Pinang) | Rp 0 |
| #276 | MAXIM SQUARE | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #277 | ALTADENA RESIDENCES | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #279 | PASADENA SQUARE NORTH - UNIT | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #281 | RUANG BROWNIES | PT. ULTRA PRIMA ABADI | 33 (Surabaya) | Rp 0 |
| #282 | VICTORIA CENTRAL DISTRICT - THP 2 | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #283 | AMARILLO VILLAGE | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #284 | CANNA - UNIT | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |
| #285 | CANNA - MATERIAL | PT. PARAMOUNT ENTERPRISE | 1 (Pinang) | Rp 0 |

**Catatan:** Seluruh 15 proyek ini juga memiliki `harga = 0` — kemungkinan besar merupakan **proyek draft/placeholder** yang belum dikaitkan ke SO.

### 6b. Proyek Harga = Rp 0 — 21 Proyek

Termasuk 15 proyek tanpa SO/SPK di atas, ditambah 6 proyek berikut yang sudah punya SO tapi nilai kontrak masih 0:

| Project ID | Nama | SO Nomer | Customer |
|---|---|---|---|
| #193 | APOTEK BERKAT - PESANGGRAHAN | 588so.1.3557.1 | APOTEK BERKAT |
| #259 | PASADENA SQUARE NORTH | 588so.1.1478.61 | Paramount |
| #260 | ALTADENA RESIDENCES PLUS | 588so.1.1478.60 | Paramount |
| #261 | MAGGIORE SIGNATURE EAST | 588so.1.1478.59 | Paramount |
| #262 | OMAHA VILLAGE | 588so.1.1478.58 | Paramount |
| #263 | MATERA RESIDENCES EXTANSION - JASA | 588so.1.1478.57 | Paramount |

> [!IMPORTANT]
> 6 proyek ini sudah memiliki SO nomer tetapi `harga = 0`. Kemungkinan SO sudah diinput tapi **SPK belum diapprove** sehingga nilai kontrak belum ter-sync ke `project_produk.harga`.

### 6e. Customer Multi-Cabang — 2 Customer

| Customer ID | Nama | Jumlah Proyek | Cabang |
|---|---|---|---|
| #1778 | BPK. KRISTANTO | 2 | 1, 33 |
| #2863 | PT. DOM PIZZA INDONESIA | 22 | 1, 33 |

Ini normal untuk customer nasional yang beroperasi di beberapa wilayah.

---

## Diagram Kesehatan Global Proyek

```mermaid
flowchart TB
    subgraph TOTAL["280 PROYEK TOTAL"]
        direction TB
        
        subgraph ACTIVE["253 PROYEK AKTIF"]
            direction LR
            
            subgraph HEALTHY["✅ 165 SEHAT"]
                H1["Faktur 7499 Lengkap\nclosing_status = 1\nCabang Konsisten"]
            end
            
            subgraph PROGRESS["🔵 60 DALAM PROSES"]
                P1["Faktur 7499 Belum Lengkap\nTerong 33.3% - 83.7%"]
            end
            
            subgraph ANOMALY["⚠️ 28 ANOMALI"]
                A1["15 Tanpa SO/SPK\n+ Harga = 0"]
                A2["4 closing_status=99\ntapi masih aktif"]
                A3["6 Punya SO\ntapi Harga = 0"]
                A4["4 TPS hanya cabang -1\ntidak terlihat di cabang"]
            end
        end
        
        subgraph DELETED["🗑️ 27 TERHAPUS"]
            D1["26 closing_status=99 ✅\nProsedur benar"]
            D2["1 tanpa closing ⚠️"]
        end
    end
    
    style HEALTHY fill:#2ecc71,color:#fff
    style PROGRESS fill:#3498db,color:#fff
    style ANOMALY fill:#e74c3c,color:#fff
    style DELETED fill:#95a5a6,color:#fff
```

---

## Rekomendasi Tindakan

### 🔴 Prioritas Tinggi (Perlu Koreksi Data)

1. **4 proyek TPS hanya cabang -1** (#281, #282, #283, #284): Normalisasi `cabang_id` pada baris TPS agar sesuai dengan `project_produk.cabang_id`, atau update filter EPFC untuk memperhitungkan `cabang_id = -1`.
2. **4 proyek closing_status=99 tapi masih aktif** (#8, #9, #11, #25): Evaluasi apakah perlu diset `trash=1` atau `closing_status` direset.

### ⚠️ Prioritas Sedang (Review Operasional)

3. **15 proyek tanpa SO/SPK**: Konfirmasi apakah ini draft yang perlu dihapus atau proyek yang perlu dikaitkan ke SO.
4. **6 proyek SO ada tapi harga = 0**: Periksa apakah SPK sudah diapprove — jika sudah, sync ulang harga dari SPK ke `project_produk.harga`.
5. **17 proyek 0% faktur**: Review apakah proyek-proyek ini sudah mulai berjalan tapi faktur belum diterbitkan.

### ℹ️ Monitoring Rutin

6. **60 proyek faktur belum lengkap**: Total gap tagihan belum terbit ± **Rp 6.03 Miliar** — pantau secara berkala melalui panel EPFC.
7. **21 proyek cabang mismatch (cabang -1)**: Ini pola operasional (diproses dari login PUSAT) bukan error, tapi perlu dimonitor agar isolasi cabang di EPFC tetap akurat.
