From e1dd7112e0346914710566660625da0f6b866e8a Mon Sep 17 00:00:00 2001 From: Anders Betts Date: Mon, 21 Sep 2026 11:45:54 +0200 Subject: tui: payroll screens, Företag/System menu and settings split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/PAYROLL.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'docs/PAYROLL.md') diff --git a/docs/PAYROLL.md b/docs/PAYROLL.md index b821754..23e7fb1 100644 --- a/docs/PAYROLL.md +++ b/docs/PAYROLL.md @@ -5,7 +5,7 @@ Status: Design draft · 2026-09-21 · License: GPL-3.0-or-later Payroll for a small Swedish AB that runs monthly salaries from the books. Wave 1 is the engine and the mandatory steps; the employee is the owner but the schema and commands are multi-employee from the start. Wave 2 (the -lönebesked PDF and its delivery) is done; wave 3 is the TUI. +lönebesked PDF and its delivery) and wave 3 (the TUI) are done. ## 1. Scope @@ -227,12 +227,19 @@ the base is the gross. SMTP configuration `SMTP_NOT_CONFIGURED` and a failed delivery `SMTP_FAILED` (the stored attachment stays linked). `dry_run` validates, renders and stores nothing. See `PROTOCOL.md` §7.12. -- **TUI — Lön** (new section after Fakturering): `Lönekörningar` (list, - Ctrl+N for a new run), `Anställda` under Register, and a **Skattetabeller** - action/status that fetches and warns. +- **TUI — Lön** (done, `clients/screens_payroll.c`): `Lönekörningar` (list, + Ctrl+N for a new run) under Lön, `Anställda` under Företag, and a + **Skattetabeller** screen (System, since the tables are national) with + status, the Skatteverket fetch and the offline file import. - The run screen shows the preview (F5), posts with Ctrl+Enter after - confirmation, then offers the buttons **Lönebesked**, **AGI-underlag** and - **Betala skatt & avgifter** as manual steps. + confirmation, then offers the buttons **Lönebesked** (saves/opens the + PDF), **AGI-underlag** (`payroll.agi` in a pager, owner only) and + **Betala skatt & avgifter** (`payroll.pay_tax` with a date prompt) as + manual steps. Steps that do not apply yet are dimmed with the reason. + Posting and paying show the resulting voucher as `V-`. +- The list title warns when the current year's tax tables are missing; a + new run is refused with a pointer to Anställda when nobody has a monthly + salary. ## 7. Testing -- cgit v1.3