fix(salary): surface missing sender bankgiro/IBAN before betalfil download (#1640)

* fix(salary): surface missing sender bankgiro/IBAN before betalfil download

Users see a bankgiro under BANKUPPGIFTER in settings (Bolagsverket
snapshot, display only) while the payment-file routes read
company_settings.bankgiro, so the LB download failed with an error
that pointed at a page that looked correct. 153 companies have a
registry bankgiro but an empty settings field.

- PaymentFilePanel warns up front when the sender bankgiro (bg_lb)
  or IBAN (pain001) is missing, linking to Installningar -> Fakturering
- betalkonton form offers a one-click prefill of the bankgiro from
  companies.tic_snapshot (Luhn-validated, user still saves)
- bg-lb and skattekonto payment-file error copy now names the exact
  place to fix instead of 'foretagsinstallningar'

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(salary): harden bankgiro prefill and warning per skeptic review

- bankgiroFromTicSnapshot now requires the snapshot's orgNumber to match
  companies.org_number before suggesting anything: stale fuzzy-matched
  snapshots can hold another entity's profile, and this field becomes the
  payee account on invoices and Peppol e-invoices
- salary run page refetches settings when the URL returns from the
  intercepting settings modal, so a bankgiro/IBAN saved there clears the
  missing-sender warning instead of leaving it stale

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Mattsson
2026-08-17 11:15:37 +02:00
committed by GitHub
co-authored by Claude Fable 5
parent 25524e1df4
commit 1bb423b2b3
11 changed files with 310 additions and 16 deletions
+4
View File
@@ -1933,6 +1933,9 @@
"pain001_agreement_warning": "pain.001 is normally delivered through a file transfer agreement or a bankgiro connection, not by uploading it in your online bank. Check that your bank accepts the file that way well before the pay date.",
"sunset_warning": "Swedish banks are retiring Bankgirot Lön during 2026 — Swedbank stops accepting LB salary files on 1 August 2026, other banks during the autumn. Switch to pain.001 in good time.",
"sunset_link": "Change in payroll settings",
"missing_bankgiro_warning": "The company bankgiro number is not filled in, so the LB file cannot be generated. The bankgiro shown under Company details comes from Bolagsverket and is not used automatically.",
"missing_iban_warning": "The company IBAN is not filled in, so the pain.001 file cannot be generated.",
"missing_sender_link": "Enter it under Settings → Invoicing",
"download": "Download payment file",
"download_failed_title": "Payment file could not be generated",
"download_failed_fallback": "Could not generate payment file",
@@ -2169,6 +2172,7 @@
"clearing_label": "Clearing number",
"account_number_label": "Account number",
"bankgiro_label": "Bankgiro",
"bankgiro_prefill": "Use the number from Bolagsverket: {value}",
"plusgiro_label": "Plusgiro",
"swish_label": "Swish",
"iban_label": "IBAN",
+4
View File
@@ -1933,6 +1933,9 @@
"pain001_agreement_warning": "pain.001 skickas normalt via filkommunikationsavtal eller bankgirokoppling, inte genom att laddas upp i internetbanken. Kontrollera att din bank tar emot filen den vägen i god tid före utbetalningsdagen.",
"sunset_warning": "Bankerna avvecklar Bankgirot Lön under 2026 — Swedbank slutar ta emot LB-lönefiler 1 augusti 2026, övriga banker under hösten. Byt till pain.001 i god tid.",
"sunset_link": "Ändra i löneinställningarna",
"missing_bankgiro_warning": "Företagets bankgironummer är inte ifyllt, så LB-filen kan inte skapas. Bankgirot som visas under Bolagsuppgifter är hämtat från Bolagsverket och används inte automatiskt.",
"missing_iban_warning": "Företagets IBAN är inte ifyllt, så pain.001-filen kan inte skapas.",
"missing_sender_link": "Ange under Inställningar → Fakturering",
"download": "Ladda ner betalfil",
"download_failed_title": "Betalfil kunde inte genereras",
"download_failed_fallback": "Kunde inte generera betalfil",
@@ -2169,6 +2172,7 @@
"clearing_label": "Clearingnummer",
"account_number_label": "Kontonummer",
"bankgiro_label": "Bankgiro",
"bankgiro_prefill": "Hämta från Bolagsverket: {value}",
"plusgiro_label": "Plusgiro",
"swish_label": "Swish",
"iban_label": "IBAN",