Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gjenbruk barnetilsyn steg 3, 4 og 5 #1556

Merged
merged 63 commits into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
addce42
Refaktorert erFerdigUtfylt, tatt variabler og funksjoner ut av erFerd…
gunnsteingarmo Dec 1, 2023
a1a3842
Lagt til logger. Typet kjennerIkkeIdent. Henter alltid forrige søknad…
gunnsteingarmo Dec 1, 2023
d2afd0b
Logger søknad i preprod
gunnsteingarmo Dec 1, 2023
2167530
Fjerner console log
olekvernberg Dec 4, 2023
dc04332
Fjerner console log
olekvernberg Dec 4, 2023
bac78a6
Tar inn søker med barn i forrige søknad for å kunne gjenbruke i steg …
olekvernberg Dec 4, 2023
28272ec
console log søker state
olekvernberg Dec 7, 2023
6f73ec4
Fjerner ubrukt settSøknad og passer på å ikke skrive over søker ved h…
olekvernberg Dec 7, 2023
86c95a1
Skriver over barn i state dersom det finnes en forrige søknad
olekvernberg Dec 8, 2023
dd0f34d
Lagt til console logger for å feilsøke.
gunnsteingarmo Dec 8, 2023
7d27fbc
Bruker verdi i for å sjekke harPlanerOmÅBliSamboerEllerSkalGifteSeg.
gunnsteingarmo Dec 8, 2023
cfc3eb7
Merge branch 'master' into gjenbruk-barnetilsyn-steg3-og-4
gunnsteingarmo Dec 11, 2023
f411250
Fjernet tomme linjer ved import.
gunnsteingarmo Dec 11, 2023
9dbcbbd
Laget en funksjon for å kun console logge lokalt og i preprod. Logger…
gunnsteingarmo Dec 11, 2023
80765ef
Lagt til console logger for å finne ut hvordan id på barn utarter seg.
gunnsteingarmo Dec 11, 2023
c01b56c
Bruk verdi og ikke svarId for boolean felt bodd sammen med annen fore…
olekvernberg Dec 12, 2023
1a995c2
Fix tekster engelsk (#1548)
gunnsteingarmo Dec 12, 2023
b079193
Merge branch 'master' into gjenbruk-barnetilsyn-steg3-og-4
gunnsteingarmo Dec 12, 2023
d7c9826
Gjort slik at beskrivelse av annet om hvorfor ikke oppgi vises i teks…
gunnsteingarmo Dec 13, 2023
ccc8f92
Skriver over verdi i porperty ikkeOppgittAnnenForelderBegrunnelse i s…
gunnsteingarmo Dec 13, 2023
c6d58ce
Bruk verdi og ikke svarId for sjekk på om spørsmål om ikke oppgitt fo…
olekvernberg Dec 13, 2023
8b1bf2e
Viser ikke teksten Donor i tekstfeltet begrunnelse hvis det blir bytt…
gunnsteingarmo Dec 14, 2023
df98d35
Refaktorert filen BarnetsBostedEndre, tatt kode ut i en hjelperfil og…
gunnsteingarmo Dec 14, 2023
c70e67a
Flyttet constanter ut i egen fil for bedre lesbarhet
olekvernberg Dec 14, 2023
b810285
Forbedring av visning av spørsmål ved endring av barn i barnekort
olekvernberg Dec 15, 2023
85ce8e9
Merge remote-tracking branch 'origin/master' into gjenbruk-barnetilsy…
olekvernberg Dec 15, 2023
8018f24
Forbedring av visning av spørsmål ved endring av barn i barnekort
olekvernberg Dec 15, 2023
407fd9c
Sjekker om dato for datoSkalGifteSegEllerBliSamboer enten er frem ell…
gunnsteingarmo Dec 15, 2023
81dc66b
Sjekker at harValgtBorISammeHusEllerBorIkkeINorge er gjort før neste …
gunnsteingarmo Dec 18, 2023
e83926a
Skal ikke vise teksten 'ikke oppgitt' i tekstfeltet navn på annen for…
gunnsteingarmo Dec 19, 2023
1c37a89
Merge branch 'master' into gjenbruk-barnetilsyn-steg3-og-4
gunnsteingarmo Dec 19, 2023
9fe3104
Tatt søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring ut i en f…
gunnsteingarmo Dec 20, 2023
d5ab7a2
Sletter properties fra nyForelder hvis det er huket av for at man ikk…
gunnsteingarmo Dec 20, 2023
c9d0e55
Refaktorert kode til å laget en funksjon for å slette irrelevant prop…
gunnsteingarmo Dec 20, 2023
470b21c
Må også slette land hvis huket av for 'kan ikke oppgi annen forelder'
gunnsteingarmo Dec 21, 2023
cf66b87
Håndtere hvis verdi er null i erAlleFelterUtfylt og case EAktivitet.e…
gunnsteingarmo Dec 21, 2023
b821cd6
Logger fetchPersonData for å enklere fikse bug
gunnsteingarmo Dec 21, 2023
bf3adca
Vil slå sammen data om barn fra fetchPersonData og forrige søknad.
gunnsteingarmo Dec 22, 2023
62d8389
Oppdaterte feil oppdaterSøknadMedBarn, den i BarnetilsynApp er korrek…
gunnsteingarmo Dec 22, 2023
339749e
Fjernet consoleLogLokaltOgDev fra filer.
gunnsteingarmo Dec 22, 2023
584bf6b
Lagt til log for å finne feil.
gunnsteingarmo Dec 22, 2023
f240fab
Ønsker å så sammen barn i hentForrigeSøknadBarnetilsyn.
gunnsteingarmo Dec 22, 2023
83c6412
Unngå å lage en kopi av et barn.
gunnsteingarmo Dec 22, 2023
cebccdd
Filtrerer på ident, da id er satt med på ny med UUID.
gunnsteingarmo Dec 22, 2023
5600801
Gjort ednringer i hentForrigeSøknadBarnetilsyn filtrerer på prevSøknad.
gunnsteingarmo Dec 22, 2023
937ff26
Listen med barn blir slått sammen av forrigeSøknad og en filtrert lis…
gunnsteingarmo Dec 22, 2023
43f4e9f
Refaktorert settHvorforIkkeOppgi bruker const på verdi og setter den …
gunnsteingarmo Dec 22, 2023
743a3ad
Merge branch 'master' into gjenbruk-barnetilsyn-steg3-og-4
charliemidtlyng Jan 2, 2024
4ef7db4
Merge remote-tracking branch 'origin/master' into gjenbruk-barnetilsy…
olekvernberg Jan 3, 2024
9331835
Lagt til visningstekst for registrert partner
olekvernberg Jan 3, 2024
38902d5
Bedre validering på HvorMyeSammen hvis man har hoppet litt frem og ti…
gunnsteingarmo Jan 3, 2024
95166d2
Refaktorert utfyltBorINorge og bruker den til å validere at land er f…
gunnsteingarmo Jan 3, 2024
916f99f
Fjernet funksjonen consoleLogLokaltOgPreprod. Byttet til vanlig conso…
gunnsteingarmo Jan 4, 2024
c9133c2
Tatt kode ut i funksjon leggTilNyttBarnSidenForrigeSøknad for å gjøre…
gunnsteingarmo Jan 5, 2024
f52d794
Endret navnet på funksjon leggTilNyttBarnSidenForrigeSøknad til finnN…
gunnsteingarmo Jan 5, 2024
7fe3f2f
Ryddet++. Fjernet duplikat styled components kode, tatt det ut i egne…
gunnsteingarmo Jan 8, 2024
4e520c4
Håndter at erStrengtFortrolig kan være undefined.
gunnsteingarmo Jan 8, 2024
3190d33
Merge remote-tracking branch 'origin/master' into gjenbruk-barnetilsy…
olekvernberg Jan 8, 2024
b90fc0a
Merge remote-tracking branch 'origin/gjenbruk-barnetilsyn-steg3-og-4'…
olekvernberg Jan 8, 2024
0247d49
Ønsker å slette datoSkalGifteSegEllerBliSamboer hvis det er huket av …
gunnsteingarmo Jan 8, 2024
9970e38
Bruker svar til å sjekke spørsmålet.
gunnsteingarmo Jan 8, 2024
0096f37
Bruker svar til å sjekke spørsmålet.
gunnsteingarmo Jan 8, 2024
b12f6cb
Ønsker å slette vordendeSamboerEktefelle fra bosituasjon hvis Nei er …
gunnsteingarmo Jan 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions src/barnetilsyn/BarnetilsynApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,16 @@ const BarnetilsynApp = () => {
const oppdaterSøknadMedBarn = (person: IPerson, barneliste: IBarn[]) => {
const barnMedLabels = oppdaterBarnMedLabel(barneliste, intl);

settSøknad &&
settSøknad((prevSøknad) => ({
settSøknad((prevSøknad) => {
const prevBarn = prevSøknad.person.barn;

const oppdatertBarn = [...prevBarn, ...barnMedLabels];

return {
...prevSøknad,
person: { ...person, barn: barnMedLabels },
}));
person: { ...person, barn: oppdatertBarn },
};
});
};

const fetchToggles = () => {
Expand All @@ -95,7 +100,6 @@ const BarnetilsynApp = () => {
])
.then(() => settFetching(false))
.catch(() => settFetching(false));
// eslint-disable-next-line
}, []);

