← Kembali ke aplikasi
MMB

SOP Keuangan

MMB Travel Medan · panduan tim — angka di sistem selalu = kenyataan

1 Peta Pencatatan — uang dicatat di mana?

KejadianCatat sebagaiCatatan
Pelanggan bayar invoiceInvoice → + BayarJANGAN lewat Deposit Masuk
Pelanggan/agen titip dana di luar invoiceDeposit Masukstatus Aktif selama belum dipakai
Bayar/top-up saldo supplier (NSK, trip.com, maskapai)Deposit Keluarbukan Pengeluaran!
Gaji, listrik, air, internet, ATK, PBB, marketingPengeluaraninilah yang memotong laba
Cicilan modal ke KastomoDeposit Keluar, Pihak: Kastomobukan Pengeluaran
Komisi ke agenKomisi Agen → tombol Bayarsaldo terpotong saat Sudah Dibayar
Uang kembali ke pelangganRefund → Ke Pelanggan
Uang kembali dari supplierRefund → Dari Supplier
Staf/pimpinan menalangi pakai uang pribadiPengajuan Dana → tipe ReimbursementJANGAN "Permintaan Dana + Cairkan" — lihat bagian 6
Dana operasional masuk dari MMB PusatDeposit Masuk, Pihak MMB PUSAT PEKANBARU, status DigunakanJANGAN Aktif — lihat bagian 7
Pindah uang antar rekening milik sendiriTransfer Kas (satu baris)JANGAN sepasang Deposit — lihat bagian 10
Aturan emas: bayaran supplier yang salah masuk ke "Pengeluaran" = laba terpotong DUA KALI (di margin invoice + di biaya). Selalu cek tabel ini sebelum input.

2 Membatalkan invoice yang SUDAH ada pembayarannya

Sistem hanya menandai invoice Batalpembayarannya TIDAK ikut batal otomatis. Setiap membatalkan invoice berbayar, wajib jawab:

"Uang yang sudah diterima itu ke mana?"
SituasiLangkah
Pembayaran memang salah input (uangnya tak pernah ada)Buka detail invoice → Batalkan pembayarannya juga (void)
Uang dikembalikan ke pelangganCatat Refund → Ke Pelanggan (pilih rekening yang keluar uang)
Uang dipindah jadi titipan untuk order berikutnyaRefund → Ke Pelanggan LALU Deposit Masuk pihak & nominal sama
Kalau dilewati: saldo sistem lebih besar dari saldo bank sungguhan — ketahuan saat rekonsiliasi.

3 Refund sebagian (invoice tetap jalan)

Contoh: 1 pax batal dari rombongan 47 pax, sisanya berangkat. Refund di sistem = pergerakan kas saja — tidak mengoreksi laba invoice. Wajib DUA langkah:

  1. Edit invoice → koreksi item (pax/harga) supaya Total Jual & Laba mencerminkan yang benar-benar jalan.
  2. Catat Refund → Ke Pelanggan sebesar uang yang dikembalikan.
Hanya langkah 2 tanpa langkah 1 → laba bulan itu kelebihan catat. Kalau supplier ikut mengembalikan modal → tambah Refund → Dari Supplier.

4 Rekonsiliasi bank — tiap tanggal 1 (±15 menit)

Tujuan: saldo sistem = saldo rekening koran. Dikerjakan Yogi/admin, hasil dilaporkan singkat ke Faris.

Tiga hal tentang layar ini: saldo sistem dihitung ulang server saat disimpan, jadi yang tercatat selalu angka sebenarnya · selisih tidak pernah ditolak, karena menolaknya hanya mendorong orang mengarang angka supaya cocok · periode yang sudah ditutup tetap bisa dicatat rekonsiliasinya — justru bulan yang baru ditutup itulah yang perlu dicocokkan.

