Solavel Solavel Docs

Settings

docs/solavel-finance/settings.md

Who can use this: Owner has full access. Manager and Accountant have read access on most pages and edit access on a curated subset (see below). Approver does not see settings. URL / Route: /finance/settings (finance.settings.index). The settings area registers around 79 routes covering general settings, sequences, PDF templates, currencies, exchange rates, workflow, dimensions, custom fields, custom views, API access, and more. Plan / feature gate: the index is open to anyone with settings.view. Each sub-section adds its own feature flag. Permissions: settings.view, settings.manage. Sub-sections add: settings.currencies.view / manage, settings.exchange_rates.view / manage, settings.sequences.view / manage, settings.pdf_templates.view / manage, settings.workflow.view / manage, settings.taxes.view / manage, custom_fields.manage, custom_views.view / manage_own / manage_shared, dimensions.view / manage / assign, workflow_rules.view / manage, api.view / manage_keys / view_usage.

Purpose

Settings is where you configure the boring-but-load-bearing parts of Solabooks: numbering sequences, PDF templates, multi-currency support, approval workflows, custom fields, dimensions for analytic reporting, and API keys. Most of these only need to be set once per organization.

The settings index at /finance/settings lists every section as a tile; the tiles a user sees are filtered by their permissions and the org's feature flags.

What lives here

General — /finance/settings/general (finance.settings.general)

Edit organization name, registration number, contact details, base currency, locale, decimal precision, and logo. Permission: settings.view to read, settings.manage to edit.

Plan & modules status — /finance/settings/plan-status (finance.settings.plan-status)

Shows your active plan, every feature flag with its current state, and any plan limits (e.g. max scheduled reports). Owner can toggle optional modules at finance.settings.plan-status.modules.toggle.

Precision and lock — /finance/settings/precision-lock (finance.settings.precision-lock)

Per-currency decimal precision and the global lock-date for posting. Permission: settings.view / settings.manage.

Account defaults — /finance/settings/account-defaults (finance.settings.account-defaults)

Default ledger accounts for: sales, sales returns, AR, AP, COGS, inventory, undeposited funds, exchange-rate gain/loss, rounding. These flow into new transactions to save you re-picking accounts every time.

Document sequences — /finance/settings/document-sequences (finance.settings.document-sequences)

The numbering rules for invoices, quotes, sales orders, credit notes, sales receipts, bills, bill payments, debit notes, expenses, journal entries, etc. Each row carries a prefix, padding, current next-number, and optionally a per-fiscal-year reset. Permission: settings.sequences.view / manage.

A second screen at /finance/sequences (finance.sequences.index) provides a deeper editor.

PDF templates — /finance/pdf-templates (finance.pdf-templates.*)

Feature flag: pdf_templates_enabled (default: enabled).

Manage the PDF templates that print on invoices, quotes, statements, journal entries, etc. Includes a gallery (finance.pdf-templates.gallery), live preview (preview and preview-html), apply-preset (apply-preset), duplicate, and set-default. Permissions: settings.pdf_templates.view / manage.

Currencies — /finance/currencies (finance.currencies.*)

Feature flag: multi_currency_enabled (default: off).

Manage the list of currencies your organization can transact in. Permissions: settings.currencies.view / manage. Exchange rates live alongside at finance.currencies.rates.index, rates.fetch (auto-fetch from a rate provider), rates.manual (record a rate by hand), rates.lookup. Permissions: settings.exchange_rates.view / manage.

Approval workflow — /finance/workflow (finance.workflow.*)

Feature flag: workflow_enabled (default: off). Plus tracker.sales_approval_workflow and tracker.purchase_approval_workflow for the sales/purchase variants.

Define the approval steps that a quote, invoice, bill, or payment must pass before it can post. Each step has a name, an approver, and an amount threshold. Permissions: settings.workflow.view / manage. Sales-specific rules sit at /finance/settings/sales/workflow (finance.settings.sales.workflow.*).

Workflow rules — /finance/admin/workflow-rules (workflow-rules.* and finance.admin.workflow-rules.*)

Feature flag: tracker.workflow_rules (default: off).

Define generic if-this-then-that rules: when a document matches a condition, perform an action (assign approver, send a notification, set a tag). Permissions: workflow_rules.view / manage.

Taxes — /finance/settings/taxes (finance.settings.taxes.index)

