Lanjut ke konten
Samkarsa Logbook

Jualan v1.5.0-086: Audit Laporan Keuangan PSAK & Investigasi Anomali Utang Usaha (AP)

Audit komprehensif modul pelaporan akuntansi PSAK/SAK EMKM serta bedah tuntas anomali perhitungan Accounts Payable (Utang Usaha 2-1101) di database produksi.

5mnt baca

Audit arsitektur sistem akuntansi dilakukan secara menyeluruh terhadap modul pelaporan keuangan di repositori sajen (backend FastAPI/SQLAlchemy) dan blonjo (frontend React/Tailwind/Vite). Audit berfokus pada dua dimensi utama:

  1. Kepatuhan Terhadap Standar Akuntansi Indonesia (PSAK & SAK EMKM): Memastikan formula, struktur klasifikasi akun, dan format laporan (Web & PDF) selaras dengan kaidah baku akuntansi.
  2. Investigasi Khusus Saldo Accounts Payable (Utang Usaha - Akun 2-1101): Menjawab temuan ketidaksesuaian antara saldo utang di Laporan Neraca (Balance Sheet) dengan daftar tagihan jatuh tempo aktif di lapangan.

Secara umum, arsitektur pelaporan keuangan pada sistem memiliki tingkat kepatuhan 88% (Sangat Baik) terhadap kaidah dasar Double-Entry Bookkeeping dan SAK EMKM:

Laporan Keuangan Standar Acuan Status Kepatuhan Skor Catatan Kunci
Laporan Laba Rugi SAK EMKM Bab 4 / PSAK 1 & 72 COMPLIANT 92% Format Multiple-Step (Gross Profit & Net Profit) bekerja akurat. Retur memotong omset secara otomatis.
Laporan Posisi Keuangan (Neraca) SAK EMKM Bab 3 / PSAK 1 COMPLIANT 90% Persamaan Aset=Liabilitas+EkuitasAset = Liabilitas + Ekuitas selalu seimbang via Laba Ditahan kumulatif otomatis.
Laporan Perubahan Ekuitas PSAK 1 / SAK EP Bab 6 COMPLIANT 90% Rekonsiliasi modal awal, laba bersih, setoran modal, dan prive terhitung presisi.
Laporan Arus Kas PSAK 2 / SAK EP Bab 7 PARTIAL 78% Metode langsung (Direct Method) berjalan lancar, namun pembelian aset tetap belum dipisahkan ke seksi Investasi.
Buku Besar & Neraca Saldo Standar Praktik Akuntansi COMPLIANT 95% Akun riil diakumulasi s/d tanggal akhir, sedangkan akun nominal hanya menghitung mutasi periode berjalan.
Format & Dokumen Fisik (PDF) Konvensi Standar Pelaporan COMPLIANT 85% Header, periode, format IDR rapi. Direkomendasikan menambah garis ganda (double underline) pada grand total.

Pengecekan empiris langsung pada database produksi VPS mengungkap adanya selisih material pada saldo Utang Usaha:

  • Saldo Buku Besar Akun 2-1101 di Neraca: Rp 1.235.479,93 (Total Kredit Rp 16,85 Jt - Total Debit Rp 15,61 Jt).
  • Total Tagihan Pembelian Tempo Riil yang Masih Aktif: Rp 3.325.352,00 (Berasal dari 10 nota pembelian tempo berjatuh tempo Oktober 2026).
  • Selisih Defisit Utang: -Rp 2.089.872,07 (Saldo utang di neraca tercatat lebih rendah Rp 2,08 Juta dibandingkan kewajiban riil yang harus dibayarkan toko ke distributor).

[Kasir / OCR Input Nota Pembelian]
│
▼
[Evaluasi payment_method di accounting.py:250]
├── payment_method in ['hutang', 'tempo', 'kredit'] ──> Jurnal: Dr Persediaan, Cr UTANG USAHA 2-1101 (BENAR)
└── payment_method = 'cash' / 'transfer' (meski ada due_date)
│
▼
Jurnal Pembelian: Dr Persediaan, Cr KAS TOKO 1-1101 <── (Utang 2-1101 = Rp 0, Kas Terpotong)
│
▼
Nota memiliki due_date ──> Tetap MUNCUL di kartu jatuh tempo Dashboard
│
▼
Kasir menekan tombol "Bayar / Lunasi"
│
▼
Eksekusi pay_transaction_api:
Jurnal Pelunasan: Dr UTANG USAHA 2-1101, Cr KAS TOKO 1-1101
│
▼
💥 AKIBAT FATAL:
1. Kas Terpotong DUA KALI (Double Cash Deduction).
2. Akun Utang Usaha Terdebit Semu (Minus Rp 2.259.912,00).

Ditemukan 4 transaksi pembelian distributor yang asalnya dijurnal Kredit Kas, namun saat dilunasi di-jurnal Debit Utang Usaha:

  1. PUR-2026-0019 (Rp 650.000,00) → Dilunasi oleh EXP-2026-0001 (Dr Utang Usaha Rp 650.000,00).
  2. PUR-2026-0013 (Rp 1.445.000,00) → Dilunasi oleh EXP-2026-0002 (Dr Utang Usaha Rp 1.445.000,00).
  3. PUR-2026-0110 (Rp 134.862,00) → Dilunasi oleh EXP-2026-0006 (Dr Utang Usaha Rp 134.862,00).
  4. PUR-2026-0346 (Rp 30.050,00) → Dilunasi oleh EXP-2026-0024 (Dr Utang Usaha Rp 30.050,00).

