feat(worklist): the next Skatteverket payment with bankgiro, OCR and due date under Att göra on Hem (#2435)

Part (a) of #2187. A twelfth worklist category, skattekonto_payment_due:
the earliest upcoming skattekonto charge whose sum exceeds the last synced
saldo, computed once in lib/worklist (server-side twin of the /skattekonto
page's Nästa dragning math) and rendered as one Betala row on Hem with the
shortfall, bankgiro 5050-1055, the OCR reference and the due date.

The row appears only when money has to move: a saldo that covers the charge
yields nothing, and no upcoming charge yields nothing. Ignored rows take
part, since Skatteverket draws them regardless of our flag. Without a
balance snapshot the full charge is the amount. Without an org number the
row keeps its bankgiro and date and drops the OCR.

No table, route or migration: /api/worklist/counts picks the category up
through getWorklistCounts, and Hem passes the computed row into the same
options wave as the expense payouts.

Part (b), a betalfil for the skattekonto payment, stays a follow-up: the
existing payment-file route is AGI-scoped.


Claude-Session: https://claude.ai/code/session_0179bdetHyofL6ATfQxB5wP5

Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-09-08 21:25:01 +02:00
committed by GitHub
co-authored by Jakob Wennberg Claude Fable 5.1
parent a7dcaac6ad
commit 20925f6c65
10 changed files with 353 additions and 9 deletions
+3
View File
@@ -6859,6 +6859,9 @@
"row_expense_payout": "Pay out expenses to {name}",
"row_expense_payout_detail_one": "1 receipt · {date}",
"row_expense_payout_detail_other": "{count} receipts · oldest {date}",
"row_skattekonto_payment": "Pay in to Skatteverket",
"row_skattekonto_payment_detail": "Bankgiro {bankgiro} · OCR {ocr} · by {date}",
"row_skattekonto_payment_detail_no_ocr": "Bankgiro {bankgiro} · by {date}",
"skv_promo_title": "Connect Skatteverket",
"skv_promo_description": "See your tax account and file VAT and employer declarations directly from here. Connect with BankID in a couple of minutes.",
"skv_promo_cta": "Connect",
+3
View File
@@ -6859,6 +6859,9 @@
"row_expense_payout": "Betala ut utlägg till {name}",
"row_expense_payout_detail_one": "1 kvitto · {date}",
"row_expense_payout_detail_other": "{count} kvitton · äldsta {date}",
"row_skattekonto_payment": "Betala in till Skatteverket",
"row_skattekonto_payment_detail": "Bankgiro {bankgiro} · OCR {ocr} · senast {date}",
"row_skattekonto_payment_detail_no_ocr": "Bankgiro {bankgiro} · senast {date}",
"skv_promo_title": "Koppla Skatteverket",
"skv_promo_description": "Se skattekontot och lämna moms- och arbetsgivardeklarationer direkt härifrån. Anslut med BankID på ett par minuter.",
"skv_promo_cta": "Anslut",