'use client' import { Badge } from '@/components/ui/badge' import { AccountNumber } from '@/components/ui/account-number' import { CheckCircle2, Paperclip } from 'lucide-react' interface ReviewLine { account_number: string debit_amount: string credit_amount: string line_description: string } interface JournalEntryReviewContentProps { periodName: string entryDate: string description: string lines: ReviewLine[] totalDebit: number totalCredit: number attachmentCount?: number showBalanceBadge?: boolean hideDate?: boolean } function formatAmount(amount: number): string { return amount.toLocaleString('sv-SE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) } export function JournalEntryReviewContent({ periodName, entryDate, description, lines, totalDebit, totalCredit, attachmentCount, showBalanceBadge = true, hideDate = false, }: JournalEntryReviewContentProps) { const activeLines = lines.filter( (l) => l.account_number && (l.debit_amount || l.credit_amount) ) return (
{/* Header info */}
Räkenskapsår

{periodName}

{!hideDate && (
Datum

{entryDate}

)}
Beskrivning

{description}

{/* Balance status */} {(showBalanceBadge || (attachmentCount != null && attachmentCount > 0)) && (
{showBalanceBadge && ( Debet = Kredit )} {attachmentCount != null && attachmentCount > 0 && ( {attachmentCount} {attachmentCount === 1 ? 'underlag' : 'underlag'} )}
)} {/* Debit/Credit table */} {activeLines.map((line, index) => ( ))}
Konto Beskrivning Debet Kredit
{line.line_description || ''} {parseFloat(line.debit_amount) > 0 ? formatAmount(parseFloat(line.debit_amount)) : ''} {parseFloat(line.credit_amount) > 0 ? formatAmount(parseFloat(line.credit_amount)) : ''}
Summa {formatAmount(totalDebit)} {formatAmount(totalCredit)}
) }