Kartu saldo tiap rekening menampilkan status pencocokan terakhir: hijau bila baru dan nihil, kuning bila sudah lewat sebulan, merah bila ada selisih, dan peringatan bila rekening itu belum pernah dicocokkan. Salah catat? Tombol Batalkan per baris (wajib beralasan) — barisnya tetap terlihat dicoret, catatan pemeriksaan tidak dihapus.

Selama masih pakai rekening MMB Pusat (tercampur): rekonsiliasi cukup atas transaksi milik Medan — arsir mutasi bank yang bukan milik Medan, sisanya harus cocok dengan sistem.

5 Disiplin label status Deposit

Titipan pelanggan (Deposit Masuk) tampil di Laporan → Kewajiban Titipan Pelanggan selama statusnya Aktif. Supaya laporan benar:

Label lupa di-update = laporan kewajiban menampilkan utang yang sebenarnya sudah beres.

6 Talangan uang pribadi (Reimbursement)

Kadang staf atau pimpinan menalangi dulu dengan uang sendiri — tagihan mendesak, booking fee, bonus. Pegang satu aturan:

Tidak ada apa pun yang dicatat saat uang pribadi keluar. Sistem baru mencatat ketika kas perusahaan mengganti uang itu.

Sebabnya: tombol Cairkan Dana berarti "kas perusahaan keluar hari ini". Kalau dipakai padahal uangnya dari kantong pribadi, dua hal rusak sekaligus — saldo sistem jadi lebih kecil daripada saldo bank sungguhan, dan biayanya tercatat dua kali begitu penggantiannya dibayar.

  1. Ajukan lewat Pengajuan Dana → pilih tipe Reimbursement (bukan Permintaan Dana).
  2. Nota/bukti wajib dilampirkan + isi Tanggal Transaksi (kapan uang pribadi dibelanjakan). Sistem menolak kalau kosong — nota itu satu-satunya bukti, karena reimbursement tidak punya LPJ menyusul.
  3. Review → approval Faris → klik Bayar Penggantian saat uang benar-benar diganti. Pengajuan langsung Selesai, biaya tercatat sekali di tanggal pembayaran.
Ajukan di bulan yang sama dengan belanjanya. Kalau telat, biayanya jatuh ke bulan pembayaran — dan bulan yang sudah tutup buku tidak bisa lagi dibebani.

Satu pengeluaran = satu jalur pendanaan.

Permintaan Dana dan Reimbursement bukan dua pengeluaran berbeda — keduanya dua cara mendanai satu pengeluaran yang sama:

Dipakai saatUrutan uang
Permintaan Danabelum dibayar, minta dana duluperusahaan bayar → belanja
Reimbursementsudah dibayar pakai uang pribadiorang bayar → perusahaan ganti

Jadi untuk satu tagihan listrik, satu gaji, satu booking fee — hanya boleh ada satu yang aktif. Kalau keduanya ada dan sama-sama cair, uang keluar dua kali untuk barang yang sama.

Begitu sebuah kebutuhan dibayar dengan uang pribadi, pengajuan lama untuk kebutuhan yang sama WAJIB dibatalkan di hari yang sama.

Jangan ditunda. Begitu dana turun, tidak ada lagi yang ingat baris mana pasangan baris mana — dan pengajuan lama yang masih Disetujui ikut tercetak di Surat Permintaan Dana, sehingga Pusat mengirim dana yang sebenarnya sudah tidak dibutuhkan.

Cara membatalkannya: buka Detail pengajuan lama → tombol Batalkan → isi alasan yang menyebut tanggal talangan dan ID pengajuan penggantinya, contoh:

Sudah ditalangi uang pribadi Faris 26/07/2026; penggantian via reimbursement PGJ-20260726xxxxxx

Status berubah jadi Dibatalkan (bukan Ditolak — bukan penolakan, tapi koreksi), jejaknya tetap terlihat di daftar, dan barisnya otomatis keluar dari Surat Permintaan Dana. Menyebut ID pengganti itu penting: itulah yang membuat baris batal bisa ditelusuri ke penggantinya tanpa bertanya siapa pun.

