18

Audit Modul Pengadaan (PO) & Hutang Usaha 2026

Updated: Sep 2026Oleh: SystemModul Keuangan & Akuntansi

šŸ“‹ Laporan Audit Komprehensif: Modul Pengadaan & Pembelian (Purchase Order)

ERP BUMDes Bolulango Dokumen ID: AUD-PUR-2026-09 | Tanggal Audit: 9 September 2026 | Auditor: Tim Sistem Finansial & Basis Data BUMDes


šŸŽÆ 1. Eksekutif Ringkasan & Skor Kesehatan Modul#

Audit ini dilakukan secara menyeluruh (end-to-end), mendalam (deep-dive), dan komprehensif terhadap seluruh alur operasional dan integrasi sistem pada modul Pengadaan & Administrasi Pembelian (Purchase Order) di /dashboard/inventori/pembelian.

Modul Pengadaan bukan hanya formulir pencatatan biasa, melainkan Gerbang Utama Arus Masuk (Inbound Gateway) yang menghubungkan stok fisik gudang, mutasi kartu persediaan, jurnal umum akuntansi (GL), neraca saldo per unit, dan kartu hutang usaha (AP).

šŸ“Š Indeks Kesehatan Modul Pengadaan: 100 / 100 (Kategori: Sempurna / Wajar Tanpa Pengecualian)

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ Domain Evaluasi │ Bobot │ Skor │
ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤
│ 1. Integritas Status PO & Proteksi Mutasi Fisik │ 25% │ 100 / 100 │
│ 2. Ketepatan Kuantitas Gudang & Kartu Stok (Anti-Double) │ 25% │ 100 / 100 │
│ 3. Sinkronisasi Buku Besar GL & Keseimbangan Jurnal │ 20% │ 100 / 100 │
│ 4. Integrasi Modul Hutang Usaha (AP) & Aging Schedule │ 15% │ 100 / 100 │
│ 5. Keandalan Guardrails & Penanganan Edge Cases │ 15% │ 100 / 100 │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

[!IMPORTANT] Temuan Signifikan Audit: Audit awal berhasil mendeteksi dan menyelesaikan 3 Cacat Kritis Tingkat Basis Data (Database-Level Defects) yang sebelumnya menyebabkan kegagalan penerimaan barang dan pembukuan jurnal. Setelah penerapan patch remediasi pada Migration 150, 18 dari 18 pengujian simulasi E2E (100%) dinyatakan LULUS (PASSED).


🚨 2. Temuan Cacat Kritis & Tindakan Remediasi#

Selama proses audit dan simulasi pengujian E2E, ditemukan 3 anomali sistemik yang segera diperbaiki pada basis data PostgreSQL:

Memuat diagram alur...

1. Ketidaksesuaian Nama Kolom Kartu Stok (type vs movement_type)

  • Masalah: Pada fungsi database rpc_receive_purchase_goods, perintah SQL melakukan INSERT INTO public.stock_movements (..., type, ...). Skema riil tabel stock_movements mendefinisikan kolom sebagai movement_type.
  • Dampak: Setiap staf gudang mencoba menerima pesanan (klik "Terima Barang"), transaksi ditolak basis data dengan kode error 42703. Barang fisik tidak dapat masuk ke sistem.
  • Tindakan Remediasi: Diperbaiki menjadi movement_type pada Migration 150.

2. Pemicu Konflik Warisan (Legacy Trigger Conflict) & Penggandaan Stok (Double-Counting)

  • Masalah: Terdapat trigger warisan trigger_handle_purchase_status_change pada tabel purchase_transactions yang mencoba memanggil increase_stock_on_purchase_manual(item_record). Selain memicu error cannot cast type record to purchase_items (Code: 42846), trigger ini dan trigger_update_warehouse_stock menyebabkan penambahan stok terjadi dua kali lipat (misal order 5 sak menjadi masuk 10 sak).
  • Dampak: Terjadi selisih kuantitas stok (phantom stock) sebesar 200% dari kuantitas faktur riil.
  • Tindakan Remediasi: Trigger dan fungsi warisan handle_purchase_status_change() resmi di-DROP. Logika mutasi kini terpusat secara atomik (single source of truth) dalam rpc_receive_purchase_goods tanpa risiko duplikasi.

3. Residu Skema Lama pada Modul Pelunasan Hutang (business_unit_id)

  • Masalah: Fungsi rpc_process_supplier_payment lama masih menyisakan referensi kolom usang business_unit_id dan duplikasi kolom unit_id, unit_id saat membentuk jurnal pelunasan hutang kas keluar.
  • Dampak: Fitur pencatatan cicilan hutang supplier di /dashboard/inventori/hutang gagal dieksekusi.
  • Tindakan Remediasi: Skema diselaraskan 100% menggunakan unit_id, nomor voucher BKK otomatis, serta pendebitan Hutang Usaha (2-101) dan pengkreditan Kas/Bank (1-100 / 1-101 / 1-102).

šŸ”¬ 3. Matriks Hasil Pengujian E2E (18 Checkpoints)#

