﻿# UAT Multi-Kondisi CRM - 2026-04-27

## Ringkasan
Dataset uji sudah dibuat di DB `san_sarana_18feb`, tabel `penjualan_transaksi_data_crm_bridge`, untuk 4 skenario CRM prioritas.

Kunci data:
- `jenisTr`: `5822` (sales penjualan)
- `client_id`: `2817`
- `customer_id`: `149`
- `estimate_id`: `9301`, `9302`, `9303`, `9304`

## URL UAT
1. Halaman daftar order CRM:
- `https://demo.mayagrahakencana.com/san_sarana_8apr/penjualan/Create/index/5822?pihakMainExec=local`

2. Preview per skenario:
- S1 varian lengkap: `https://demo.mayagrahakencana.com/san_sarana_8apr/penjualan/Create/previewCrm/5822/9301`
- S2 non-varian normal: `https://demo.mayagrahakencana.com/san_sarana_8apr/penjualan/Create/previewCrm/5822/9302`
- S3 legacy varian tanpa variant_id: `https://demo.mayagrahakencana.com/san_sarana_8apr/penjualan/Create/previewCrm/5822/9303`
- S4 campuran varian + non-varian: `https://demo.mayagrahakencana.com/san_sarana_8apr/penjualan/Create/previewCrm/5822/9304`

## Hasil Verifikasi DB (sudah dieksekusi)
1. S1 (`estimate_id=9301`)
- `item_rows=3`, `variant_rows=3`, `non_variant_rows=0`
- status: `VARIANT_OK`

2. S2 (`estimate_id=9302`)
- `item_rows=2`, `variant_rows=0`, `non_variant_rows=2`
- status: `NON_VARIANT_OK`

3. S3 (`estimate_id=9303`)
- `item_rows=2`, `variant_rows=0`, `non_variant_rows=2`
- produk master `has_variants=1`, tetapi payload `variant_id` kosong
- status: `LEGACY_NEEDS_STAGING`

4. S4 (`estimate_id=9304`)
- `item_rows=2`, `variant_rows=1`, `non_variant_rows=1`
- status: campuran valid

## Catatan Penting dari Cek Logic
1. Jalur `penjualan/_processSelectProduct/selectCrm` saat ini belum memaksa hold/staging untuk kasus legacy (`has_variants=1` namun `variant_id` kosong).
2. Artinya S3 kemungkinan masih bisa masuk cart sebagai item non-varian, sehingga perlu patch khusus jika rule bisnis mengharuskan staging.

## Query Verifikasi Cepat
```sql
SELECT estimate_id,
       COUNT(*) AS item_rows,
       SUM(produk_ord_jml) AS qty_total,
       SUM(CASE WHEN IFNULL(variant_id,0)>0 THEN 1 ELSE 0 END) AS variant_rows,
       SUM(CASE WHEN IFNULL(variant_id,0)=0 THEN 1 ELSE 0 END) AS non_variant_rows
FROM penjualan_transaksi_data_crm_bridge
WHERE estimate_id IN (9301,9302,9303,9304)
  AND status=1 AND trash=0
GROUP BY estimate_id
ORDER BY estimate_id;
```

## Cleanup Setelah UAT
```sql
DELETE FROM penjualan_transaksi_data_crm_bridge
WHERE estimate_id IN (9301,9302,9303,9304);
```
