diff --git a/app/(dashboard)/import/page.tsx b/app/(dashboard)/import/page.tsx index 1dd60a7f..5fbad292 100644 --- a/app/(dashboard)/import/page.tsx +++ b/app/(dashboard)/import/page.tsx @@ -700,7 +700,12 @@ const SIE_STEP_LABELS: Record = { result: 'Resultat', } -function SIEImportWizard() { +function SIEImportWizard({ + onOpenManualOpeningBalances, +}: { + /** Switch to the manual "Ingående balanser" wizard (SIE preview, issue #2082). */ + onOpenManualOpeningBalances?: () => void +}) { const { toast } = useToast() const [step, setStep] = useState('upload') @@ -1143,7 +1148,8 @@ function SIEImportWizard() { {step === 'preview' && preview && ( goToStep(showMappingStep ? 'mapping' : 'review')} onBack={goBack} /> + onContinue={() => goToStep(showMappingStep ? 'mapping' : 'review')} onBack={goBack} + onOpenManualOpeningBalances={onOpenManualOpeningBalances} /> )} {step === 'mapping' && ( } {mode === 'skattekonto' && } - {mode === 'sie' && } + {/* The CSV/Excel wizard opens on "Ingående balanser" by default, which is + exactly the manual path the SIE preview offers on an IB imbalance. */} + {mode === 'sie' && setMode('csv_data')} />} {mode === 'underlag' && } {mode === 'csv_data' && } {mode === 'migration' && ( diff --git a/components/import/SIEPreviewStep.tsx b/components/import/SIEPreviewStep.tsx index b87996fe..5497e092 100644 --- a/components/import/SIEPreviewStep.tsx +++ b/components/import/SIEPreviewStep.tsx @@ -27,6 +27,12 @@ interface SIEPreviewStepProps { isCreatingAccounts: boolean onContinue: () => void onBack: () => void + /** + * Opens the manual "Ingående balanser" wizard (issue #2082). Offered next to + * the IB-imbalance acknowledgement so a user who rightly hesitates to book an + * unexplained amount to 2099 has somewhere to go other than support. + */ + onOpenManualOpeningBalances?: () => void } export default function SIEPreviewStep({ @@ -37,6 +43,7 @@ export default function SIEPreviewStep({ isCreatingAccounts, onContinue, onBack, + onOpenManualOpeningBalances, }: SIEPreviewStepProps) { const errors = issues.filter((i) => i.severity === 'error') const warnings = issues.filter((i) => i.severity === 'warning') @@ -193,12 +200,31 @@ export default function SIEPreviewStep({ Ingående balanser balanserar inte ({formatCurrency(Math.abs(ibDiff))})

- Det betyder oftast att exporten från ditt bokföringssystem är ofullständig: - t.ex. att skulder saknas eller att föregående års resultat inte är disponerat. - Om du fortsätter bokförs differensen på konto 2099 (Årets resultat), vilket - nästan alltid blir fel. Vi rekommenderar att du rättar exporten i källsystemet - och laddar upp filen på nytt. + Vanligaste orsaken är att föregående års resultat aldrig fördes över till + eget kapital i det gamla programmet. SpeedLedger parkerar det till exempel på + egna 9xxx-konton (9030/9031 Obokat resultat), och då summerar inte filens + ingående balanser till noll: differensen är det oförda resultatet. En annan + orsak är en ofullständig export, till exempel att skulder saknas.

+

+ Rätta i källsystemet och ladda upp filen på nytt, eller lägg in de ingående + balanserna för hand i guiden Ingående balanser, där du kan rätta raderna + själv innan de bokförs (den här filen importeras då inte). Fortsätter du ändå + bokförs differensen på konto 2099 (Årets resultat), vilket nästan alltid blir + fel. +

+ {onOpenManualOpeningBalances && ( + + )}