Luca
03cc250b47
feat(accounting): Layer A backend — chart of accounts, VAT codes, Treuhänder export
Prepares picpeak to feed a Treuhänder's double-entry software once a user
crosses the CHF ~500k threshold (LI PGR Art. 1045), without becoming an ERP.
- migration 129: ledger_accounts (seeded Swiss/LI KMU-Kontenrahmen) +
vat_codes (CH/LI MWST 8.1/2.6/3.8/0 + reverse charge), expense_categories
gains ledger_account_id, app_settings default-account + VAT-map seeds
- ledgerService: full CRUD for accounts + VAT codes + mappings; buildPostings()
turns revenue invoices + incoming invoices + expenses into accrual
Buchungssätze (Dr/Cr + VAT code); generic/banana/bexio CSV export
- routes /api/admin/ledger/* (accounting master gated; export also requires
taxReport); 12 unit tests (posting engine + formatters)
Accrual basis only — payment/bank postings are Layer B. Output is a guideline
(Treuhänder caveat on the UI).
2026-06-11 21:37:48 +02:00
..
2026-05-02 22:56:04 +02:00
2026-05-29 13:25:36 +02:00
2026-05-27 14:04:15 +02:00
2026-05-26 18:18:51 +02:00
2026-05-26 18:18:51 +02:00
2026-06-02 11:33:45 +02:00
2026-05-14 23:11:00 +02:00
2026-05-03 22:06:06 +02:00
2026-05-03 22:06:06 +02:00
2026-05-26 18:18:51 +02:00
2026-06-11 12:38:23 +02:00
2026-05-04 23:26:25 +02:00
2026-05-26 18:18:51 +02:00
2026-05-26 18:18:51 +02:00
2026-05-26 18:18:51 +02:00
2026-06-11 21:37:48 +02:00
2026-05-26 18:18:51 +02:00
2026-05-26 18:18:51 +02:00
2026-05-02 22:56:04 +02:00
2025-10-02 23:39:17 +02:00
2026-05-26 18:18:51 +02:00
2026-05-26 18:18:51 +02:00
2026-06-11 21:09:13 +02:00
2026-06-11 21:09:13 +02:00
2026-05-29 11:26:24 +02:00
2026-05-29 22:49:01 +02:00