Lewati ke isi

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

Role Panduan
Bendahara treasurer.md
Orang tua parent.md
Siswa student.md
Quick Start bayar-spp.md