Berlaku sebaliknya juga: kalau Permintaan Dana sudah cair lalu belanjanya ternyata dibayar pribadi, jangan buat reimbursement — dananya sudah di tangan perusahaan, tinggal diserahkan ke yang menalangi lalu dipertanggungjawabkan lewat LPJ.

Cara cepat memeriksanya: di halaman Pengajuan, lihat baris berstatus Disetujui, cari nominal kembar, lalu buka Detail-nya dan baca Uraian — jangan menilai dari angka saja.

⚠️ Nominal kembar bukan bukti dobel input. Gaji semua orang di cabang ini besarnya sama, jadi empat baris gaji bernominal identik itu wajar — masing-masing untuk orang yang berbeda. Yang menentukan kembar atau tidak adalah Uraian-nya ("Gaji Yogi Prayudha" vs "Gaji Husni Mubarak" = dua kebutuhan berbeda), bukan angkanya. Membatalkan pengajuan gaji yang sah = ada orang yang tidak digaji bulan itu.

Yang benar-benar kembar punya ciri: uraian menyebut kebutuhan yang sama, dan salah satunya bertipe Reimbursement sementara pasangannya Permintaan Dana.

Tidak semua talangan itu biaya operasional:

Yang ditalangiCatat sebagai
Tagihan, ATK, bensin, jamuan, bonusReimbursement → jadi biaya operasional
Biaya tambahan tiket untuk invoice tertentuEdit invoice → tambahkan ke Modal; penggantian uangnya lewat Deposit Keluar
Deposit/jaminan ke supplierDeposit Keluar ke supplier, saat uang diganti
Dua baris terakhir jangan lewat tombol Bayar Penggantian: alur itu selalu melahirkan biaya operasional, sehingga biaya tiket tercatat dua kali (di modal invoice + di biaya) dan laba per-invoice — termasuk KPI penjualnya — jadi salah.

Kalau terlanjur salah catat (sudah "Cairkan" padahal uangnya pribadi):

  1. Menu PengeluaranEdit baris itu → ubah status jadi Dibatalkan. Gunakan Dibatalkan, bukan Ditolak: keduanya sama-sama tidak dihitung, tapi Ditolak berarti penyetuju menolak, sedangkan ini koreksi pencatatan atas pengeluaran yang sah.
  2. Tambahkan keterangan koreksi di belakang teks aslinya, mis. "— Koreksi: dibayar dulu dengan uang pribadi Faris, kas perusahaan belum keluar; penggantian via reimbursement PGJ-xxxxx".
  3. Status Dibatalkan otomatis mengeluarkannya dari saldo maupun dari biaya, dan barisnya tampil dicoret di daftar. Pengajuan lama yang sudah Selesai dibiarkan apa adanya sebagai riwayat — memang tidak bisa dibatalkan, dan tidak memengaruhi angka mana pun.

7 Dana operasional dari MMB Pusat

Biaya operasional cabang didanai kiriman dari Pusat. Kirimannya kadang masuk ke rekening yang tercatat di sistem, kadang ke rekening pribadi Faris lalu beliau yang membayarkan. Keputusan pemilik (1 Agustus 2026): dari mana pun masuknya, dicatat sama — yang penting dananya dari Pusat dan tercatat di sistem.

Diperbarui 11 Agustus 2026: cabang kini punya rekening sendiri (MMB CABANG MEDAN, Mandiri 1080560177777). Cara pencatatan di bawah tidak berubah — yang berubah hanya pilihan Rekening saat input: kiriman Pusat yang masuk ke rekening cabang dicatat dengan Rekening MMB CABANG MEDAN. Kiriman lewat rekening pribadi tetap dicatat seperti biasa, dan keterangannya tetap wajib menyebut lewat mana.

Dua sisi yang harus lengkap — ini bagian yang paling mudah tertinggal:

