Setiap test = 1 skenario bisnis lengkap end-to-end. Trial balance harus balanced di setiap test.
1. Pembelian (Purchase Order)
1a. PO Cash — GRN Partial Receive PASS
PO 100 unit @ Rp 44.000 (cash)
→ GRN: terima 95, tolak 5 (kemasan penyok)
→ Stok naik 95 (bukan 100)
→ Lot: qty=95, cost=44.000, expiry=2026-12-31
→ Jurnal: Dr. Persediaan 4.180.000 / Cr. Kas 4.180.000
→ Trial Balance: BALANCED
Dr. Persediaan (13-100) Rp 4.180.000
Cr. Kas (11-100) Rp 4.180.000
Key point: Barang yang ditolak (5 unit) TIDAK masuk stok. GRN track qty_ordered vs qty_received vs qty_rejected.
1b. PO Utang — GRN + Bayar Hutang PASS
PO 50 unit @ Rp 63.000 (utang)
→ GRN: terima semua 50
→ Jurnal receive: Dr. Persediaan / Cr. Hutang Usaha
→ Bayar hutang: Dr. Hutang Usaha / Cr. Kas
→ Trial Balance: BALANCED
-- Saat receive --
Dr. Persediaan (13-100) Rp 3.150.000
Cr. Hutang Usaha (20-100) Rp 3.150.000
-- Saat bayar --
Dr. Hutang Usaha (20-100) Rp 3.150.000
Cr. Kas (11-100) Rp 3.150.000
2. Pesanan Mengantar
2a. Mengantar COD PASS
Product Value = Rp 200.000
Estimated Pricing (ongkir) = Rp 25.000
totalHarga = 200.000 - 25.000 = Rp 175.000 (COD: PV - EP)
COD Fee = Rp 15.000 (flat)
→ Ship: stok -2, HPP = 2 × 45.000 = Rp 90.000
→ Daily Journal: Dr. Piutang 160.000 + Dr. COD Fee 15.000 / Cr. Pendapatan 175.000
→ Rekon: settlement 160.000 → selesai
→ Trial Balance: BALANCED
Key point: COD = ongkir sudah dipotong dari totalHarga (PV - EP). Fee = flat Rp 15.000.
2b. Mengantar Transfer PASS
Product Value = Rp 200.000
Estimated Pricing (ongkir) = Rp 25.000
totalHarga = Rp 200.000 (Transfer: PV penuh, ongkir terpisah)
→ Ship: stok turun
→ Daily Journal Penjualan: Dr. Piutang / Cr. Pendapatan
→ Daily Journal Ongkir: Dr. Beban Ongkir Non-COD 25.000 / Cr. Saldo Mengantar 25.000
→ Rekon Transfer: masuk ke Bank BCA (transferKasAccount), bukan Saldo Mengantar
→ Trial Balance: BALANCED
-- Jurnal ongkir (khusus Transfer Mengantar) --
Dr. Beban Ongkir Non-COD (63-100) Rp 25.000
Cr. Saldo Mengantar (11-401) Rp 25.000
Key point: Transfer ≠ COD. Ongkir terpisah. Rekon masuk ke Bank, bukan Saldo Mengantar.
3. Pesanan TikTok & Shopee
3a. TikTok — Fee 8% PASS
Gross = Rp 99.900
Fee: Admin 3% = Rp 2.997, Komisi 5% = Rp 4.995 → total 8% = Rp 7.992
Piutang NET = 99.900 - 7.992 = Rp 91.908
→ Ship: HPP = Rp 45.000
→ Daily Journal:
Dr. Piutang TikTok Rp 91.908
Dr. Biaya Admin Rp 2.997
Dr. Biaya Komisi Rp 4.995
Cr. Pendapatan Rp 99.900
→ Rekon: settlement 91.908 → selisih 0 → selesai
→ Trial Balance: BALANCED
3b. Shopee — Fee 5%, Selisih Negatif PASS
Gross = Rp 129.900
Estimated fee 5% → estimated net = Rp 123.405
Actual settlement = Rp 120.000 (kurang Rp 3.405)
→ Rekon: selisih negatif (fee lebih besar dari estimasi)
→ Jurnal adjustment: Dr. Akun Fee / Cr. Piutang (selisih)
→ Trial Balance: BALANCED
Key point: Selisih negatif = fee aktual lebih besar dari estimasi. Beban naik.
3c. TikTok COD — Escrow PASS
TikTok COD payment_status = "unpaid" (escrow)
Buyer bayar via COD, tapi uang masih di TikTok.
Seller belum terima → piutang, bukan kas.
→ Ship: status dikirim, payment tetap "unpaid"
→ Uang cair setelah rekonsiliasi (7-14 hari)
Ship 3 Ayam → stok 500 → 497
RTS Baik → stok 497 → 500 (restored!)
Lot consumption di-delete → HPP gak double count kalau dijual lagi
Dr. Retur Penjualan (41-100) Rp 135.000 (GROSS)
Cr. Piutang TikTok (12-201) Rp 124.200 (NET)
Cr. Biaya Admin (61-101) Rp 4.050 (fee reverse)
Cr. Biaya Komisi (61-102) Rp 6.750 (fee reverse)
Dr. Persediaan (13-100) Rp 135.000 (HPP reverse)
Cr. HPP (50-100) Rp 135.000
4b. RTS Rusak — Jurnal Kerugian PASS
Ship 2 Ayam → stok turun
RTS Rusak → stok TIDAK restore (barang rusak)
Jurnal: Dr. Beban Kerugian Barang Rusak / Cr. Persediaan
Dr. Beban Kerugian (64-700) Rp 90.000
Cr. Persediaan (13-100) Rp 90.000
4c. RTS Hilang — Klaim Kurir PASS
Ship 1 Sapi → stok turun
RTS Hilang → stok TIDAK restore (barang gak ada fisik)
Jurnal: Dr. Piutang Klaim Kurir / Cr. Persediaan
Nanti kalau klaim diterima: Dr. Kas / Cr. Piutang Klaim
Dr. Piutang Klaim Kurir (12-400) Rp 65.000
Cr. Persediaan (13-100) Rp 65.000
4d. Mengantar RTS — Tanpa Fee Reversal PASS
Mengantar: RTS jurnal berbeda dari TikTok/Shopee
Dr. Retur = GROSS, Cr. Piutang = GROSS (sama)
TIDAK ada fee reversal (karena Mengantar fee = flat, bukan % dari gross)
5. Rekonsiliasi
5a. Cocok — Selisih 0 PASS
Gross = 100.000, Fee estimasi 8% = 8.000, Net estimasi = 92.000
Settlement aktual = 92.000
Selisih = 0 → cocok!
Jurnal: Dr. Kas 92.000 / Cr. Piutang 92.000
5b. Selisih Negatif — Fee Underestimated PASS
Net estimasi = 95.000
Settlement aktual = 90.000 (kurang 5.000)
Selisih = -5.000 → fee lebih besar dari estimasi
Jurnal: Dr. Kas 90.000 + Dr. Biaya Fee 5.000 / Cr. Piutang 95.000
5c. Selisih Positif — Fee Overestimated PASS
Net estimasi = 92.000
Settlement aktual = 95.000 (lebih 3.000)
Selisih = +3.000 → fee lebih kecil dari estimasi
Jurnal: Dr. Kas 95.000 / Cr. Piutang 92.000 + Cr. Biaya Fee 3.000