# Fase 2 UAT Quick Check

Dokumen ini dipakai untuk UAT teknis fase 2 (variant identity di followup/locker/cache) secara cepat dan konsisten.

## Scope UAT Fase 2 Saat Ini

- Hardening `penjualan/FollowUp` agar item varian parent yang sama tidak saling timpa saat proses followup.
- Hardening jalur `push pre-purchase` agar check stock memakai identity `produk|variant`.
- Hardening `shoppingCart reset` pembelian/penjualan agar release locker membaca `produk_id + variant_id`.
- Tambahan wrapper kalkulasi stok cache by identity di `MdlLockerStockCache`.
- Baseline `requeststok` untuk selector/cart varian: parent product membuka `variant picker`, lalu cart menyimpan key item `variant:*`.

## Prasyarat

- Tabel varian sudah ada:
  - `stock_locker_varian`
  - `stock_locker_mutasi_varian`
  - `rek_cache_persediaan_produk_varian_fifo`
- Produk uji punya minimal 2 varian aktif pada parent yang sama.
- Saldo stok varian sudah ada (hasil cutover atau transaksi sebelumnya).

## Skenario UAT

1. Followup penjualan multi-varian parent sama:
   - Buat/siapkan dokumen sumber dengan 2 baris varian berbeda untuk parent yang sama.
   - Jalankan flow followup sampai preview.
   - Pastikan setiap baris varian tetap terpisah (tidak merge/overwrite).

2. Push ke pre-purchase saat stok sebagian kurang:
   - Siapkan kondisi: varian A stok cukup, varian B stok kurang.
   - Jalankan followup.
   - Pastikan `pushToRequestPO` hanya terisi untuk varian yang kurang.

3. Reset shopping cart:
   - Tambah item varian ke cart (pembelian dan penjualan).
   - Jalankan reset cart.
   - Pastikan saldo `hold` kembali ke `active` pada identity varian yang benar.

4. Jalur non-varian:
   - Ulangi skenario 1-3 untuk item non-varian.
   - Pastikan flow lama tetap berjalan normal (tidak regress).

5. Selector + cart requeststok:
   - Buka modul `requeststok` dan pilih produk parent yang memiliki varian.
   - Pastikan dialog `variant picker` muncul dan bisa isi qty per varian.
   - Simpan ke cart, lalu edit qty dan hapus item varian.
   - Pastikan setiap varian tetap baris terpisah dan aksi edit/hapus tidak memengaruhi varian lain pada parent yang sama.

## Kriteria Lulus

- Tidak ada overwrite item antar varian parent yang sama.
- Tidak ada mismatch release locker saat reset cart.
- Non-varian tetap stabil.
- Tidak ada error PHP/DB di log untuk flow yang diuji.

## SQL Verifikasi Cepat

- Gunakan: `docs/sql/20260409_phase2_uat_smoke.sql`
