0%
balqalam Logo
balqalam
FeaturesCommunityPricingDocumentation
Login
  • Introduction
  • Help center
  • Common questions
  • Get Started
  • Localhost
  • Architecture
  • Structure
  • Pattern
  • Page
  • Layout
  • Content
  • Types
  • Config
  • Actions
  • Queries
  • Authorization
  • Validation
  • Form
  • Table
  • Detail
  • Card
  • Util
  • Hooks
  • List Params
  • Views
  • README.md
  • ISSUE.md
  • Technology Stack
  • Database
  • File
  • CDN Assets
  • Entry Points
  • Dashboard
  • Authentication
  • Credentials
  • OAuth
  • Flow Diagrams
  • Multi-Tenancy
  • Offline
  • Onboarding
  • Onboarding Videos
  • Add Values
  • Admission
  • Application
  • Attendance
  • Compliance
  • Profile
  • Exams
  • Exam Wizard
  • Timetable
  • Classrooms
  • Notifications
  • Conference
  • LMS (Lumos)
  • Finance
  • Fee Management
  • Invoice
  • Wallet
  • Salary
  • Payroll
  • Timesheet
  • Expenses
  • Budget
  • Receipt
  • Accounts
  • Banking
  • Reports
  • Dashboard
  • Permissions
  • Messages
  • Integration Flow
  • Provision
  • AI Document Processing
  • Document Intelligence
  • Internationalization
  • Translation
  • Translation Guide
  • Icons
  • Docs Factory
  • Inspiration
  • Listings
  • Teachers
  • Students
  • Catalog
  • Library
  • Contributing
  • Code of conduct
  • GitHub Workflow
  • Database Seeds
  • Database Safety
  • Test Accounts
  • Bulk import
  • Playwright
  • Prettier
  • Block Rebound
  • Transportation

Expenses

PreviousNext

Expense submission, approval workflow, categories, and budget integration. CRUD, approval, and budget deduction work; expense payments don't post to the ledger, approval-chain emails aren't wired, and a legacy content file is pending removal.

Expenses lets staff submit costs, routes them through approval, deducts approved amounts from budget allocations, and processes reimbursement. Categories are managed alongside.

Flow

Submit expense (DRAFT)  →  approve / reject  →  on approval, deduct from budget allocation
  →  process payment (reimbursement)

Status

FeatureStatus
Expense CRUD (schoolId-scoped)Production
Category managementProduction
Approval state machineProduction
Budget deduction on approvalProduction
Email notification on approval changePlanned
Approval routing rules (by amount/category)Planned
Bulk CSV importPlanned
OCR receipt scanning / expense-to-receipt linkingPlanned (see Receipt)

Routes

RoutePageStatus
/{lang}/finance/expensesOverviewReady
/{lang}/finance/expenses/allAll expenses listReady
/{lang}/finance/expenses/newSubmit expenseReady
/{lang}/finance/expenses/[id]Expense detailReady
/{lang}/finance/expenses/categoriesCategory managementReady

Server actions

ActionPurpose
createExpense / updateExpenseExpense create / edit
approveExpenseApprove/reject; deducts from budget allocation
createExpenseCategoryAdd an expense category
getExpensesList expenses (tenant-scoped)

Ledger / accounting

Does not post to the ledger. postExpensePayment exists in the engine but has zero callers, so approving/paying an expense does not create journal entries (the README's lib/accounting/ claim is aspirational). Approval does, however, decrement the linked budget allocation.

Schema

prisma/models/finance-budgets.prisma: Expense, ExpenseCategory — schoolId-scoped. ExpenseCategory stores user-facing category names with no lang field, so categories render in their stored language only.

Stubs

  • expenses/content-old.tsx — legacy file pending removal.
  • validation.ts factory not yet wired to consumers.

Tests

None.

Key files

ComponentPath
Server actionssrc/components/school-dashboard/finance/expenses/actions.ts
Configsrc/components/school-dashboard/finance/expenses/config.ts
Contentsrc/components/school-dashboard/finance/expenses/content.tsx
Schemaprisma/models/finance-budgets.prisma

See also

  • Finance — block overview
  • Budget — allocations expenses draw down
  • Receipt — receipt capture for expense evidence
TimesheetBudget

On This Page

FlowStatusRoutesServer actionsLedger / accountingSchemaStubsTestsKey filesSee also

Built by Databayt ·

Welcome to balqalam.

A great journey is about to begin.