| Age | Commit message (Collapse) | Author |
|
Needs the current password (wrong ones rate limited like logins) and a
password session, requires at least 10 characters, closes the user's
other sessions and is audited without secrets. The TUI main menu gets
"Byt lösenord" with masked prompts; ^R keeps working with the new
password. Masked prompt buffers are wiped before they are freed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Reopens the org picker (cursor on the current org) and switches the
running session: the org's name, role, current fiscal year and series
are reloaded and the remembered list selections cleared. The context
reload now clears the previous org's values first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The goto prompt decides on its first key: digits jump to a row number as
before, any other printable key searches the row texts of the list or
menu (case-insensitive, also åäö), with up/down stepping through the
matches. Keys typed into the prompt no longer reach the screen's key
hook, and Enter in the action menu closes an open prompt.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The detail pads every column by display width, blanks zero amounts and
shows row texts and a Summa line. Up/Down step to the previous/next
voucher in the list order; 's' cycles the list sort (number or date,
ascending or descending, saved in tui.conf). The list fetches all pages
of voucher.list instead of stopping at 200.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Forms edit fields in place in the value column instead of a bottom
prompt, highlight only the focused value and scroll when taller than the
screen; long text scrolls horizontally instead of wrapping. Fixes: typing
after Backspace/Del no longer wipes the field, 'q' is text in row tables,
the caret resets between cells, dialogs decode arrow keys, full buffers
never take half a UTF-8 character, an invalid amount stays editable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Stäng skip
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
|
|
|
|
checks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sru.export now returns the emitted fields as ink2/ink2r/ink2s arrays
plus from/to, so Rapporter -> Inkomstdeklaration (INK2/SRU) renders the
declaration as a table with the official fältnamn before saving; unmapped
accounts are listed in the view.
The voucher list puts the verifikat id before the date, widens the column
gaps and adds an inner margin.
|
|
- bokslut.post: year-end bookings (manual entries, periodiseringsfond,
skatt at a given rate, resultatdisposition) with a dry-run plan through
the normal ledger path; the resultatrapport separates
bokslutsdispositioner and skatt per K2.
- sru.export: INFO.SRU + BLANKETTER.SRU (INK2/INK2R/INK2S) from the
official 2025P4 field tables and the BAS mapping, with manual INK2S
adjustments, submitter defaults and unmapped-account detection; the TUI
writes both files from Rapporter -> Inkomstdeklaration.
- voucher.list carries attachment_count and the voucher list marks
vouchers with underlag with an x column.
- date_prompt restores the cursor state so it stops blinking at the bottom
after the report date prompts.
|
|
The voucher detail can attach a file to an existing voucher (^F) and
the underlag picker (f) can remove a link (d, confirmed). The Underlag
inbox links a highlighted item to a voucher picked from a list (k).
attachment.link and attachment.unlink are new write commands (dry-run,
audited); unlinked files return to the inbox. The same content may now
link to several vouchers — only the same voucher/attachment pair is a
CONFLICT, matching the table's primary key.
|
|
report.vat_eskd builds the ISO-8859-1 XML from report.vat: whole
kronor with öre truncated like the blankett, box 48 positive as filed,
MomsBetala computed from the whole-krona boxes, and an optional
upplysning converted from UTF-8, XML-escaped and capped at 300
characters. The TUI momsrapport gains "s = spara eSKD", prompting for a
path and writing the bytes verbatim.
Verified against the FY2027 Kapitas report: 05=703200, 10=175800,
20=1453, 30=851, 48=1030, 49=175621.
|
|
printf widths count bytes, so Swedish labels shifted every following
column by one per multi-byte character: Huvudbok's Ingående/Omslutning/
Utgående saldo lines, moms ruta 48/49, and the Resultatrapport,
Saldobalans and Verifikationslista headers no longer lined up with
their rows.
pad_min() pads to display columns without truncating long moms labels
and pad_hdr() right-aligns headers; the Ingående balans/saldo amounts
now sit in the far-right Saldo column like the Kapitas export.
|
|
The report menu gains Kapitas-style Huvudbok and Verifikationslista
tables. "Byt räkenskapsår" is now "Räkenskapsår": the list shows
öppen/stängd and ^A closes or reopens the highlighted year (via the new
fiscal_year.reopen). Menus remember the selection, Mallar opens straight
into the list (Enter edit, ^N new, d arkivera), report tables get column
rules and aligned sums, and text_view clears stale lines.
Footer hints write control keys as ^N/^A/^C/^R/^X, ^Enter saves or posts
a form and ^X clears the focused row (F9 still works as a fallback).
|
|
The report views dumped JSON; they now render Saldobalans,
Resultatrapport (previous-year column, 89xx bokfört/ej bokfört),
Balansrapport (Ing balans/Ing saldo/Period/Utg balans, Beräknat
resultat) and Momsrapport ruta för ruta, with Swedish amount
formatting (1 234,56).
The moms starter rules missed 33xx sales, sent reverse-charge VAT
2614 to box 10 instead of 30 and had box 48 positive. Rules may now
share a box and report.vat sums them; box 49 is the sum of the moms
boxes only. Schema v3 replaces the rules for existing orgs. Verified
on a copy of the live DB: 05=703 200, 10=175 800, 20=1 453, 30=851,
48=-1 030, 49=175 621, matching the Kapitas 2027 export.
Ctrl+R reload passes --socket and auto-login no longer rewrites
tui.conf; pty tests now run through scripts/tui-sandbox.sh so they
cannot touch the real config, cache or bw session.
|
|
|
|
ui_getch mapped Ctrl+R to Esc, but the dashboard treats Esc as a
no-op and looped, so do_reload was never reached; from sub-screens the
key merely bounced back to the dashboard. Dashboard and the early
screens now honour the flag. Verified by observing the re-exec and
session reuse in ~/.cache/bokf/tui.log.
|
|
try_login is called with a->username as the user; snprintf with
overlapping source and destination is undefined and produced "" on
glibc, so config_save wrote 'user=' and later reloads could not
auto-login. Copy through a temporary, carry BOKFD_USER on reload and
never persist an empty user.
|
|
Template names, org names, filenames and the account-list type column
were padded with byte widths, so Swedish characters broke the alignment.
|