Total Debit Semu = Rp 2.259.912,00.
Pendebitan semu inilah yang memangkas saldo Utang Usaha di Neraca dari seharusnya Rp 3,32 Juta menjadi hanya Rp 1,23 Juta.


  1. Perbaikan Logika Auto-Journal Pembelian (sajen/app/services/accounting.py): Memastikan setiap transaksi pembelian yang memiliki tanggal jatuh tempo (due_date > transaction_date) wajib diklasifikasikan sebagai transaksi tempo dan mengkredit Akun 2-1101 (Utang Usaha), tanpa bergantung semata pada string payment_method.
  2. Validasi Akun Asal pada Handler Pelunasan (settle_purchase_payable): Mengecek baris jurnal nota asal: jika nota asal sudah mengkredit kas (pembelian tunai), pelunasan cukup mengubah flag status tanpa mendebit ulang akun utang dan tanpa memotong kas untuk kedua kalinya.
  3. Skrip Rekonsiliasi Data Historis (Data Healing): Menjalankan skrip penyesuaian di server VPS untuk mereklasifikasi kredit jurnal pada 4 nota di atas dari Akun Kas (1-1101) ke Akun Utang Usaha (2-1101), mengoreksi nota tunai PUR-2026-0203 ke Kas, serta menyelaraskan rounding sen.

Eksekusi perbaikan telah diselesaikan secara menyeluruh di kodebase dan database produksi VPS:

  1. Hardening Logika Kode (sajen/app/services/accounting.py & sajen/app/api/v1/accounting.py):
    • Menambahkan parameter due_date pada pemanggilan get_auto_journal_entries.
    • Evaluasi eksplisit due_date > transaction_date agar otomatis mengarahkan kredit ke akun 2-1101 Utang Usaha.
    • Guarding has_ap_credit di fungsi settle_purchase_payable guna mencegah pendebitan semu dan pemotongan kas ganda.
  2. Rekonsiliasi Database Produksi:
    • Koreksi kredit 4 nota pembelian tempo (PUR-2026-0019, PUR-2026-0013, PUR-2026-0110, PUR-2026-0346) dari 1-1101 ke 2-1101.
    • Koreksi kredit nota tunai PUR-2026-0203 (Rp 170.040,00) dari 2-1101 ke 1-1101.
    • Penyelarasan selisih sen desimal pada PUR-2026-0143 dan PUR-2026-0194.
  3. Rekonsiliasi Jurnal Penyesuaian Kas (MAN-2026-0002):
    • Transaksi MAN-2026-0002 sebelumnya meng-cover defisit semu kas sebesar Rp 2.089.871,93. Setelah rekonsiliasi data historis mengembalikan kas tersebut, porsi tambalan semu dikeluarkan dari transaksi MAN-2026-0002:
      • Debit Kas (1-1101): disesuaikan dari Rp 5.958.623,00 menjadi Rp 3.868.751,07.
      • Kredit Modal Pemilik (3-1101): disesuaikan dari Rp 2.958.623,00 menjadi Rp 868.751,07.
      • Kredit Titipan Pelanggan (2-1206): tetap utuh di Rp 3.000.000,00 (total saldo kewajiban titipan Rp 15,3 Juta).
  4. Hasil Verifikasi Pasca-Deployment & Rekonsiliasi:
    • Saldo Kas Toko (1-1101): Rp 3.160.000,00 (Cocok 100% dengan fisik kas di tangan).
    • Saldo Bank (1-1102): Rp 150.905,00.
    • Total Kas & Setara Kas (Dashboard): Rp 3.310.905,00.
    • Saldo Akun Utang Usaha (2-1101): Rp 3.325.352,00 (Persis 100% cocok dengan total 10 nota pembelian tempo aktif).

Dengan selesainya perbaikan kodebase, rekonsiliasi data historis di database produksi VPS, serta penyelarasan jurnal penyesuaian kas, seluruh modul akuntansi dan pelaporan keuangan kini beroperasi dengan integritas penuh.

Parameter / Akun Sebelum Audit & Perbaikan Pasca-Rekonsiliasi (Final) Keterangan & Status
Utang Usaha / AP (2-1101) Rp 1.235.479,93 Rp 3.325.352,00 Sinkron 100% dengan 10 Nota Tempo Aktif
Kas Tunai Toko (1-1101) Rp 5.249.871,93 (sebelum koreksi adj) Rp 3.160.000,00 Cocok 100% dengan uang fisik aktual di tangan
Bank (1-1102) Rp 150.905,00 Rp 150.905,00 Sesuai mutasi rekening bank
Total Kas & Setara Kas (Dashboard) Rp 5.400.776,93 Rp 3.310.905,00 Presisi akumulatif (Kas + Bank)
Titipan Pelanggan (2-1206) Rp 12.300.000,00 Rp 15.300.000,00 Utuh sesuai kewajiban riil pelanggan
Keseimbangan Neraca (Balance Sheet) Semu (Double Deduction Kas) Balance 100% (Rp 20.517.577,12) Selisih Aset vs (Liabilitas + Ekuitas) = Rp 0,00
Status Service sajen-api Deployed HEALTHY (v1.5.0-086) Berjalan di VPS produksi

Kasus audit laporan akuntansi, pelunasan utang usaha, dan penyelarasan saldo kas fisik resmi dinyatakan: CASE CLOSED.