# 🏔️ PT. Everest - ERP Web (Global Rules)

Spesifikasi bisnis, teknologi, dan kebijakan mutasi stok untuk aplikasi ERP Web PT. Everest.

---

## 1. Aturan Bisnis & Integrasi Stok
*   **Dual-Write Stock Locker:**
    *   Setiap kali menulis/mengubah persediaan produk dagangan, sistem harus menulis ke `stock_locker` (parent) dan `stock_locker_variant` (variant) secara paralel.
    *   Satu-satunya entry point aman adalah model **`ComLockerStockDualWrite`**.
*   **Sentinel Varian:**
    *   Produk non-varian wajib menggunakan `variant_id = 1` sebagai sentinel pada tabel locker varian.
    *   Baris dengan `variant_id < 0` wajib di-skip (tidak ditulis ke locker varian).
*   **FIFO Average Engine:**
    *   Penilaian HPP persediaan menggunakan moving average FIFO yang dievaluasi saat status transaksi menjadi `approved`.

---

## 2. Struktur Database Everest
*   **`transaksi`**: Menyimpan header transaksi.
*   **`transaksi_data`**: Menyimpan rincian item belanja.
*   **`transaksi_data_registry`**: Registrasi audit log status transaksi (Hold -> Request -> Approved -> Closed).
