# Penjualan Hotspot Decomposition Plan (edited by glg)

Dokumen ini menjadi rencana eksekusi bertahap untuk mendorong skor kualitas modul penjualan menuju 10/10 tanpa mengubah payload endpoint dan tanpa menyentuh folder endpoint.

## Target Skor
- Best Practice Engineering: 9.2 -> 9.8+
- Odoo-aligned Practice: 9.1 -> 9.8+
- SAP-aligned Control Readiness: 9.0 -> 9.7+

## Prinsip
- Tidak mengubah API contract.
- Perubahan kecil, reversibel, dan berbasis test.
- Setiap fase wajib menurunkan kompleksitas atau menaikkan bukti kontrol.

## Fase 1 (Selesai)
- Refactor fungsi delete transaksi tersimpan menjadi helper modular.
- Tambah audit trail delete (`transaksi_delete_audit`).
- Tambah guard kualitas penjualan (`scripts/ci/run_penjualan_quality_guard.py`).
- Tambah budget fungsi hotspot agar complexity tidak naik lagi.

## Fase 2 (Selesai)
- `TransaksiPenjualanController.__init__` dipecah ke helper inisialisasi bertanggung jawab tunggal.
- `TransaksiPayloadService.build_transaksi_payload` dipecah ke sub-builder:
  - financial context builder
  - identity builder
  - rule context builder
  - transaksi data tuple/dict builder
- Budget complexity diperketat pada quality guard untuk hotspot baru hasil dekomposisi.

## Fase 3 (Selesai)
- `TransaksiPenjualanView.build_barang_table_and_diskon_info` dipecah menjadi section builder:
  - init table builder
  - diskon panel builder
  - info pembayaran panel builder
- `TransaksiLookupHargaService.cari_barang_by_id` dipecah ke helper query/normalisasi:
  - produk identity loader
  - harga list resolver
  - diskon grosir resolver
  - diskon free resolver
- Budget quality guard diperketat untuk hotspot view + lookup harga.

## Kriteria Exit Menuju 10
- Semua stage quality gate lulus stabil 3 siklus berturut-turut.
- Tidak ada fungsi hotspot yang melewati budget.
- Tidak ada temuan high-risk laten pada counter, delete/audit, dan input handling.
- Bukti regresi: test penjualan utama lulus penuh dengan hasil konsisten.
