# STANDAR KUALITAS MODUL VARIANT CUTOVER ERP
## Berbasis ISO/IEC 25010 + Segregation of Duties (SoD) + Proteksi Risiko Operasional Konversi Varian

---

## RUANG LINGKUP DOKUMEN

Dokumen ini menetapkan **standar kualitas minimal yang WAJIB dipenuhi** oleh Modul **Variant Cutover** (Konversi Stok Produk Non-Varian ke Varian) dalam aplikasi ERP. Standar ini mencakup:

| No | Area | Isu yang Dicakup |
|----|------|------------------|
| 1 | **Proteksi Stok Parent** | Stok parent tidak boleh hilang/hangus saat konversi, Qty awal = total Qty variant |
| 2 | **Proteksi Nilai Keuangan** | Nilai aset inventory tidak berubah setelah konversi |
| 3 | **Proteksi Dokumen Menggantung** | Cegah konversi saat masih ada PO/SO/Dokumen aktif pada parent product |
| 4 | **Proteksi Proses 3 Fase** | Atomicity fase Goods Issue, SKU Generation, Goods Receipt |
| 5 | **Proteksi Audit Trail** | Semua mutasi konversi tercatat immutable, parent-variant traceable |
| 6 | **Segregation of Duties (SoD)** | Pemisahan tugas konversi, approval, dan verifikasi stok |
| 7 | **Kepatuhan Regulasi** | Audit trail, retensi data, kepatuhan standar SAP Movement Type |
| 8 | **Proteksi Akses Role** | Hanya Inventory_Manager atau Data_Governance yang boleh konversi |

---

## DAFTAR ISI

1. Functional Suitability (Kesesuaian Fungsional)
2. Reliability (Keandalan)
3. Performance Efficiency (Efisiensi Kinerja)
4. Usability (Kemudahan Penggunaan)
5. Security (Keamanan)
6. Compatibility (Kompatibilitas)
7. Maintainability (Kemudahan Pemeliharaan)
8. Portability (Portabilitas)
9. Quality in Use (Kualitas Saat Digunakan)
10. **Segregation of Duties (SoD) - Pemisahan Tugas**
11. **Compliance & Audit Readiness - Kepatuhan Regulasi**
12. **Proteksi Stok Parent & Alokasi Variant (Parent Stock & Variant Allocation)**
13. **Proteksi Konsistensi Nilai Keuangan (Financial Value Consistency)**
14. **Proteksi Dokumen Menggantung (Open Document Integrity)**
15. **Proteksi Proses Konversi 3 Fase (Three-Phase Conversion Control)**
16. **Skema Cutover & Rollback (Cutover & Rollback Strategy)**

---

## 1. FUNCTIONAL SUITABILITY (Kesesuaian Fungsional)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| FS-01 | **Functional Completeness** | Modul variant cutover WAJIB memiliki fungsi: switching status produk non-varian ke varian, konversi stok parent ke variant (3 fase), auto-generation SKU varian, validasi stok parent nol, validasi open document, approval workflow konversi, dan sistem rollback | Review dokumen & demo fungsional |
| FS-02 | **Functional Correctness** | Total QTY parent sebelum konversi WAJIB sama persis dengan total QTY seluruh variant setelah konversi. Toleransi error = 0%. Nilai aset inventory tidak boleh berubah | Uji 20 skenario konversi berbeda |
| FS-03 | **Functional Appropriateness** | Fitur yang disediakan WAJIB sesuai dengan skema konversi stok (SAP-aligned movement type 561/562/701/702). Tidak boleh ada fitur yang memungkinkan konversi tanpa audit trail | User review & walkthrough |

---

## 2. RELIABILITY (Keandalan)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| RL-01 | **Maturity** | Crash rate < 1 per 500 kali konversi. Tidak ada memory leak setelah 100 kali operasi konversi berturut-turut | Load testing & soak test |
| RL-02 | **Availability** | Modul tersedia 99.5% selama jam operasional gudang/inventory | Monitoring tools |
| RL-03 | **Fault Tolerance** | WAJIB memiliki mode transaksi atomic (database transaction). Jika fase 1 berhasil tetapi fase 3 gagal, sistem WAJIB melakukan roll penuh ke keadaan sebelum konversi. Data tidak boleh dalam state setengah-konversi | Simulasi putus koneksi di tengah konversi |
| RL-04 | **Recoverability** | Jika sistem crash di tengah proses konversi 3 fase, WAJIB ada mekanisme recovery otomatis. Waktu recover < 5 menit | Simulasi force close |

