feat(accounting): move Chart of accounts into Settings → Accounting

Consolidate all accounting configuration in one place. The Chart of
accounts (accounts table + category/default-account mappings) becomes a
self-contained ChartOfAccountsManager rendered in Settings → Accounting,
next to the VAT codes that already moved there. The /admin/accounting
section is now purely operational (Incoming invoices · Expenses · Tax).

The old /admin/accounting/ledger route redirects to the settings tab so
bookmarks keep working; the Tax page "Configure" link points there too.
ChartOfAccountsManager saves only the account keys (partial-merge safe,
same as VatCodesManager), so the two never revert each other's edits.
This commit is contained in:
Luca
2026-06-16 01:11:12 +02:00
parent 4ff5b84cb6
commit 97795f6d1e
5 changed files with 34 additions and 25 deletions
+3 -4
View File
@@ -69,7 +69,6 @@ import { ClientsLayout } from './components/admin/ClientsLayout';
import { AccountingLayout, AccountingIndex } from './components/admin/AccountingLayout';
import { AccountingInboxPage } from './pages/admin/accounting/AccountingInboxPage';
import { ExpensesLedgerPage } from './pages/admin/accounting/ExpensesLedgerPage';
import { ChartOfAccountsPage } from './pages/admin/accounting/ChartOfAccountsPage';
import { RequireFeature } from './components/admin/RequireFeature';
import { PageErrorBoundary, OfflineIndicator, SkipLink, DynamicFavicon, RobotsMetaTags, CMSContentBlock, Loading } from './components/common';
import { MaintenanceWrapper } from './components/MaintenanceWrapper';
@@ -291,9 +290,9 @@ function App() {
the old path working for bookmarks. */}
<Route path="export" element={<Navigate to="/admin/accounting/tax-report" replace />} />
</Route>
{/* Chart of accounts + VAT codes (Layer A) — gated by
the accounting master flag alongside the section. */}
<Route path="ledger" element={<ChartOfAccountsPage />} />
{/* Chart of accounts (Layer A) moved into Settings →
Accounting; keep the old path working for bookmarks. */}
<Route path="ledger" element={<Navigate to="/admin/settings?tab=accounting" replace />} />
<Route index element={<AccountingIndex />} />
</Route>
</Route>