# Analisis Masalah: Serial Number Produk 25137 Tidak Tampil di LedgerV2

Dokumen ini mencatat analisis mengenai alasan mengapa produk ID **25137** (`KABEL SUPREME NYM 4 X 4 - POS`) tidak menampilkan daftar serial number pada Buku Pembantu Persediaan (`/LedgerV2/viewBalances_l1/RekeningPembantuProduk/1010030030`).

---

## 1. Temuan Diagnosa Data (Database)

* **Flag Serial Produk**:
  * Kolom `jml_serial` pada tabel `produk` bernilai `1` (Aktif/Menggunakan Serial).
* **Data Serial Terdaftar**:
  * Pada tabel `produk_per_serialnumber`, data serial number untuk produk `25137` **telah terdaftar sebanyak 15 item** dengan status aktif (`status = 1`, `trash = 0`).
  * Serial number tersebut di-generate melalui **Transaksi ID `845267`** (Nomor Transaksi: `1334sc.-1.-1.211`).
* **Data pada Cache Sub-Ledger**:
  * Pada tabel `_rek_pembantu_produk_perserial_cache`, data untuk `produk_id = 25137` bernilai **0 (kosong)**.

---

## 2. Analisis Penyebab Teknis

### A. Transaksi Masih Berstatus Draft (`1334sc`)
Transaksi ID `845267` memiliki jenis transaksi (`jenis`) **`1334sc`** yang merupakan **Step 2 (Scan QR/Barcode)** dari alur transaksi **Konversi Produk (Pusat)** (`1334`).
* Karena transaksi belum mencapai tahap persetujuan final (Step 3: `1334` / Otorisasi Konversi Produk), transaksi ini belum secara resmi menjurnal mutasi persediaan di buku pembantu (`_rek_pembantu_produk_cache` maupun `_rek_pembantu_produk_perserial_cache` memiliki `transaksi_id = 0` dan `transaksi_no = 0`).

### B. Konfigurasi Komponen Akunting `1334` Tidak Mendukung Serial Ledger
Berdasarkan file konfigurasi akunting [heTransaksi_core.php](file:///w:/everest_10jul/application/config/heTransaksi_core.php#L29906), transaksi jenis `1334` hanya mendaftarkan komponen ledger berikut di bawah bagian `"components" -> "detail"`:
```php
array(
    "comName" => "RekeningPembantuProduk",
    "loop" => array(
        "persediaan produk" => "-sub_hpp",
    ),
    ...
)
```
Sistem **tidak mendaftarkan** komponen `ComRekeningPembantuProdukPerSerial` atau `ComRekeningPembantuProdukPerSerialIntransit`. Akibatnya, ketika transaksi konversi diposting ke ledger, hanya saldo kuantitas produk umum yang bertambah, sedangkan data serial numbernya tidak disalin ke tabel cache.

### C. Skrip Perbaikan/Sync Bersifat Hardcoded
Terdapat skrip sinkronisasi manual `copySerialNumber()` di [ToolsGenerator.php](file:///w:/everest_10jul/application/controllers/ToolsGenerator.php#L6243) untuk menyalin serial number yang tertinggal ke dalam cache, namun kueri pencariannya dikunci secara hardcode pada transaksi ID tertentu saja:
```sql
WHERE p.status = '1' 
  AND p.trash = '0' 
  AND p.cabang_id != -100
  AND p.transaksi_id = '846523'  <-- Terkunci Hardcode
```
Hal ini menyebabkan transaksi ID `845267` milik produk `25137` tidak ikut tersalin saat utilitas dijalankan.