---

## 3. PERFORMANCE EFFICIENCY (Efisiensi Kinerja)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| PE-01 | **Time behavior** | Cek open document parent: < 3 detik (100 skenario). Eksekusi konversi untuk 50 variant: < 10 detik. Rollback konversi: < 5 detik | Stopwatch di server produksi |
| PE-02 | **Resource utilization** | RAM: maksimal 256 MB untuk proses konversi. Storage log: < 50 MB per batch konversi | Task manager / Profiler |
| PE-03 | **Capacity** | Mampu memproses konversi untuk 500+ varian per batch. Mampu menampung 10.000+ histori konversi tanpa penurunan kinerja | Load testing |

---

## 4. USABILITY (Kemudahan Penggunaan)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| US-01 | **Learnability** | User gudang baru tanpa pelatihan formal WAJIB bisa melakukan konversi 1 produk dalam waktu < 15 menit (dengan panduan minimal) | User test 3 user gudang baru |
| US-02 | **Operability** | Tombol aksi utama minimal 48x48 px. Warna: Biru untuk Konversi, Merah untuk Rollback/Batal. Tersedia konfirmasi sebelum eksekusi ("Apakah Anda yakin?") | Inspeksi UI |
| US-03 | **User error protection** | Sistem WAJIB menolak: konversi jika stok parent > 0 dan stok variant sudah ada, konversi tanpa approval supervisor, input QTY variant melebihi QTY parent | Uji coba input yang salah |
| US-04 | **Accessibility** | Tampilan responsif di PC (1024x768) dan tablet (800x1280) | Checklist WCAG 2.1 level A |

---

## 5. SECURITY (Keamanan)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| SC-01 | **Integrity** | Data stok parent yang sudah dikonversi TIDAK BOLEH bisa diedit manual. Setiap perubahan data konversi WAJIB tercatat di Audit Trail (siapa, kapan, parent QTY before/after, variant QTY) | SQL injection test & review |
| SC-02 | **Non-repudiation** | Setiap transaksi konversi WAJIB memiliki nomor unik + timestamp. User tidak bisa menghapus log konversi | Audit log review |
| SC-03 | **Accountability** | Setiap aksi Konversi/Rollback WAJIB memerlukan login ulang atau approval supervisor | Uji coba bypass |
| SC-04 | **Authenticity** | Login WAJIB menggunakan password minimal 6 karakter. Sesi konversi memiliki timeout 15 menit | Uji penetrasi sederhana |
| SC-05 | **Confidentiality** | Data stok dan nilai inventory hanya bisa diakses sesuai role: operator gudang hanya melihat QTY, finance melihat QTY + nilai | RBAC test |

---

## 6. COMPATIBILITY (Kompatibilitas)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| CP-01 | **Interoperability** | WAJIB terintegrasi dengan: Modul Stok (parent stock zeroing, variant stock creation), Modul Akuntansi (jurnal adjustment konversi), Modul Produk (update status has_variants). Setiap konversi sukses memanggil API modul terkait | Integration testing end-to-end |
| CP-02 | **Co-existence** | Modul konversi varian WAJIB dapat berjalan berdampingan dengan transaksi reguler (pembelian, penjualan) tanpa saling mengganggu | Uji coba co-existence |

---

## 7. MAINTAINABILITY (Kemudahan Pemeliharaan)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| MT-01 | **Modularity** | Fase 1 (Goods Issue), Fase 2 (SKU Generation), Fase 3 (Goods Receipt) WAJIB merupakan modul/fungsi terpisah. Satu fase error tidak boleh membuat fase lain dalam state tidak konsisten | Code review & separation test |
| MT-02 | **Analyzability** | Setiap error (exception) WAJIB tercatat di log file yang berisi: file, baris kode, timestamp, stack trace, dan fase konversi yang gagal | Inject error, baca log |
| MT-03 | **Modifiability** | Menambah aturan konversi baru (misal: format SKU baru, mode konversi baru) WAJIB dapat dilakukan tanpa mengubah keseluruhan kode | Effort estimation review |

