# 🏗️ PT. Everest - ERP Web - Modul Penjualan Project

Aturan spesifik untuk pengembangan, alur mutasi persediaan, dan penjurnalan modul `penjualanproject` (penjualan proyek instansi/korporat) PT. Everest.

---

## 1. Kode Transaksi (`jenisTr`) & Alur Langkah

### 1.1 Project Sales (Penjualan Proyek) — `588`
*   **Step 1 (`588spo`):** SALES PRE ORDER PROJECT (Penyusunan draf penawaran/kontrak proyek oleh Sales).
*   **Step 2 (`588so`):** SALES ORDER PROJECT (Persetujuan kontrak proyek oleh SPV).
*   **Step 3 (`588spd`):** PACKING LIST PROJECT (Pengiriman barang/jasa material proyek secara bertahap).
*   **Step 4 (`588`):** CLOSING PROJECT (Penerbitan tagihan invoice final/termin proyek).

### 1.2 Transaksi Pendukung Lainnya
*   **`5882` / `5882spo` / `5882so`**: Project Sales Support (Dukungan Admin Proyek).
*   **`9822` / `9822r`**: Retur penjualan proyek.

---

## 2. Alur Mutasi Material & Pembatasan Proyek
*   **Stok Khusus Proyek:** Barang/material proyek dikeluarkan dari gudang utama dan dialokasikan ke proyek terkait melalui model `MdlProdukProject`.
*   **Pengiriman Bertahap (Partial Delivery):** Pengiriman barang proyek (`588spd`) dicatat secara bertahap dan divalidasi agar jumlah total barang terkirim tidak melebihi kuota kontrak awal proyek yang tersimpan dalam draf penjualan (`588so`).
*   **Validasi Cabang Proyek:** Penjualan proyek wajib mencantumkan cabang pelaksana proyek (`branch`) yang bertipe `.project` untuk membedakan dengan cabang retail biasa.

---

## 3. Penjurnalan Otomatis (Closing Project - `588`)
*   **Debet:** `1010020010` (Piutang Dagang Customer Proyek)
*   **Kredit:** `4010110` (Pendapatan Penjualan Proyek)
*   **Debet:** `5010110` (HPP Penjualan Proyek)
*   **Kredit:** `1010030030` (Persediaan Produk Proyek / Barang Keluar)
