# BLUEPRINT CETAK BIRU MODUL: PRODUKSI PROSES (MULTI-PHASE MANUFACTURING)
**Modul:** `produksiproses`  
**Workspace:** `new_san_variant`  
**Standard:** Single Variant Standard & Dual-Write Rollout  
**Tanggal Analisis:** 2026-07-29  

---

## 1. IDENTITAS MODUL

- **Nama Modul:** `produksiproses`
- **Pola Kompleksitas:** **Transaksi Kompleks** (Multi-Phase Process Manufacturing, Work-in-Progress / WIP Tracking, Phase-based BOM Variant Resolution via `_processSelectProductAssembling::selectFase`, Multi-Step Approval Workflows, & Dual-Write Stock Rebalancing).
- **Jenis Transaksi (`jenisTr`):**
  - `776`  : Master Work Order Produksi Proses
  - `7761` : Fase 1 - Persiapan & Pemotongan Bahan
  - `7762` : Fase 2 - Assembling & Pengelasan
  - `7763` : Fase 3 - Finishing & Coating
  - `7764` : Fase 4 - Quality Control (QC) & Quality Assurance
  - `7765` : Fase 5 - Final Packaging & Serah Terima Barang Jadi (FG)

---

## 2. DAFTAR FUNGSI & LOGIKA BISNIS (REVERSE ENGINEERING)

### 2.1 Base Controller & Configuration

#### [Modul_Controller.php](file:///c:/xampp/htdocs/new_san_variant/application/modules/produksiproses/controllers/Modul_Controller.php)
- **Fungsi `__construct()`**: Inisialisasi segmen `jenisTr` fase produksi, config loader, & mongo table list.

---

### 2.2 Phase-Based BOM Engine & WIP Tracking

#### [_processSelectProductAssembling.php](file:///c:/xampp/htdocs/new_san_variant/application/modules/produksiproses/controllers/_processSelectProductAssembling.php)
- **Fungsi `selectFase()`**:
  - *Logic*: Menarik alokasi komponen BOM bervarian yang khusus dikonsumsi pada fase produksi aktif (`7761` s.d. `7765`).
  - Menghitung akumulasi nilai WIP (Work-in-Progress) dari fase sebelumnya dan mentransfer nilai HPP bertahap ke fase berikutnya.

#### [Create.php](file:///c:/xampp/htdocs/new_san_variant/application/modules/produksiproses/controllers/Create.php)
- **Fungsi `index()`, `preview()`, `save()`**: Entry draf perintah kerja per-fase produksi, mengunci stok bahan baku fase aktif di `stock_locker` dan `stock_locker_variant`.

---

### 2.3 Executing & FollowUp Approval Per-Fase

#### [FollowUp.php](file:///c:/xampp/htdocs/new_san_variant/application/modules/produksiproses/controllers/FollowUp.php)
- **Fungsi `doFollowup()`** *(Execution Phase Completion)*:
  - *Query & Models*:
    1. **WIP Transfer**: Pindah status barang setengah jadi (WIP) dari fase $N$ ke fase $N+1$.
    2. **Dual-Write Stock Rebalancing**: Memanggil `ComLockerStockDualWrite::pair()` untuk pelepasan stok bahan baku dan akumulasi nilai barang jadi bervarian pada fase akhir (`7765`).
    3. **Jurnal Fase Produksi**: Memanggil `ComJurnal` untuk mencatat Persediaan WIP per-fase (D) vs Bahan Baku (K) & Beban Operasional Produksi.

---

## 3. IDENTIFIKASI PERBEDAAN DENGAN MOCKUP GLOBAL

| No | Komponen / Fitur Unik | Deskripsi & Perbedaannya dengan Mockup Standar |
|:--:|:----------------------|:------------------------------------------------|
| 1 | **Phase-Based BOM Selector (`selectFase`)** | Penarikan komponen bahan baku bervarian secara selektif per-tahapan fase manufaktur (`7761` - `7765`). |
| 2 | **WIP (Work-In-Progress) Value Accumulation** | Akumulasi biaya bahan baku, tenaga kerja, dan overhead dari fase awal hingga menjadi HPP Barang Jadi. |
| 3 | **Multi-Phase Dual-Write Rebalancing** | Dual-write stock locker untuk pelepasan bahan baku dan penerimaan barang jadi bervarian pada fase penyelesaian. |

---

## 4. ARSITEKTUR KODE BARU (THE BLUEPRINT)

### 4.1 Struktur Controller Baru

```
application/modules/produksiproses/
├── config/
│   ├── coTransaksiCore.php
│   ├── coTransaksiUi.php
│   ├── coTransaksiLayout.php
│   └── coTransaksiValues.php
├── controllers/
│   ├── Modul_Controller.php       # Base controller
│   ├── Create.php                 # Form Perintah Kerja Multi-Fase
│   ├── FollowUp.php               # Approval & Execution Transition Per-Fase
│   ├── Transaksi.php              # Multi-Phase Order List
│   ├── ActivityReport.php         # Laporan Tracking Produksi
│   ├── History.php                # Riwayat Fase Produksi
│   ├── Printing.php               # Cetak Kartu Router Produksi / SPK Fase
│   ├── ViewDetails.php            # Modal Detail (Multi-Variant Safe)
│   ├── _processSelectProductAssembling.php # Phase BOM Variant Engine
│   └── _shoppingCart.php          # Cart Manager
└── views/
    ├── transaksi_modul.php
    ├── shoppingCart.php
    └── printing.php
```

---

### 4.2 Panduan Langkah-demi-Langkah Developer

1. **Langkah 1: Sinkronisasi Method `selectFase()` di `_processSelectProductAssembling.php`**
   - Pastikan penarikan formula BOM memperhatikan `variant_id` dan nomor fase aktif.

2. **Langkah 2: Terapkan Dual-Write Stock Rebalancing pada `FollowUp.php`**
   - Gunakan `ComLockerStockDualWrite::pair()` untuk pelepasan stok bahan baku dan serah terima FG bervarian.

3. **Langkah 3: Verifikasi PHP 5.6 & Update UAT Checklist**
   - Lakukan linting `C:\xampp\php\php.exe -l` dan update `docs/uat-checklist.md`.

---

### 5. KESIMPULAN & STATUS EKSEKUSI

- 🟢 **Pekerjaan Selesai (Completed & Verified)**:
  1. Blueprint modul `produksiproses` diselesaikan.
  2. File [blueprint_produksiproses.md](file:///c:/xampp/htdocs/new_san_variant/blueprint_produksiproses.md) dan `dev-jurnal.md` diterbitkan.