---

## 8. PORTABILITY (Portabilitas)

| ID | Sub-Karakteristik | Standar Wajib | Metode Verifikasi |
|----|-------------------|---------------|-------------------|
| PT-01 | **Installability** | Instalasi modul konversi < 5 menit. Petunjuk instalasi WAJIB disediakan step by step termasuk skema database | Uji instalasi di 3 environment |
| PT-02 | **Adaptability** | Modul WAJIB mendukung multi-gudang dan multi-cabang. Alur konversi pusat (flow 7881) dan cabang (flow 881) harus konsisten | Uji konversi lintas cabang |

---

## 9. QUALITY IN USE (Kualitas Saat Digunakan)

| ID | Karakteristik | Standar Wajib | Metode Verifikasi |
|----|---------------|---------------|-------------------|
| QU-01 | **Effectiveness** | Minimal 99% konversi berhasil tanpa perlu rollback atau pengulangan | Observasi 30 kali konversi |
| QU-02 | **Efficiency** | Rata-rata waktu proses per konversi (dari input hingga approval) < 15 menit | Stopwatch real process |
| QU-03 | **Satisfaction** | Hasil survey kepuasan user gudang minimal 3.8 dari 5.0 | Kuesioner setelah 1 bulan operasi |
| QU-04 | **Freedom from risk** | Sistem WAJIB menolak: konversi jika stok parent tidak nol (untuk non-variant ke variant), konversi tanpa audit trail, rollback tanpa approval | Uji skenario berisiko |
| QU-05 | **Context coverage** | Sistem WAJIB bekerja di skenario: konversi batch (50+ varian), rollback darurat, konversi ulang setelah rollback | Uji skenario lengkap |

---

## 10. SEGREGATION OF DUTIES (PEMISAHAN TUGAS)

> *Mencegah satu orang melakukan terlalu banyak fungsi yang berisiko terjadinya fraud atau error pada konversi stok*

| ID | Aturan SoD | Standar Wajib | Metode Verifikasi |
|----|------------|---------------|-------------------|
| SoD-01 | **Inisiasi & Approval Konversi** | User yang memulai proses konversi TIDAK BOLEH memiliki akses untuk menyetujui konversi yang sama. Minimal harus ada 2 role terpisah | RBAC test: coba assign kedua akses ke 1 user |
| SoD-02 | **Konversi & Verifikasi Stok** | User yang menjalankan konversi TIDAK BOLEH melakukan verifikasi stok hasil konversi | Uji coba akses silang |
| SoD-03 | **Konversi & Posting Jurnal** | User yang menjalankan konversi TIDAK BOLEH memposting jurnal adjustment konversi ke buku besar | Uji coba akses silang |
| SoD-04 | **Konversi & Rollback** | User yang menjalankan konversi TIDAK BOLEH melakukan rollback atas konversi yang dibuatnya sendiri. Rollback hanya boleh dilakukan oleh Supervisor/Manager | Uji coba user melakukan rollback sendiri |
| SoD-05 | **Input QTY Variant & Alokasi** | User yang menginput alokasi QTY per variant TIDAK BOLEH menyetujui alokasi tersebut | Uji coba akses silang |
| SoD-06 | **Pembuatan Master Data Varian & Konversi** | User yang membuat master data varian baru TIDAK BOLEH menjalankan konversi stok untuk produk tersebut | Uji coba akses silang |

---

## 11. COMPLIANCE & AUDIT READINESS (KEPATUHAN REGULASI)

