---
tags: [accounting, hub]
module: Accounting
---

# Accounting Module — Hub

> Central index for the Accounting module (~614 PHP files). Use Obsidian's Graph View to navigate connections.

## Models
[[[Model]Account]] · [[[Model]JournalEntry]] · [[[Model]JournalRecord]] · [[[Model]Asset]] · [[[Model]BankStatement]] · [[[Model]EasyEntry]] · [[[Model]Reconciliation]] · [[[Model]IntegrationModels]]

## Controllers
[[[Controller]AccountController]] · [[[Controller]JournalEntryController]] · [[[Controller]AssetController]] · [[[Controller]BankStatementController]] · [[[Controller]EasyEntryController]] · [[[Controller]ReconciliationController]]

## Services
[[[Service]AccountServices]] · [[[Service]JournalEntryServices]] · [[[Service]AssetServices]] · [[[Service]BankStatementServices]] · [[[Service]EasyEntryServices]] · [[[Service]ReconciliationServices]] · [[[Service]IntegrationSyncServices]]

## Infrastructure
[[[Repo]Repositories]] · [[[Observer]Observers]] · [[[Job]Jobs]] · [[[Middleware]Middleware]] · [[[Command]Commands]] · [[[Enum]Enums]]

## Reference
[[[Routes]Routes]] · [[[DB]DatabaseTables]] · [[[Cross]CrossModuleDependencies]]

---

## Quick Architecture Summary

```
Request
  └─► Route (web.php / api.php)
        └─► Middleware (auth, permission, locking)
              └─► Controller
                    ├─► Validator (Http/Validators/)
                    ├─► Service (business logic)
                    │     └─► Repository → Model → Observer
                    └─► Job (async recalculation)
```

**Multi-tenancy**: all models use `UsesTenantConnection` trait — each company gets its own DB.  
**Auditing**: `AuditableTrait` on most models via `owen-it/laravel-auditing`.  
**Permissions**: `spatie/laravel-permission` — every route is gated by `permission:accounting.*`.

---

## Related Modules
[[START_HERE]] · [[_Settings]] · [[_CompanyUser]] · [[_Products]] · [[_HR]] · [[_Attachments]]
