# 📘 Panduan Modul: Penjualan Non Paket (Eceran / Retail Direct)

## 1. Kode Transaksi & Tipe (`jenisTr`)
Modul ini mengelola transaksi penjualan langsung di kasir/retail eceran untuk item non-paket (satuan langsung) tanpa melalui penawaran sales order:
- **`58` (Varian Non-Paket)**: Penjualan Eceran / Non-Paket Direct

---

## 2. Aliran Finansial & Mutasi Persediaan
Mencatat pengurangan stok persediaan Finished Goods eceran langsung ke kas masuk:

### Akun & Persediaan Terkait:
- **`1010030030`**: Persediaan Finished Goods (FG) - Dikredit via HPP (`-hpp`).
- **`1010010010`**: Kas/Bank (Kasir) - Didebet langsung untuk pembayaran tunai/debit.
- **Stock Locker & FIFO**: Pengeluaran real-time stock menggunakan `penulisan ganda stock locker` untuk update status `active` ke `hold` lalu dirilis saat finalisasi transaksi kasir.

---

## 3. Aturan Bisnis & Integrasi Modul
- Transaksi langsung lunas (cash/EDC/e-wallet) tanpa termin piutang jangka panjang.
- **Wajib Dual-Write**: Untuk menjaga konsistensi data stock locker, wajib memanggil `penulisan ganda stock locker` dengan sentinel `1` pada `variant_id` jika barang yang terjual adalah produk standar (non-varian).

---

## 🛠️ Lampiran Teknis (Hasil Audit Codebase)

### Berkas Konfigurasi Utama:
- `coTransaksiCore.php`

### Kode Transaksi (`jenisTr`) Terdaftar:
- **`1582`**
- **`1982`**
- **`19822`**
- **`382`**
- **`582`**
- **`5822`**
- **`584`**
- **`982`**
- **`9822`**

### Komponen Bisnis (`components`) Terlibat:
- `FifoAverage`
- `FifoProdukJadi`
- `Jurnal`
- `LockerStock`
- `LockerStockMutasi`
- `LockerValue`
- `PaymentAntiSource`
- `PaymentAntisourceCustomer`
- `PaymentSource`
- `PaymentSourceReference`
- `PaymentUangMukaCustomer`
- `PriceProtector`
- `ProdukSerialNumberExtractor`
- `Rekening`
- `RekeningPembantuCustomer`
- `RekeningPembantuCustomerDetail`
- `RekeningPembantuCustomerValas`
- `RekeningPembantuHpp`
- `RekeningPembantuKas`
- `RekeningPembantuLRLainlain`
- `RekeningPembantuPenjualan`
- `RekeningPembantuPenjualanItemByJenis`
- `RekeningPembantuPenjualanItemByProdukJenis`
- `RekeningPembantuPenjualanKonsumen`
- `RekeningPembantuPenjualanSeller`
- `RekeningPembantuProduk`
- `RekeningPembantuProdukPerSerial`
- `RekeningPembantuReturnPenjualan`
- `RekeningPembantuReturnPenjualanItemByJenis`
- `RekeningPembantuReturnPenjualanItemByProdukJenis`
- `RekeningPembantuReturnPenjualanKonsumen`
- `RekeningPembantuReturnPenjualanSeller`
- `RekeningValueDetail`
- `ReleaserDueDate`
- `Signature`
- `Sync2GatesRsltItems`
- `TransaksiItemReturnUpdate`
- `TransaksiKreditLimit`
- `TransaksiStepUpdater`
- `ValidateNewPL`