| ID | Aturan Compliance | Standar Wajib | Regulasi Terkait |
|----|-------------------|---------------|------------------|
| CMP-01 | **Audit Trail Konversi** | Semua log konversi (inisiasi, approve, eksekusi 3 fase, rollback) WAJIB disimpan minimal 5 tahun dan TIDAK BISA DIHAPUS | SOX, ISO 27001 |
| CMP-02 | **Timestamp Server** | Semua entri log konversi WAJIB memiliki timestamp dari server. Timezone konsisten (UTC+7) | SOX, PCI-DSS |
| CMP-03 | **Retensi Data Konversi** | Data histori konversi WAJIB disimpan minimal 5 tahun. Data variant mapping parent-child WAJIB permanen | UU KUP, PDP Law |
| CMP-04 | **Pemisahan Environment** | Data production TIDAK BOLEH digunakan untuk testing konversi. Jika terpaksa, data WAJIB di-anonymize | SOX, ISO 27001 |
| CMP-05 | **Change Management** | Setiap perubahan kode modul konversi ke production WAJIB tercatat: siapa, kapan, apa yang diubah. Approval dari minimal 2 orang | SOX, ISO 27001 |
| CMP-06 | **Backup & Recovery** | Backup database WAJIB setiap hari. RPO <= 24 jam. RTO <= 4 jam. Uji recovery minimal setiap 3 bulan | ISO 27001 |
| CMP-07 | **Enkripsi Data** | Data sensitif (nilai inventory, HPP variant) WAJIB dienkripsi di database. Semua komunikasi menggunakan TLS 1.2+ | PDP Law, PCI-DSS |
| CMP-08 | **Kepatuhan SAP Movement Type** | Proses konversi WAJIB mengadopsi standar SAP movement type: 561 (Initial Load), 562 (Reverse Initial Load), 701 (Selisih Opname Plus), 702 (Selisih Opname Minus) | SAP Best Practices, ISO 9001 |
| CMP-09 | **Hierarki Parent-Variant Traceability** | Sistem WAJIB mempertahankan hubungan hierarki antara SKU varian baru dengan SKU induk asal untuk keperluan recall dan traceability | ISO 9001:2015 |
| CMP-10 | **Konsistensi Total QTY** | Total kuantitas fisik sebelum konversi WAJIB sama persis dengan total kuantitas setelah konversi (Q_awal = Σ Q_varian) | ISO 28000:2007 |
| CMP-11 | **Anti-Fraud Detection** | Sistem WAJIB mendeteksi dan mengirim alert untuk: konversi di luar jam operasional wajar, konversi nilai tidak wajar, konversi oleh user yang sama dari IP/perangkat berbeda | Fraud Management Framework |
| CMP-12 | **Incident Response** | Sistem WAJIB memiliki prosedur: deteksi kegagalan konversi, eskalasi otomatis, pencatatan insiden di log khusus | ISO 27001 |

---

## 12. PROTEKSI STOK PARENT & ALOKASI VARIANT (PARENT STOCK & VARIANT ALLOCATION)

> *Mencegah kehilangan stok, alokasi tidak akurat, dan negative stock saat konversi*

| ID | Aturan | Standar Wajib | Metode Verifikasi |
|----|--------|---------------|-------------------|
| PST-01 | **Larangan Konversi Stok Parent Non-Zero** | Sistem WAJIB menolak konversi jika stok parent tidak bernilai 0 (kecuali mode cutover khusus dengan approval). Untuk mode non-variant ke variant, stok parent HARUS 0 | Uji skenario konversi dengan stok parent > 0 |
| PST-02 | **Verifikasi Stok Real-time** | Setiap inisiasi konversi WAJIB melakukan pengecekan stok parent secara real-time (bukan cache) | Uji 2 user bersamaan konversi produk sama |
| PST-03 | **Alokasi Variant Wajib Input Manual** | Alokasi stok per variant WAJIB diinput oleh user bisnis/gudang, bukan ditebak sistem. Total alokasi WAJIB = total stok parent | Uji skenario alokasi tidak sesuai |
| PST-04 | **Larangan Alokasi Melebihi Stok Parent** | Sistem WAJIB menolak jika total alokasi per variant melebihi stok parent yang tersedia | Uji skenario over-alokasi |
| PST-05 | **Validasi Stok Per Gudang** | Konversi WAJIB dilakukan per gudang. Satu sesi konversi hanya untuk SATU gudang. Stok parent di gudang berbeda tidak terpengaruh | Uji coba konversi multi-gudang |
| PST-06 | **Lock Parent Stock Saat Konversi** | Saat proses konversi berlangsung, stok parent WAJIB di-lock (tidak bisa digunakan untuk transaksi lain) untuk mencegah double-book | Uji 2 user bersamaan |
| PST-07 | **Pelepasan Lock Jika Gagal** | Jika konversi gagal atau di-rollback, lock stok parent WAJIB dilepaskan secara otomatis | Uji simulasi konversi gagal |

