feat(accounting): Accounting settings tab (km / per-diem rate, require-proof)

New Settings -> Accounting tab (gated by the accounting flag) to edit the km
rate, per-diem rate and the "require proof for expense" toggle (reads GET /
writes PUT /admin/settings/accounting). Rates are CHF, stored as integer minor
units; carries the "verify with your Treuhaender" disclaimer. Wired into
SettingsPage (TabType, keys, flag-gated nav item, render) + the features barrel.

i18n: settings.accounting.* (EN + DE, DE native).
Verified: tsc --noEmit clean (0 errors); en/de JSON valid; npm run build green.
This commit is contained in:
Luca
2026-06-11 12:59:36 +02:00
parent f305541f90
commit 2b7495e4dc
5 changed files with 111 additions and 3 deletions
+11
View File
@@ -1705,6 +1705,17 @@
},
"crm": {
"title": "CRM-Verhalten"
},
"accounting": {
"title": "Buchhaltung",
"subtitle": "Standardsätze für interne Aufwände und die Belegpflicht.",
"kmRate": "Kilometersatz (CHF / km)",
"kmRateHint": "Standard für Kilometer-Aufwände; pro Eintrag überschreibbar.",
"perDiemRate": "Spesenpauschale (CHF / Tag)",
"perDiemRateHint": "Standard für Pauschal-Aufwände; pro Eintrag überschreibbar.",
"requireProof": "Beleg für jeden Aufwand verlangen",
"disclaimer": "Sätze und MwSt-/Steuerbehandlung dienen nur als Orientierung — mit Ihrem Treuhänder prüfen.",
"savedToast": "Buchhaltungseinstellungen gespeichert."
}
},
"branding": {
+11
View File
@@ -1263,6 +1263,17 @@
},
"crm": {
"title": "CRM behaviour"
},
"accounting": {
"title": "Accounting",
"subtitle": "Default rates for internal expenses and the proof requirement.",
"kmRate": "Mileage rate (CHF / km)",
"kmRateHint": "Default applied to mileage expenses; overridable per entry.",
"perDiemRate": "Per-diem rate (CHF / day)",
"perDiemRateHint": "Default applied to per-diem expenses; overridable per entry.",
"requireProof": "Require a proof file on every expense",
"disclaimer": "Rates and VAT/tax treatment are guidance only — verify with your Treuhänder.",
"savedToast": "Accounting settings saved."
}
},
"analytics": {