Skip to main content

title: “Saldo” description: “Manajemen rekening bank dan kas — saldo real-time auto-refresh 30 detik, deposit/withdrawal workflow, transfer antar rekening, mutasi transaksi, dan rekonsiliasi bank di SNISHOP ERP.”

Saldo

Saldo Halaman Saldo menampilkan seluruh rekening bank dan kas perusahaan yang terdaftar di sistem. Setiap rekening memiliki saldo real-time yang di-refresh otomatis setiap 30 detik, mendukung deposit dengan upload bukti transfer (minimum Rp 10.000), withdrawal dengan approval admin (minimum Rp 50.000), transfer antar rekening internal, dan rekonsiliasi bank otomatis maupun manual. Halaman ini terintegrasi langsung dengan General Ledger dan modul Expense/Invoice.

Arsitektur Saldo

Rekening Bank

Tambah Rekening Baru

  1. Klik “Tambah Rekening”
  2. Isi form:
  1. Klik “Simpan”
  2. current_balance = initial_balance

Informasi Per Rekening

Multiple Rekening

Sistem mendukung unlimited rekening:

Saldo Real-Time

Auto-Refresh

  • Sistem auto-refresh setiap 30 detik
  • Menampilkan current_balance (server-authoritative)
  • Bukan field balance (undeclared)

Balance Monitoring

Balance Alerts

Deposit Workflow

Deposit Rules

Withdrawal Workflow

Withdrawal Rules

Transfer Antar Rekening

Transfer Rules

Transfer di Laporan

Mutasi Transaksi

Incoming Transactions

Outgoing Transactions

Transaction Details

Filter Mutasi

Rekonsiliasi Bank

Import Bank Statement

  1. Download statement dari bank (CSV/Excel)
  2. Upload ke sistem
  3. Sistem auto-match berdasarkan:
    • Nominal (exact match)
    • Tanggal (±2 hari)
    • Deskripsi (fuzzy match)
  4. Review unmatched items
  5. Complete reconciliation

Manual Reconciliation

  1. Input statement balance
  2. List outstanding items
  3. Calculate adjusted balance:
  4. Compare with system balance
  5. Investigate differences
  6. Post adjustments jika perlu

Reconciliation Report

Reporting

Bank Statement

Cash Flow Report

Cash Daily Report

Component: CashDailyReport.jsx (493 lines) Drill-down: Klik tanggal untuk lihat transaksi individual Trend Analysis: First half vs second half comparison

Best Practices

Security

  • Limit akses ke rekening bank (hanya owner/finance)
  • Regular password change
  • Two-factor authentication
  • Audit trail untuk semua transaksi

Reconciliation

  • Rekonsiliasi minimal sebulan sekali
  • Investigate semua differences
  • Document adjustments
  • Keep records untuk audit

Monitoring

  • Check balance harian
  • Review transactions mingguan
  • Monitor alerts
  • Report discrepancies segera

Entity Schema — Saldo & Balance

Entity Relationship Diagram

Tabel Schema — Company

Entitas perusahaan yang menjadi wadah seluruh data keuangan, rekening, dan transaksi.

Tabel Schema — Account

Entitas utama untuk menyimpan seluruh rekening bank, kas, dan e-wallet perusahaan.

Tabel Schema — BankAccount

Detail rekening bank dan e-wallet untuk keperluan pembayaran dan transfer.

Tabel Schema — FinancialRecord

Mencatat seluruh transaksi keuangan (pemasukan, pengeluaran, transfer) yang mempengaruhi saldo rekening.

Tabel Schema — GLJournalEntry

Entitas jurnal umum (General Ledger) untuk audit trail dan pembukuan double-entry. Sub-tabel line_items (array of objects):

Tabel Schema — GLAccount

Chart of Accounts (COA) — daftar akun pembukuan untuk klasifikasi transaksi keuangan.

State Machine — Account Status

State Transition Rules

State Machine — GLJournalEntry Lifecycle

State Transition Rules — GLJournalEntry

Sequence Diagram — Perhitungan Saldo Real-Time

Sequence Diagram — Transfer Dana Antar Rekening

Sequence Diagram — Rekonsiliasi Bank

Sequence Diagram — Deposit dengan Verifikasi Bukti Transfer

Sequence Diagram — Withdrawal dengan Approval Admin

Enum Tables

Enum: Account.type (Jenis Rekening)

Enum: BankAccount.account_type

Enum: FinancialRecord.type (Jenis Transaksi)

Enum: FinancialRecord.source (Sumber Transaksi)

Enum: FinancialRecord.reference_type (Tipe Referensi)

Enum: GLJournalEntry.status (Status Jurnal)

Enum: GLJournalEntry.reference_type

Enum: GLAccount.account_type (Tipe Akun COA)

Enum: GLAccount.normal_balance

Enum: Account.mode & FinancialRecord.mode

Enum: Company.owner_subscription_plan

Enum: Company.industry

RBAC — Hak Akses Saldo

RBAC — Row-Level Security (RLS) Policies

Policy RLS yang diterapkan pada setiap entitas berdasarkan data JSONC.

RLS: Account

RLS: BankAccount

RLS: FinancialRecord

RLS: GLAccount & GLJournalEntry

Catatan RLS: Semua entitas menggunakan Row-Level Security (RLS). Akses dibatasi berdasarkan user_id, company_id, dan active_company_id. Admin global dapat mengakses semua data. Data personal dan bisnis terisolasi berdasarkan field mode. Entitas GLAccount dan GLJournalEntry menggunakan policy kosong di level database karena kontrol akses dikelola di layer aplikasi/API.