---

## 13. PROTEKSI KONSISTENSI NILAI KEUANGAN (FINANCIAL VALUE CONSISTENCY)

> *Mencegah perubahan nilai aset inventory akibat konversi varian*

| ID | Aturan | Standar Wajib | Metode Verifikasi |
|----|--------|---------------|-------------------|
| FVC-01 | **Konsistensi Nilai Total** | Nilai total aset sebelum konversi (Qty Parent x Standard Price Parent) WAJIB sama dengan nilai total setelah konversi (Σ Qty Variant_i x Standard Price Variant_i) | Uji skenario konversi dengan nilai |
| FVC-02 | **Akun Penyeimbang Wajib** | Akun akuntansi penyeimbang (Inventory Adjustment Account) WAJIB digunakan. Debit pengurangan stok parent = Kredit penambahan stok variant | Review jurnal akuntansi |
| FVC-03 | **Validasi HPP Variant** | HPP variant baru WAJIB memiliki mekanisme perhitungan yang jelas (moving average dari parent, atau input manual dengan approval) | Uji skenario perhitungan HPP |
| FVC-04 | **Larangan Nilai Floating** | WAJIB menggunakan tipe data DECIMAL (bukan FLOAT) untuk semua nilai harga, QTY, dan total untuk mencegah rounding error | Code review & SQL review |

---

## 14. PROTEKSI DOKUMEN MENGGANTUNG (OPEN DOCUMENT INTEGRITY)

> *Mencegah konversi produk yang masih memiliki dokumen aktif*

| ID | Aturan | Standar Wajib | Metode Verifikasi |
|----|--------|---------------|-------------------|
| ODC-01 | **Cek Open Purchase Order** | Sistem WAJIB memeriksa apakah parent product memiliki PO yang belum GR/lunas. Jika ada, konversi WAJIB DIBLOKIR | Uji skenario PO aktif |
| ODC-02 | **Cek Open Sales Order** | Sistem WAJIB memeriksa apakah parent product memiliki SO yang belum delivery/invoice. Jika ada, konversi WAJIB DIBLOKIR | Uji skenario SO aktif |
| ODC-03 | **Cek Stock Opname Berjalan** | Sistem WAJIB memeriksa apakah parent product sedang dalam proses stock opname. Jika ada, konversi WAJIB DIBLOKIR | Uji skenario opname aktif |
| ODC-04 | **Cek Transaksi Lain** | Sistem WAJIB memeriksa open movement stock lain (pindah gudang, retur, adjustment). Jika ada, konversi WAJIB DIBLOKIR | Uji skenario mutasi aktif |
| ODC-05 | **Laporan Open Document** | Sistem WAJIB menyediakan laporan detail open document yang memblokir konversi, sehingga user bisa mengambil tindakan | Review laporan |
| ODC-06 | **Mode Transisi Terbatas** | Jika open docs tidak bisa diselesaikan, sistem WAJIB mendukung mode transisi: dokumen lama tetap legacy parent, transaksi baru setelah cutover wajib variant-aware | Uji skenario mode legacy |

---

## 15. PROTEKSI PROSES KONVERSI 3 FASE (THREE-PHASE CONVERSION CONTROL)

> *Memastikan atomicity dan integritas proses konversi yang terdiri dari 3 fase (SAP-aligned)*

