feat(accounting): Accounting nav section + relocate Tax report out of CRM

Adds the `accounting` feature flag to the frontend (type, context default) and
a Settings -> Features toggle card. When enabled:

- A new top-level "Accounting" sidebar entry appears (gated by `accounting` +
  accounting.view), with an AccountingLayout sub-nav mirroring ClientsLayout.
- The Tax report relocates: it is HIDDEN from the CRM (Clients) sub-nav and
  shown under Accounting instead, at /admin/accounting/tax-report. When
  accounting is OFF, Tax stays under CRM exactly as before.

Tax visibility still depends on `taxReport` (which depends on `bills`), so the
relocation only changes WHERE the menu item lives, not whether it exists.

Files: featureFlags.service.ts (+'accounting'), FeatureFlagsContext default,
AdminSidebar entry, new AccountingLayout, ClientsLayout filter, App.tsx route,
FeaturesTab card, en/de i18n (navigation.accounting, accounting.*,
settings.features.accounting; DE authored natively).

Verified: `npm run build` green; en/de JSON valid.
This commit is contained in:
Luca
2026-06-11 00:04:40 +02:00
parent c305492845
commit 30c0007f40
9 changed files with 235 additions and 2 deletions
@@ -45,6 +45,10 @@ export const DEFAULT_FLAGS: FeatureFlags = {
// Settings → Features once they've reviewed the seeded block
// library with their lawyer.
contracts: false,
// Accounting (migration 122). Top-level Accounting area (inbound
// supplier invoices, expenses + re-bill). When ON, the tax report
// moves out of the CRM sub-nav and under Accounting. Strictly opt-in.
accounting: false,
};
export const FEATURE_FLAGS_QUERY_KEY = ['feature-flags'] as const;