SisiDicatat sebagai
Uang masuk dari PusatDeposit Masuk, Pihak MMB PUSAT PEKANBARU, status Digunakan
Uang keluar untuk biayaPengajuan Dana → Cairkan / Bayar Penggantian
Kalau hanya sisi keluar yang dicatat, saldo sistem menyusut tanpa sebab. Terjadi 3 Agustus 2026: Rp 30,35 jt tercatat keluar sementara dana yang membiayainya belum dicatat masuk — saldo tampak Rp 30 jt lebih kecil dari yang sebenarnya.
Statusnya Digunakan, bukan Aktif. Label Aktif pada Deposit Masuk dipakai laporan Kewajiban Titipan Pelanggan (bagian 5). Dana operasional dari Pusat bukan titipan pelanggan dan tidak untuk dikembalikan — kalau ditandai Aktif, laporan menampilkan utang yang tidak ada.

Keterangannya sebutkan lewat mana. Contoh: "Dana operasional cabang Medan Juli 2026 — transfer BNI ke rekening Faris". Suatu saat akan ada yang mencocokkan ke rekening koran; keterangan inilah yang menjelaskan kenapa transaksinya tidak ada di sana.

Yang dibayar Pusat langsung ke penerima (mis. gaji ditransfer Pusat langsung ke orangnya) tetap dicatat dua sisi: Deposit Masuk sebesar itu, lalu pengajuannya dicairkan seperti biasa. Kalau tidak, biayanya diakui tanpa sumber dana.

Uji cepat: setelah semua tercatat, jumlah Deposit Masuk dari Pusat harus kira-kira sama dengan jumlah biaya yang didanainya. Selisih besar berarti ada sisi yang belum dicatat.

8 Tutup bulan — urutan kerja tanggal 1

  1. Pastikan semua transaksi bulan lalu sudah diinput dengan tanggal bulan lalu (boleh telat input, tanggal harus benar).
  2. Bukukan biaya rutin: gaji, listrik, air, (internet), dst → Pengeluaran.
  3. Pastikan semua talangan pribadi bulan itu sudah diajukan & diganti (bagian 6) — jangan tertinggal ke bulan depan.
  4. Periksa pengajuan kembar: buka Pengajuan Dana, lihat baris berstatus Disetujui, cari nominal kembar. Kalau sebuah kebutuhan sudah ditalangi dan diajukan sebagai Reimbursement, pengajuan lamanya harus sudah Dibatalkan (bagian 6). Kalau tidak, Pusat mengirim dana untuk sesuatu yang sudah dibayar.
  5. Tuntaskan pengajuan yang menggantung. Buka Pengajuan Dana, lihat yang masih Menunggu Review / Menunggu Approval — setujui, tolak, atau batalkan. Jangan biarkan menyeberang bulan.
    Alasannya: biaya diakui saat kas keluar (bagian 6). Pengajuan bulan lalu yang baru cair dua bulan kemudian membebani bulan yang salah — persis yang membuat laba Juli 2026 kelebihan ±Rp 20 juta karena seluruh gaji Juli baru dibayar 3 Agustus.
  6. Jalankan rekonsiliasi bank (bagian 4).
  7. Update label status deposit (bagian 5).
  8. Buka Laporan → periksa → unduh PDF + Excel → kirim ke Faris.
  9. KUNCI bulannya: buka menu Pengaturan di aplikasi (khusus owner) → kartu Tutup Buku → pilih tanggal akhir bulan (mis. 30/06/2026) → klik Kunci Periode. Sistem lalu menolak tambah/ubah/void transaksi bertanggal ≤ tanggal itu.
  10. Yang tetap bisa setelah terkunci: pelunasan piutang, bayar komisi, dan refund — asal dicatat dengan tanggal periode berjalan; juga ganti label status deposit, pasang bukti, cetak kwitansi.
  11. Perlu koreksi bulan terkunci (kasus luar biasa)? Buka Pengaturan → klik Buka <bulan> (mis. "Buka Juli 2026") → koreksi → klik Kunci Periode untuk mengembalikannya. Tombol itu memundurkan kunci satu bulan saja, jadi bulan sebelumnya tetap terlindung, dan tanggal semula sudah terisi otomatis. Semua terekam di Audit Log.
    Jangan lupa langkah terakhirnya. Pada 17/08/2026 kunci dibuka pukul 15:01 untuk satu koreksi yang selesai 26 detik kemudian, lalu buku tinggal terbuka dua hari. Sejak 19/08 Dashboard menampilkan pengingat kalau bulan yang sudah berakhir belum ditutup.