| ID | Aturan | Standar Wajib | Metode Verifikasi |
|----|--------|---------------|-------------------|
| TPC-01 | **Transaksi Database Atomic** | Seluruh 3 fase konversi WAJIB berjalan dalam 1 database transaksi (BEGIN TRANSACTION / COMMIT / ROLLBACK). Tidak ada fase yang boleh commit sendiri-sendiri | Inject error di masing-masing fase |
| TPC-02 | **Fase 1: Goods Issue (Adjustment Minus)** | Sistem WAJIB mengurangi stok parent menjadi 0. Movement type 562 atau 702. Tidak boleh ada pengurangan parsial | Verifikasi stok parent setelah fase 1 |
| TPC-03 | **Fase 2: Auto-Generation SKU Variant** | Sistem WAJIB membaca tabel konfigurasi atribut (Warna, Ukuran) dan membentuk SKU: [Parent_SKU]-[Color_Code]-[Size_Code]. WAJIB ada fungsi sanitasi string | Uji format SKU dengan karakter khusus |
| TPC-04 | **Fase 3: Goods Receipt (Initial Load)** | Sistem WAJIB memasukkan stok ke masing-masing SKU variant sesuai alokasi. Movement type 561 atau 701. Total masuk = total keluar di fase 1 | Verifikasi stok variant setelah fase 3 |
| TPC-05 | **Rollback Penuh Jika Gagal** | Jika salah satu fase gagal, sistem WAJIB melakukan roll penuh ke keadaan sebelum konversi. Tidak boleh ada stok parent yang hilang | Simulasi kegagalan di setiap fase |
| TPC-06 | **Status Konversi** | Sistem WAJIB memiliki status konversi: DRAFT, IN_PROGRESS, COMPLETED, FAILED, ROLLED_BACK. Status tercatat di audit trail | Review status transaksi |
| TPC-07 | **Timeout Handling** | Jika sesi konversi timeout (default: 30 menit), sistem WAJIB secara otomatis melakukan rollback | Uji skenario timeout |
| TPC-08 | **Concurrency Control** | Sistem WAJIB mencegah 2 user melakukan konversi pada parent product yang sama secara bersamaan | Uji 2 user bersamaan |

---

## 16. SKEMA CUTOVER & ROLLBACK (CUTOVER & ROLLBACK STRATEGY)

> *Mengakomodasi strategi cutover stok parent ke variant dengan skema aman dan prosedur rollback*

| ID | Aturan | Standar Wajib | Metode Verifikasi |
|----|--------|---------------|-------------------|
| COR-01 | **Freeze Transaksi** | Sebelum cutover, sistem WAJIB mengizinkan freeze transaksi untuk parent product tertentu. Tidak boleh ada transaksi baru selama freeze | Uji skenario freeze transaksi |
| COR-02 | **Cutover via Modul Resmi** | Cutover WAJIB dilakukan melalui modul resmi (konversi_varian), bukan SQL manual. Query UPDATE/INSERT langsung TIDAK DIIZINKAN | Uji skenario bypass modul |
| COR-03 | **Mode Cutover Pusat vs Cabang** | Flow konversi pusat (7881) WAJIB sudah siap produksi. Flow konversi cabang (881) WAJIB lulus UAT sebelum digunakan | UAT cabang end-to-end |
| COR-04 | **Dokumentasi Alokasi** | Setiap sesi cutover WAJIB menyimpan dokumentasi: daftar variant, QTY per variant, user approval, timestamp | Review dokumentasi |
| COR-05 | **Prosedur Rollback Formal** | Rollback WAJIB memiliki prosedur formal: alasan rollback, approval supervisor, pencatatan di audit trail. Rollback tidak boleh dijalankan oleh user yang sama dengan inisiator konversi | Uji skenario rollback |
| COR-06 | **Verifikasi Hasil Cutover** | Setelah cutover, sistem WAJIB menyediakan laporan verifikasi: stok parent = 0, stok variant sesuai alokasi, history mutasi tercatat | Review laporan verifikasi |
| COR-07 | **Notifikasi Stakeholder** | Sistem WAJIB mengirim notifikasi ke stakeholder terkait (inventory manager, finance) saat cutover selesai atau gagal | Uji notifikasi sistem |

---

## DAFTAR PERIKSA WAJIB SEBELUM RELEASE