useEffect(() => {
Expand Down
41 changes: 30 additions & 11 deletions src/barnetilsyn/BarnetilsynContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import tomPerson from '../mock/initialState.json';
import { EBosituasjon } from '../models/steg/bosituasjon';
import { ISpørsmål, ISvar } from '../models/felles/spørsmålogsvar';
import { ISøknad, ForrigeSøknad } from './models/søknad';
import { ForrigeSøknad, ISøknad } from './models/søknad';
import {
hentDokumentasjonTilFlersvarSpørsmål,
oppdaterDokumentasjonTilEtSvarSpørsmål,
Expand All @@ -29,7 +29,6 @@
import { LocaleType } from '../language/typer';
import { dagensDato, formatIsoDate } from '../utils/dato';

// ----------- CONTEXT -----------
const initialState = (intl: LokalIntlShape): ISøknad => {
return {
person: tomPerson,
Expand Down Expand Up @@ -95,18 +94,38 @@
};

const hentForrigeSøknadBarnetilsyn = async (): Promise<void> => {
return hentDataFraForrigeBarnetilsynSøknad().then(
(tidligereVersjon?: ForrigeSøknad) => {
if (tidligereVersjon) {
settSøknad((prevSøknad) => ({
...prevSøknad,
...tidligereVersjon,
}));
}
}
const forrigeSøknad = await hentDataFraForrigeBarnetilsynSøknad();
if (forrigeSøknad) {
settSøknad((prevSøknad) => ({
...prevSøknad,
...forrigeSøknad,
person: {
...prevSøknad.person,
barn: [
...forrigeSøknad.person.barn,
...finnNyeBarnSidenForrigeSøknad(prevSøknad, forrigeSøknad),
],
},
}));
}
};

const finnNyeBarnSidenForrigeSøknad = (
prevSøknad: ISøknad,
forrigeSøknad: ForrigeSøknad
) => {
return prevSøknad.person.barn.filter(
(barn) =>
!forrigeSøknad.person.barn.some(
(prevBarn) => prevBarn.ident.verdi === barn.ident.verdi
)
);
};

useEffect(() => {
console.log('søknad i barnetilsynContext: ', søknad);

Check warning on line 126 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and test

Unexpected console statement

Check warning on line 126 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement

Check warning on line 126 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hvis dette er for lokal testing; husk å slett senere.
Evt. legg inn en TODO: Slett denne

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Det er planen. Se kommentaren over

}, [søknad]);

const mellomlagreBarnetilsyn = (steg: string) => {
const utfyltSøknad = {
søknad: søknad,
Expand All @@ -121,7 +140,7 @@
settMellomlagretBarnetilsyn(utfyltSøknad);
};

const nullstillMellomlagretBarnetilsyn = (): Promise<any> => {

Check warning on line 143 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and test

Unexpected any. Specify a different type

Check warning on line 143 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected any. Specify a different type

Check warning on line 143 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected any. Specify a different type
return nullstillMellomlagretSøknadTilDokument(
MellomlagredeStønadstyper.barnetilsyn
);
Expand All @@ -146,7 +165,7 @@
) => {
let endretDokumentasjonsbehov = søknad.dokumentasjonsbehov;
if (spørsmål.flersvar) {
console.error('Ikke implementert');

Check warning on line 168 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and test

Unexpected console statement

Check warning on line 168 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement

Check warning on line 168 in src/barnetilsyn/BarnetilsynContext.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement
} else {
endretDokumentasjonsbehov =
oppdaterDokumentasjonTilEtSvarSpørsmålForBarn(
Expand Down
2 changes: 1 addition & 1 deletion src/barnetilsyn/Forside.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useEffect } from 'react';
import React from 'react';
import { usePersonContext } from '../context/PersonContext';
import { useBarnetilsynSøknad } from './BarnetilsynContext';
import Environment from '../Environment';
Expand Down
3 changes: 2 additions & 1 deletion src/barnetilsyn/models/søknad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { ISivilstatus } from '../../models/steg/omDeg/sivilstatus';
import { IMedlemskap } from '../../models/steg/omDeg/medlemskap';
import { IDokumentasjon } from '../../models/steg/dokumentasjon';
import { IAktivitet } from '../../models/steg/aktivitet/aktivitet';
import { IPerson } from '../../models/søknad/person';
import { IPerson, IPersonTilGjenbruk } from '../../models/søknad/person';
import { IAdresseopplysninger } from '../../models/steg/adresseopplysninger';

export interface ISøknad {
Expand All @@ -30,4 +30,5 @@ export interface ForrigeSøknad {
sivilstatus: ISivilstatus;
medlemskap: IMedlemskap;
bositusjon: IBosituasjon;
person: IPersonTilGjenbruk;
}
22 changes: 5 additions & 17 deletions src/barnetilsyn/steg/1-omdeg/OmDeg.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import {
erSivilstandSpørsmålBesvart,
erStegFerdigUtfylt,
erÅrsakEnsligBesvart,
søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring,
} from '../../../helpers/steg/omdeg';
import { useBarnetilsynSøknad } from '../../BarnetilsynContext';
import { IMedlemskap } from '../../../models/steg/omDeg/medlemskap';
import Medlemskap from '../../../søknad/steg/1-omdeg/medlemskap/Medlemskap';
import Personopplysninger from '../../../søknad/steg/1-omdeg/personopplysninger/Personopplysninger';
import { ISøker } from '../../../models/søknad/person';
import { ISpørsmålBooleanFelt } from '../../../models/søknad/søknadsfelter';
import Sivilstatus from '../../../søknad/steg/1-omdeg/sivilstatus/Sivilstatus';
import { ISivilstatus } from '../../../models/steg/omDeg/sivilstatus';
Expand Down Expand Up @@ -53,15 +53,6 @@ const OmDeg: FC = () => {
});
};

const settSøker = (søker: ISøker) => {
settSøknad((prevSoknad: ISøknad) => {
return {
...prevSoknad,
person: { ...søknad.person, søker: søker },
};
});
};

const settSøkerBorPåRegistrertAdresse = (
søkerBorPåRegistrertAdresse: ISpørsmålBooleanFelt
) => {
Expand Down Expand Up @@ -95,16 +86,14 @@ const OmDeg: FC = () => {
});
};

const søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring =
søker.erStrengtFortrolig ||
søknad.søkerBorPåRegistrertAdresse?.verdi === true ||
søknad.adresseopplysninger?.harMeldtAdresseendring?.verdi === true;
const erSøkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring =
søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring(søker, søknad);

const erAlleSpørsmålBesvart = erStegFerdigUtfylt(
sivilstatus,
søker.sivilstand,
medlemskap,
søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring
erSøkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring
);

return (
Expand All @@ -119,7 +108,6 @@ const OmDeg: FC = () => {
>
<Personopplysninger
søker={søker}
settSøker={settSøker}
settDokumentasjonsbehov={settDokumentasjonsbehov}
søkerBorPåRegistrertAdresse={søknad.søkerBorPåRegistrertAdresse}
settSøkerBorPåRegistrertAdresse={settSøkerBorPåRegistrertAdresse}
Expand All @@ -130,7 +118,7 @@ const OmDeg: FC = () => {
stønadstype={Stønadstype.barnetilsyn}
/>

<Show if={søkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring}>
<Show if={erSøkerBorPåRegistrertAdresseEllerHarMeldtAdresseendring}>
<Sivilstatus
sivilstatus={søknad.sivilstatus}
settSivilstatus={settSivilstatus}
Expand Down
1 change: 0 additions & 1 deletion src/barnetilsyn/steg/3-barnadine/BarnaDine.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { RoutesBarnetilsyn } from '../../routing/routesBarnetilsyn';
import { hentPathBarnetilsynOppsummering } from '../../utils';
import Side, { ESide } from '../../../components/side/Side';
import { Stønadstype } from '../../../models/søknad/stønadstyper';

import LocaleTekst from '../../../language/LocaleTekst';
import { logSidevisningBarnetilsyn } from '../../../utils/amplitude';
import { useMount } from '../../../utils/hooks';
Expand Down
1 change: 0 additions & 1 deletion src/barnetilsyn/steg/4-barnasbosted/BarnasBosted.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { RoutesBarnetilsyn } from '../../routing/routesBarnetilsyn';
import { hentPathBarnetilsynOppsummering } from '../../utils';
import Side, { ESide } from '../../../components/side/Side';
import { Stønadstype } from '../../../models/søknad/stønadstyper';

import { logSidevisningBarnetilsyn } from '../../../utils/amplitude';
import { useMount } from '../../../utils/hooks';
import { antallBarnMedForeldreUtfylt } from '../../../utils/barn';
Expand Down
2 changes: 1 addition & 1 deletion src/barnetilsyn/steg/5-aktivitet/Aktivitet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ const Aktivitet: React.FC = () => {
settDokumentasjonsbehov(spørsmål, svar, svarHuketAv);
};

const erAlleFelterUtfylt = hvaErDinArbeidssituasjon.svarid.every((id) =>
const erAlleFelterUtfylt = hvaErDinArbeidssituasjon?.svarid?.every((id) =>
erAktivitetSeksjonFerdigUtfylt(id, arbeidssituasjon, false)
);

Expand Down
2 changes: 2 additions & 0 deletions src/barnetilsyn/steg/9-kvittering/Kvittering.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@
søknad.sivilstatus.årsakEnslig?.svarid ===
EBegrunnelse.samlivsbruddForeldre;

console.log('kvittering søknad: ', søknad);

Check warning on line 64 in src/barnetilsyn/steg/9-kvittering/Kvittering.tsx

View workflow job for this annotation

GitHub Actions / Build and test

Unexpected console statement

Check warning on line 64 in src/barnetilsyn/steg/9-kvittering/Kvittering.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement

Check warning on line 64 in src/barnetilsyn/steg/9-kvittering/Kvittering.tsx

View workflow job for this annotation

GitHub Actions / Build and push Docker container

Unexpected console statement
gunnsteingarmo marked this conversation as resolved.
Show resolved Hide resolved

return søknad.innsendingsdato ? (
<Side
stønadstype={Stønadstype.barnetilsyn}
Expand Down
1 change: 1 addition & 0 deletions src/helpers/steg/aktivitetvalidering.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ export const erAktivitetSeksjonFerdigUtfylt = (
case EAktivitet.etablererEgenVirksomhet:
return (
etablererEgenVirksomhet !== undefined &&
etablererEgenVirksomhet !== null &&
harValgtSvar(etablererEgenVirksomhet.verdi)
);

Expand Down
105 changes: 105 additions & 0 deletions src/helpers/steg/barnetsBostedEndre.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import { erGyldigFødselsnummer } from 'nav-faker/dist/personidentifikator/helpers/fodselsnummer-utils';
import { erGyldigDato } from '../../utils/dato';
import { IBarn } from '../../models/steg/barn';
import {
EBorAnnenForelderISammeHus,
TypeBarn,
} from '../../models/steg/barnasbosted';
import { IForelder } from '../../models/steg/forelder';
import { harValgtSvar } from '../../utils/spørsmålogsvar';
import {
IDatoFelt,
ISpørsmålFelt,
ITekstFelt,
} from '../../models/søknad/søknadsfelter';

export const erIdentUtfyltOgGyldig = (ident?: string): boolean =>
!!ident && erGyldigFødselsnummer(ident);

export const erFødselsdatoUtfyltOgGyldigEllerTomtFelt = (
fødselsdato?: string
) => erGyldigDato(fødselsdato) || fødselsdato === '';

export const finnTypeBarnForMedForelder = (
barn: IBarn,
forelderidenterMedBarn: Map<string, IBarn[]>
) => {
const alleBarnMedBarnetsForeldre = barn.forelder?.ident?.verdi
? forelderidenterMedBarn.get(barn.forelder?.ident?.verdi)
: [];

const harBarnetsMedforelderFlereBarn =
!!alleBarnMedBarnetsForeldre && alleBarnMedBarnetsForeldre.length > 1;

return harBarnetsMedforelderFlereBarn
? alleBarnMedBarnetsForeldre?.findIndex((b) => b.id === barn.id) === 0
? TypeBarn.BARN_MED_OPPRINNELIG_FORELDERINFORMASJON
: TypeBarn.BARN_MED_KOPIERT_FORELDERINFORMASJON
: TypeBarn.BARN_UTEN_FELLES_FORELDERINFORMASJON;
};

export const finnFørsteBarnTilHverForelder = (
barneListe: IBarn[],
barn: IBarn
) => {
const andreBarnMedForelder: IBarn[] = barneListe.filter((b) => {
return b !== barn && b.forelder;
});

const unikeForeldreIDer = Array.from(
new Set(andreBarnMedForelder.map((b) => b.forelder?.id))
);

return unikeForeldreIDer
.map((id) => {
if (!id) return null;
return andreBarnMedForelder.find((b) => b.forelder?.id === id);
})
.filter(Boolean) as IBarn[];
};

export const skalOmAndreForelderVises = (
barn: IBarn,
førsteBarnTilHverForelder: IBarn[],
lagtTilAnnenForelderId: 'annen-forelder',
barnHarSammeForelder: boolean | undefined,
forelder: IForelder
) => {
return (
(!barn.medforelder?.verdi && førsteBarnTilHverForelder.length === 0) ||
barn.annenForelderId === lagtTilAnnenForelderId ||
(førsteBarnTilHverForelder.length > 0 && barnHarSammeForelder === false) ||
(barnHarSammeForelder === false &&
(barn.harSammeAdresse.verdi ||
harValgtSvar(forelder.skalBarnetBoHosSøker?.verdi)))
);
};

export const skalBorAnnenForelderINorgeVises = (
barn: IBarn,
typeBarn: TypeBarn,
barnHarSammeForelder: boolean | undefined,
forelder: IForelder,
ident: ITekstFelt | undefined,
fødselsdato: IDatoFelt | null | undefined,
kjennerIkkeIdent: boolean
) => {
return (
(typeBarn !== TypeBarn.BARN_MED_KOPIERT_FORELDERINFORMASJON &&
!!barn.medforelder?.verdi) ||
(!barnHarSammeForelder &&
!forelder.kanIkkeOppgiAnnenForelderFar?.verdi &&
harValgtSvar(forelder?.navn?.verdi) &&
(harValgtSvar(ident?.verdi || fødselsdato?.verdi) || kjennerIkkeIdent))
);
};

export const harValgtBorISammeHusEllerBorIkkeINorge = (forelder: IForelder) => {
const { borAnnenForelderISammeHus } = forelder;
return (
(harValgtSvar(borAnnenForelderISammeHus?.verdi) &&
borAnnenForelderISammeHus?.svarid !== EBorAnnenForelderISammeHus.ja) ||
harValgtSvar(forelder.borAnnenForelderISammeHusBeskrivelse?.verdi) ||
!forelder.borINorge?.verdi
);
};
32 changes: 26 additions & 6 deletions src/helpers/steg/bosituasjon.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { ESøkerDelerBolig, IBosituasjon } from '../../models/steg/bosituasjon';
import { ESvar } from '../../models/felles/spørsmålogsvar';
import { harFyltUtSamboerDetaljer } from '../../utils/person';
import { IPersonDetaljer } from '../../models/søknad/person';
import { harValgtSvar } from '../../utils/spørsmålogsvar';
import { erDatoGyldigOgInnaforBegrensninger } from '../../components/dato/utils';
import { DatoBegrensning } from '../../components/dato/Datovelger';
import { stringHarVerdiOgErIkkeTom } from '../../utils/typer';
import { IDatoFelt } from '../../models/søknad/søknadsfelter';

const harPlanerOmÅBliSamboerEllerSkalGifteSeg = (bosituasjon: IBosituasjon) => {
const { skalGifteSegEllerBliSamboer } = bosituasjon;
Expand Down Expand Up @@ -36,6 +36,25 @@ const harFerdigUtfyltOmSamboer = (
: harSattIdent(samboerDetaljer?.ident?.verdi) ||
harSattFødselsdato(samboerDetaljer?.fødselsdato?.verdi));

export const erDatoSkalGifteSegEllerBliSamboerFremEllerTilbakeITid = (
datoSkalGifteSegEllerBliSamboer: IDatoFelt | undefined
) => {
if (!datoSkalGifteSegEllerBliSamboer) {
return false;
}

return (
erDatoGyldigOgInnaforBegrensninger(
datoSkalGifteSegEllerBliSamboer.verdi,
DatoBegrensning.FremtidigeDatoer
) ||
erDatoGyldigOgInnaforBegrensninger(
datoSkalGifteSegEllerBliSamboer.verdi,
DatoBegrensning.TidligereDatoer
)
);
};

const harFerdigUtfyltPlanerOmÅBliSamboerEllerBliGift = (
bosituasjon: IBosituasjon
): boolean => {
Expand All @@ -45,15 +64,16 @@ const harFerdigUtfyltPlanerOmÅBliSamboerEllerBliGift = (
vordendeSamboerEktefelle,
} = bosituasjon;

const erSattDatoSkalGifteSegEllerBliSamboerFremEllerTilbakeITid =
erDatoSkalGifteSegEllerBliSamboerFremEllerTilbakeITid(
datoSkalGifteSegEllerBliSamboer
);

return !!(
(skalGifteSegEllerBliSamboer &&
skalGifteSegEllerBliSamboer?.verdi === false) ||
(harPlanerOmÅBliSamboerEllerSkalGifteSeg(bosituasjon) &&
datoSkalGifteSegEllerBliSamboer &&
erDatoGyldigOgInnaforBegrensninger(
datoSkalGifteSegEllerBliSamboer.verdi,
DatoBegrensning.FremtidigeDatoer
) &&
erSattDatoSkalGifteSegEllerBliSamboerFremEllerTilbakeITid &&
harFerdigUtfyltOmSamboer(vordendeSamboerEktefelle, false))
);
};
Expand Down
Loading
Loading