# 🔄 PT. INDOSAN - ERP Web - Modul Konversi Varian

> [!IMPORTANT]
> **STATUS MODUL: NON-AKTIF DI VERSI LIVE (BELUM LAUNCHING)**
> Modul `konversi_varian` (jenisTr `881`, `7881`) sepenuhnya **tidak aktif / belum digunakan** di versi produksi/live PT. INDOSAN saat ini. Fitur ini masih berada dalam masa persiapan peluncuran (`new_san_variant` belum launching) dengan feature flag `singleVariantStandard.enabled = false`.

Aturan spesifik untuk pengembangan, alur mutasi, dan validasi pada modul `konversi_varian` (re-grading & konversi produk yang memiliki varian) PT. INDOSAN.

---

## 1. Kode Transaksi (`jenisTr`) & Alur Langkah

Modul ini menangani konversi fisik barang yang memuat spesifikasi variasi (seperti ukuran, warna, tipe kemasan):
*   **`881`**: Product Varian Conversion (Branch) — Pengajuan dan konversi produk bermultivarian di tingkat cabang.
*   **`7881`**: Product Varian Conversion (Pusat) — Pengajuan dan konversi produk bermultivarian di tingkat holding/kantor pusat.

---

## 2. Alur Mutasi Persediaan & Dual-Write Variant

### 2.1 Alokasi dan Pelepasan Variant Locker
1.  **Draft (Step 1):** Saat barang dipilih di keranjang belanja, kuantitas varian asal dipindahkan dari status `active` ke `hold` menggunakan **`penulisan ganda stock locker`**.
    *   Sistem mencatat perubahan di tingkat SKU utama (`stock_locker`) dan detail variannya (`stock_locker_variant`).
2.  **Otorisasi (Step 2):**
    *   **Barang Sumber:** Mengubah status stok `hold` menjadi `moved` (stok berkurang permanen).
    *   **Barang Hasil Konversi:** Menambahkan stok langsung ke status `active` di gudang tujuan.
    *   Menggunakan komponen **`LockerStockVarian`** dan **`LockerStockMutasiVarian`** untuk mengelola data variant di tingkat holding/pusat.

### 2.2 Alur Valuasi HPP Varian
*   Pre-processor memanggil **`FifoAverageConvertion`** atau **`FifoAverage`** untuk mengambil harga pokok (HPP) dari varian asal yang berkurang.
*   HPP tersebut kemudian disalurkan/dikapitalisasi sebagai HPP masuk untuk varian hasil konversi.

---

## 3. Penjurnalan Otomatis (Jurnal Akuntansi)

Modul ini memindahkan nilai saldo buku persediaan dari satu varian produk ke varian lainnya:
*   **Debet:** `1010030030` (Persediaan Produk Jadi - Varian Hasil Konversi)
*   **Kredit:** `1010030030` (Persediaan Produk Jadi - Varian Asal Konversi)
*   Menggunakan komponen **`Jurnal`** dan **`Rekening`** untuk menghasilkan entri pembukuan double-entry yang seimbang.

---

## 🛠️ Lampiran Teknis (Hasil Audit Codebase)

### Berkas Konfigurasi Utama:
- `coTransaksiCore.php`

### Kode Transaksi (`jenisTr`) Terdaftar:
- **`881`**
- **`881r`**
- **`7881`**
- **`7881r`**

### Komponen Bisnis (`components`) Terlibat:
- `FifoAverage`
- `FifoAverageConvertion`
- `FifoProdukJadi`
- `Jurnal`
- `LockerStock`
- `LockerStockMutasi`
- `LockerStockMutasiVarian`
- `LockerStockVarian`
- `Rekening`
- `RekeningPembantuProduk`