Pengujian diverifikasi secara otomatis menggunakan test suite live database (scripts/audit_po_comprehensive.ts):

NoKategoriNama PengujianHasilDurasiKeterangan
0.1Master DataPengecekan Ketersediaan Pemasok AktifPASSED370msDitemukan 2 pemasok aktif siap transaksi
0.2Master DataPengecekan Ketersediaan Gudang PenyimpananPASSED112ms5 gudang aktif teridentifikasi
0.3Master DataPengecekan Master Katalog Produk PengadaanPASSED201msProduk uji baseline terverifikasi
0.4Master DataPengecekan Kelengkapan COA FinansialPASSED282msPersediaan (1-104/105), Hutang (2-101), Kas (1-100) lengkap
1.1Siklus TunaiPembuatan PO Tunai (Status: ordered)PASSED255msHeader PO & purchase_items terbentuk rapi
1.2Siklus TunaiProteksi Mutasi PrematurPASSED436msStok & jurnal 0% berubah saat status masih ordered
1.3Siklus TunaiPenerimaan Barang via RPC GudangPASSED114msEksekusi atomik rpc_receive_purchase_goods sukses
1.4Siklus TunaiKenaikan Stok Fisik & Kartu StokPASSED293msStok gudang & total produk naik tepat (+5 item), no duplicate
1.5Siklus TunaiKeseimbangan Jurnal GL Pembelian TunaiPASSED203msBalance: Debit Persediaan (1-104) = Kredit Kas (1-100)
2.1Siklus KreditPembuatan PO Tempo (Payment: credit)PASSED198msTercatat jatuh tempo 30 hari, status unpaid
2.2Siklus KreditPenerimaan Barang PO Tempo & Jurnal APPASSED192msBalance: Debit Persediaan = Kredit Hutang Usaha (2-101)
2.3Siklus KreditSinkronisasi Modul Hutang & AgingPASSED91msMuncul di /dashboard/inventori/hutang kategori Current
2.4Siklus KreditPembayaran Cicilan 1 (Partial Payment)PASSED281msStatus update ke partial, sisa hutang terpotong tepat
2.5Siklus KreditPelunasan Penuh (Full Settlement)PASSED299msStatus update ke paid, jurnal kas keluar terbentuk
3.1GuardrailsProteksi Penerimaan Ganda (Anti-Double Receipt)PASSED102msDitolak: "Barang untuk pesanan ini sudah pernah diterima"
3.2GuardrailsProteksi Overpayment HutangPASSED173msDitolak: Pembayaran melebihi sisa hutang diblokir
3.3GuardrailsProteksi Pembayaran Negatif / NolPASSED180msDitolak: Nominal <= 0 diblokir sistem
4.1RollbackPembersihan Transaksi Uji Coba SimulasiPASSED1050msDatabase kembali bersih dan stok produk baseline utuh

šŸ›ļø 4. Arsitektur Sinkronisasi 5 Subsistem#

Setelah audit dan remediasi, modul Pengadaan BUMDes terbukti sinkron secara menyeluruh dengan diagram alur berikut:

[Formulir PO] ──► (Status: ordered) ──► TIDAK ADA mutasi stok / jurnal
 │
 [Penerimaan Fisik di Gudang]
 │
 ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 ā–¼ ā–¼
[1. Kartu Stok & Gudang] [2. Buku Besar / GL]
 - stock_movements (IN) - Debit: Persediaan Barang (1-104xx)
 - warehouse_stocks (+Qty) - Kredit:
 - products.current_stock (+Qty) * Tunai ──► Kas / Bank (1-100xx)
 * Tempo ──► Hutang Usaha (2-101xx)
 │
 ā–¼
 [3. Modul Hutang Usaha (AP)]
 - Aging Schedule (0-30 Hari)
 - Pelunasan Bertahap (BKK)
 - Debit 2-101, Kredit Kas

šŸ’” 5. Rekomendasi Operasional & SOP#

  1. Pemisahan Peran Operasional (Segregation of Duties):
  • Staf Administrasi / Pengadaan bertugas menerbitkan PO (status: ordered).
  • Staf Gudang (Logistics Officer) bertugas memeriksa fisik barang datang dan menekan tombol "Terima Barang" (rpc_receive_purchase_goods).
  • Staf Keuangan bertugas memvalidasi faktur vendor dan melakukan pembayaran di menu Hutang Usaha (rpc_process_supplier_payment).
  1. Audit Periodik Terjadwal:
  • Skrip audit simulasi scripts/audit_po_comprehensive.ts disarankan dijalankan setiap awal bulan atau sebelum proses tutup buku (closing) untuk memastikan konsistensi saldo persediaan dan hutang.
  1. Dokumen Pendukung Fisik:
  • Setiap penerimaan barang di gudang disarankan mengunggah foto fisik Berita Acara Serah Terima (BAST) atau surat jalan vendor melalui tombol unggah bukti yang telah tersedia.

Laporan ini diterbitkan secara sah dan sistemik sebagai bukti kepatuhan integritas modul finansial dan operasional ERP BUMDes Bolulango.

Apakah panduan ini membantu Anda?