> **Berlaku untuk setiap rilis. Jika SATU kriteria di bawah ini tidak terpenuhi, rilis DITOLAK.**

| No | Kriteria | Status (L/G) |
|----|----------|--------------|
| 1 | FS-01: Kelengkapan fungsi minimal (3 fase konversi, rollback, approval) | ☐ |
| 2 | FS-02: Total QTY konversi 100% akurat (Q_parent = Σ Q_variant) | ☐ |
| 3 | RL-03: Atomic transaction & rollback otomatis jika fase gagal | ☐ |
| 4 | SC-01: Audit trail konversi lengkap dan immutable | ☐ |
| 5 | SC-03: Konversi/Rollback wajib otorisasi supervisor | ☐ |
| 6 | **PST-01: Sistem menolak konversi jika stok parent > 0 (kecuali mode khusus)** | ☐ |
| 7 | **PST-03: Alokasi variant wajib diinput user (bukan default sistem)** | ☐ |
| 8 | **ODC-01: Cek open PO aktif sebelum konversi** | ☐ |
| 9 | **ODC-02: Cek open SO aktif sebelum konversi** | ☐ |
| 10 | **TPC-01: Atomic database transaction untuk 3 fase** | ☐ |
| 11 | **TPC-05: Rollback penuh jika salah satu fase gagal** | ☐ |
| 12 | **FVC-01: Konsistensi nilai aset sebelum dan sesudah konversi** | ☐ |
| 13 | **FVC-02: Akun penyeimbang (Inventory Adjustment Account) terimplementasi** | ☐ |
| 14 | **COR-01: Freeze transaksi saat cutover berlangsung** | ☐ |
| 15 | **COR-02: Cutover hanya via modul resmi (larangan SQL manual)** | ☐ |
| 16 | **COR-05: Prosedur rollback formal dengan approval** | ☐ |
| 17 | **SoD-01: Inisiator konversi dan approval konversi adalah role berbeda** | ☐ |
| 18 | **CMP-08: Kepatuhan SAP Movement Type (561/562/701/702)** | ☐ |
| 19 | **CMP-10: Hierarki parent-variant traceability** | ☐ |

---

## LARANGAN TEKNIS (DILARANG KERAS)

| ID | Larangan | Alasan | Konsekuensi |
|----|----------|--------|-------------|
| L-01 | Hard delete data konversi (perintah DELETE FROM konversi_varian) | Audit trail hilang, tidak bisa melacak fraud | GAGAL REVIEW |
| L-02 | Konversi stok parent dengan UPDATE/INSERT SQL manual tanpa transaksi operasional | Tidak ada audit trail, stok bisa hilang | GAGAL REVIEW |
| L-03 | Membiarkan stok parent dan variant stock sama-sama aktif tanpa keputusan cutover yang jelas | Double stok, nilai inventory tidak akurat | GAGAL REVIEW |
| L-04 | Menggunakan tipe data FLOAT untuk QTY, harga, atau nilai inventory | Floating point error menyebabkan selisih hitung | GAGAL REVIEW |
| L-05 | Commit database per fase (bukan satu transaksi atomik) | State setengah-konversi jika crash | GAGAL REVIEW |
| L-06 | Memberikan akses inisiasi konversi dan approval konversi ke 1 user yang sama | SoD violation, berisiko fraud | GAGAL REVIEW |
| L-07 | Mengizinkan konversi tanpa audit trail | Tidak bisa diaudit | GAGAL REVIEW |
| L-08 | Menebak alokasi variant secara otomatis tanpa input user | Alokasi tidak akurat, potensi selisih stok | GAGAL REVIEW |

---

## TARGET KPI SETELAH GO-LIVE

| Metrik | Target |
|--------|--------|
| CSAT user gudang | >= 3.8 / 5.0 |
| Rata-rata waktu konversi | <= 15 menit |
| Rollback rate | <= 5% dari total konversi |
| **Selisih stok akibat konversi** | **0 kejadian per bulan** |
| **SoD violation terdeteksi** | **0 kejadian per bulan** |
| **Konversi tanpa audit trail** | **0 kejadian per bulan** |

---

## KEPATUHAN MINIMUM SISTEM MANAJEMEN (LEAN COMPLIANCE BASELINE)

