# Fase 1 UAT Quick Check

Dokumen ini dipakai untuk menutup checkbox UAT fase 1 secara cepat, terukur, dan konsisten antar tim.

## Prasyarat

- Migration kontrak varian transaksi sudah dijalankan.
- Migration `variant_price_mode` sudah dijalankan.
- Tabel stok varian (`stock_locker_varian` + tabel support) sudah tersedia.
- Guard aktivasi varian sudah aktif di `ProductVariantSettings`.
- Scope harga fase 1 tetap `GLOBAL` (mode `VARIANT` belum diaktifkan untuk transaksi).

## Urutan Uji (Disarankan)

1. Master non-varian: create, edit, save, lalu pastikan tetap bisa dipilih di transaksi.
2. Master varian: create attr, generate varian, save, lalu pastikan status varian aktif tersimpan.
3. Pembelian non-varian: buat PO, simpan, cek preview dan invoice.
4. Pembelian varian (`GLOBAL`): pilih parent, isi qty per varian di picker, simpan PO.
5. GRN varian dari PO: follow-up step 3 pada modul pembelian, pastikan qty per varian terbawa.
6. Penjualan non-varian: transaksi normal, simpan, cetak invoice.
7. Penjualan varian (`GLOBAL`): pilih parent, isi qty per varian, simpan, cek invoice.
8. Guard open-doc legacy: coba aktifkan varian pada produk yang masih punya dokumen legacy terbuka, harus ditolak.
9. Guard parent-stock legacy: coba aktifkan varian pada produk dengan stok parent legacy belum selesai cutover, harus ditolak.
10. Validasi stok varian: setelah GRN/Jual, cek mutasi stok bergerak pada variant yang benar.

## Evidence Minimum Per Skenario

- URL transaksi yang diuji.
- Nomor dokumen hasil simpan.
- Screenshot preview/follow-up/invoice.
- Hasil query smoke-check dari `docs/sql/20260409_phase1_uat_smoke.sql`.
- Status akhir: `PASS` atau `FAIL`.

## Kriteria PASS Fase 1

- Jalur beli, terima, jual untuk varian berjalan pada mode harga `GLOBAL`.
- Jalur non-varian tidak regress.
- Guard transisi legacy (open docs + parent stock) benar-benar menahan aktivasi varian.
- Tidak ada baris transaksi ambigu/ghost pada detail dokumen.
