Domain: Keuangan & SPP
Status: 🟢 Production Ready
SSOT untuk modul keuangan Scola — SPP, tagihan, pembayaran, akuntansi sekolah, scholarship.
📋 UAT Documentation | 🔒 100% Security Verified | ✅ Build Passing
Last verified: 2026-04-01
1. Visi & Best Practice
1.1 Regulasi & Standar Acuan
| Standar |
Relevansi |
| Permendikbud No. 164/U/2002 |
Pungutan biaya pendidikan |
| PP No. 48/2008 tentang Pendanaan Pendidikan |
Jenis biaya: SPP, pengembangan, investasi |
| PSAK 45 (revisi) |
Standar akuntansi nirlaba untuk yayasan |
| SAK ETAP |
Standar akuntansi untuk entitas pendidikan kecil-menengah |
| Permendikbud tentang BOS |
Bantuan Operasional Sekolah — transparansi & akuntabilitas |
1.2 Kondisi Ideal
Manajemen SPP / Biaya Sekolah:
- Template biaya bulanan per jenjang/kelas
- Komponen biaya: SPP, uang makan, kegiatan, dll.
- Scholarship/potongan: beasiswa penuh, parsial, yatim/piatu, berprestasi
- Enrollment biaya otomatis saat siswa masuk rombel baru
- Tagihan bulanan auto-generate dari template
- Cicilan/installment preset
- Invoice integration dengan modul akuntansi
Pembayaran:
- Rekam pembayaran manual (kasir/bendahara)
- Payment gateway integration (Midtrans, Xendit, dsb.)
- Konfirmasi pembayaran otomatis
- Bukti pembayaran (kuitansi) digital
- Reminder pembayaran otomatis (WhatsApp/Email/FCM)
Akuntansi Sekolah:
- Chart of Accounts (CoA) sesuai standar yayasan pendidikan
- Jurnal umum, buku besar
- Laporan keuangan: Laba/Rugi, Neraca, Arus Kas
- Realisasi anggaran (RKAS)
- Bank reconciliation
- Multi-period (per tahun ajaran & tahun fiskal)
- Audit trail
View per Role:
- Bendahara: full access keuangan
- Yayasan: laporan keuangan high-level (Laba/Rugi, Neraca, Arus Kas, Budget)
- Kepala Sekolah: overview keuangan + tunggakan
- Wali Kelas: SPP per kelas
- Orang Tua: tagihan & pembayaran anak sendiri
- Siswa: view tagihan sendiri
2. Arsitektur & Data Model
2.1 Backend Modules
| Module |
Deskripsi |
scola_fees |
Template biaya, enrollment, tagihan, scholarship, installment |
scola_account |
Chart of Accounts, journal entries, laporan keuangan |
openeducat_fees |
Base fee module (extended by scola_fees) |
2.2 Key Models
| Model |
Module |
Deskripsi |
scola.fee.template |
scola_fees |
Template biaya bulanan per jenjang |
scola.scholarship.type |
scola_fees |
Jenis beasiswa |
scola.installment.preset |
scola_fees |
Preset cicilan |
scola.student.fee.enrollment |
scola_fees |
Enrollment siswa ke template biaya |
scola.fee.schedule |
scola_fees |
Jadwal tagihan bulanan per siswa |
account.move |
scola_account |
Invoice (tagihan → jurnal akuntansi) |
account.payment |
scola_account |
Pembayaran |
account.account |
scola_account |
Chart of Accounts |
account.journal |
scola_account |
Journal entries |
2.3 Fee Mechanism Flow
Fee Template (per jenjang)
↓ Enrollment
Student Fee Enrollment (per siswa, dengan scholarship)
↓ Cron / Manual Generate
Monthly Fee Schedule (tagihan bulanan)
↓ Invoice
account.move (Odoo Invoice)
↓ Payment
account.payment (rekam bayar)
2.4 Frontend Structure
src/views/
├── AdminViews/
│ ├── AcademicConfig/Fees/
│ │ ├── FeeDashboard.vue # SPP dashboard (summary, aging, tunggakan, export)
│ │ ├── Template/FeeTemplateList.vue # Template biaya CRUD
│ │ ├── Template/FeeTemplateModal.vue
│ │ ├── Enrollment/FeeEnrollmentList.vue # Fee enrollment list
│ │ ├── Enrollment/FeeEnrollmentModal.vue
│ │ └── Schedule/FeeScheduleList.vue # Jadwal tagihan
│ ├── BendaharaDashboard.vue # Bendahara dashboard
│ └── PaymentConfig/ # Konfigurasi pembayaran & pajak
├── AccountingManagement/
│ ├── Budget/ # RKAS budget management
│ ├── Configuration/ # Bank account, journal, CoA, taxes
│ ├── Customer/ # Customer invoices & payments
│ ├── Vendor/ # Vendor bills, payable, payments
│ ├── Journal/ # Journal entries
│ ├── Reports/ # Laporan keuangan
│ │ ├── ProfitLossView.vue
│ │ ├── BalanceSheetView.vue
│ │ ├── CashFlowView.vue
│ │ ├── TrialBalanceView.vue
│ │ ├── GeneralLedgerView.vue
│ │ ├── PartnerLedgerView.vue
│ │ └── JournalAuditView.vue
│ ├── BankReconciliation/ # Rekonsiliasi bank
│ ├── Reminder/ # Payment reminders
│ ├── PaymentApproval/ # Payment approval workflow
│ ├── Tax/ # Tax dashboard, config, reports
│ ├── InventoryValuation/ # Valuasi inventaris (akuntansi)
│ └── AssetDepreciation/ # Penyusutan aset
├── Principal/
│ ├── PrincipalFinance.vue # Kepala sekolah finance overview
│ └── PrincipalFinanceReports.vue # Kepala sekolah laporan keuangan
├── ParentViews/SPP/
│ ├── tagihanList.vue # Daftar tagihan orang tua
│ ├── formBayar.vue # Form pembayaran (gateway integration)
│ ├── InvoicePrint.vue # Cetak invoice / kuitansi
│ └── berhasilBayar.vue # Konfirmasi berhasil bayar
├── StudentViews/Finance/
│ └── StudentBilling.vue # Student view tagihan
└── Yayasan/
└── YayasanDashboard.vue # Foundation financial reports
Services:
src/services/
├── finance/
│ ├── sppReport.service.js # SPP report data fetching
│ └── parentBilling.service.js # Parent billing/invoice API
└── paymentGateway.service.js # Payment gateway (create, status, methods)
2.5 API Endpoints
Kontrak aktif per 2026-03-26
- Core admin fee management (template, enrollment, schedule) masih berjalan via Odoo JSON-RPC model actions:
- scola.fee.template
- scola.student.fee.enrollment
- scola.fee.schedule
- Parent billing, payment gateway, BOS, budget, dan accounting reports sudah memakai endpoint canonical /api/v1/....
- Canonicalization penuh untuk CRUD admin fee management ditunda ke backlog; fokus saat ini adalah akurasi fungsi dan kecocokan FE/BE.
- Per 2026-04-01, perhitungan overdue, aging piutang, parent billing, dan default periode fee schedule sudah mengikuti school timezone, bukan timezone browser.
| Endpoint |
Method |
Deskripsi |
/api/v1/fees/invoices |
GET |
Daftar invoice |
/api/v1/fees/payments |
GET/POST |
Pembayaran |
/api/v1/accounting/coa |
GET/POST |
Chart of Accounts |
/api/v1/accounting/journal-entries |
GET/POST |
Journal entries |
/api/v1/accounting/reports/* |
GET |
Laporan keuangan |
/api/v1/accounting/bank-reconciliation |
GET/POST |
Bank reconciliation |
3. Fitur & Status Implementasi
3.1 SPP / Fee Management
| Fitur |
Status |
Catatan |
| Template biaya bulanan |
✅ Done |
Per jenjang/kelas; edit line-item diverifikasi sinkron dengan backend |
| Scholarship/beasiswa |
✅ Done |
Penuh, parsial, per komponen |
| Installment preset |
✅ Done |
Cicilan configurable |
| Student fee enrollment |
✅ Done |
Otomatis + manual; update edit kini mereset field installment/beasiswa stale sesuai backend |
| Monthly fee schedule generation |
✅ Done |
Cron + manual; transisi status manual kini lewat action model backend |
| Invoice generation |
✅ Done |
Terintegrasi account.move |
| Payment recording |
✅ Done |
Manual (bendahara) |
| SPP dashboard per kelas (wali kelas) |
✅ Done |
FeeDashboard |
| View tagihan (siswa) |
✅ Done |
SPPPage |
| View tagihan (orang tua) |
✅ Done |
ParentFinancePage |
| Payment reminder |
✅ Done |
ReminderConfig + auto-send |
| Bulk fee enrollment |
✅ Done |
Batch enrollment |
3.2 Akuntansi
| Fitur |
Status |
Catatan |
| Chart of Accounts |
✅ Done |
Odoo standard + customization |
| Journal entries |
✅ Done |
|
| Laporan Laba/Rugi |
✅ Done |
|
| Laporan Neraca |
✅ Done |
|
| Laporan Arus Kas |
✅ Done |
|
| Realisasi Anggaran |
✅ Done |
Via foundation view |
| Bank reconciliation |
✅ Done |
|
| Accounting dashboard |
✅ Done |
|
| Payment approval workflow |
✅ Done |
Rules, delegations |
| Inventory valuation |
✅ Done |
Link ke inventaris |
| Asset depreciation |
✅ Done |
Penyusutan aset tetap |
3.3 Payment Gateway
| Fitur |
Status |
Catatan |
| Payment gateway backend (Midtrans/Xendit) |
✅ Done |
scola.payment.gateway.config + scola.payment.transaction — VA, QRIS, e-wallet, callback, reconciliation |
| Payment gateway FE (VA/QRIS/polling) |
✅ Done |
formBayar.vue + paymentGateway.service.js — create, status polling, method selection |
| Callback handler Midtrans |
✅ Done |
/payment/callback/midtrans — signature verification + auto-reconcile |
| Callback handler Xendit |
✅ Done |
/payment/callback/xendit — token verification |
| Kuitansi digital (PDF) |
✅ Done |
Parent invoice print + download PDF tersedia |
| Export laporan ke Excel/PDF |
✅ Done |
Fee dashboard, tunggakan, dan report export sudah tersedia |
3.4 BOS Fund Management
| Fitur |
Status |
Catatan |
| BOS component master data |
✅ Done |
bos.fund.component — 13 komponen sesuai Juknis BOS |
| BOS allocation per period |
✅ Done |
bos.fund.allocation — per semester/triwulan, workflow draft→confirmed→approved→done |
| BOS realization tracking |
✅ Done |
bos.fund.allocation.line — link ke account.move.line, auto-compute realisasi |
| BOS API endpoints |
✅ Done |
/api/v1/bos/components, /api/v1/bos/allocations — CRUD + workflow |
| BOS FE management view |
✅ Done |
/accounting/bos-fund — summary cards, allocation table, detail modal, create modal |
3.5 Budget / RKAS
| Fitur |
Status |
Catatan |
| Budget management (RKAS) |
✅ Done |
account.budget — multi-level approval workflow (draft→submitted→approved→active→closed) |
| Budget lines & monitoring |
✅ Done |
account.budget.line — planned/actual/committed/available tracking |
| Budget alerts |
✅ Done |
account.budget.alert — threshold & overrun email alerts |
| Budget program RKAS (BOS/Regular) |
✅ Done |
scola.budget.program + FE BudgetProgramList.vue + BudgetRealizationReport.vue |
| Budget FE views |
✅ Done |
BudgetDashboard.vue, BudgetList.vue, BudgetForm.vue, BudgetDetail.vue |
3.6 Multi-Year Financial Comparison
| Fitur |
Status |
Catatan |
| Cross-period comparison API |
✅ Done |
/api/v1/finance/comparison — income/expense/balance per fiscal year |
| Multi-year comparison FE |
✅ Done |
/accounting/reports/multi-year — side-by-side, YoY diff, detail per akun |
3.7 Payment Reminder & WhatsApp
| Fitur |
Status |
Catatan |
| Payment reminder config |
✅ Done |
ReminderConfig.vue + ReminderDashboard.vue + ReminderCreate.vue |
| WhatsApp notification service |
✅ Done |
scola.notification.config + send_whatsapp() — WA Business API integration |
| Payment confirmation via WA |
✅ Done |
_send_payment_confirmation() — auto-send setelah pembayaran gateway berhasil |
4. Gap Analysis & Backlog
P1 — Important
| Gap |
Dampak |
Solusi |
Status |
| ~~Payment gateway (Midtrans/Xendit)~~ |
~~Ortu harus bayar manual~~ |
scola.payment.gateway.config + scola.payment.transaction + FE formBayar.vue + callbacks |
✅ Done |
| ~~Kuitansi digital (PDF)~~ |
~~Bukti bayar masih manual~~ |
Parent invoice print + PDF sudah aktif |
✅ Done |
| ~~Export laporan keuangan~~ |
~~Yayasan butuh Excel/PDF untuk rapat~~ |
Export summary/aging/overdue/by-class sudah tersedia |
✅ Done |
P2 — Nice to Have
| Gap |
Dampak |
Solusi |
Status |
| Canonical API untuk admin fee CRUD |
Kontrak admin fee masih bercampur JSON-RPC Odoo dan /api/v1, sehingga maintenance/testability belum ideal |
Satukan template, enrollment, dan schedule ke service/API canonical setelah flow inti stabil |
Backlog |
| ~~BOS fund tracking~~ |
~~Transparansi penggunaan dana BOS~~ |
bos.fund.* models + /api/v1/bos/* + FE /accounting/bos-fund |
✅ Done |
| ~~Multi-year financial comparison~~ |
~~Yayasan ingin lihat trend~~ |
/api/v1/finance/comparison + FE /accounting/reports/multi-year |
✅ Done |
| ~~Budget planning (RKAS) workflow~~ |
~~RKAS approval masih di luar sistem~~ |
account.budget + multi-level approval + FE Budget views |
✅ Done |
| ~~WhatsApp payment reminder~~ |
~~Reach lebih tinggi dari email~~ |
scola.notification.config + WA Business API + ReminderDashboard.vue |
✅ Done |
5. File References
Frontend
src/router/adminRoutes.js — Finance, accounting, fee, payment config routes
src/router/foundationRoutes.js — Foundation financial views (P&L, BS, CF, Budget)
src/router/principalRoutes.js — Principal finance routes
src/router/parentRoutes.js — Parent payment & tagihan routes
src/router/studentRoutes.js — Student billing routes
src/router/teacherRoutes.js — Wali kelas SPP per kelas route
src/views/AccountingManagement/ — Full accounting module (50+ routes)
src/views/AccountingManagement/BosFund/BosFundList.vue — BOS fund management
src/views/AccountingManagement/Reports/MultiYearComparison.vue — Multi-year comparison
src/views/AccountingManagement/Budget/ — Budget dashboard, list, form, detail
src/views/AccountingManagement/Reminder/ — Payment reminder config & dashboard
src/views/AdminViews/AcademicConfig/Fees/ — Fee template, enrollment, schedule, dashboard
src/views/AdminViews/BendaharaDashboard.vue — Treasurer dashboard
src/views/AdminViews/Budget/ — Budget program & realization
src/views/AdminViews/PaymentConfig/ — Payment config & tax management
src/views/ParentViews/SPP/ — Parent tagihan & payment flow
src/views/StudentViews/Finance/ — Student billing
src/views/Principal/PrincipalFinance.vue — Kepala sekolah finance overview
src/views/Yayasan/YayasanDashboard.vue — Foundation dashboard
src/services/paymentGateway.service.js — Payment gateway API service
src/services/finance/sppReport.service.js — SPP report data
src/services/finance/parentBilling.service.js — Parent billing API
src/services/finance/bosFund.service.js — BOS fund API service
src/services/admin/budget.service.js — Budget program RKAS service
Backend
scola_fees/ — Fee management module
scola_fees/models/payment_gateway.py — Payment gateway config + transaction models
scola_fees/controllers/payment_gateway_api.py — Payment API + Midtrans/Xendit callbacks
scola_fees/models/notification_service.py — Payment notification service
scola_fees/SCOLA_FEES_MECHANISM.md — Detailed mechanism (reference)
scola_account/ — Accounting extensions
scola_bos_rkas_bridge/models/bos_fund.py — BOS fund component, allocation, realization
scola_account/models/account_budget.py — Budget management + approval workflow
scola_account/controllers/bos_fund_api.py — BOS API + multi-year comparison endpoint
scola_portal/models/notification_config.py — WhatsApp notification configuration
7. Panduan Konfigurasi Implementor
Professional scope (SPP): configuration-guides/keuangan.md
Akuntansi penuh (SC-FIN) di luar scope Professional — lihat domain docs saat add-on aktif.
8. Panduan End User