> *Pelengkap ISO/IEC 25010 agar siap audit minimum untuk organisasi dengan tim kecil.*

### Prinsip Implementasi
- Fokus pada kontrol kritikal dengan effort rendah.
- Bukti (evidence) wajib tersedia dan mudah ditelusuri.
- Frekuensi review ringan: bulanan, triwulanan, semesteran.

### Tabel Kontrol Minimum Wajib

| ID | Kontrol Minimum | Standar Acuan | PIC Minimum | Frekuensi | Evidence Minimum | Status |
|----|------------------|---------------|-------------|-----------|------------------|--------|
| LC-01 | Risk register modul konversi varian (top risk + mitigasi) | ISO/IEC 27001:2022 | IT Manager / SA | Triwulanan | Dokumen risk register + tanggal update | MANDATORY |
| LC-02 | Incident response SOP konversi gagal | ISO/IEC 27001:2022 | IT Manager | Semesteran | SOP + log insiden | MANDATORY |
| LC-03 | Inventory adjustment account reconciliation | SOX | Finance Lead | Bulanan | Laporan rekonsiliasi | MANDATORY |
| LC-04 | CAPA log konversi (temuan, akar masalah, aksi) | ISO 9001 | QA Lead | Bulanan | CAPA tracker | MANDATORY |
| LC-05 | BIA ringkas + target RTO/RPO layanan kritikal | ISO 22301 | IT Manager / Business Owner | Tahunan | BIA + tabel RTO/RPO | MANDATORY |

### Compliance Gate pada Release
| No | Compliance Gate | Status (L/G/N/A) | Evidence | Keterangan |
|----|------------------|------------------|----------|------------|
| 1 | LC-01 risk register terupdate | ☐ | | |
| 2 | LC-02 SOP insiden tersedia | ☐ | | |
| 3 | LC-03 rekonsiliasi akun adjustment | ☐ | | |
| 4 | LC-04 CAPA log aktif | ☐ | | |
| 5 | LC-05 BIA dan RTO/RPO valid | ☐ | | |

### Definisi Lulus Kepatuhan Minimum
- Release dinyatakan **LAYAK** jika semua kontrol `MANDATORY` berstatus `L`.
- Evidence wajib tersimpan di repositori dokumentasi proyek dan dapat diaudit.

### Definisi Status Audit
- `L` (Lulus): kontrol terpenuhi, evidence lengkap, masih berlaku sesuai frekuensi review.
- `G` (Gap): kontrol belum terpenuhi atau evidence tidak lengkap/tidak valid.
- `N/A` (Not Applicable): kontrol tidak relevan, wajib ada alasan tertulis + approval.

---

## SUMBER & REFERENSI STANDAR

| Standar | Keterangan |
|---------|-------------|
| **ISO/IEC 25010:2011 & 2023** | Systems and software Quality Requirements and Evaluation (SQuaRE) |
| **ISO 9001:2015** | Sistem Manajemen Mutu - Traceability produk |
| **ISO/IEC 27001:2022** | Keamanan Informasi & Audit Trail |
| **ISO 28000:2007** | Keamanan Rantai Pasok - Konsistensi kuantitas |
| **SOX (Sarbanes-Oxley Act)** | Regulasi kepatuhan untuk Segregation of Duties (SoD) |
| **SAP Best Practices** | Movement Type 561/562/701/702 untuk inventory adjustment |
| **UU PDP No.27/2022** | Perlindungan Data Pribadi Indonesia |

---

## PENUTUP

Dokumen ini bersifat **mengikat** untuk seluruh tim yang terlibat dalam pengembangan modul **Variant Cutover** ERP.

**Pengecualian** terhadap standar ini dapat diberikan oleh Product Manager, namun WAJIB didokumentasikan dalam bentuk *deviation request* tertulis yang disetujui bersama tim compliance dan security.

---

**Disusun oleh:** [Nama Tim / Departemen]
**Disetujui oleh:** [Nama Product Manager / CTO]
**Tanggal Berlaku:** [Tanggal]
**Versi Dokumen:** 1.0
