# Tahap 7 — Persediaan dan Gudang Profesional ## Fondasi `inventory_ledger` menjadi ledger immutable untuk qty dan nilai. `stock_logs` tetap dimirror agar modul lama kompatibel. Qty item dan stock log telah diubah menjadi desimal. Fitur mencakup opening, masuk, keluar, transfer, adjustment, opname dan approval selisih, retur, rusak/hilang, reservation, reorder point, batch, serial/barcode, bin, stock card API, Average/FIFO, valuation, slow/dead stock, serta rekonsiliasi GL. ## Kontrol concurrency - Dokumen memiliki idempotency key unik. - Ledger dan stock log memiliki idempotency unik. - Posting mengunci dokumen, saldo/layer FIFO, dan barcode. - Barcode memakai optimistic version; transaksi bersamaan kedua ditolak. - Trigger DB menolak stock log keluar yang membuat saldo negatif dan mengunci baris item. - Trigger barcode menolak qty negatif atau reserved melebihi qty. - Inventory ledger tidak dapat di-update/delete. ## Penyesuaian Development Backfill legacy menemukan KLEM KABEL -2 dan ISOLASI KABEL -3 di Gudang Cikembar. Dibuat dokumen opening correction untuk membawa keduanya ke nol, lengkap dengan jurnal dan audit. Selisih nilai awal inventory ledger vs GL sebesar Rp891.000 diselesaikan dengan jurnal baseline teridentifikasi `DEV-STAGE7-BASELINE`. Setelah koreksi, ledger dan GL sama-sama Rp154.400.950. Koreksi Development ini tidak boleh disalin otomatis ke Production.