summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-21 21:43:44 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-21 21:43:44 +0200
commit62a92f0af0442c78277c3c97c9efe6fef8145625 (patch)
tree3802a62904880da22bf84a44e9ece3cdff9cd8aa /docs
parentf1eeb15781a044a9451ee08b91c63feb395b4767 (diff)
downloadbokf-8d2a0dd146475d0fab9711ade0df070a4e013bc6.tar.gz
bokf-8d2a0dd146475d0fab9711ade0df070a4e013bc6.zip
settings: per-feature voucher series and console invoice number; tui: F9 hintsv0.1.60
Diffstat (limited to 'docs')
-rw-r--r--docs/DECISIONS.md13
-rw-r--r--docs/PROTOCOL.md21
-rw-r--r--docs/STATE.md9
-rw-r--r--docs/TUI-GUIDELINES.md4
4 files changed, 35 insertions, 12 deletions
diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md
index a108f48..b52f8ec 100644
--- a/docs/DECISIONS.md
+++ b/docs/DECISIONS.md
@@ -201,7 +201,18 @@ kept verbatim from the STATE.md they were pruned from (2026-09-21).
employed now but everything is multi-employee; no semester accrual;
tax tables from day one; manual step-buttons (Bokför, Lönebesked,
AGI-underlag, Betala skatt & avgifter); bank phase 3 (`bank_rule.*`) is
- dropped.
+ dropped.
+25. **Per-feature voucher series (2026-09-21)**: the single standardserie
+ setting is replaced by one setting per feature that posts vouchers:
+ `series_voucher` (manual vouchers and new templates, default `A`,
+ falling back to the legacy `default_series`), `series_invoice` (`F`),
+ `series_payroll` (`L`), `series_bokslut` (`Å`) and `series_ib` (`IB`).
+ All are editable (Bolaget → Verifikationsserier), 1–8 characters with
+ no control characters. The manual voucher form remembers the last
+ series it posted as `series_voucher`. Reports and SIE treat both the
+ configured `series_ib` and the historical `IB` series as ingående
+ balans, so old books keep working. "Nästa fakturanummer" is editable
+ in Bolaget → Fakturauppgifter (owner only).
## Completed work formerly listed under "Pending decisions"
diff --git a/docs/PROTOCOL.md b/docs/PROTOCOL.md
index 76197d9..6d99225 100644
--- a/docs/PROTOCOL.md
+++ b/docs/PROTOCOL.md
@@ -374,11 +374,17 @@ resolved rows in a dry run.
| Command | Args | Notes |
|---|---|---|
| `settings.get` | — | effective org settings (defaults included); secret values replaced by `_set` flags |
-| `settings.set` | `key`, `value?` | known keys: `default_series`, `attachment_dir`, `bank_account`, `invoice_receivable_account`, `invoice_revenue_account`, `invoice_bankgiro`, `invoice_our_ref`, `smtp_host`, `smtp_port`, `smtp_user`, `smtp_from`, `smtp_reply_to`, `smtp_security`, `smtp_password` |
+| `settings.set` | `key`, `value?` | known keys: `default_series`, `series_voucher`, `series_invoice`, `series_payroll`, `series_bokslut`, `series_ib`, `attachment_dir`, `bank_account`, `invoice_receivable_account`, `invoice_revenue_account`, `invoice_bankgiro`, `invoice_our_ref`, `smtp_host`, `smtp_port`, `smtp_user`, `smtp_from`, `smtp_reply_to`, `smtp_security`, `smtp_password` |
-`default_series` (1–8 characters, e.g. `A`, `V-`, `A `) is used when
-`voucher.post` carries no `series` and as the default series for new
-templates. `attachment_dir` (a path, up to 255 characters) is accepted for
+`series_voucher`, `series_invoice`, `series_payroll`, `series_bokslut` and
+`series_ib` (1–8 characters, e.g. `A`, `V-`, `Å`) are the number series each
+feature posts into: manual vouchers, `invoice.issue`, payroll runs and
+payments, `bokslut.post` and ingående balans. They default to `A`, `F`, `L`,
+`Å` and `IB`; `series_voucher` also falls back to the legacy
+`default_series` (1–8 characters) when unset, and new templates default to
+it. Reports and SIE count both the configured `series_ib` and the
+historical `IB` series as ingående balans. `attachment_dir` (a path, up to
+255 characters) is accepted for
compatibility, but the TUI file browser now remembers the directory of the
last picked attachment client-side. `bank_account` (digits
only, up to 10 characters, default `1930`) is the account `bank.import` uses
@@ -963,10 +969,11 @@ commands. Implemented screens (0.1.0-dev):
- **Bolaget** — the dashboard's hub for the org's master data:
**Företagsuppgifter** (name, org number, VAT number, address, e-mail,
phone, moms period, framework, fiscal-year start month), editable in
- place by owners, others see it read-only; **Fakturauppgifter**
- (standardserie, fordringskonto, intäktskonto, bankgiro, vår referens) and
+ place by owners, others see it read-only; **Fakturauppgifter** (nästa
+ fakturanummer (owner), fordringskonto, intäktskonto, bankgiro, vår
+ referens); **Verifikationsserier** (the per-feature series); and
**E-post (SMTP)** (host, port, user, sender, reply-to, security,
- password), both `settings.set` and open to bookkeepers;
+ password), the last three `settings.set` and open to bookkeepers;
**Styrelseledamöter**; and the registers **Anställda**, **Kunder** and
**Momsregler**.
- **System** — the hub with **Skattetabeller** and **Revision**. The file
diff --git a/docs/STATE.md b/docs/STATE.md
index 929ddf1..56a23ed 100644
--- a/docs/STATE.md
+++ b/docs/STATE.md
@@ -43,8 +43,9 @@ unit tests and the docs consistency check.
headings: Verifikat, Underlag, Bankavstämning, Mallar, Fakturor,
Lönekörningar, Rapporter, Bokslut, Bolaget, System, Ingående balans,
Räkenskapsår, Logga ut. **Bolaget** is the master-data hub
- (Företagsuppgifter, Fakturauppgifter, E-post (SMTP), Styrelseledamöter
- and the registers Anställda, Kunder, Momsregler); **System** holds
+ (Företagsuppgifter, Fakturauppgifter with Nästa fakturanummer,
+ **Verifikationsserier**, E-post (SMTP), Styrelseledamöter and the
+ registers Anställda, Kunder, Momsregler); **System** holds
Skattetabeller and Revision. Inställningar is gone, and bilagornas mapp
is no longer a setting: the file browser remembers the last pick
directory in `tui.conf` and falls back to `$HOME`. `--screen settings`
@@ -134,6 +135,10 @@ Original entries for the struck items are in `docs/DECISIONS.md`.
## Known caveats
+- Saving with Ctrl+Enter needs a terminal that speaks xterm
+ `modifyOtherKeys` level 2 or the Kitty keyboard protocol; gnome-terminal/VTE
+ sends neither, so the hints advertise `F9`, which works everywhere.
+
- Developer tooling: the `g_cmd_<domain>[]` tables in `src/cmd_*.c` carry
declarative argument schemas (`CMD_ARGS`); `describe` emits them and the
dispatcher validates before the handler runs. `make check` (part of
diff --git a/docs/TUI-GUIDELINES.md b/docs/TUI-GUIDELINES.md
index 190a5c5..470f6d8 100644
--- a/docs/TUI-GUIDELINES.md
+++ b/docs/TUI-GUIDELINES.md
@@ -33,7 +33,7 @@ there.
| `Ctrl+F` | Attach a file via the file browser (voucher form and voucher detail) |
| `k` | Underlag: link the highlighted attachment to a voucher picked from a list |
| `Ctrl+X` | Clear the current row — only inside row editors (never "new") |
-| `Ctrl+Enter` | Save/post the current form. Enabled via xterm `modifyOtherKeys` level 2 or the Kitty keyboard protocol; terminals that send neither keep `F9` working, and the hints show `^Enter/F9` |
+| `Ctrl+Enter` | Save/post the current form. Needs xterm `modifyOtherKeys` level 2 or the Kitty keyboard protocol (xterm, kitty, foot, WezTerm); gnome-terminal/VTE sends neither, so the hints advertise `F9`, which works everywhere |
Every screen prints its keys in the footer via `hints()`. If a key exists, the
footer shows it; if the footer shows it, the key works. Control keys are
@@ -43,7 +43,7 @@ written compactly as `^N`, `^A`, `^C`, `^R` to save width.
- Rows are numbered `NN. text`, right-aligned so 2- and 3-digit numbers line up.
- Verifikation ids are shown concatenated as `series+number` (`V-8`, `A8`),
- using the org's `default_series` (Bolaget → Fakturauppgifter) for new
+ using the org's `series_voucher` (Bolaget → Verifikationsserier) for new
vouchers.
- The last row may be an action (e.g. `+ Nytt verifikat (Ctrl+N)`); selecting it
runs the action instead of opening a detail view.