Files
accounted/extensions/ne-bilaga/types.ts
T
2026-02-19 14:32:54 +01:00

81 lines
2.0 KiB
TypeScript

// NE-bilaga rutor (NE appendix boxes)
export interface NEDeclarationRutor {
R1: number // Försäljning med 25% moms (3000-3499 excl 3100)
R2: number // Momsfria intäkter (3100, 3970, 3980)
R3: number // Bil/bostadsförmån (3200)
R4: number // Ränteintäkter (8310-8330)
R5: number // Varuinköp (4000-4990)
R6: number // Övriga kostnader (5000-6990, 7970)
R7: number // Lönekostnader (7000-7699)
R8: number // Räntekostnader (8400-8499)
R9: number // Avskrivningar fastighet (7820)
R10: number // Avskrivningar övrigt (7700-7899 excl 7820)
R11: number // Årets resultat (beräknat)
}
// NE account mapping configuration
export interface NEAccountMapping {
ruta: keyof NEDeclarationRutor
description: string
accountRanges: Array<{
start: string
end: string
exclude?: string[]
}>
isExpense: boolean // true = debit normal, false = credit normal
}
// NE declaration response
export interface NEDeclaration {
fiscalYear: {
id: string
name: string
start: string
end: string
isClosed: boolean
}
rutor: NEDeclarationRutor
// Detailed breakdown per ruta
breakdown: Record<keyof NEDeclarationRutor, {
accounts: Array<{
accountNumber: string
accountName: string
amount: number
}>
total: number
}>
// Company info for SRU
companyInfo: {
companyName: string
orgNumber: string | null
}
// Warnings
warnings: string[]
}
// SRU file format types
export interface SRURecord {
fieldCode: string
value: string | number
}
export interface SRUFile {
records: SRURecord[]
generatedAt: string
}
// Labels for NE rutor
export const NE_RUTA_LABELS: Record<keyof NEDeclarationRutor, string> = {
R1: 'Försäljning med moms (25%)',
R2: 'Momsfria intäkter',
R3: 'Bil/bostadsförmån',
R4: 'Ränteintäkter',
R5: 'Varuinköp',
R6: 'Övriga kostnader',
R7: 'Lönekostnader',
R8: 'Räntekostnader',
R9: 'Avskrivningar fastighet',
R10: 'Avskrivningar övriga tillgångar',
R11: 'Årets resultat'
}