Organisasjons-synk
Når et selskap endrer navn i Brønnøysundregistrene, vil ikke denne endringen automatisk oppdateres i Finsta. Brukeren må aktivt hente oppdatert informasjon. Historiske årsoppgjør kan beholde det gamle navnet gjennom en overstyring.
Overstyring per årsoppgjør
Tre felt kan overstyres per årsoppgjør via FinancialStatementAttributes:
orgNameOverride
|
Foretaksnavn |
establishedAtOverride
|
Stiftelsesdato |
liquidatedAtOverride
|
Avviklingsdato (settes kun manuelt, oppdages ikke automatisk via synk) |
Alle artefakter (skattemelding, årsregnskap, næringsspesifikasjon, PDF-eksport) bruker effektivt organisasjonsnavn via getEffectiveOrganization().
Hvis det finnes en overstyring brukes den, ellers brukes verdien fra virksomheten.
Overstyring kan settes manuelt i innstillinger for årsoppgjøret, under "Virksomhet"-seksjonen (ekspander overstyringspanelet med chevron-knappen til høyre). Ved synkronisering styrer brukeren i modalen hvilke årsoppgjør som skal få overstyring; tidligere inntektsår foreslås forhåndsvalgt. Årsoppgjør som allerede har en overstyring beholdes uendret.
Synkroniseringsflyt
Når en navneendring oppdages, kan brukeren velge hvilke historiske årsoppgjør som skal beholde det gamle navnet.
sequenceDiagram
participant Patron
participant Finsta
participant Bruker
Patron->>Finsta: Pub/Sub: tenantUpdated
Finsta->>Finsta: Sammenligner med OrganizationEntity
Finsta->>Finsta: Lagrer pendingBrregSync
Bruker->>Finsta: Åpner synkroniseringsmodal
Finsta->>Patron: Henter gjeldende data (dryRun)
Finsta-->>Bruker: Viser endringer + årsoppgjørsliste
Bruker->>Finsta: Bekrefter valgte år
Finsta->>Finsta: Frontend oversetter år -> FS-UUID-er (med fsUuid for nåværende)
Finsta->>Finsta: Setter overstyring på nåværende FS (samme tx)
Finsta->>Finsta: Oppdaterer org, fjerner pendingBrregSync, commit
Finsta-->>Finsta: Publiserer event per resterende FS (async)
Synkroniseringsmodal
Modalen er tilgjengelig fra fire steder:
-
Innstillinger for årsoppgjøret (synk-knapp i "Virksomhet"-seksjonen)
-
Organisasjonskortet (tre-punkt-meny → "Hent oppdatert virksomhetsinformasjon")
-
Næringsspesifikasjon → Virksomhetsinfo (synk-ikon i tema-headeren)
-
Årsoppgjørstatus (synk-ikon ved "Innstillinger")
Flyten i modalen:
-
Henter endringer fra Patron (dryRun)
-
Viser hva som er endret (navn, stiftelsesdato) med gjennomstreking av gamle verdier
-
Bruker velger hvilke år som skal få overstyring med det gamle navnet
-
Ved bekreftelse oppdateres virksomheten og overridefelter settes
stateDiagram-v2
[*] --> Henter: Åpner modal
Henter --> IngenEndringer: Ingen diff
Henter --> ViserEndringer: Diff funnet
IngenEndringer --> [*]: Lukk
ViserEndringer --> Bekreftet: Bruker bekrefter
ViserEndringer --> [*]: Avbryt
Bekreftet --> [*]: Org oppdatert + overrides satt
Teknisk
- Synkroniseringsendepunkt
-
POST /organizations/:synchronizemedSynchronizeOrganizationCommand. StøtterdryRun,overrideFsUuids(hvilke årsoppgjør som får overstyring) ogfsUuid(årsoppgjøret brukeren står i når synken trigges).Overstyring av
fsUuidkjøres umiddelbart viaFsOverridePropagationDispatcheri samme transaksjon som org-oppdateringen, slik at brukeren ser resultatet med én gang. Øvrige FS-er ioverrideFsUuidsfanes ut somFsOverridePatchRequestedEventetter at org er commitet;FsOverrideEventListenerplukker dem opp på@Async-executoren, reetablerer tenant-schema viaTenantSchemaResolver.doWithTenant, og dispatcher hver patch i egen transaksjon med eget@CommandTracing-spor. Feil i async-bena logges (log.error→ GCP Error Reporting) uten retry — brukeren kan re-trigge synken.Respons:
preview(liste over alle FS, kun veddryRun) ogupdatedFs(resultatet av umiddelbar dispatch, kun nårfsUuider ioverrideFsUuids).dryRun=truehar én bivirkning: den oppdatererpendingBrregSyncpåOrganizationEntityslik at den gjenspeiler oppdaget tilstand. Hvis det finnes endringer lagres de; hvis det ikke finnes endringer men enpendingBrregSyncer lagret fra før, ryddes den opp. Ingen FS-overstyringer eller org-feltendringer skrives i dryRun. - Pub/Sub-lytter
-
TenantUpdatedEventListenerlytter påtenantUpdated-finsta. Aktiv som standard, kan skrus av medconta.patron.tenant.updated.enabled: false. Lagrer diff sompendingBrregSync(JSONB) påOrganizationEntity. En blå indikator vises på synk-knappene nårpendingBrregSynchar en verdi.