9 Pemulihan dari cadangan (kalau data hilang)

Diuji ulang 19 Agustus 2026, untuk sistem yang sekarang. Basis data D1 diekspor, dibangun ulang dari nol memakai skema otoritatif, lalu 8.382 baris dimuat — nol gagal. Sebelas angka dibandingkan dengan produksi (saldo Rp 216.107.959, omzet, laba kotor, jumlah baris tiap tabel): semuanya cocok. Penghitung nomor invoice & kwitansi ikut terpulihkan.

9.1 ⚠ Yang berubah sejak 16 Agustus 2026 — baca ini dulu

Sumber kebenaran sekarang basis data D1 (mmb-medan-keuangan), bukan Google Sheets. Spreadsheet tinggal cermin: ia ditulis DARI D1 sekali tiap jam.

Memulihkan Spreadsheet saja TIDAK memperbaiki apa pun. Aplikasi tidak membacanya. Dan lebih buruk: dalam waktu ≤1 jam, sinkronBalikTerjadwal akan menimpa Spreadsheet yang baru dipulihkan dengan isi D1 yang masih rusak — pekerjaan pemulihannya lenyap tanpa pesan apa pun.

Kalau D1 rusak dan butuh waktu, matikan dulu pemicu sinkronBalikTerjadwal di editor Apps Script (Triggers → hapus), baru bekerja. Pasang lagi setelah selesai.

9.2 Apa yang dicadangkan otomatis

LapisKapanDi mana
1 · D1 Time Travelterus-menerus, 30 hariCloudflare. Pulih ke menit mana pun. ⚠ Memulihkannya menimpa produksi.
2 · Cermin Spreadsheettiap jam menit :49ditulis dari D1
3 · Salinan harian Spreadsheet±02:50 WIBDrive MMB_Medan_Backup, 60 terakhir
4 · Lampiransaat diunggahbucket R2 mmb-medan-berkas

Cek cepat kesehatan: jalankan periksaCadangan() di editor Apps Script.

9.3 ⚠ Apa yang TIDAK ada di dalam cadangan

  1. Lampiran yang diunggah sejak 16 Agustus 2026 hanya ada di R2 — tanpa salinan kedua. Yang lebih lama masih punya aslinya di Drive. Per 19 Agustus: 79 punya salinan Drive, 6 tidak, dan angka itu bertambah tiap ada unggahan baru.
  2. Rahasia & setelanAPI_SECRET, ACCESS_AUD, pengikatan D1/R2 di wrangler.jsonc, kebijakan Cloudflare Access.
  3. Kode — di GitHub: mmb-medan-app, mmb-medan-api, mmb-medan-aset.
  4. Skema basis data — satu berkas saja: mmb-medan-app/migrasi/001-skema.sql. ⚠ Kalau menemukan berkas .sql lain berisi CREATE TABLE, jangan dipakai.