Feature flag: vat_enabled (default: enabled).

Cross-links to tax codes, tax rates, and the VAT regime. See Taxes and VAT. Permissions: settings.taxes.view / manage, plus the tax.* permissions on the underlying pages.

Tax codes — /finance/settings/tax-codes (finance.settings.tax-codes.*)

The tax code catalog. Permissions: tax.codes.view / tax.codes.manage.

Dimensions — /finance/settings/dimensions (finance.settings.dimensions.*)

Feature flag: tracker.reporting_tags_dimensions (default: off).

Dimensions are analytic tags on transactions — typical examples: Department, Cost Centre, Project, Region. Each dimension has values you can pick on transaction lines. Permissions: dimensions.view / manage. Per-dimension requirements (e.g. "every line on an invoice must carry a Department tag") use dimensions.manage.

Custom fields — /finance/settings/custom-fields (finance.settings.custom-fields.*)

Feature flag: tracker.custom_fields (default: off).

Add bespoke fields to invoices, bills, customers, suppliers, items, etc. Each field has a type (text, number, date, dropdown), required-flag, and order. Permissions: custom_fields.manage (a single permission for all custom-field operations).

Custom views — /finance/settings/custom-views (finance.settings.custom-views.*) and /finance/custom-views/{entity_type} (finance.custom-views.*)

Feature flag: tracker.custom_views (default: off).

Save a list-screen filter as a named view (for example, "All overdue invoices") and pin it to the toolbar. Permissions: custom_views.view, custom_views.manage_own, custom_views.manage_shared.

API access — /finance/settings/api-access (finance.settings.api-access.*)

Feature flag: tracker.api_integration (default: off). Org-level toggle: finance_api_enabled.

Manage API keys for the external /api/v1/* integration surface. Permissions: api.view, api.manage_keys, api.view_usage.

Mileage settings — /finance/settings/mileage (finance.settings.mileage.*)

Feature flag: tracker.track_mileage_expenses (default: off).

Default rate per kilometre, default expense account, and default tax behaviour for mileage logs. Permission: mileage.manage_all.

Sales workflow — /finance/settings/sales/workflow (finance.settings.sales.workflow.*)

Feature flags: workflow_enabled and tracker.sales_approval_workflow. Permissions: settings.view to read; settings.manage to edit.

Comments and collaboration

⚠️ Risk: feature key tracker.comments_on_transactions is referenced as an entitlement but is not declared in finance_features.php for the org-level features map — may always block.

Per-document comment threads exist app-wide; they don't have a settings page of their own. Permissions: comments.view, comments.create, comments.manage_all, comments.pin. The "Internal Solabooks Comments" thread (finance.comments.* routes) is the append-only audit-style log.

Organization permissions and feature flags (Owner-only)

Three Owner-only screens let an organization Owner override role permissions per role and per user, and toggle organization-level feature flags:

  • /finance/settings/organizations/{organization}/features (finance.settings.organizations.features.index) — toggle org feature flags. Permission middleware: finance.owner.
  • /finance/settings/organizations/{organization}/permissions/roles (finance.settings.organizations.permissions.roles) — per-role overrides on top of the canonical role-permission sets.
  • /finance/settings/organizations/{organization}/permissions/users and …/users/{user} (…permissions.users, …users.edit) — per-user grants and denials.

These are the only places a built-in role's permissions can be customised; the four canonical role keys (Owner, Manager, Accountant, Approver) are otherwise immutable.

Behaviour and rules

  • Most settings sub-sections require the matching feature flag to be on. If a tile is missing from the index, check Plan & modules status.
  • Currency and decimal-precision changes are forward-only — switching base currency after transactions exist is not allowed in this build.
  • Sequence numbers are guaranteed unique per fiscal year if "reset per year" is enabled; otherwise globally unique.
  • Custom fields and dimensions become live at save-time and apply to new transactions only — historical postings are unchanged.
  • Owner-only override screens are powerful — granting too many permissions to a junior role can defeat the deny-list defaults of the Manager / Accountant roles.

Permissions / restrictions

  • View: settings.view.
  • Edit: settings.manage plus the section-specific permissions listed above.
  • Owner-only sub-sections: organization feature flags, role overrides, user overrides, plan-status module toggles.

Related

Source: docs/solavel-finance/settings.md ← All documentation