# 🔄 Peta Integrasi & Alur Bisnis Antar-Modul ERP Everest

Dokumen ini menjelaskan hubungan kerja dan aliran data (barang, keuangan, dan otorisasi) antar-modul utama di dalam ERP Everest. Dokumen ini berfungsi sebagai peta navigasi bisnis global bagi developer, pemula, dan AI Agent.

---

## 1. Peta Alur Bisnis Komprehensif (End-to-End Flowchart)

Berikut adalah flowchart lengkap yang menggambarkan integrasi seluruh modul yang dikelola oleh **Agent 1 hingga Agent 6** di ERP Everest, mulai dari pengadaan bahan hingga pelunasan keuangan.

```mermaid
graph TD
    %% PENDEFINISIAN NODE / MODUL BERDASARKAN AGENT
    subgraph AG2[Agent 2: Modul Pengadaan & Pengeluaran]
        Pem[Pembelian & Import] -->|Input Stok Baru| Gud[Gudang Persediaan]
        Bia[Biaya / Pelunasan]
    end

    subgraph AG4[Agent 4: Modul Logistik & Audit]
        PG[Pindah Gudang]
        Opn[Opname Fisik]
    end

    subgraph AG5[Agent 5: Modul Distribusi & Supplies]
        DistFG[Distribusi Finish Goods]
        DistSup[Distribusi Supplies]
        DistProd[Distribusi Produksi]
    end

    subgraph AG1[Agent 1: Modul Konversi]
        Konv[Konversi Varian & Standar]
    end

    subgraph AG6[Agent 6: Modul Manufaktur & Adj]
        Prod[Produksi & Proses]
        Adj[Adjustment Stok]
    end

    subgraph AG3[Agent 3: Modul Penjualan]
        Penj[Penjualan & Project]
    end

    %% ALIRAN FISIK BARANG (LOGISTIK & PRODUKSI)
    Gud -->|1. Kirim Stok Antar Cabang| PG
    PG -->|Stok Masuk Gudang Target| Gud
    
    Gud -->|2. Hitung Fisik| Opn
    Opn -->|Koreksi Selisih Stok 742/743| Bia
    
    Gud -->|3. Ambil Perlengkapan| DistSup
    DistSup -->|Bebankan ke Biaya Cabang 7762| Bia
    
    Gud -->|4. Salurkan Bahan Baku| DistProd
    DistProd -->|Masuk ke Line Produksi| Prod
    
    Prod -->|5. Hasilkan Produk Jadi| DistFG
    DistFG -->|Kirim Produk Jadi ke Gudang| Gud
    
    Gud -->|6. Ambil Produk/Supplies| Konv
    Konv -->|7. Hasilkan Grade/Bentuk Baru| Gud
    
    Gud -->|8. Stok Manual Adjustment| Adj
    Adj -->|Update Saldo Akhir Stok| Gud

    %% ALIRAN TRANSAKSI PENJUALAN & KEUANGAN
    Gud -->|9. Ambil Barang Siap Jual| Penj
    
    Penj -->|10. Timbulkan Piutang Dagang AR| Bia
    Pem -->|11. Timbulkan Hutang Dagang AP| Bia
    
    %% PELUNASAN DI KAS/BANK
    Bia -->|12. Pelunasan Kas/Bank| Jurnal[GL Jurnal & Buku Besar]
```

---

## 2. Aliran Keuangan & Jurnal (Flow of Cash & Finances)

Setiap mutasi barang di atas memicu pencatatan akuntansi double-entry secara otomatis ke Buku Besar. Siklus pelunasan keuangan dikonsolidasikan melalui Modul Biaya dan Kas/Bank.

```mermaid
sequenceDiagram
    autonumber
    participant Pemb as Modul Pembelian (Agent 2)
    participant Penj as Modul Penjualan (Agent 3)
    participant Biaya as Modul Biaya (Agent 2)
    participant Ledger as Buku Besar (GL & COA)
    
    %% Transaksi Pembelian (Hutang)
    Pemb->>Ledger: Kredit: Hutang Dagang (AP) | Debet: Persediaan
    
    %% Transaksi Penjualan (Piutang)
    Penj->>Ledger: Debet: Piutang Dagang (AR) | Kredit: Pendapatan Penjualan
    Penj->>Ledger: Debet: HPP | Kredit: Persediaan
    
    %% Pelunasan Piutang
    Biaya->>Penj: Tarik Nota Penjualan Kredit
    Biaya->>Ledger: Debet: Kas/Bank | Kredit: Piutang Dagang (Lunas)
    
    %% Pelunasan Hutang
    Biaya->>Pemb: Tarik Nota Pembelian Supplier
    Biaya->>Ledger: Debet: Hutang Dagang | Kredit: Kas/Bank (Lunas)
```

### Hubungan Integrasi Utama:
1.  **Modul Biaya sebagai Muara Keuangan:** Modul Biaya tidak berdiri sendiri. Ia membaca tagihan yang belum lunas (AR dari Modul Penjualan, AP dari Modul Pembelian, Reimburse Kas Kecil, hingga Payroll Karyawan) dan mencatat mutasi kas keluar/masuk sesungguhnya.
2.  **Pembiayaan Perlengkapan (Supplies Costing):** Saat perlengkapan (supplies) dialokasikan lewat `distribusisupplies` (Agent 5), sistem otomatis membuat transaksi pembiayaan supplies (`jenisTr` 7762) di Modul Biaya untuk menjurnal beban biaya operasional cabang tersebut.
3.  **Selisih Opname (Audit Loss/Gain):** Ketika `opname` (Agent 4) mencatat barang rusak atau hilang, sistem memicu pengakuan beban kerugian selisih opname (`jenisTr` 742) di Modul Biaya untuk memotong nilai buku persediaan pada GL Jurnal.

---

## 3. Peta Ketergantungan Modul (Module Dependencies)

Sebelum sebuah transaksi dapat diproses di modul tertentu, modul atau master data pendukung harus sudah berjalan terlebih dahulu:

```
[Master Cabang / Gudang] ──► [Modul Pembelian] ──► [Modul Konversi / Produksi]
                                  │                        │
                                  ▼                        ▼
[Master Pelanggan] ──────► [Modul Penjualan] ────► [Modul Biaya (Pelunasan)]
                                                           ▲
[Master Karyawan/BPJS] ────────────────────────────────────┘
```

*   **Pembelian ke Konversi/Produksi:** Modul Konversi atau Produksi tidak dapat memproses perakitan barang jika stok bahan baku belum dimasukkan melalui Modul Pembelian atau saldo stok `active` kosong.
*   **Penjualan ke Biaya:** Modul Biaya (pelunasan piutang) memerlukan nomor nota penjualan aktif dari Modul Penjualan agar nilainya dapat dicocokkan dan dilunasi.
*   **Pembelian ke Biaya:** Modul Biaya (pelunasan utang) memerlukan nomor nota tagihan supplier dari Modul Pembelian untuk diproses pembayarannya.