9.4 Keadaan A — data rusak, basis datanya masih ada

  1. Berhenti dulu. Jangan menambah transaksi baru.
  2. Matikan pemicu sinkronBalikTerjadwal (lihat 9.1).
  3. Ambil salinan keadaan sekarang dulu: npx wrangler d1 export mmb-medan-keuangan --remote --output sebelum-pulih.sql — kalau titik pulihnya ternyata salah, itulah satu-satunya jalan kembali.
  4. Cari titik pulih: npx wrangler d1 time-travel info mmb-medan-keuangan --timestamp="..."
  5. Pulihkan ke bookmark yang disebutnya: npx wrangler d1 time-travel restore mmb-medan-keuangan --bookmark=...
  6. Pasang lagi pemicunya, lalu lanjut ke 9.6.

9.5 Keadaan B — basis data hilang seluruhnya

Prosedur yang sudah dilatih 19 Agustus 2026:

  1. Ambil data terakhir: wrangler d1 export kalau basis datanya masih ada; kalau benar-benar hilang, pakai cadangan harian Spreadsheet di Drive (berumur sampai ~1 hari + 1 jam).
  2. npx wrangler d1 create mmb-medan-keuangan, lalu perbarui database_id di mmb-medan-api/wrangler.jsonc.
  3. Terapkan skema otoritatif — hanya berkas ini: --file=../mmb-medan-app/migrasi/001-skema.sql
  4. Muat datanya, lalu benih pengguna: --file=002-pengguna.sql.
  5. npx wrangler secret put API_SECRET — nilainya harus sama dengan variabel di Cloudflare Pages.
  6. npx wrangler deploy, lalu lanjut ke 9.6.

Penghitung nomor ikut di dalam basis data (tabel penghitung) — terbukti terpulihkan di latihan 19 Agustus. Ini yang dulu hilang di era Script Properties.

9.6 Pemeriksaan setelah pemulihan (jangan dilewati)

  1. Buka aplikasi → harus bisa masuk, nama & peran benar.
  2. Dashboard → bandingkan Revenue, Laba Kotor, Laba Bersih bulan lalu dengan PDF Laporan bulan itu yang sudah pernah dikirim ke Faris. Harus sama persis — inilah bukti datanya utuh, bukan sekadar "aplikasinya kebuka".
  3. Saldo Rekening → cocokkan dengan mutasi bank hari itu.
  4. Buat satu invoice percobaan → nomornya harus melanjutkan urutan, bukan mengulang dari 0001 → lalu batalkan dengan alasan uji pemulihan.
  5. Buka satu Pengajuan lama berlampiran → klik dokumennya → harus terbuka (menguji R2 + jalur /api/berkas/).
  6. Buka halaman Transfer Kas dan Deposit — keduanya memakai tabel yang pernah hilang dari salinan skema usang; kalau skemanya salah, di sinilah ketahuan.
  7. Pastikan pemicu sinkronBalikTerjadwal hidup lagi, lalu jalankan periksaCadangan().

9.7 Berapa lama data bisa hilang

Kalau yang rusakKehilangan maksimal
D1, Time Travel masih bisa dipakainol — pulih ke menit mana pun dalam 30 hari
D1 hilang total, pakai cadangan Spreadsheetsampai ~1 hari + 1 jam
Lampiran R2yang diunggah sejak 16/8/2026 tidak bisa dipulihkan (9.3.1)

Peredamnya: Audit Log mencatat setiap penulisan berikut isinya, jadi transaksi yang hilang bisa direkonstruksi tangan.

10 Pindah kas antar-rekening

Sejak 11 Agustus 2026 cabang punya dua rekening: PUSAT BANK MANDIRI dan MMB CABANG MEDAN. Selama rekeningnya cuma satu, memindahkan uang antar-rekening tidak pernah jadi soal — sekarang jadi soal.

✓ Sejak 18 Agustus 2026 ada halaman Transfer Kas. Pakai itu — jangan lagi cara manual di bawah.

Halaman itu mencatat kepindahan sebagai satu baris transfer: uang berpindah, total kas tidak berubah, dan Rekening Koran kedua rekening tetap seimbang. Ketiga jebakan di bawah mati secara struktural di sana — tabelnya tak punya kolom Pihak (jadi mustahil salah-tulis "Kastomo"), tak tersentuh laporan titipan/supplier, dan tak membakar nomor kwitansi.

