Files
boc/aamos-ledger/CLAUDE.md
T

148 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CLAUDE.md — aamos-ledger
> AI-kontext för alla som jobbar i detta repo.
## Vad är detta?
**aamos-ledger** är LandveX AB:s bokföringsmotor — en komplett, egenutvecklad redovisningsmotor med:
- Dubbel bokföring (debet = kredit, alltid)
- BAS 2024 kontoplan (svensk standard)
- SIE4-import och export
- Multi-tenant isolering (tenant_id på varje rad)
- Full audit trail (varje operation sparas i `ledger_audit_log`)
- Hermes event-publicering (alla ekonomiska händelser)
**Port:** 3250
**Tenant för LandveX AB:** `landvex`
**Tjänstnamn (systemd):** `aamos-ledger`
---
## Arkitektur
```
index.mjs — Express-app, alla API-routes
schema.sql — PostgreSQL-schema (kör vid start via initSchema())
hermes.mjs — Event-publishing till Hermes fabric
sie4-export.mjs — SIE4-exportlogik
Dockerfile.migrate — DB-migration container
package.json — Node ESM-modul
```
### Databasschema (nyckelltabeller)
| Tabell | Beskrivning |
|--------|------------|
| `ledger_accounts` | Kontoplan (BAS 2024, IFRS, custom) |
| `ledger_journal_entries` | Verifikationer (IMMUTABLE efter `posted`) |
| `ledger_entry_lines` | Kontolinjer per verifikat (debet/kredit) |
| `ledger_periods` | Perioder (`open`/`closed`/`locked`) |
| `ledger_audit_log` | Audit trail för varje operation |
| `ledger_reconciliation_items` | Kontoavstämning |
| `ledger_period_close_tasks` | Periodeclose workflow |
| `ledger_vat_returns` | Momsdeklarationer |
| `ledger_fiscal_years` | Räkenskapsår |
---
## API-design
Alla endpoints kräver auth (JWT eller API-key). Tenant sätts via:
- Header: `X-Tenant-ID: landvex`
- Body: `{ "tenant_id": "landvex" }`
Exempel:
```bash
GET /api/accounts?tenant=landvex
POST /api/journal-entries
GET /api/periods?tenant=landvex
POST /api/sie4/export
```
Trace-propagering via headers:
- `X-Trace-ID` — propageras genom hela systemet
- `X-Correlation-ID` — korrelation per request-träd
- `X-User-ID` — vem som triggar
---
## Designprinciper (OBRYTBARA)
1. **Determinism före AI** — alla bokföringsbeslut reproducerbara
2. **Audit First** — VARJE operation genererar auditpost
3. **Tenant Isolation** — kunddata korsas aldrig, `tenant_id` filtreras alltid
4. **Hermes** — ekonomiska händelser publiceras via event fabric
5. **Inga direktberoenden** — till andra moduler (utom Hermes via events)
6. **IMMUTABLE journal** — poster ändras ALDRIG efter `status=posted`; annullering = ny `voided`-post
---
## Etapp 1 — Vertikal stängning (pågår juni 2026)
Checklista:
- [x] Chart of Accounts (BAS 2024)
- [x] Journal Entries med audit trail
- [x] SIE4-import
- [ ] **E1-004** Reconciliation Engine
- [ ] **E1-005** Period Close Workflow
- [ ] **E1-006** SIE4 Export (komplett)
- [ ] Auth mot Identity Service
- [ ] aamos-audit-engine restart-fix
- [ ] **E1-008** Vertikal stängning acceptanstest
---
## LandveX AB — Nuläge (per 2026-06-17)
| Mått | Värde |
|------|-------|
| Journalposter totalt | ~710 |
| Alla poster | `posted` (inga drafts) |
| Obalanserade poster | **0** |
| Aktiva konton | 38 |
| Revolut-poster på 1689 (oklassificerade) | ~545 / 966 685 kr |
| Q1-moms förfallen | **202 787 kr** — OBETALD |
| Leon-fordran | **212 922 kr** (konto 1610) |
| Trygg Bil-avtal | 222 916 kr/mån t.o.m. mars 2027 |
---
## Ekonomisystem — Fortnox-klonen i Ouroboros
Live-URLer:
- **Fortnox-klonen:** https://landvex.com/ouroboros/finance/
- **Verifikatsvy:** https://landvex.com/ouroboros/finance/ledger.html
- **CFO-dashboard:** https://landvex.com/public/cfo-dashboard.html
Filer på disk:
- `/opt/amos/public/ouroboros/finance/index.html`
- `/opt/amos/public/ouroboros/finance/ledger.html`
- `/opt/amos/public/public/cfo-dashboard.html`
---
## Kör lokalt
```bash
cd /home/bernt/.openclaw/workspace/aamos-ledger
# eller källkoden live på servern:
sudo -n systemctl status aamos-ledger
sudo -n journalctl -u aamos-ledger -n 50
# Health check
curl -sk http://localhost:3250/health
```
---
## Bolagsinfo
- **Bolag:** LandveX AB (org.nr 559141-7042, f.d. Sommarliden Holding AB)
- **Räkenskapsår:** 1 maj 30 april
- **FY 2025/2026:** avslutat, bokslut senast 31 okt 2026
- **Revisor:** Andreas Vretblad, KPMG, +46 70 865 67 27
---
*Senast uppdaterad: 2026-06-17*