'use client' import { useState } from 'react' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Switch } from '@/components/ui/switch' import { Label } from '@/components/ui/label' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select' import { formatCurrency } from '@/lib/utils' import { CheckCircle, AlertCircle, ArrowRight, Loader2, Calendar, FileText, Database, } from 'lucide-react' import type { ImportPreview, AccountMapping } from '@/lib/import/types' interface ImportReviewStepProps { preview: ImportPreview mappings: AccountMapping[] onExecute: (options: ImportExecuteOptions) => Promise onBack: () => void isLoading: boolean } export interface ImportExecuteOptions { createFiscalPeriod: boolean importOpeningBalances: boolean importTransactions: boolean voucherSeries: string } export default function ImportReviewStep({ preview, mappings, onExecute, onBack, isLoading, }: ImportReviewStepProps) { const [options, setOptions] = useState({ createFiscalPeriod: true, importOpeningBalances: true, importTransactions: true, voucherSeries: 'B', }) const handleExecute = () => { onExecute(options) } const updateOption = ( key: K, value: ImportExecuteOptions[K] ) => { setOptions((prev) => ({ ...prev, [key]: value })) } // Calculate what will be imported const mappedCount = mappings.filter((m) => m.targetAccount).length const hasOpeningBalances = preview.openingBalanceTotal > 0 const hasTransactions = preview.voucherCount > 0 return (
{/* Summary */} Redo att importera Granska inställningarna nedan och klicka på "Starta import" för att genomföra importen.

{preview.companyName || 'Okänt företag'}

{preview.orgNumber || 'Inget orgnr'}

Räkenskapsår

{preview.fiscalYearStart ? new Date(preview.fiscalYearStart).toLocaleDateString('sv-SE') : '?'}{' '} -{' '} {preview.fiscalYearEnd ? new Date(preview.fiscalYearEnd).toLocaleDateString('sv-SE') : '?'}

{mappedCount} konton mappade

{preview.voucherCount} verifikationer

{/* Import options */} Importinställningar Välj vad som ska importeras {/* Fiscal period */}

Skapar automatiskt räkenskapsåret om det inte redan finns

updateOption('createFiscalPeriod', checked)} />
{/* Opening balances */}

{hasOpeningBalances ? `Skapar verifikation för IB på ${formatCurrency(preview.openingBalanceTotal)}` : 'Inga ingående balanser i filen'}

updateOption('importOpeningBalances', checked)} disabled={!hasOpeningBalances} />
{/* Transactions */}

{hasTransactions ? `Importerar ${preview.voucherCount} verifikationer med ${preview.transactionLineCount} rader` : 'Inga verifikationer i filen (SIE1-format?)'}

updateOption('importTransactions', checked)} disabled={!hasTransactions} />
{/* Voucher series */} {options.importTransactions && hasTransactions && (

Använd en separat serie för att enkelt kunna skilja importerade från manuella verifikationer

)}
{/* Warnings */} {!preview.trialBalance.isBalanced && ( Observera

De ingående balanserna i filen balanserar inte helt. En justeringspost kommer att skapas automatiskt mot konto 2099 (Årets resultat).

)} {/* What happens next */} Vad händer när du importerar?

1. Räkenskapsåret skapas om det inte finns

2. En verifikation för ingående balanser skapas

3. Alla verifikationer importeras med nya verifikationsnummer

4. Kontomappningarna sparas för framtida importer

Importen kan inte ångras automatiskt, men du kan ta bort skapade verifikationer manuellt.

{/* Actions */}
) }