⚠ Bagian 10.1–10.3 disimpan sebagai catatan sejarah, karena baris yang terlanjur dicatat dengan cara lama masih ada di sistem dan perlu bisa dibaca. Jangan dipakai untuk transfer baru.

10.1 Kenapa tidak boleh asal catat

Kalau pindah kas dicatat sebagai pasangan Deposit berstatus Aktif, saldonya memang benar, tapi dua laporan langsung berbohong:

LaporanYang munculKenyataannya
Deposit Tersimpan di Supplieruang parkir di suppliertidak ada supplier mana pun
Kewajiban Titipan Pelanggantitipan pelanggantidak ada pelanggan mana pun

Keduanya masuk mini-neraca Posisi Keuangan, jadi aset dan kewajiban sama-sama menggelembung.

10.2 Caranya — dua catatan, keduanya berstatus Digunakan

Contoh: memindahkan Rp 50.000.000 dari Pusat ke Cabang Medan, 11 Agustus.

IsianCatatan 1 — keluar dari PusatCatatan 2 — masuk ke Medan
TipeKeluarMasuk
RekeningPUSAT BANK MANDIRIMMB CABANG MEDAN
PihakMMB CABANG MEDANPUSAT BANK MANDIRI
Nominal50.000.00050.000.000
StatusDigunakanDigunakan
KeteranganPINDAH KAS INTERNAL — ke rekening Cabang Medan 1080560177777. Bukan deposit supplier.PINDAH KAS INTERNAL — dari rekening Pusat 1080508555555. Bukan titipan pelanggan.
Yang membuatnya bekerja: dari empat label status deposit, hanya Dibatalkan yang mempengaruhi saldo (lihat §5). Sementara kedua laporan di atas menyaring Aktif secara harfiah.

10.3 Hasilnya

TempatMuncul?Benar?
Saldo Pusat−50 jtya
Saldo Cabang Medan+50 jtya
Total kas perusahaantidak berubahya
Rekening Koran kedua rekeningtercatat di keduanyaya — memang di sinilah tempatnya
Deposit Tersimpan di Suppliertidak munculya
Kewajiban Titipan Pelanggantidak munculya
Halaman Deposit — kartu Total Masuk/Keluarikut terjumlahagak menyesatkan

10.4 Tiga jebakan

  1. Kolom Pihak TIDAK BOLEH memuat kata "Kastomo". Sistem menghitung cicilan modal Kastomo dengan mencocokkan nama — setiap Deposit Keluar yang kolom Pihak-nya mengandung "kastomo" dianggap pengembalian modal. Salah tulis di situ mengurangi sisa utang modal Rp 105 juta secara palsu, tanpa peringatan apa pun.
  2. Statusnya harus Digunakan, bukan Aktif. Lupa = dua laporan di 10.1 langsung berbohong, diam-diam.
  3. Deposit Masuk membakar satu nomor kwitansi. Nomornya diambil dari counter yang sama dengan kwitansi pembayaran pelanggan dan pembayaran komisi — jadi tiap pindah kas memakai satu nomor kwitansi untuk sesuatu yang bukan kwitansi.

10.5 Kapan cara ini harus diganti

Layak untuk sesekali. Kalau uang mulai rutin berpindah antar-rekening, cara ini tidak layak dipertahankan: tiga jebakan yang semuanya bergantung ingatan orang, ditambah nomor kwitansi yang terbakar tiap kali.

Rencana: bangun fitur Transfer Antar-Rekening yang sebenarnya setelah tutup buku Agustus — satu form, satu catatan, saldo kedua rekening bergerak sekaligus, tanpa menyentuh laporan supplier/titipan dan tanpa memakai nomor kwitansi.
Dokumen internal MMB Travel Medan · semua perubahan data tercatat otomatis di Audit Log · versi 11 Agustus 2026