feat: import system improvements, INK2 fix, and Swedish text corrections (#10)

- SIE parser: Windows-1252 and CP437 encoding detection and decoding
- Bank file parser: add Nordea Business (Företag) CSV format
- Bank file parser: improve format detection for SEB, Länsförsäkringar, generic CSV
- INK2 engine: calculate årets resultat (7222) from income statement for open fiscal years
- Dashboard: parallel Supabase queries, simplified dashboard page
- Fix Swedish characters (å, ä, ö) in BAS data descriptions, validation messages, AI consent disclosures
- Import wizard UI improvements across all steps
- Migration: add 'bas_range' match type to sie_account_mappings constraint
- Extensive new tests for SIE parser encoding and bank file parser

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-03-11 18:05:37 +01:00
committed by GitHub
co-authored by Claude Opus 4.6
parent a1ca96453c
commit e8fb84b4fd
39 changed files with 1129 additions and 425 deletions
+6 -6
View File
@@ -52,16 +52,16 @@ export function AiConsentDialog({
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent>
<DialogHeader>
<DialogTitle>AI-samtycke kravs</DialogTitle>
<DialogTitle>AI-samtycke krävs</DialogTitle>
<DialogDescription>
Denna funktion anvander AI-tjanster fran externa leverantorer.
Granska informationen nedan innan du fortsatter.
Denna funktion använder AI-tjänster från externa leverantörer.
Granska informationen nedan innan du fortsätter.
</DialogDescription>
</DialogHeader>
<div className="space-y-4 py-4">
<div>
<p className="text-sm font-medium mb-1">Leverantor</p>
<p className="text-sm font-medium mb-1">Leverantör</p>
<p className="text-sm text-muted-foreground">{disclosure.provider}</p>
</div>
@@ -80,11 +80,11 @@ export function AiConsentDialog({
</div>
<p className="text-xs text-muted-foreground">
Las mer i var{' '}
Läs mer i vår{' '}
<Link href="/privacy" className="underline underline-offset-4" target="_blank">
integritetspolicy
</Link>
. Du kan nar som helst aterkalla ditt samtycke i installningarna.
. Du kan när som helst återkalla ditt samtycke i inställningarna.
</p>
</div>
@@ -18,8 +18,8 @@ interface ConfirmDeleteDialogProps {
export default function ConfirmDeleteDialog({
open,
onOpenChange,
title = 'Bekrafta borttagning',
description = 'Ar du saker pa att du vill ta bort detta? Atgarden kan inte angras.',
title = 'Bekräfta borttagning',
description = 'Är du säker på att du vill ta bort detta? Åtgärden kan inte ångras.',
onConfirm,
isDeleting = false,
}: ConfirmDeleteDialogProps) {