title: “Financial Reports” description: “Empat laporan keuangan inti (Laba Rugi, Neraca, Neraca Saldo, Anggaran vs Aktual) dengan mesin dual-source, audit completeness, dan fitur cetak di SNISHOP ERP.”
Financial Reports

Arsitektur Pelaporan
Akses Halaman
URL:/finance → tab Laporan
Empat tab laporan tersedia dalam grid layout (2 kolom di mobile, 4 kolom di desktop):
KPI Summary
Empat kartu ringkasan ditampilkan di bagian atas, dihitung secara real-time viauseMemo:
Seleksi Periode
Lima preset periode plus opsi kustom:
Mode custom menampilkan dua field
<input type="date"> (start/end) dengan tombol “Apply” untuk menerapkan filter.
Data Loading
Empat entity di-fetch secara paralel viacachedRequest:
cachedRequest dari requestManager) memastikan data yang sama tidak di-fetch berulang dalam satu sesi. Tombol Refresh memanggil loadData() untuk memuat ulang seluruh data.
Laporan Laba Rugi (Profit & Loss)
Mesin Dual-Source
Laporan Laba Rugi menggunakan strategi dual-source untuk memastikan akurasi data: Prioritas sumber data:Audit Completeness
Sistem menilai kualitas data menggunakanevaluateCompleteness() dari financeLogic:
Banner status ditampilkan di bagian atas laporan untuk transparansi.
Struktur Laporan
Utilitas yang Digunakan
Metrik yang Dilacak
Laporan Neraca (Balance Sheet)
Persamaan Akuntansi
Neraca disusun berdasarkan persamaan akuntansi fundamental:totalAssets !== totalLiabilities + totalEquity (toleransi < Rp 1), banner peringatan ditampilkan.
Struktur Neraca
Perhitungan dari GL
Neraca dihitung dari saldo GL Account dan journal entries yang sudah diposting:Laporan Neraca Saldo (Trial Balance)
Fungsi
Neraca Saldo列出 seluruh akun GL dengan total debit dan kredit masing-masing. Laporan ini digunakan untuk memverifikasi bahwa pembukuan seimbang sebelum menghasilkan laporan keuangan lainnya.Tampilan
Color Coding
Setiap tipe akun memiliki warna yang berbeda untuk memudahkan identifikasi:Validasi
Di bagian bawah laporan, total debit dan kredit dijumlahkan dan dibandingkan. Jika selisih > Rp 1, status “Tidak Seimbang” ditampilkan sebagai peringatan bahwa ada ketidaksesuaian dalam pembukuan.Laporan Anggaran vs Aktual
Arsitektur Pencocokan
Laporan ini membandingkan anggaran yang sudah dibuat dengan realisasi aktual. Sistem menggunakanCATEGORY_ALIASES untuk fuzzy matching antara kategori budget dan kategori expense aktual:
Contoh Alias
Metrik Per Item
Status Badge
Visualisasi Chart
Laporan ini menampilkan Recharts<BarChart> dengan grouped bars:
Progress bar juga ditampilkan per item untuk visualisasi persentase pemakaian secara cepat.
Fitur Cetak & Export
Print Support
Setiap laporan mendukung cetak langsung viawindow.print():
- Tombol “Cetak” di toolbar laporan
- Header print-only menampilkan nama perusahaan dan rentang periode
- Elemen non-esensial disembunyikan via atribut
data-print-hide - Wrapper
print-reportmengontrol layout saat print - CSS
@media printmemastikan hasil cetak rapi tanpa elemen UI
Format Export
Integrasi Cross-Module
Laporan keuangan mengonsumsi data dari seluruh modul keuangan. Jurnal GL dari manufacturing dan expense, Financial Record dari POS dan invoice, serta Budget dari Budget Planner — semuanya mengalir ke mesin pelaporan untuk dihasilkan sebagai laporan terpadu.Best Practices
Tutup Buku Bulanan
- Pastikan seluruh transaksi sudah tercatat dan diposting
- Rekonsiliasi semua rekening bank
- Review Neraca Saldo — pastikan status “Seimbang”
- Generate Laporan Laba Rugi dan Neraca
- Analisis variansi dari Anggaran vs Aktual
Analisis Keuangan
- Bandingkan laporan dengan anggaran untuk identifikasi penyimpangan
- Bandingkan antar periode untuk melihat tren
- Perhatikan status completeness (Audited vs Provisional)
- Gunakan data Laba Rugi untuk evaluasi profitabilitas
Kepatuhan
- Simpan laporan dalam arsip untuk audit
- Pastikan persamaan akuntansi di Neraca selalu seimbang
- Prepare laporan pajak dari data yang sudah diaudit
- Review Trial Balance sebelum closing periode
Entity Relationship Diagram
Tabel Schema
FinancialReportSnapshot
Snapshot hasil generate laporan keuangan. Menyimpan data laporan dalam format JSON agar dapat di-replay tanpa menghitung ulang dari sumber data.FinancialRecord
Buku kas utama yang mencatat semua transaksi keuangan dari 8 sumber berbeda. Merupakan fallback source untuk laporan Laba Rugi ketika jurnal GL belum lengkap.GLJournalEntry
Jurnal umum General Ledger. Sumber utama (primary source) untuk laporan Laba Rugi. Hanya entry berstatusposted yang digunakan dalam perhitungan laporan.
GLAccount
Chart of Accounts (COA) dengan struktur hierarki 3 level. Digunakan untuk klasifikasi akun di Neraca, Neraca Saldo, dan mapping ke jurnal GL.State Machine — Siklus Hidup Laporan
Status Completeness
Sequence Diagrams
1. Generate Laporan Keuangan
2. Export & Cetak Laporan
3. Laporan Anggaran vs Aktual (Budget Matching)
Enum Tables
report_type (FinancialReportSnapshot)
source (FinancialRecord)
reference_type (FinancialRecord)
reference_type (GLJournalEntry)
period (Budget)
account_type (GLAccount)
status (GLJournalEntry)
completeness (Laporan)
budget_status (Budget)
Format Export
RBAC — Hak Akses Laporan Keuangan
Catatan RBAC
- Admin / Owner memiliki akses penuh ke seluruh entitas keuangan termasuk manipulasi COA dan jurnal
- Finance Staff dapat melihat dan generate laporan serta export, namun tidak dapat menghapus snapshot atau mengubah COA
- Accounting dapat memposting jurnal draft namun tidak dapat mengubah struktur COA
- Viewer / Auditor hanya memiliki akses baca terhadap laporan yang sudah di-generate
- RLS pada
FinancialRecordmemastikan user hanya melihat data sesuaicompany_idatau data miliknya sendiri - RLS pada
FinancialReportSnapshot,GLJournalEntry, danGLAccountmenggunakan filtercompany_iduntuk isolasi multi-tenant
