From 6e5753cdfc36d4212704f6fe8f2c82e80d364b1d Mon Sep 17 00:00:00 2001 From: Ida Merete Enholm Date: Tue, 21 Nov 2023 15:11:43 +0100 Subject: [PATCH] Chore/slett toggle for brevgenerering (#4203) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### 💰 Hva skal gjøres, og hvorfor? Favro: https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-17141 Sletter "NY_GENERERING_AV_BREVOBJEKTER"-toggle som har vært skrudd på lenge nok i prod. Fjerner all kode som ikke brukes lenger. Gjenstår fortsatt noen småting, men de er det greit å ta i en egen PR i etterkant. Ser ut som en sjuuuukt stor PR, men halvparten er bare sletting av de gamle json-testfilene 🥲 **Les commit for commit så blir det enklere** ### 🔎️ Er det noe spesielt du ønsker tilbakemelding om? Nei ### ✅ Checklist _Har du husket alle punktene i listen?_ - [x] Jeg har testet mine endringer i henhold til akseptansekriteriene 🕵️ - [ ] Jeg har config- eller sql-endringer. I så fall, husk manuell deploy til miljø for å verifisere endringene. - [ ] Jeg har skrevet tester. Hvis du ikke har skrevet tester, beskriv hvorfor under 👇 _Jeg har ikke skrevet tester fordi:_ Ikke mulig å skrive tester for. Finnes allerede tester som tester nye måten å lage vedtaksperioder etc på. Har testet manuelt at det ikke er noe som brekker. ### 💬 Ønsker du en muntlig gjennomgang? - [ ] Ja - [x] Nei --- .../featureToggle/FeatureToggleConfig.kt | 1 - .../ba/sak/kjerne/brev/BegrunnelseUtil.kt | 184 ------- .../sak/kjerne/brev/BrevPeriodeGenerator.kt | 334 ------------ .../ba/sak/kjerne/brev/BrevPeriodeService.kt | 246 --------- .../ba/sak/kjerne/brev/BrevPeriodeUtil.kt | 86 --- .../familie/ba/sak/kjerne/brev/BrevService.kt | 36 +- .../familie/ba/sak/kjerne/brev/BrevUtil.kt | 2 +- .../Utgj\303\270rendeVilk\303\245rUtils.kt" | 312 ----------- .../brev/domene/BegrunnelseMedTriggere.kt | 87 ---- .../BrevBegrunnelseGrunnlagMedPersoner.kt | 62 --- .../kjerne/brev/domene/BrevPeriodeLogging.kt | 72 --- .../sak/kjerne/brev/domene/BrevperiodeData.kt | 70 --- .../brev/domene/MinimertRestPersonResultat.kt | 7 - .../MinimertUtbetalingsperiodeDetalj.kt | 13 - .../brev/domene/MinimertVedtaksperiode.kt | 42 +- .../domene/MinimertVilk\303\245rResultat.kt" | 11 +- .../domene/RestBehandlingsgrunnlagForBrev.kt | 11 - .../E\303\230SStandardbegrunnelse.kt" | 12 - .../vedtak/begrunnelser/IVedtakBegrunnelse.kt | 9 - .../begrunnelser/Standardbegrunnelse.kt | 66 --- .../begrunnelser/StandardbegrunnelseUtils.kt | 158 ------ .../kjerne/vedtak/begrunnelser/TriggesAv.kt | 125 +---- .../begrunnelser/VedtakBegrunnelseType.kt | 35 -- .../domene/MinimertVedtaksperiode.kt | 39 -- .../vedtak/domene/MinimertRestPerson.kt | 69 +-- .../vedtak/domene/Vedtaksbegrunnelse.kt | 149 ------ ...VedtaksperiodeMedBegrunnelserController.kt | 25 +- .../vedtaksperiode/VedtaksperiodeUtil.kt | 155 ------ .../familie/ba/sak/common/DataGenerator.kt | 41 +- .../behandling/Kj\303\270rRevurdering.kt" | 127 +---- .../BrevBegrunnelseGrunnlagMedPersoner.kt | 21 - .../ba/sak/kjerne/brev/BrevPeriodeUtilTest.kt | 151 ------ .../ba/sak/kjerne/brev/BrevServiceTest.kt | 2 - .../ba/sak/kjerne/brev/BrevUtilsTest.kt | 122 ++--- .../ba/sak/kjerne/brev/BrevperiodeTest.kt | 215 -------- .../vedtak/Utgj\303\270rendePersonerTest.kt" | 488 ------------------ .../begrunnelser/StandardbegrunnelseTest.kt | 454 ---------------- .../vedtak/begrunnelser/TriggesAvTest.kt | 267 ---------- .../vedtak/domene/VedtaksbegrunnelseTest.kt | 106 ---- .../VedtaksperiodeServiceUtilsTest.kt | 271 ---------- .../vedtaksperiode/Vilk\303\245rUtilsTest.kt" | 108 ---- .../verdikjedetester/EndringstidspunktTest.kt | 16 - .../RevurderingD\303\270dsfallTest.kt" | 16 - ...\303\245rsvurderingFlyttResultaterTest.kt" | 19 - .../AUTOBREV_18_\303\205R.json" | 79 --- .../AUTOBREV_6_\303\205R.json" | 61 --- .../resources/brevperiodeCaser/AVSLAG.json | 66 --- .../AVSLAG_FOR_S\303\230KER_OG_ETT_BARN.json" | 102 ---- .../brevperiodeCaser/AVSLAG_FRITEKST.json | 65 --- .../AVSLAG_MANGLER_OPPLYSNINGER.json | 91 ---- .../AVSLAG_UREGISTRERT_BARN.json | 77 --- .../AVSLAG_UTVIDET_INGEN_PERIODE.json | 92 ---- .../brevperiodeCaser/ENDRET_UTBETALING.json | 83 --- ...RET_UTBETALING_DELT_BOSTED_AVTALEDATO.json | 86 --- ...TALING_DELT_BOSTED_FLERE_AVTALEDATOER.json | 138 ----- .../ENDRET_UTBETALING_ETTERBETALING.json | 71 --- .../ETTER_ENDRET_UTBETALING.json | 118 ----- .../E\303\230S_INNVILGET.json" | 73 --- .../E\303\230S_OPPH\303\230R.json" | 66 --- .../brevperiodeCaser/FORTSATT_INNVILGET.json | 90 ---- .../F\303\230DSELSHENDELSE.json" | 61 --- .../brevperiodeCaser/INGEN_BEGRUNNELSER.json | 37 -- .../INNVILGET_BOR_HOS_S\303\230KER.json" | 71 --- ..._DELT_BOSTED_OG_BOR_HOS_S\303\230KER.json" | 112 ---- .../INNVILGET_FOR_S\303\230KER.json" | 118 ----- ...NVILGET_FOR_S\303\230KER_OG_ETT_BARN.json" | 119 ----- .../INNVILGET_MED_REDUKSJON.json | 103 ---- .../brevperiodeCaser/OPPH\303\230R.json" | 64 --- ..._BOR_MED_S\303\230KER_OG_DELT_BOSTED.json" | 148 ------ ...JON_FRA_FORRIGE_IVERKSATTE_BEHANDLING.json | 118 ----- .../brevperiodeCaser/SATSENDRING.json | 76 --- .../SM\303\205BARNSTILLEGG.json" | 109 ---- 72 files changed, 86 insertions(+), 7250 deletions(-) delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BegrunnelseUtil.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeGenerator.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeService.kt delete mode 100644 "src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/Utgj\303\270rendeVilk\303\245rUtils.kt" delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BegrunnelseMedTriggere.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevBegrunnelseGrunnlagMedPersoner.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevPeriodeLogging.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevperiodeData.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/RestBehandlingsgrunnlagForBrev.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/domene/MinimertVedtaksperiode.kt delete mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/brev/BrevBegrunnelseGrunnlagMedPersoner.kt delete mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevperiodeTest.kt delete mode 100644 "src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/Utgj\303\270rendePersonerTest.kt" delete mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAvTest.kt delete mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/VedtaksbegrunnelseTest.kt delete mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeServiceUtilsTest.kt delete mode 100644 "src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/Vilk\303\245rUtilsTest.kt" delete mode 100644 "src/test/resources/brevperiodeCaser/AUTOBREV_18_\303\205R.json" delete mode 100644 "src/test/resources/brevperiodeCaser/AUTOBREV_6_\303\205R.json" delete mode 100644 src/test/resources/brevperiodeCaser/AVSLAG.json delete mode 100644 "src/test/resources/brevperiodeCaser/AVSLAG_FOR_S\303\230KER_OG_ETT_BARN.json" delete mode 100644 src/test/resources/brevperiodeCaser/AVSLAG_FRITEKST.json delete mode 100644 src/test/resources/brevperiodeCaser/AVSLAG_MANGLER_OPPLYSNINGER.json delete mode 100644 src/test/resources/brevperiodeCaser/AVSLAG_UREGISTRERT_BARN.json delete mode 100644 src/test/resources/brevperiodeCaser/AVSLAG_UTVIDET_INGEN_PERIODE.json delete mode 100644 src/test/resources/brevperiodeCaser/ENDRET_UTBETALING.json delete mode 100644 src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_AVTALEDATO.json delete mode 100644 src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_FLERE_AVTALEDATOER.json delete mode 100644 src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_ETTERBETALING.json delete mode 100644 src/test/resources/brevperiodeCaser/ETTER_ENDRET_UTBETALING.json delete mode 100644 "src/test/resources/brevperiodeCaser/E\303\230S_INNVILGET.json" delete mode 100644 "src/test/resources/brevperiodeCaser/E\303\230S_OPPH\303\230R.json" delete mode 100644 src/test/resources/brevperiodeCaser/FORTSATT_INNVILGET.json delete mode 100644 "src/test/resources/brevperiodeCaser/F\303\230DSELSHENDELSE.json" delete mode 100644 src/test/resources/brevperiodeCaser/INGEN_BEGRUNNELSER.json delete mode 100644 "src/test/resources/brevperiodeCaser/INNVILGET_BOR_HOS_S\303\230KER.json" delete mode 100644 "src/test/resources/brevperiodeCaser/INNVILGET_DELT_BOSTED_OG_BOR_HOS_S\303\230KER.json" delete mode 100644 "src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER.json" delete mode 100644 "src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER_OG_ETT_BARN.json" delete mode 100644 src/test/resources/brevperiodeCaser/INNVILGET_MED_REDUKSJON.json delete mode 100644 "src/test/resources/brevperiodeCaser/OPPH\303\230R.json" delete mode 100644 "src/test/resources/brevperiodeCaser/REDUKSJON_BOR_MED_S\303\230KER_OG_DELT_BOSTED.json" delete mode 100644 src/test/resources/brevperiodeCaser/REDUKSJON_FRA_FORRIGE_IVERKSATTE_BEHANDLING.json delete mode 100644 src/test/resources/brevperiodeCaser/SATSENDRING.json delete mode 100644 "src/test/resources/brevperiodeCaser/SM\303\205BARNSTILLEGG.json" diff --git a/src/main/kotlin/no/nav/familie/ba/sak/config/featureToggle/FeatureToggleConfig.kt b/src/main/kotlin/no/nav/familie/ba/sak/config/featureToggle/FeatureToggleConfig.kt index 6239029d861..511e17d8794 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/config/featureToggle/FeatureToggleConfig.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/config/featureToggle/FeatureToggleConfig.kt @@ -4,7 +4,6 @@ class FeatureToggleConfig { companion object { // Release const val ENDRET_EØS_REGELVERKFILTER_FOR_BARN = "familie-ba-sak.endret-eos-regelverkfilter-for-barn" - const val NY_GENERERING_AV_BREVOBJEKTER = "familie-ba-sak.ny-generering-av-brevobjekter" const val SATSENDRING_ENABLET: String = "familie-ba-sak.satsendring-enablet" // Ny utbetalingsgenerator diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BegrunnelseUtil.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BegrunnelseUtil.kt deleted file mode 100644 index 5bb58fa5ac8..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BegrunnelseUtil.kt +++ /dev/null @@ -1,184 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev - -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.TIDENES_MORGEN -import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingsperiodeDeltBostedTriggere -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestEndretAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.harPersonerSomManglerOpplysninger -import no.nav.familie.ba.sak.kjerne.brev.domene.somOverlapper -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.hentPersonerForEtterEndretUtbetalingsperiode -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import no.nav.familie.ba.sak.kjerne.vedtak.domene.barnMedSeksårsdagPåFom -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår - -fun hentPersonidenterGjeldendeForBegrunnelse( - triggesAv: TriggesAv, - begrunnelse: IVedtakBegrunnelse, - periode: NullablePeriode, - vedtakBegrunnelseType: VedtakBegrunnelseType, - vedtaksperiodetype: Vedtaksperiodetype, - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - identerMedUtbetalingPåPeriode: List, - erFørsteVedtaksperiodePåFagsak: Boolean, - identerMedReduksjonPåPeriode: List = emptyList(), - minimerteUtbetalingsperiodeDetaljer: List, - dødeBarnForrigePeriode: List, -): Set { - val erFortsattInnvilgetBegrunnelse = vedtakBegrunnelseType.erFortsattInnvilget() - val erEndretUtbetalingBegrunnelse = vedtakBegrunnelseType == VedtakBegrunnelseType.ENDRET_UTBETALING - val erUtbetalingMedReduksjonFraSistIverksatteBehandling = - vedtaksperiodetype == Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING && vedtakBegrunnelseType.erReduksjon() && - !triggesAv.vilkår.contains( - Vilkår.UNDER_18_ÅR, - ) - - fun hentPersonerForUtgjørendeVilkår() = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = restBehandlingsgrunnlagForBrev.minimertePersonResultater, - vedtaksperiode = - Periode( - fom = periode.fom ?: TIDENES_MORGEN, - tom = periode.tom ?: TIDENES_ENDE, - ), - oppdatertBegrunnelseType = vedtakBegrunnelseType, - aktuellePersonerForVedtaksperiode = - hentAktuellePersonerForVedtaksperiode( - restBehandlingsgrunnlagForBrev.personerPåBehandling, - vedtakBegrunnelseType, - identerMedUtbetalingPåPeriode, - ), - begrunnelse = begrunnelse, - triggesAv = triggesAv, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - ).map { person -> person.personIdent } - - return when { - (triggesAv.vilkår.contains(Vilkår.UTVIDET_BARNETRYGD) || triggesAv.småbarnstillegg) && !erEndretUtbetalingBegrunnelse -> - hentPersonerForUtvidetOgSmåbarnstilleggBegrunnelse( - identerMedUtbetaling = identerMedUtbetalingPåPeriode, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - periode = periode, - fagsakType = restBehandlingsgrunnlagForBrev.fagsakType, - ) + - when { - triggesAv.vilkår.any { it != Vilkår.UTVIDET_BARNETRYGD } -> hentPersonerForUtgjørendeVilkår() - else -> emptyList() - } - - triggesAv.barnMedSeksårsdag -> - restBehandlingsgrunnlagForBrev.personerPåBehandling.barnMedSeksårsdagPåFom( - periode.fom, - ).map { person -> person.personIdent } - - triggesAv.personerManglerOpplysninger -> - if (restBehandlingsgrunnlagForBrev.minimertePersonResultater.harPersonerSomManglerOpplysninger()) { - emptyList() - } else { - error("Legg til opplysningsplikt ikke oppfylt begrunnelse men det er ikke person med det resultat") - } - - erFortsattInnvilgetBegrunnelse -> identerMedUtbetalingPåPeriode - erEndretUtbetalingBegrunnelse -> - hentPersonerForEndretUtbetalingBegrunnelse( - triggesAv = triggesAv, - endredeUtbetalingAndelerSomOverlapperMedPeriode = - restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler.filter { - it.erOverlappendeMed( - nullableMånedPeriode = periode.tilNullableMånedPeriode(), - ) - }, - minimerteUtbetalingsperiodeDetaljer = minimerteUtbetalingsperiodeDetaljer, - ) - - erUtbetalingMedReduksjonFraSistIverksatteBehandling -> identerMedReduksjonPåPeriode - - triggesAv.etterEndretUtbetaling -> - hentPersonerForEtterEndretUtbetalingsperiode( - minimerteEndredeUtbetalingAndeler = restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler, - fom = periode.fom, - endringsaarsaker = triggesAv.endringsaarsaker, - ) - - triggesAv.barnDød -> dødeBarnForrigePeriode - - else -> hentPersonerForUtgjørendeVilkår() - }.toSet() -} - -private fun hentPersonerForEndretUtbetalingBegrunnelse( - triggesAv: TriggesAv, - endredeUtbetalingAndelerSomOverlapperMedPeriode: List, - minimerteUtbetalingsperiodeDetaljer: List, -): List { - val personerMedRiktigTypeEndringer = - endredeUtbetalingAndelerSomOverlapperMedPeriode.filter { triggesAv.endringsaarsaker.contains(it.årsak) } - .map { it.personIdent } - return minimerteUtbetalingsperiodeDetaljer.filter { it.erPåvirketAvEndring }.filter { - when (triggesAv.endretUtbetalingSkalUtbetales) { - EndretUtbetalingsperiodeDeltBostedTriggere.UTBETALING_IKKE_RELEVANT -> true - EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES -> { - it.utbetaltPerMnd > 0 - } - - EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES -> it.utbetaltPerMnd == 0 - } - }.map { it.person.personIdent }.filter { personerMedRiktigTypeEndringer.contains(it) } -} - -/** - * Selv om utvidet kun gjelder for søker ønsker vi å si noe om hvilke barn søker får utvidet for. - * Dette vil være alle barn med utbetaling og alle barn med endret utbetaling i samme periode. - * - * For eksempel om søker oppfyller vilkårene til delt bosted og utvidet barnetrygd, men barnetrygden allerede er - * sendt ut til partner, og delt bosted er endret til at det ikke er noen utbetaling, ønsker vi fremdeles å ta med - * barna uten utbetaling i begrunnelsen. - * - * Søker må med selv om det ikke er utbetaling på søker slik at det blir riktig ved avslag. - */ -private fun hentPersonerForUtvidetOgSmåbarnstilleggBegrunnelse( - identerMedUtbetaling: List, - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - periode: NullablePeriode, - fagsakType: FagsakType, -): List { - val identerFraSammenfallendeEndringsperioder = - restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler.somOverlapper(periode.tilNullableMånedPeriode()) - .map { it.personIdent } - - val søkersIdent = - restBehandlingsgrunnlagForBrev.personerPåBehandling.find { - when (fagsakType) { - FagsakType.NORMAL, - FagsakType.INSTITUSJON, - -> it.type == PersonType.SØKER - - FagsakType.BARN_ENSLIG_MINDREÅRIG -> it.type == PersonType.BARN - } - }?.personIdent - ?: throw IllegalStateException("Søker mangler i behandlingsgrunnlag for brev") - - return identerMedUtbetaling + identerFraSammenfallendeEndringsperioder + søkersIdent -} - -private fun hentAktuellePersonerForVedtaksperiode( - personerPåBehandling: List, - vedtakBegrunnelseType: VedtakBegrunnelseType, - identerMedUtbetalingPåPeriode: List, -): List = - personerPåBehandling.filter { person -> - if (vedtakBegrunnelseType.erInnvilget()) { - identerMedUtbetalingPåPeriode.contains(person.personIdent) || person.type == PersonType.SØKER - } else { - true - } - } diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeGenerator.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeGenerator.kt deleted file mode 100644 index c568cd8a155..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeGenerator.kt +++ /dev/null @@ -1,334 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev - -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.common.Utils -import no.nav.familie.ba.sak.common.erSenereEnnInneværendeMåned -import no.nav.familie.ba.sak.common.førsteDagINesteMåned -import no.nav.familie.ba.sak.common.tilDagMånedÅr -import no.nav.familie.ba.sak.common.tilKortString -import no.nav.familie.ba.sak.common.tilMånedÅr -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertKompetanse -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.Valgbarhet -import no.nav.familie.ba.sak.kjerne.brev.domene.eøs.EØSBegrunnelseMedKompetanser -import no.nav.familie.ba.sak.kjerne.brev.domene.eøs.hentKompetanserForEØSBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.maler.BrevPeriodeType -import no.nav.familie.ba.sak.kjerne.brev.domene.maler.brevperioder.BrevPeriode -import no.nav.familie.ba.sak.kjerne.brev.domene.totaltUtbetalt -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.BrevBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.EØSBegrunnelseData -import no.nav.familie.ba.sak.kjerne.vedtak.domene.EØSBegrunnelseDataMedKompetanse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.EØSBegrunnelseDataUtenKompetanse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.FritekstBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import no.nav.familie.ba.sak.kjerne.vedtak.domene.hentBrevPeriodeType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilBrevBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype -import java.time.LocalDate - -class BrevPeriodeGenerator( - private val restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - private val erFørsteVedtaksperiodePåFagsak: Boolean, - private val uregistrerteBarn: List, - private val brevMålform: Målform, - private val minimertVedtaksperiode: MinimertVedtaksperiode, - private val barnMedReduksjonFraForrigeBehandlingIdent: List, - private val minimerteKompetanserForPeriode: List, - private val minimerteKompetanserSomStopperRettFørPeriode: List, - private val dødeBarnForrigePeriode: List, -) { - fun genererBrevPeriode(): BrevPeriode? { - val begrunnelseGrunnlagMedPersoner = hentBegrunnelsegrunnlagMedPersoner() - val eøsBegrunnelserMedKompetanser = hentEøsBegrunnelserMedKompetanser() - - val begrunnelserOgFritekster = - byggBegrunnelserOgFritekster( - begrunnelserGrunnlagMedPersoner = begrunnelseGrunnlagMedPersoner, - eøsBegrunnelserMedKompetanser = eøsBegrunnelserMedKompetanser, - ) - - if (begrunnelserOgFritekster.isEmpty()) return null - - val identerIBegrunnelene = - begrunnelseGrunnlagMedPersoner - .filter { it.vedtakBegrunnelseType.erInnvilget() } - .flatMap { it.personIdenter } - - return byggBrevPeriode( - begrunnelserOgFritekster = begrunnelserOgFritekster, - identerIBegrunnelene = identerIBegrunnelene, - ) - } - - fun hentEØSBegrunnelseData(eøsBegrunnelserMedKompetanser: List): List = - eøsBegrunnelserMedKompetanser.flatMap { begrunnelseMedData -> - val begrunnelse = begrunnelseMedData.begrunnelse - - if (begrunnelseMedData.kompetanser.isEmpty() && begrunnelse.vedtakBegrunnelseType == VedtakBegrunnelseType.EØS_AVSLAG) { - val minimertePersonResultater = - restBehandlingsgrunnlagForBrev.minimertePersonResultater.filter { personResultat -> - personResultat.minimerteVilkårResultater.any { - it.erEksplisittAvslagPåSøknad == true && - it.periodeFom?.førsteDagINesteMåned() == minimertVedtaksperiode.fom && - it.standardbegrunnelser.contains(begrunnelse) - } - } - - val personerIBegrunnelse = - restBehandlingsgrunnlagForBrev.personerPåBehandling.filter { person -> minimertePersonResultater.any { personResultat -> personResultat.personIdent == person.personIdent } } - val barnPåBehandling = - restBehandlingsgrunnlagForBrev.personerPåBehandling.filter { it.type == PersonType.BARN } - val barnIBegrunnelse = personerIBegrunnelse.filter { it.type == PersonType.BARN } - val gjelderSøker = personerIBegrunnelse.any { it.type == PersonType.SØKER } - - val barnasFødselsdatoer = - hentBarnasFødselsdatoerForAvslagsbegrunnelse( - barnIBegrunnelse = barnIBegrunnelse, - barnPåBehandling = barnPåBehandling, - uregistrerteBarn = uregistrerteBarn, - gjelderSøker = gjelderSøker, - ) - val antallBarn = - hentAntallBarnForAvslagsbegrunnelse( - barnIBegrunnelse = barnIBegrunnelse, - barnPåBehandling = barnPåBehandling, - uregistrerteBarn = uregistrerteBarn, - gjelderSøker = gjelderSøker, - ) - - listOf( - EØSBegrunnelseDataUtenKompetanse( - vedtakBegrunnelseType = begrunnelse.vedtakBegrunnelseType, - apiNavn = begrunnelse.sanityApiNavn, - barnasFodselsdatoer = barnasFødselsdatoer, - antallBarn = antallBarn, - maalform = brevMålform.tilSanityFormat(), - gjelderSoker = gjelderSøker, - ), - ) - } else { - begrunnelseMedData.kompetanser.map { kompetanse -> - EØSBegrunnelseDataMedKompetanse( - vedtakBegrunnelseType = begrunnelse.vedtakBegrunnelseType, - apiNavn = begrunnelse.sanityApiNavn, - annenForeldersAktivitet = kompetanse.annenForeldersAktivitet, - annenForeldersAktivitetsland = kompetanse.annenForeldersAktivitetslandNavn?.navn, - barnetsBostedsland = kompetanse.barnetsBostedslandNavn.navn, - barnasFodselsdatoer = Utils.slåSammen(kompetanse.personer.map { it.fødselsdato.tilKortString() }), - antallBarn = kompetanse.personer.size, - maalform = brevMålform.tilSanityFormat(), - sokersAktivitet = kompetanse.søkersAktivitet, - sokersAktivitetsland = kompetanse.søkersAktivitetsland?.navn, - ) - } - } - } - - fun hentEøsBegrunnelserMedKompetanser(): List = - minimertVedtaksperiode.eøsBegrunnelser.map { eøsBegrunnelseMedTriggere -> - val kompetanser = - when (eøsBegrunnelseMedTriggere.eøsBegrunnelse.vedtakBegrunnelseType) { - VedtakBegrunnelseType.EØS_INNVILGET, VedtakBegrunnelseType.EØS_FORTSATT_INNVILGET -> - hentKompetanserForEØSBegrunnelse( - eøsBegrunnelseMedTriggere, - minimerteKompetanserForPeriode, - ) - - VedtakBegrunnelseType.EØS_OPPHØR, VedtakBegrunnelseType.EØS_REDUKSJON -> - hentKompetanserForEØSBegrunnelse( - eøsBegrunnelseMedTriggere, - minimerteKompetanserSomStopperRettFørPeriode, - ) - - else -> emptyList() - } - EØSBegrunnelseMedKompetanser( - begrunnelse = eøsBegrunnelseMedTriggere.eøsBegrunnelse, - kompetanser = kompetanser, - ) - } - - fun hentBegrunnelsegrunnlagMedPersoner() = - minimertVedtaksperiode.begrunnelser.flatMap { - it.tilBrevBegrunnelseGrunnlagMedPersoner( - periode = - NullablePeriode( - fom = minimertVedtaksperiode.fom, - tom = minimertVedtaksperiode.tom, - ), - vedtaksperiodetype = minimertVedtaksperiode.type, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - identerMedUtbetalingPåPeriode = - minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer - .map { utbetalingsperiodeDetalj -> utbetalingsperiodeDetalj.person.personIdent }, - minimerteUtbetalingsperiodeDetaljer = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - erUregistrerteBarnPåbehandling = uregistrerteBarn.isNotEmpty(), - barnMedReduksjonFraForrigeBehandlingIdent = barnMedReduksjonFraForrigeBehandlingIdent, - dødeBarnForrigePeriode = dødeBarnForrigePeriode, - ) - } - - fun byggBegrunnelserOgFritekster( - begrunnelserGrunnlagMedPersoner: List, - eøsBegrunnelserMedKompetanser: List, - ): List { - val brevBegrunnelser = - begrunnelserGrunnlagMedPersoner - .map { - it.tilBrevBegrunnelse( - vedtaksperiode = NullablePeriode(minimertVedtaksperiode.fom, minimertVedtaksperiode.tom), - personerIPersongrunnlag = restBehandlingsgrunnlagForBrev.personerPåBehandling, - brevMålform = brevMålform, - uregistrerteBarn = uregistrerteBarn, - minimerteUtbetalingsperiodeDetaljer = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer, - minimerteRestEndredeAndeler = restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler, - ) - } - - val eøsBegrunnelser = hentEØSBegrunnelseData(eøsBegrunnelserMedKompetanser) - - val fritekster = minimertVedtaksperiode.fritekster.map { FritekstBegrunnelse(it) } - - return (brevBegrunnelser + eøsBegrunnelser + fritekster).sorted() - } - - private fun byggBrevPeriode( - begrunnelserOgFritekster: List, - identerIBegrunnelene: List, - ): BrevPeriode { - val (utbetalingerBarn, nullutbetalingerBarn) = - minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer - .filter { it.person.type == PersonType.BARN } - .partition { it.utbetaltPerMnd != 0 } - - val tomDato = - if (minimertVedtaksperiode.tom?.erSenereEnnInneværendeMåned() == false) { - minimertVedtaksperiode.tom.tilMånedÅr() - } else { - null - } - - val barnMedUtbetaling = utbetalingerBarn.map { it.person } - val barnMedNullutbetaling = nullutbetalingerBarn.map { it.person } - - val barnIPeriode: List = - when (minimertVedtaksperiode.type) { - Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING, - Vedtaksperiodetype.UTBETALING, - -> finnBarnIUtbetalingPeriode(identerIBegrunnelene) - - Vedtaksperiodetype.OPPHØR -> emptyList() - Vedtaksperiodetype.AVSLAG -> emptyList() - Vedtaksperiodetype.FORTSATT_INNVILGET -> barnMedUtbetaling + barnMedNullutbetaling - Vedtaksperiodetype.ENDRET_UTBETALING -> throw Feil("Endret utbetaling skal ikke benyttes lenger.") - } - - val utbetalingsbeløp = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.totaltUtbetalt() - val brevPeriodeType = - hentBrevPeriodeType( - vedtaksperiodetype = minimertVedtaksperiode.type, - fom = minimertVedtaksperiode.fom, - erUtbetalingEllerDeltBostedIPeriode = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.any { it.endringsårsak == Årsak.DELT_BOSTED || it.utbetaltPerMnd > 0 }, - ) - - val duEllerInstitusjonen = hentDuEllerInstitusjonenTekst(brevPeriodeType) - - return BrevPeriode( - fom = this.hentFomTekst(), - tom = - when { - tomDato.isNullOrBlank() -> "" - minimertVedtaksperiode.type == Vedtaksperiodetype.FORTSATT_INNVILGET -> "" - minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG -> "til og med $tomDato " - brevPeriodeType == BrevPeriodeType.INGEN_UTBETALING -> "" - brevPeriodeType == BrevPeriodeType.INNVILGELSE_INGEN_UTBETALING -> " til $tomDato" - else -> "til $tomDato " - }, - beløp = Utils.formaterBeløp(utbetalingsbeløp), - begrunnelser = begrunnelserOgFritekster, - brevPeriodeType = brevPeriodeType, - antallBarn = barnIPeriode.size.toString(), - barnasFodselsdager = barnIPeriode.tilBarnasFødselsdatoer(), - duEllerInstitusjonen = duEllerInstitusjonen, - ) - } - - private fun hentFomTekst(): String = if (minimertVedtaksperiode.fom != null) minimertVedtaksperiode.fom.tilMånedÅr() else "" - - @Deprecated("Erstattes av hentFomTekst når nye begrunnelse logikk går live") - private fun hentFomTekstGammel(): String = - when (minimertVedtaksperiode.type) { - Vedtaksperiodetype.FORTSATT_INNVILGET -> - hentFomtekstFortsattInnvilget( - brevMålform, - minimertVedtaksperiode.fom, - minimertVedtaksperiode.begrunnelser.map { it.standardbegrunnelse }, - ) ?: "Du får:" - - Vedtaksperiodetype.UTBETALING -> minimertVedtaksperiode.fom!!.tilDagMånedÅr() - Vedtaksperiodetype.OPPHØR -> minimertVedtaksperiode.fom!!.tilDagMånedÅr() - Vedtaksperiodetype.AVSLAG -> if (minimertVedtaksperiode.fom != null) minimertVedtaksperiode.fom.tilDagMånedÅr() else "" - Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING -> minimertVedtaksperiode.fom!!.tilDagMånedÅr() - Vedtaksperiodetype.ENDRET_UTBETALING -> throw Feil("Endret utbetaling skal ikke benyttes lenger.") - } - - private fun hentDuEllerInstitusjonenTekst(brevPeriodeType: BrevPeriodeType): String = - when (restBehandlingsgrunnlagForBrev.fagsakType) { - FagsakType.INSTITUSJON -> { - when (brevPeriodeType) { - BrevPeriodeType.UTBETALING, BrevPeriodeType.INGEN_UTBETALING -> "institusjonen" - else -> "Institusjonen" - } - } - - FagsakType.NORMAL, FagsakType.BARN_ENSLIG_MINDREÅRIG -> { - when (brevPeriodeType) { - BrevPeriodeType.UTBETALING, BrevPeriodeType.INGEN_UTBETALING -> "du" - else -> "Du" - } - } - } - - fun finnBarnIUtbetalingPeriode(identerIBegrunnelene: List): List { - val identerMedUtbetaling = - minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.map { it.person.personIdent } - - val barnIPeriode = - (identerIBegrunnelene + identerMedUtbetaling) - .toSet() - .mapNotNull { personIdent -> - restBehandlingsgrunnlagForBrev.personerPåBehandling.find { it.personIdent == personIdent } - } - .filter { it.type == PersonType.BARN } - - return barnIPeriode - } - - private fun hentFomtekstFortsattInnvilget( - målform: Målform, - fom: LocalDate?, - begrunnelser: List, - ): String? { - val erAutobrev = - begrunnelser.any { - this.minimertVedtaksperiode.begrunnelser.any { it.triggesAv.valgbarhet == Valgbarhet.AUTOMATISK } - } - return if (erAutobrev && fom != null) { - val fra = if (målform == Målform.NB) "Fra" else "Frå" - "$fra ${fom.tilDagMånedÅr()} får du:" - } else { - null - } - } -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeService.kt deleted file mode 100644 index 48b63170a40..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeService.kt +++ /dev/null @@ -1,246 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev - -import no.nav.familie.ba.sak.common.convertDataClassToJson -import no.nav.familie.ba.sak.common.secureLogger -import no.nav.familie.ba.sak.common.toYearMonth -import no.nav.familie.ba.sak.ekstern.restDomene.BarnMedOpplysninger -import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient -import no.nav.familie.ba.sak.integrasjoner.sanity.SanityService -import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService -import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndreteUtbetalinger -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelerTilkjentYtelseOgEndreteUtbetalingerService -import no.nav.familie.ba.sak.kjerne.beregning.endringstidspunkt.Beløpsdifferanse -import no.nav.familie.ba.sak.kjerne.beregning.endringstidspunkt.hentPerioderMedEndringerFra -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevperiodeData -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityEØSBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertKompetanse -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.eøs.felles.BehandlingId -import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.KompetanseService -import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.Kompetanse -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag -import no.nav.familie.ba.sak.kjerne.grunnlag.søknad.SøknadGrunnlagService -import no.nav.familie.ba.sak.kjerne.personident.PersonidentService -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.EØSStandardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.tilMinimertePersoner -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.dødeBarnForrigePeriode -import no.nav.familie.ba.sak.kjerne.vedtak.domene.BrevBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.VedtaksperiodeHentOgPersisterService -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.tilUtvidetVedtaksperiodeMedBegrunnelser -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.erFørsteVedtaksperiodePåFagsak -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.ytelseErFraForrigePeriode -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService -import no.nav.fpsak.tidsserie.LocalDateSegment -import no.nav.fpsak.tidsserie.LocalDateTimeline -import org.springframework.stereotype.Service - -@Service -class BrevPeriodeService( - private val behandlingHentOgPersisterService: BehandlingHentOgPersisterService, - private val persongrunnlagService: PersongrunnlagService, - private val vedtaksperiodeHentOgPersisterService: VedtaksperiodeHentOgPersisterService, - private val sanityService: SanityService, - private val søknadGrunnlagService: SøknadGrunnlagService, - private val vilkårsvurderingService: VilkårsvurderingService, - private val personidentService: PersonidentService, - private val kompetanseService: KompetanseService, - private val integrasjonClient: IntegrasjonClient, - private val andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, -) { - fun hentBrevperioderData( - vedtaksperioder: List, - behandling: Behandling, - skalLogge: Boolean = true, - ): List { - val vilkårsvurdering = - vilkårsvurderingService.hentAktivForBehandling(behandlingId = behandling.id) - ?: error("Finner ikke vilkårsvurdering ved begrunning av vedtak") - - val endredeUtbetalingAndeler = - andelerTilkjentYtelseOgEndreteUtbetalingerService - .finnEndreteUtbetalingerMedAndelerTilkjentYtelse(behandlingId = behandling.id) - - val personopplysningGrunnlag = persongrunnlagService.hentAktivThrows(behandlingId = behandling.id) - - val andelerMedEndringer = - andelerTilkjentYtelseOgEndreteUtbetalingerService - .finnAndelerTilkjentYtelseMedEndreteUtbetalinger(behandling.id) - - val uregistrerteBarn = - søknadGrunnlagService.hentAktiv(behandlingId = behandling.id)?.hentUregistrerteBarn() - ?: emptyList() - - val forrigeBehandling = - behandlingHentOgPersisterService.hentForrigeBehandlingSomErIverksattFraBehandlingsId(behandlingId = behandling.id) - - val kompetanser = - kompetanseService.hentKompetanser(behandlingId = BehandlingId(behandling.id)) - .filter { - if (forrigeBehandling?.erAutomatiskEøsMigrering() == true && behandling.skalBehandlesAutomatisk) { - it.erObligatoriskeFelterSatt() - } else { - true - } - } - - val sanityBegrunnelser = sanityService.hentSanityBegrunnelser() - val sanityEØSBegrunnelser = sanityService.hentSanityEØSBegrunnelser() - - val restBehandlingsgrunnlagForBrev = - hentRestBehandlingsgrunnlagForBrev( - vilkårsvurdering = vilkårsvurdering, - endredeUtbetalingAndeler = endredeUtbetalingAndeler, - persongrunnlag = personopplysningGrunnlag, - ) - - return vedtaksperioder.map { - hentBrevperiodeData( - vedtaksperiodeMedBegrunnelser = it, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - personopplysningGrunnlag = personopplysningGrunnlag, - andelerTilkjentYtelse = andelerMedEndringer, - uregistrerteBarn = uregistrerteBarn, - skalLogge = skalLogge, - kompetanser = kompetanser.toList(), - sanityBegrunnelser = sanityBegrunnelser, - sanityEØSBegrunnelser = sanityEØSBegrunnelser, - ) - } - } - - private fun hentBrevperiodeData( - vedtaksperiodeMedBegrunnelser: VedtaksperiodeMedBegrunnelser, - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - personopplysningGrunnlag: PersonopplysningGrunnlag, - andelerTilkjentYtelse: List, - uregistrerteBarn: List, - kompetanser: List, - sanityBegrunnelser: Map, - sanityEØSBegrunnelser: Map, - skalLogge: Boolean = true, - ): BrevperiodeData { - val minimerteUregistrerteBarn = uregistrerteBarn.map { it.tilMinimertUregistrertBarn() } - - val utvidetVedtaksperiodeMedBegrunnelse = - vedtaksperiodeMedBegrunnelser.tilUtvidetVedtaksperiodeMedBegrunnelser( - personopplysningGrunnlag = personopplysningGrunnlag, - andelerTilkjentYtelse = andelerTilkjentYtelse, - ) - - val ytelserForrigePeriode = - andelerTilkjentYtelse.filter { ytelseErFraForrigePeriode(it, utvidetVedtaksperiodeMedBegrunnelse) } - - val dødeBarnForrigePeriode = - dødeBarnForrigePeriode(ytelserForrigePeriode, personopplysningGrunnlag.barna.tilMinimertePersoner()) - - val minimertVedtaksperiode = - utvidetVedtaksperiodeMedBegrunnelse.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, - sanityEØSBegrunnelser = sanityEØSBegrunnelser, - ) - - val landkoderISO2 = integrasjonClient.hentLandkoderISO2() - - val brevperiodeData = - BrevperiodeData( - minimertVedtaksperiode = minimertVedtaksperiode, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - uregistrerteBarn = minimerteUregistrerteBarn, - brevMålform = personopplysningGrunnlag.søker.målform, - erFørsteVedtaksperiodePåFagsak = - erFørsteVedtaksperiodePåFagsak( - andelerTilkjentYtelse = andelerTilkjentYtelse, - periodeFom = utvidetVedtaksperiodeMedBegrunnelse.fom, - ), - barnMedReduksjonFraForrigeBehandlingIdent = - hentBarnsPersonIdentMedRedusertPeriode( - vedtaksperiodeMedBegrunnelser = vedtaksperiodeMedBegrunnelser, - andelerTilkjentYtelse = andelerTilkjentYtelse, - ), - minimerteKompetanserForPeriode = - hentMinimerteKompetanserForPeriode( - kompetanser = kompetanser, - fom = vedtaksperiodeMedBegrunnelser.fom?.toYearMonth(), - tom = vedtaksperiodeMedBegrunnelser.tom?.toYearMonth(), - personopplysningGrunnlag = personopplysningGrunnlag, - landkoderISO2 = landkoderISO2, - ), - minimerteKompetanserSomStopperRettFørPeriode = - hentKompetanserSomStopperRettFørPeriode( - kompetanser = kompetanser, - periodeFom = minimertVedtaksperiode.fom?.toYearMonth(), - ).filter { - it.erObligatoriskeFelterSatt() - }.map { - it.tilMinimertKompetanse( - personopplysningGrunnlag = personopplysningGrunnlag, - landkoderISO2 = landkoderISO2, - ) - }, - dødeBarnForrigePeriode = dødeBarnForrigePeriode, - ) - - if (skalLogge) { - secureLogger.info( - "Data for brevperiode på behandling ${vedtaksperiodeMedBegrunnelser.vedtak.behandling}: \n" + - brevperiodeData.tilBrevperiodeForLogging().convertDataClassToJson(), - ) - } - - return brevperiodeData - } - - private fun hentBarnsPersonIdentMedRedusertPeriode( - vedtaksperiodeMedBegrunnelser: VedtaksperiodeMedBegrunnelser, - andelerTilkjentYtelse: List, - ): List { - val forrigeBehandling = - behandlingHentOgPersisterService.hentForrigeBehandlingSomErIverksatt(vedtaksperiodeMedBegrunnelser.vedtak.behandling) - return if (forrigeBehandling != null) { - val forrigeAndelerMedEndringer = - andelerTilkjentYtelseOgEndreteUtbetalingerService - .finnAndelerTilkjentYtelseMedEndreteUtbetalinger(forrigeBehandling.id) - val endringerITilkjentYtelsePerBarn = - andelerTilkjentYtelse.hentPerioderMedEndringerFra(forrigeAndelerMedEndringer) - endringerITilkjentYtelsePerBarn.keys.filter { barn -> - endringerITilkjentYtelsePerBarn.getValue(barn).any { - it.overlapper( - LocalDateSegment( - vedtaksperiodeMedBegrunnelser.fom, - vedtaksperiodeMedBegrunnelser.tom, - null, - ), - ) - } - }.mapNotNull { barn -> - val result: LocalDateTimeline = endringerITilkjentYtelsePerBarn.getValue(barn) - if (!result.filterValue { beløp -> beløp < 0 }.isEmpty) { - personidentService.hentAktør(barn).aktivFødselsnummer() - } else { - null - } - } - } else { - emptyList() - } - } - - fun genererBrevBegrunnelserForPeriode(vedtaksperiodeId: Long): List { - val vedtaksperiodeMedBegrunnelser = - vedtaksperiodeHentOgPersisterService.hentVedtaksperiodeThrows(vedtaksperiodeId) - - val begrunnelseDataForVedtaksperiode = - hentBrevperioderData( - vedtaksperioder = listOf(vedtaksperiodeMedBegrunnelser), - behandling = vedtaksperiodeMedBegrunnelser.vedtak.behandling, - ).single() - return begrunnelseDataForVedtaksperiode.hentBegrunnelserOgFritekster() - } -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtil.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtil.kt index d03267faf2c..ba4a1b3b846 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtil.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtil.kt @@ -2,103 +2,17 @@ package no.nav.familie.ba.sak.kjerne.brev import no.nav.familie.ba.sak.common.Utils import no.nav.familie.ba.sak.common.tilKortString -import no.nav.familie.ba.sak.kjerne.beregning.domene.EndretUtbetalingAndelMedAndelerTilkjentYtelse -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertKompetanse -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertKompetanse -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertRestEndretUtbetalingAndel import no.nav.familie.ba.sak.kjerne.eøs.felles.beregning.tilSeparateTidslinjerForBarna import no.nav.familie.ba.sak.kjerne.eøs.felles.beregning.tilSkjemaer import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.Kompetanse -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt.Companion.tilTidspunktEllerUendeligSent import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt.Companion.tilTidspunktEllerUendeligTidlig import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.beskjær -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilMinimertPerson -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkårsvurdering import java.time.LocalDate import java.time.YearMonth -fun List.tilBarnasFødselsdatoer(): String = - Utils.slåSammen( - this - .filter { it.type == PersonType.BARN } - .sortedBy { person -> - person.fødselsdato - } - .map { person -> - person.fødselsdato.tilKortString() - }, - ) - fun List.tilSammenslåttKortString(): String = Utils.slåSammen(this.sorted().map { it.tilKortString() }) -fun hentBarnasFødselsdatoerForAvslagsbegrunnelse( - barnIBegrunnelse: List, - barnPåBehandling: List, - uregistrerteBarn: List, - gjelderSøker: Boolean, -): String { - val registrerteBarnFødselsdatoer = - if (gjelderSøker) barnPåBehandling.map { it.fødselsdato } else barnIBegrunnelse.map { it.fødselsdato } - val uregistrerteBarnFødselsdatoer = - uregistrerteBarn.mapNotNull { it.fødselsdato } - val alleBarnaFødselsdatoer = registrerteBarnFødselsdatoer + uregistrerteBarnFødselsdatoer - return alleBarnaFødselsdatoer.tilSammenslåttKortString() -} - -fun hentAntallBarnForAvslagsbegrunnelse( - barnIBegrunnelse: List, - barnPåBehandling: List, - uregistrerteBarn: List, - gjelderSøker: Boolean, -): Int { - val antallRegistrerteBarn = if (gjelderSøker) barnPåBehandling.size else barnIBegrunnelse.size - return antallRegistrerteBarn + uregistrerteBarn.size -} - -fun hentRestBehandlingsgrunnlagForBrev( - persongrunnlag: PersonopplysningGrunnlag, - vilkårsvurdering: Vilkårsvurdering, - endredeUtbetalingAndeler: List, -): RestBehandlingsgrunnlagForBrev { - return RestBehandlingsgrunnlagForBrev( - personerPåBehandling = persongrunnlag.søkerOgBarn.map { it.tilMinimertPerson() }, - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimerteEndredeUtbetalingAndeler = endredeUtbetalingAndeler.map { it.tilMinimertRestEndretUtbetalingAndel() }, - fagsakType = vilkårsvurdering.behandling.fagsak.type, - ) -} - -fun hentMinimerteKompetanserForPeriode( - kompetanser: List, - fom: YearMonth?, - tom: YearMonth?, - personopplysningGrunnlag: PersonopplysningGrunnlag, - landkoderISO2: Map, -): List { - val minimerteKompetanser = - kompetanser.hentIPeriode(fom, tom) - .filter { it.erObligatoriskeFelterSatt() } - .map { - it.tilMinimertKompetanse( - personopplysningGrunnlag = personopplysningGrunnlag, - landkoderISO2 = landkoderISO2, - ) - } - - return minimerteKompetanser -} - -fun hentKompetanserSomStopperRettFørPeriode( - kompetanser: List, - periodeFom: YearMonth?, -) = kompetanser.filter { it.tom?.plusMonths(1) == periodeFom } - fun Collection.hentIPeriode( fom: YearMonth?, tom: YearMonth?, diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevService.kt index ed77034bd36..c498bf88351 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevService.kt @@ -5,8 +5,6 @@ import no.nav.familie.ba.sak.common.FunksjonellFeil import no.nav.familie.ba.sak.common.Utils import no.nav.familie.ba.sak.common.Utils.storForbokstavIAlleNavn import no.nav.familie.ba.sak.common.tilDagMånedÅr -import no.nav.familie.ba.sak.config.FeatureToggleConfig.Companion.NY_GENERERING_AV_BREVOBJEKTER -import no.nav.familie.ba.sak.config.featureToggle.UnleashNextMedContextService import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.organisasjon.OrganisasjonService import no.nav.familie.ba.sak.integrasjoner.sanity.SanityService @@ -40,6 +38,7 @@ import no.nav.familie.ba.sak.kjerne.brev.domene.maler.SignaturVedtak import no.nav.familie.ba.sak.kjerne.brev.domene.maler.VedtakEndring import no.nav.familie.ba.sak.kjerne.brev.domene.maler.VedtakFellesfelter import no.nav.familie.ba.sak.kjerne.brev.domene.maler.Vedtaksbrev +import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertVedtaksperiode import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag @@ -64,7 +63,6 @@ class BrevService( private val arbeidsfordelingService: ArbeidsfordelingService, private val simuleringService: SimuleringService, private val vedtaksperiodeService: VedtaksperiodeService, - private val brevPeriodeService: BrevPeriodeService, private val sanityService: SanityService, private val vilkårsvurderingService: VilkårsvurderingService, private val korrigertEtterbetalingService: KorrigertEtterbetalingService, @@ -73,7 +71,6 @@ class BrevService( private val saksbehandlerContext: SaksbehandlerContext, private val brevmalService: BrevmalService, private val refusjonEøsRepository: RefusjonEøsRepository, - private val unleashNext: UnleashNextMedContextService, private val integrasjonClient: IntegrasjonClient, ) { fun hentVedtaksbrevData(vedtak: Vedtak): Vedtaksbrev { @@ -305,25 +302,18 @@ class BrevService( } val grunnlagOgSignaturData = hentGrunnlagOgSignaturData(vedtak) - val brevPerioderData = - brevPeriodeService.hentBrevperioderData( - vedtaksperioder = vedtaksperioder, - behandling = vedtak.behandling, - ) + val minimerteVedtaksperioder = + vedtaksperioder.map { it.tilMinimertVedtaksperiode(sanityEØSBegrunnelser = sanityService.hentSanityEØSBegrunnelser()) } + val personopplysningGrunnlag = persongrunnlagService.hentAktivThrows(behandlingId = vedtak.behandling.id) + + val grunnlagForBegrunnelser = vedtaksperiodeService.hentGrunnlagForBegrunnelse(vedtak.behandling) val brevperioder = - if (unleashNext.isEnabled(NY_GENERERING_AV_BREVOBJEKTER, vedtak.behandling.id)) { - val grunnlagForBegrunnelser = vedtaksperiodeService.hentGrunnlagForBegrunnelse(vedtak.behandling) - vedtaksperioder.mapNotNull { - it.lagBrevPeriode( - grunnlagForBegrunnelse = grunnlagForBegrunnelser, - landkoder = integrasjonClient.hentLandkoderISO2(), - ) - } - } else { - brevPerioderData.sorted().mapNotNull { - it.tilBrevPeriodeGenerator().genererBrevPeriode() - } + vedtaksperioder.mapNotNull { + it.lagBrevPeriode( + grunnlagForBegrunnelse = grunnlagForBegrunnelser, + landkoder = integrasjonClient.hentLandkoderISO2(), + ) } val korrigertVedtak = korrigertVedtakService.finnAktivtKorrigertVedtakPåBehandling(vedtak.behandling.id) @@ -332,8 +322,8 @@ class BrevService( val hjemler = hentHjemler( behandlingId = vedtak.behandling.id, - minimerteVedtaksperioder = brevPerioderData.map { it.minimertVedtaksperiode }, - målform = brevPerioderData.first().brevMålform, + minimerteVedtaksperioder = minimerteVedtaksperioder, + målform = personopplysningGrunnlag.søker.målform, vedtakKorrigertHjemmelSkalMedIBrev = korrigertVedtak != null, refusjonEøsHjemmelSkalMedIBrev = refusjonEøs.isNotEmpty(), ) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt index 6d944fd8b8a..962ea5bbdbb 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt @@ -90,7 +90,7 @@ fun hentHjemmeltekst( val sanityStandardbegrunnelser = minimerteVedtaksperioder.flatMap { vedtaksperiode -> vedtaksperiode.begrunnelser.mapNotNull { begrunnelse -> - sanityBegrunnelser[begrunnelse.standardbegrunnelse] + sanityBegrunnelser[begrunnelse] } } diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/Utgj\303\270rendeVilk\303\245rUtils.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/Utgj\303\270rendeVilk\303\245rUtils.kt" deleted file mode 100644 index e60212b28a6..00000000000 --- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/Utgj\303\270rendeVilk\303\245rUtils.kt" +++ /dev/null @@ -1,312 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev - -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_MORGEN -import no.nav.familie.ba.sak.common.overlapperHeltEllerDelvisMed -import no.nav.familie.ba.sak.common.sisteDagIMåned -import no.nav.familie.ba.sak.common.toYearMonth -import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVilkårResultat -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår - -/** - * Funksjonen henter personer som trigger den gitte vedtaksperioden ved å hente vilkårResultater - * basert på de attributter som definerer om en vedtaksbegrunnelse er trigget for en periode. - * - * @param minimertePersonResultater - Resultatene fra vilkårsvurderingen for hver person - * @param vedtaksperiode - Perioden det skal sjekkes for - * @param oppdatertBegrunnelseType - Begrunnelsestype det skal sjekkes for - * @param aktuellePersonerForVedtaksperiode - Personer på behandlingen som er aktuelle for vedtaksperioden - * @param triggesAv - Hva som trigger en vedtaksbegrynnelse. - * @param erFørsteVedtaksperiodePåFagsak - Om vedtaksperioden er første periode på fagsak. - * Brukes for opphør som har egen logikk dersom det er første periode. - * @return List med personene det trigges endring på - */ - -fun hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater: List, - vedtaksperiode: Periode, - oppdatertBegrunnelseType: VedtakBegrunnelseType, - aktuellePersonerForVedtaksperiode: List, - triggesAv: TriggesAv, - begrunnelse: IVedtakBegrunnelse, - erFørsteVedtaksperiodePåFagsak: Boolean, -): Set { - return triggesAv.vilkår.fold(setOf()) { acc, vilkår -> - acc + - hentPersonerMedUtgjørendeVilkår( - minimertRestPersonResultater = minimertePersonResultater, - vedtaksperiode = vedtaksperiode, - begrunnelseType = oppdatertBegrunnelseType, - vilkårGjeldendeForBegrunnelse = vilkår, - aktuellePersonerForVedtaksperiode = aktuellePersonerForVedtaksperiode, - triggesAv = triggesAv, - begrunnelse = begrunnelse, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - ) - } -} - -private fun hentPersonerMedUtgjørendeVilkår( - minimertRestPersonResultater: List, - vedtaksperiode: Periode, - begrunnelseType: VedtakBegrunnelseType, - vilkårGjeldendeForBegrunnelse: Vilkår, - aktuellePersonerForVedtaksperiode: List, - triggesAv: TriggesAv, - begrunnelse: IVedtakBegrunnelse, - erFørsteVedtaksperiodePåFagsak: Boolean, -): List { - val aktuellePersonidenter = aktuellePersonerForVedtaksperiode.map { it.personIdent } - - return minimertRestPersonResultater - .filter { aktuellePersonidenter.contains(it.personIdent) } - .fold(mutableListOf()) { acc, personResultat -> - val utgjørendeVilkårResultat = - personResultat.minimerteVilkårResultater - .filter { it.vilkårType == vilkårGjeldendeForBegrunnelse } - .firstOrNull { minimertVilkårResultat -> - val nesteMinimerteVilkårResultatAvSammeType: MinimertVilkårResultat? = - personResultat.minimerteVilkårResultater.finnEtterfølgende(minimertVilkårResultat) - erVilkårResultatUtgjørende( - minimertVilkårResultat = minimertVilkårResultat, - nesteMinimerteVilkårResultat = nesteMinimerteVilkårResultatAvSammeType, - forrigeMinimerteVilkårResultat = - personResultat.minimerteVilkårResultater.finnForeliggende( - minimertVilkårResultat, - ), - begrunnelseType = begrunnelseType, - triggesAv = triggesAv, - vedtaksperiode = vedtaksperiode, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - begrunnelse = begrunnelse, - ) - } - - val person = - aktuellePersonerForVedtaksperiode.firstOrNull { person -> - person.personIdent == personResultat.personIdent - } - - if (utgjørendeVilkårResultat != null && person != null) { - acc.add(person) - } - acc - } -} - -private fun List.finnEtterfølgende( - minimertVilkårResultat: MinimertVilkårResultat, -): MinimertVilkårResultat? = - minimertVilkårResultat.periodeTom?.let { tom -> this.find { it.periodeFom?.isEqual(tom.plusDays(1)) == true } } - -private fun List.finnForeliggende( - minimertVilkårResultat: MinimertVilkårResultat, -): MinimertVilkårResultat? = - minimertVilkårResultat.let { vilkårResultat -> - this.find { - if (vilkårResultat.periodeFom == null) return@find false - it.periodeTom?.isEqual( - vilkårResultat.periodeFom.minusDays( - 1, - ), - ) == true && it.vilkårType == vilkårResultat.vilkårType - } - } - -private fun erVilkårResultatUtgjørende( - minimertVilkårResultat: MinimertVilkårResultat, - nesteMinimerteVilkårResultat: MinimertVilkårResultat?, - forrigeMinimerteVilkårResultat: MinimertVilkårResultat?, - begrunnelseType: VedtakBegrunnelseType, - triggesAv: TriggesAv, - begrunnelse: IVedtakBegrunnelse, - vedtaksperiode: Periode, - erFørsteVedtaksperiodePåFagsak: Boolean, -): Boolean { - if (minimertVilkårResultat.periodeFom == null && !begrunnelseType.erAvslag()) { - return false - } - - return when (begrunnelseType) { - VedtakBegrunnelseType.INNVILGET, - VedtakBegrunnelseType.INSTITUSJON_INNVILGET, - -> - erInnvilgetVilkårResultatUtgjørende( - triggesAv, - minimertVilkårResultat, - forrigeMinimerteVilkårResultat, - vedtaksperiode, - ) - - VedtakBegrunnelseType.OPPHØR, - VedtakBegrunnelseType.INSTITUSJON_OPPHØR, - -> - if (triggesAv.gjelderFørstePeriode) { - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - vilkårResultat = minimertVilkårResultat, - ) - } else { - erOpphørResultatUtgjøreneForPeriode( - minimertVilkårResultat = minimertVilkårResultat, - triggesAv = triggesAv, - vedtaksperiode = vedtaksperiode, - ) - } - - VedtakBegrunnelseType.REDUKSJON, VedtakBegrunnelseType.INSTITUSJON_REDUKSJON -> { - erReduksjonResultatUtgjøreneForPeriode( - vilkårSomAvsluttesRettFørDennePerioden = minimertVilkårResultat, - triggesAv = triggesAv, - vedtaksperiode = vedtaksperiode, - vilkårSomStarterIDennePerioden = nesteMinimerteVilkårResultat, - ) - } - - VedtakBegrunnelseType.AVSLAG, VedtakBegrunnelseType.INSTITUSJON_AVSLAG -> - vilkårResultatPasserForAvslagsperiode( - minimertVilkårResultat = minimertVilkårResultat, - vedtaksperiode = vedtaksperiode, - begrunnelse = begrunnelse, - ) - - else -> throw Feil("Henting av personer med utgjørende vilkår when: Ikke implementert") - } -} - -private fun erOpphørResultatUtgjøreneForPeriode( - minimertVilkårResultat: MinimertVilkårResultat, - triggesAv: TriggesAv, - vedtaksperiode: Periode, -): Boolean { - val erOppfyltTomMånedEtter = erOppfyltTomMånedEtter(minimertVilkårResultat) - - val vilkårsluttForForrigePeriode = - vedtaksperiode.fom.minusMonths( - if (erOppfyltTomMånedEtter) 1 else 0, - ) - return triggesAv.erUtdypendeVilkårsvurderingOppfylt(minimertVilkårResultat) && - minimertVilkårResultat.periodeTom != null && - minimertVilkårResultat.resultat == Resultat.OPPFYLT && - minimertVilkårResultat.periodeTom.toYearMonth() == vilkårsluttForForrigePeriode.toYearMonth() -} - -private fun erReduksjonResultatUtgjøreneForPeriode( - vilkårSomAvsluttesRettFørDennePerioden: MinimertVilkårResultat, - triggesAv: TriggesAv, - vedtaksperiode: Periode, - vilkårSomStarterIDennePerioden: MinimertVilkårResultat?, -): Boolean { - if (vilkårSomAvsluttesRettFørDennePerioden.periodeTom == null) { - return false - } - - val erOppfyltTomMånedEtter = erOppfyltTomMånedEtter(vilkårSomAvsluttesRettFørDennePerioden) - - val erStartPåDeltBosted = - vilkårSomAvsluttesRettFørDennePerioden.vilkårType == Vilkår.BOR_MED_SØKER && - !vilkårSomAvsluttesRettFørDennePerioden.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) && - vilkårSomStarterIDennePerioden?.utdypendeVilkårsvurderinger?.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) == true && - triggesAv.deltbosted - - val startNestePeriodeEtterVilkår = - vilkårSomAvsluttesRettFørDennePerioden.periodeTom - .plusDays(if (erStartPåDeltBosted) 1 else 0) - .plusMonths(if (erOppfyltTomMånedEtter) 1 else 0) - - return triggesAv.erUtdypendeVilkårsvurderingOppfyltReduksjon( - vilkårSomAvsluttesRettFørDennePerioden = vilkårSomAvsluttesRettFørDennePerioden, - vilkårSomStarterIDennePerioden = vilkårSomStarterIDennePerioden, - ) && - vilkårSomAvsluttesRettFørDennePerioden.resultat == Resultat.OPPFYLT && - startNestePeriodeEtterVilkår.toYearMonth() == vedtaksperiode.fom.toYearMonth() -} - -private fun erOppfyltTomMånedEtter(minimertVilkårResultat: MinimertVilkårResultat) = - minimertVilkårResultat.vilkårType != Vilkår.UNDER_18_ÅR || - minimertVilkårResultat.periodeTom == minimertVilkårResultat.periodeTom?.sisteDagIMåned() - -private fun erInnvilgetVilkårResultatUtgjørende( - triggesAv: TriggesAv, - minimertVilkårResultat: MinimertVilkårResultat, - forrigeMinimerteVilkårResultat: MinimertVilkårResultat?, - vedtaksperiode: Periode, -): Boolean { - val vilkårResultatFomMåned = minimertVilkårResultat.periodeFom!!.toYearMonth() - val vedtaksperiodeFomMåned = vedtaksperiode.fom.toYearMonth() - - val erVilkårOgVedtakFomSammeMåned = - if (forrigeMinimerteVilkårResultat != null && - erForskjøvet(forrigeMinimerteVilkårResultat, minimertVilkårResultat) - ) { - vilkårResultatFomMåned == vedtaksperiodeFomMåned - } else { - vilkårResultatFomMåned == vedtaksperiodeFomMåned.minusMonths(1) - } - - return triggesAv.erUtdypendeVilkårsvurderingOppfylt(minimertVilkårResultat) && - vilkårResultatFomMåned == vedtaksperiodeFomMåned.minusMonths(1) && - minimertVilkårResultat.resultat == Resultat.OPPFYLT -} - -private fun erForskjøvet( - forrigeMinimerteVilkårResultat: MinimertVilkårResultat, - minimertVilkårResultat: MinimertVilkårResultat, -) = (minimertVilkårResultat.vilkårType == Vilkår.BOR_MED_SØKER && (minimertVilkårResultat.erDeltBosted())) || - forrigeMinimerteVilkårResultat.resultat == Resultat.OPPFYLT && minimertVilkårResultat.resultat == Resultat.OPPFYLT - -private fun MinimertVilkårResultat.erDeltBosted() = - utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) || - utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED_SKAL_IKKE_DELES) - -private fun vilkårResultatPasserForAvslagsperiode( - minimertVilkårResultat: MinimertVilkårResultat, - vedtaksperiode: Periode, - begrunnelse: IVedtakBegrunnelse, -): Boolean { - val erAvslagUtenFomDato = minimertVilkårResultat.periodeFom == null - - val fomVilkår = - if (erAvslagUtenFomDato) { - TIDENES_MORGEN.toYearMonth() - } else { - minimertVilkårResultat.periodeFom!!.toYearMonth().plusMonths(1) - } - - return fomVilkår == vedtaksperiode.fom.toYearMonth() && - minimertVilkårResultat.resultat == Resultat.IKKE_OPPFYLT && - minimertVilkårResultat.standardbegrunnelser.contains(begrunnelse) -} - -fun erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak: Boolean, - vedtaksperiode: Periode, - triggesAv: TriggesAv, - vilkårResultat: MinimertVilkårResultat, -): Boolean { - val vilkårIkkeOppfyltForPeriode = - vilkårResultat.resultat == Resultat.IKKE_OPPFYLT && - vilkårResultat.toPeriode().overlapperHeltEllerDelvisMed(vedtaksperiode) - - val vilkårOppfyltRettEtterPeriode = - vilkårResultat.resultat == Resultat.OPPFYLT && - vedtaksperiode.tom.toYearMonth() == vilkårResultat.periodeFom!!.toYearMonth() - - val vilkårAvsluttesInnenforSammeMåned = - (vilkårResultat.periodeFom?.toYearMonth() == vilkårResultat.periodeTom?.toYearMonth()) && - vilkårResultat.resultat == Resultat.OPPFYLT - - return erFørsteVedtaksperiodePåFagsak && - triggesAv.erUtdypendeVilkårsvurderingOppfylt(vilkårResultat) && - (vilkårIkkeOppfyltForPeriode || vilkårOppfyltRettEtterPeriode || vilkårAvsluttesInnenforSammeMåned) -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BegrunnelseMedTriggere.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BegrunnelseMedTriggere.kt deleted file mode 100644 index 227b474a71a..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BegrunnelseMedTriggere.kt +++ /dev/null @@ -1,87 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev.domene - -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.FunksjonellFeil -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.kjerne.brev.hentPersonidenterGjeldendeForBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv -import no.nav.familie.ba.sak.kjerne.vedtak.domene.Vedtaksbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype - -data class BegrunnelseMedTriggere( - val standardbegrunnelse: IVedtakBegrunnelse, - val triggesAv: TriggesAv, -) { - fun tilBrevBegrunnelseGrunnlagMedPersoner( - periode: NullablePeriode, - vedtaksperiodetype: Vedtaksperiodetype, - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - identerMedUtbetalingPåPeriode: List, - erFørsteVedtaksperiodePåFagsak: Boolean, - erUregistrerteBarnPåbehandling: Boolean, - barnMedReduksjonFraForrigeBehandlingIdent: List, - minimerteUtbetalingsperiodeDetaljer: List, - dødeBarnForrigePeriode: List, - ): List { - return if (this.standardbegrunnelse.kanDelesOpp) { - this.standardbegrunnelse.delOpp( - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - triggesAv = this.triggesAv, - periode = periode, - ) - } else { - val personidenterGjeldendeForBegrunnelse: Set = - hentPersonidenterGjeldendeForBegrunnelse( - begrunnelse = this.standardbegrunnelse, - triggesAv = this.triggesAv, - vedtakBegrunnelseType = this.standardbegrunnelse.vedtakBegrunnelseType, - periode = periode, - vedtaksperiodetype = vedtaksperiodetype, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - identerMedUtbetalingPåPeriode = identerMedUtbetalingPåPeriode, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - identerMedReduksjonPåPeriode = barnMedReduksjonFraForrigeBehandlingIdent, - minimerteUtbetalingsperiodeDetaljer = minimerteUtbetalingsperiodeDetaljer, - dødeBarnForrigePeriode = dødeBarnForrigePeriode, - ) - - if ( - personidenterGjeldendeForBegrunnelse.isEmpty() && - !erUregistrerteBarnPåbehandling && - !this.triggesAv.satsendring - ) { - throw FunksjonellFeil( - "Begrunnelse '${this.standardbegrunnelse}' var ikke knyttet til noen personer.", - ) - } - - listOf( - BrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse = this.standardbegrunnelse, - vedtakBegrunnelseType = this.standardbegrunnelse.vedtakBegrunnelseType, - triggesAv = this.triggesAv, - personIdenter = personidenterGjeldendeForBegrunnelse.toList(), - ), - ) - } - } - - fun tilBrevBegrunnelseGrunnlagForLogging() = - BrevBegrunnelseGrunnlagForLogging( - standardbegrunnelse = this.standardbegrunnelse, - ) -} - -fun Vedtaksbegrunnelse.tilBegrunnelseMedTriggere( - sanityBegrunnelser: Map, -): BegrunnelseMedTriggere { - val sanityBegrunnelse = - sanityBegrunnelser[this.standardbegrunnelse] - ?: throw Feil("Finner ikke sanityBegrunnelse med apiNavn=${this.standardbegrunnelse.sanityApiNavn}") - return BegrunnelseMedTriggere( - standardbegrunnelse = this.standardbegrunnelse, - triggesAv = sanityBegrunnelse.triggesAv, - ) -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevBegrunnelseGrunnlagMedPersoner.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevBegrunnelseGrunnlagMedPersoner.kt deleted file mode 100644 index 63d98098f9c..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevBegrunnelseGrunnlagMedPersoner.kt +++ /dev/null @@ -1,62 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev.domene - -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.erAvslagUregistrerteBarnBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import java.time.LocalDate - -data class BrevBegrunnelseGrunnlagMedPersoner( - val standardbegrunnelse: IVedtakBegrunnelse, - val vedtakBegrunnelseType: VedtakBegrunnelseType, - val triggesAv: TriggesAv, - val personIdenter: List, - val avtaletidspunktDeltBosted: LocalDate? = null, -) { - fun hentAntallBarnForBegrunnelse( - uregistrerteBarn: List, - gjelderSøker: Boolean, - barnasFødselsdatoer: List, - ): Int { - val erAvslagUregistrerteBarn = standardbegrunnelse.erAvslagUregistrerteBarnBegrunnelse() - - return when { - erAvslagUregistrerteBarn -> uregistrerteBarn.size - gjelderSøker && this.vedtakBegrunnelseType == VedtakBegrunnelseType.AVSLAG -> 0 - else -> barnasFødselsdatoer.size - } - } - - fun hentBarnasFødselsdagerForBegrunnelse( - uregistrerteBarn: List, - gjelderSøker: Boolean, - personerIBehandling: List, - personerPåBegrunnelse: List, - personerMedUtbetaling: List, - ) = when { - this.standardbegrunnelse.erAvslagUregistrerteBarnBegrunnelse() -> uregistrerteBarn.mapNotNull { it.fødselsdato } - - gjelderSøker && this.vedtakBegrunnelseType != VedtakBegrunnelseType.ENDRET_UTBETALING && this.vedtakBegrunnelseType != VedtakBegrunnelseType.ETTER_ENDRET_UTBETALING -> { - when (this.vedtakBegrunnelseType) { - VedtakBegrunnelseType.AVSLAG, VedtakBegrunnelseType.OPPHØR -> { - personerIBehandling - .filter { it.type == PersonType.BARN } - .map { it.fødselsdato } + - uregistrerteBarn.mapNotNull { it.fødselsdato } - } - - else -> { - (personerMedUtbetaling + personerPåBegrunnelse).toSet() - .filter { it.type == PersonType.BARN } - .map { it.fødselsdato } - } - } - } - else -> - personerPåBegrunnelse - .filter { it.type == PersonType.BARN } - .map { it.fødselsdato } - } -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevPeriodeLogging.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevPeriodeLogging.kt deleted file mode 100644 index 52988c60f0f..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevPeriodeLogging.kt +++ /dev/null @@ -1,72 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev.domene - -import com.fasterxml.jackson.annotation.JsonSubTypes -import com.fasterxml.jackson.annotation.JsonTypeInfo -import no.nav.familie.ba.sak.common.MånedPeriode -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype -import java.math.BigDecimal -import java.time.LocalDate - -data class BrevPeriodeForLogging( - val fom: LocalDate?, - val tom: LocalDate?, - val vedtaksperiodetype: Vedtaksperiodetype, - val begrunnelser: List, - val fritekster: List, - val personerPåBehandling: List, - val uregistrerteBarn: List, - val erFørsteVedtaksperiodePåFagsak: Boolean = false, - val brevMålform: Målform, -) - -data class BrevPeriodePersonForLogging( - val fødselsdato: LocalDate, - val type: PersonType, - val overstyrteVilkårresultater: List, - val andreVurderinger: List, - val endredeUtbetalinger: List, - val utbetalinger: List, - val harReduksjonFraForrigeBehandling: Boolean, -) - -data class UtbetalingPåPersonForLogging( - val ytelseType: YtelseType, - val utbetaltPerMnd: Int, - val erPåvirketAvEndring: Boolean, - val prosent: BigDecimal, -) - -data class EndretUtbetalingAndelPåPersonForLogging( - val periode: MånedPeriode, - val årsak: Årsak, -) - -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.PROPERTY, - property = "type", - defaultImpl = BegrunnelseDataForLogging::class, -) -@JsonSubTypes(value = [JsonSubTypes.Type(value = FritekstBegrunnelseTestForLogging::class, name = "fritekst")]) -interface TestBegrunnelse - -data class FritekstBegrunnelseTestForLogging(val fritekst: String) : TestBegrunnelse - -data class BegrunnelseDataForLogging( - val gjelderSoker: Boolean, - val barnasFodselsdatoer: String, - val antallBarn: Int, - val maanedOgAarBegrunnelsenGjelderFor: String?, - val maalform: String, - val apiNavn: String, - val belop: Int, -) : TestBegrunnelse - -data class BrevBegrunnelseGrunnlagForLogging( - val standardbegrunnelse: IVedtakBegrunnelse, -) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevperiodeData.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevperiodeData.kt deleted file mode 100644 index d8834fd5cd1..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/BrevperiodeData.kt +++ /dev/null @@ -1,70 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev.domene - -import no.nav.familie.ba.sak.common.TIDENES_MORGEN -import no.nav.familie.ba.sak.kjerne.brev.BrevPeriodeGenerator -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.vedtak.domene.BrevBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype - -@Deprecated("Skal bort. Bruk GrunnlagForBegrunnelse i stedet") -data class BrevperiodeData( - val restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - val erFørsteVedtaksperiodePåFagsak: Boolean, - val uregistrerteBarn: List, - val brevMålform: Målform, - val minimertVedtaksperiode: MinimertVedtaksperiode, - val barnMedReduksjonFraForrigeBehandlingIdent: List = emptyList(), - val minimerteKompetanserForPeriode: List, - val minimerteKompetanserSomStopperRettFørPeriode: List, - val dødeBarnForrigePeriode: List, -) : Comparable { - fun tilBrevPeriodeGenerator() = - BrevPeriodeGenerator( - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - uregistrerteBarn = uregistrerteBarn, - brevMålform = brevMålform, - minimertVedtaksperiode = minimertVedtaksperiode, - barnMedReduksjonFraForrigeBehandlingIdent = barnMedReduksjonFraForrigeBehandlingIdent, - minimerteKompetanserForPeriode = minimerteKompetanserForPeriode, - minimerteKompetanserSomStopperRettFørPeriode = minimerteKompetanserSomStopperRettFørPeriode, - dødeBarnForrigePeriode = dødeBarnForrigePeriode, - ) - - fun hentBegrunnelserOgFritekster(): List { - val brevPeriodeGenerator = this.tilBrevPeriodeGenerator() - return brevPeriodeGenerator.byggBegrunnelserOgFritekster( - begrunnelserGrunnlagMedPersoner = brevPeriodeGenerator.hentBegrunnelsegrunnlagMedPersoner(), - eøsBegrunnelserMedKompetanser = brevPeriodeGenerator.hentEøsBegrunnelserMedKompetanser(), - ) - } - - fun tilBrevperiodeForLogging() = - minimertVedtaksperiode.tilBrevPeriodeForLogging( - restBehandlingsgrunnlagForBrev = this.restBehandlingsgrunnlagForBrev, - uregistrerteBarn = this.uregistrerteBarn, - brevMålform = this.brevMålform, - barnMedReduksjonFraForrigeBehandlingIdent = this.barnMedReduksjonFraForrigeBehandlingIdent, - ) - - override fun compareTo(other: BrevperiodeData): Int { - val fomCompared = - (this.minimertVedtaksperiode.fom ?: TIDENES_MORGEN).compareTo( - other.minimertVedtaksperiode.fom ?: TIDENES_MORGEN, - ) - - return when { - this.erGenereltAvslag() -> 1 - other.erGenereltAvslag() -> -1 - fomCompared == 0 && this.minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG -> 1 - fomCompared == 0 && other.minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG -> -1 - else -> fomCompared - } - } - - private fun BrevperiodeData.erGenereltAvslag(): Boolean { - return minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG && - minimertVedtaksperiode.fom == null && - minimertVedtaksperiode.tom == null - } -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertRestPersonResultat.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertRestPersonResultat.kt index c73fa8294a5..1ef1386f8f6 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertRestPersonResultat.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertRestPersonResultat.kt @@ -30,10 +30,3 @@ fun PersonResultat.tilMinimertPersonResultat() = minimerteVilkårResultater = this.vilkårResultater.map { it.tilMinimertVilkårResultat() }, minimerteAndreVurderinger = this.andreVurderinger.map { it.tilMinimertAnnenVurdering() }, ) - -fun List.harPersonerSomManglerOpplysninger(): Boolean = - this.any { personResultat -> - personResultat.minimerteAndreVurderinger.any { - it.type == AnnenVurderingType.OPPLYSNINGSPLIKT && it.resultat == Resultat.IKKE_OPPFYLT - } - } diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertUtbetalingsperiodeDetalj.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertUtbetalingsperiodeDetalj.kt index 901b659ebba..554453903e3 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertUtbetalingsperiodeDetalj.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertUtbetalingsperiodeDetalj.kt @@ -2,7 +2,6 @@ package no.nav.familie.ba.sak.kjerne.brev.domene import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilMinimertPerson import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.UtbetalingsperiodeDetalj @@ -26,15 +25,3 @@ fun UtbetalingsperiodeDetalj.tilMinimertUtbetalingsperiodeDetalj() = prosent = this.prosent, endringsårsak = this.endringsårsak, ) - -fun List.antallBarn(): Int = - this.filter { it.person.type == PersonType.BARN }.size - -fun List.totaltUtbetalt(): Int = - this.sumOf { it.utbetaltPerMnd } - -fun List.beløpUtbetaltFor( - personIdenter: List, -) = this - .filter { utbetalingsperiodeDetalj -> personIdenter.contains(utbetalingsperiodeDetalj.person.personIdent) } - .totaltUtbetalt() diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVedtaksperiode.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVedtaksperiode.kt index 1f1acfa1143..fe2ca0fee2d 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVedtaksperiode.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVedtaksperiode.kt @@ -1,35 +1,30 @@ package no.nav.familie.ba.sak.kjerne.brev.domene import no.nav.familie.ba.sak.kjerne.brev.domene.eøs.EØSBegrunnelseMedTriggere -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.EØSStandardbegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilBrevPeriodeTestPerson +import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.UtvidetVedtaksperiodeMedBegrunnelser import java.time.LocalDate data class MinimertVedtaksperiode( val fom: LocalDate?, val tom: LocalDate?, val type: Vedtaksperiodetype, - val begrunnelser: List, + val begrunnelser: List, val eøsBegrunnelser: List, val fritekster: List = emptyList(), - val minimerteUtbetalingsperiodeDetaljer: List = emptyList(), ) -fun UtvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode( - sanityBegrunnelser: Map, +fun VedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode( sanityEØSBegrunnelser: Map, ): MinimertVedtaksperiode { return MinimertVedtaksperiode( fom = this.fom, tom = this.tom, type = this.type, - fritekster = this.fritekster, - minimerteUtbetalingsperiodeDetaljer = this.utbetalingsperiodeDetaljer.map { it.tilMinimertUtbetalingsperiodeDetalj() }, - begrunnelser = this.begrunnelser.map { it.tilBegrunnelseMedTriggere(sanityBegrunnelser) }, + fritekster = this.fritekster.sortedBy { it.id }.map { it.fritekst }, + begrunnelser = this.begrunnelser.map { it.standardbegrunnelse }, eøsBegrunnelser = this.eøsBegrunnelser.mapNotNull { it.begrunnelse.tilEØSBegrunnelseMedTriggere( @@ -38,30 +33,3 @@ fun UtvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode( }, ) } - -fun MinimertVedtaksperiode.tilBrevPeriodeForLogging( - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - uregistrerteBarn: List = emptyList(), - erFørsteVedtaksperiodePåFagsak: Boolean = false, - brevMålform: Målform, - barnMedReduksjonFraForrigeBehandlingIdent: List = emptyList(), -): BrevPeriodeForLogging { - return BrevPeriodeForLogging( - fom = this.fom, - tom = this.tom, - vedtaksperiodetype = this.type, - begrunnelser = this.begrunnelser.map { it.tilBrevBegrunnelseGrunnlagForLogging() }, - fritekster = this.fritekster, - personerPåBehandling = - restBehandlingsgrunnlagForBrev.personerPåBehandling.map { - it.tilBrevPeriodeTestPerson( - brevPeriodeGrunnlag = this, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - barnMedReduksjonFraForrigeBehandlingIdent = barnMedReduksjonFraForrigeBehandlingIdent, - ) - }, - uregistrerteBarn = uregistrerteBarn.map { it.copy(personIdent = "", navn = "") }, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - brevMålform = brevMålform, - ) -} diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVilk\303\245rResultat.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVilk\303\245rResultat.kt" index 3160e5e8ad4..9816b75c15e 100644 --- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVilk\303\245rResultat.kt" +++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/MinimertVilk\303\245rResultat.kt" @@ -1,8 +1,6 @@ package no.nav.familie.ba.sak.kjerne.brev.domene import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.lagOgValiderPeriodeFraVilkår import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelseDeserializer @@ -20,14 +18,7 @@ data class MinimertVilkårResultat( val erEksplisittAvslagPåSøknad: Boolean?, @JsonDeserialize(using = IVedtakBegrunnelseDeserializer::class) val standardbegrunnelser: List, -) { - fun toPeriode(): Periode = - lagOgValiderPeriodeFraVilkår( - this.periodeFom, - this.periodeTom, - this.erEksplisittAvslagPåSøknad, - ) -} +) fun VilkårResultat.tilMinimertVilkårResultat() = MinimertVilkårResultat( diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/RestBehandlingsgrunnlagForBrev.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/RestBehandlingsgrunnlagForBrev.kt deleted file mode 100644 index 8291b54143a..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/domene/RestBehandlingsgrunnlagForBrev.kt +++ /dev/null @@ -1,11 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev.domene - -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson - -data class RestBehandlingsgrunnlagForBrev( - val personerPåBehandling: List, - val minimertePersonResultater: List, - val minimerteEndredeUtbetalingAndeler: List, - val fagsakType: FagsakType, -) diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/E\303\230SStandardbegrunnelse.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/E\303\230SStandardbegrunnelse.kt" index b446c199817..a2299bb30cf 100644 --- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/E\303\230SStandardbegrunnelse.kt" +++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/E\303\230SStandardbegrunnelse.kt" @@ -1,10 +1,6 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser import com.fasterxml.jackson.annotation.JsonValue -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev import no.nav.familie.ba.sak.kjerne.brev.domene.SanityEØSBegrunnelse import no.nav.familie.ba.sak.kjerne.brev.domene.eøs.EØSBegrunnelseMedTriggere @@ -608,14 +604,6 @@ enum class EØSStandardbegrunnelse : IVedtakBegrunnelse { override val kanDelesOpp: Boolean = false - override fun delOpp( - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - triggesAv: TriggesAv, - periode: NullablePeriode, - ): List { - throw Feil("Begrunnelse $this kan ikke deles opp.") - } - @JsonValue override fun enumnavnTilString(): String = EØSStandardbegrunnelse::class.simpleName + "$" + this.name diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/IVedtakBegrunnelse.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/IVedtakBegrunnelse.kt index 471e1009827..7121f7760f9 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/IVedtakBegrunnelse.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/IVedtakBegrunnelse.kt @@ -7,21 +7,12 @@ import com.fasterxml.jackson.databind.node.ArrayNode import jakarta.persistence.AttributeConverter import jakarta.persistence.Converter import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev sealed interface IVedtakBegrunnelse { val sanityApiNavn: String val vedtakBegrunnelseType: VedtakBegrunnelseType val kanDelesOpp: Boolean - fun delOpp( - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - triggesAv: TriggesAv, - periode: NullablePeriode, - ): List - fun enumnavnTilString(): String companion object { diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/Standardbegrunnelse.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/Standardbegrunnelse.kt index ab4f9da8d86..5c059e58aa7 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/Standardbegrunnelse.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/Standardbegrunnelse.kt @@ -1,14 +1,6 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser import com.fasterxml.jackson.annotation.JsonValue -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.MinimertRestPerson -import no.nav.familie.ba.sak.kjerne.vedtak.domene.hentRelevanteEndringsperioderForBegrunnelse val hjemlerTilhørendeFritekst = setOf(2, 4, 11) @@ -1606,62 +1598,4 @@ enum class Standardbegrunnelse : IVedtakBegrunnelse { @JsonValue override fun enumnavnTilString(): String = Standardbegrunnelse::class.simpleName + "$" + this.name - - override fun delOpp( - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - triggesAv: TriggesAv, - periode: NullablePeriode, - ): List { - if (!this.kanDelesOpp) { - throw Feil("Begrunnelse $this kan ikke deles opp.") - } - return when (this) { - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_ENDRET_UTBETALING -> { - val deltBostedEndringsperioder = - this.hentRelevanteEndringsperioderForBegrunnelse( - minimerteRestEndredeAndeler = restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler, - vedtaksperiode = periode, - ) - .filter { it.årsak == Årsak.DELT_BOSTED } - .filter { endringsperiode -> - endringsperiodeGjelderBarn( - personerPåBehandling = restBehandlingsgrunnlagForBrev.personerPåBehandling, - personIdentFraEndringsperiode = endringsperiode.personIdent, - ) - } - val deltBostedEndringsperioderGruppertPåAvtaledato = - deltBostedEndringsperioder.groupBy { it.avtaletidspunktDeltBosted } - - deltBostedEndringsperioderGruppertPåAvtaledato.map { - BrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse = this, - vedtakBegrunnelseType = this.vedtakBegrunnelseType, - triggesAv = triggesAv, - personIdenter = it.value.map { endringsperiode -> endringsperiode.personIdent }, - avtaletidspunktDeltBosted = it.key, - ) - } - } - - else -> throw Feil("Oppdeling av begrunnelse $this er ikke støttet.") - } - } } - -private fun endringsperiodeGjelderBarn( - personerPåBehandling: List, - personIdentFraEndringsperiode: String, -) = personerPåBehandling.find { person -> person.personIdent == personIdentFraEndringsperiode }?.type == PersonType.BARN - -val endretUtbetalingsperiodeBegrunnelser: Set = - setOf( - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_INGEN_UTBETALING_NY, - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_FULL_UTBETALING_FØR_SOKNAD_NY, - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_KUN_ETTERBETALT_UTVIDET_NY, - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_MOTTATT_FULL_ORDINÆR_ETTERBETALT_UTVIDET_NY, - Standardbegrunnelse.ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_ENDRET_UTBETALING, - Standardbegrunnelse.ENDRET_UTBETALING_SEKUNDÆR_DELT_BOSTED_FULL_UTBETALING_FØR_SØKNAD, - Standardbegrunnelse.ENDRET_UTBETALING_ETTERBETALT_UTVIDET_DEL_FRA_AVTALETIDSPUNKT_SØKT_FOR_PRAKTISERT_DELT, - Standardbegrunnelse.ENDRET_UTBETALING_ALLEREDE_UTBETALT_FORELDRE_BOR_SAMMEN, - Standardbegrunnelse.ENDRET_UTBETALING_ETTERBETALING_UTVIDET_EØS, - ) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseUtils.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseUtils.kt index d8a4b7ec1aa..d355766dd04 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseUtils.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseUtils.kt @@ -1,115 +1,15 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.TIDENES_MORGEN import no.nav.familie.ba.sak.common.Utils -import no.nav.familie.ba.sak.common.erDagenFør -import no.nav.familie.ba.sak.common.sisteDagIInneværendeMåned import no.nav.familie.ba.sak.common.tilKortString import no.nav.familie.ba.sak.common.toYearMonth import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndreteUtbetalinger -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.beregning.fomErPåSatsendring -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertEndretAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.harPersonerSomManglerOpplysninger -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.kjerne.brev.hentPersonerForAlleUtgjørendeVilkår -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.MinimertPerson -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.harBarnMedSeksårsdagPåFom import no.nav.familie.ba.sak.kjerne.vedtak.domene.Vedtaksbegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår import java.time.LocalDate -fun Standardbegrunnelse.triggesForPeriode( - minimertVedtaksperiode: MinimertVedtaksperiode, - minimertePersonResultater: List, - minimertePersoner: List, - aktørIderMedUtbetaling: List, - minimerteEndredeUtbetalingAndeler: List = emptyList(), - sanityBegrunnelser: Map, - erFørsteVedtaksperiodePåFagsak: Boolean, - ytelserForSøkerForrigeMåned: List, - ytelserForrigePeriode: List, -): Boolean { - val triggesAv = sanityBegrunnelser[this]?.triggesAv ?: return false - - val aktuellePersoner = - minimertePersoner - .filter { person -> triggesAv.personTyper.contains(person.type) } - .filter { person -> - if (this.vedtakBegrunnelseType.erInnvilget()) { - aktørIderMedUtbetaling.contains(person.aktørId) || person.type == PersonType.SØKER - } else { - true - } - } - - val ytelseTyperForPeriode = minimertVedtaksperiode.ytelseTyperForPeriode - - fun hentPersonerForUtgjørendeVilkår() = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = minimertePersonResultater, - vedtaksperiode = - Periode( - fom = minimertVedtaksperiode.fom ?: TIDENES_MORGEN, - tom = minimertVedtaksperiode.tom ?: TIDENES_ENDE, - ), - oppdatertBegrunnelseType = this.vedtakBegrunnelseType, - aktuellePersonerForVedtaksperiode = aktuellePersoner.map { it.tilMinimertRestPerson() }, - triggesAv = triggesAv, - begrunnelse = this, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - ) - - return when { - !triggesAv.valgbar -> false - - triggesAv.vilkår.contains(Vilkår.UTVIDET_BARNETRYGD) && !triggesAv.erEndret() -> - this.vedtakBegrunnelseType.periodeErOppyltForYtelseType( - ytelseType = if (triggesAv.småbarnstillegg) YtelseType.SMÅBARNSTILLEGG else YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperForPeriode, - ytelserGjeldeneForSøkerForrigeMåned = ytelserForSøkerForrigeMåned, - ) || - when { - triggesAv.vilkår.any { it != Vilkår.UTVIDET_BARNETRYGD } -> hentPersonerForUtgjørendeVilkår().isNotEmpty() - else -> false - } - triggesAv.personerManglerOpplysninger -> minimertePersonResultater.harPersonerSomManglerOpplysninger() - triggesAv.barnMedSeksårsdag -> - minimertePersoner.harBarnMedSeksårsdagPåFom(minimertVedtaksperiode.fom) - triggesAv.satsendring -> fomErPåSatsendring(minimertVedtaksperiode.fom ?: TIDENES_MORGEN) - - triggesAv.etterEndretUtbetaling -> - erEtterEndretPeriodeAvSammeÅrsak( - minimerteEndredeUtbetalingAndeler, - minimertVedtaksperiode, - aktuellePersoner, - triggesAv, - ) - - triggesAv.erEndret() && !triggesAv.etterEndretUtbetaling -> - erEndretTriggerErOppfylt( - triggesAv = triggesAv, - minimerteEndredeUtbetalingAndeler = minimerteEndredeUtbetalingAndeler, - minimertVedtaksperiode = minimertVedtaksperiode, - ) - triggesAv.gjelderFraInnvilgelsestidspunkt -> false - triggesAv.barnDød -> - dødeBarnForrigePeriode( - ytelserForrigePeriode, - minimertePersoner.filter { it.type === PersonType.BARN }, - ).any() - else -> hentPersonerForUtgjørendeVilkår().isNotEmpty() - } -} - fun dødeBarnForrigePeriode( ytelserForrigePeriode: List, barnIBehandling: List, @@ -133,37 +33,6 @@ fun dødeBarnForrigePeriode( }.map { it.aktivPersonIdent } } -private fun erEndretTriggerErOppfylt( - triggesAv: TriggesAv, - minimerteEndredeUtbetalingAndeler: List, - minimertVedtaksperiode: MinimertVedtaksperiode, -): Boolean { - val endredeAndelerSomOverlapperVedtaksperiode = - minimertVedtaksperiode - .finnEndredeAndelerISammePeriode(minimerteEndredeUtbetalingAndeler) - - return endredeAndelerSomOverlapperVedtaksperiode.any { minimertEndretAndel -> - triggesAv.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = minimertEndretAndel, - minimerteUtbetalingsperiodeDetaljer = - minimertVedtaksperiode - .utbetalingsperioder.map { it.tilMinimertUtbetalingsperiodeDetalj() }, - ) - } -} - -private fun erEtterEndretPeriodeAvSammeÅrsak( - endretUtbetalingAndeler: List, - minimertVedtaksperiode: MinimertVedtaksperiode, - aktuellePersoner: List, - triggesAv: TriggesAv, -) = endretUtbetalingAndeler.any { endretUtbetalingAndel -> - endretUtbetalingAndel.månedPeriode().tom.sisteDagIInneværendeMåned() - .erDagenFør(minimertVedtaksperiode.fom) && - aktuellePersoner.any { person -> person.aktørId == endretUtbetalingAndel.aktørId } && - triggesAv.endringsaarsaker.contains(endretUtbetalingAndel.årsak) -} - fun List.tilBrevTekst(): String = Utils.slåSammen(this.sorted().map { it.tilKortString() }) fun Standardbegrunnelse.tilVedtaksbegrunnelse( @@ -185,30 +54,3 @@ fun Standardbegrunnelse.tilVedtaksbegrunnelse( standardbegrunnelse = this, ) } - -fun VedtakBegrunnelseType.periodeErOppyltForYtelseType( - ytelseType: YtelseType, - ytelseTyperForPeriode: Set, - ytelserGjeldeneForSøkerForrigeMåned: List, -): Boolean { - return when (this) { - VedtakBegrunnelseType.INNVILGET, VedtakBegrunnelseType.INSTITUSJON_INNVILGET -> - ytelseTyperForPeriode.contains( - ytelseType, - ) - - VedtakBegrunnelseType.REDUKSJON, VedtakBegrunnelseType.INSTITUSJON_REDUKSJON -> - !ytelseTyperForPeriode.contains( - ytelseType, - ) && - ytelseOppfyltForrigeMåned(ytelseType, ytelserGjeldeneForSøkerForrigeMåned) - - else -> false - } -} - -private fun ytelseOppfyltForrigeMåned( - ytelseType: YtelseType, - ytelserGjeldeneForSøkerForrigeMåned: List, -) = ytelserGjeldeneForSøkerForrigeMåned - .any { it == ytelseType } diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAv.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAv.kt index c5bdee3cff2..0d082d780ed 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAv.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAv.kt @@ -1,16 +1,10 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingsperiodeDeltBostedTriggere -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertEndretAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVilkårResultat import no.nav.familie.ba.sak.kjerne.brev.domene.Valgbarhet import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår -import java.math.BigDecimal data class TriggesAv( val vilkår: Set, @@ -31,121 +25,4 @@ data class TriggesAv( val gjelderFørstePeriode: Boolean, val gjelderFraInnvilgelsestidspunkt: Boolean, val barnDød: Boolean, -) { - fun erEndret() = endringsaarsaker.isNotEmpty() - - fun erUtdypendeVilkårsvurderingOppfylt( - vilkårResultat: MinimertVilkårResultat, - ): Boolean { - return erDeltBostedOppfylt(vilkårResultat) && - erSkjønnsmessigVurderingOppfylt(vilkårResultat) && - erMedlemskapOppfylt(vilkårResultat) && - erDeltBostedSkalIkkDelesOppfylt(vilkårResultat) - } - - fun erUtdypendeVilkårsvurderingOppfyltReduksjon( - vilkårSomAvsluttesRettFørDennePerioden: MinimertVilkårResultat, - vilkårSomStarterIDennePerioden: MinimertVilkårResultat?, - ): Boolean { - return erDeltBostedOppfyltReduksjon( - vilkårSomAvsluttesRettFørDennePerioden = vilkårSomAvsluttesRettFørDennePerioden, - vilkårSomStarterIDennePerioden = vilkårSomStarterIDennePerioden, - ) && - erSkjønnsmessigVurderingOppfylt(vilkårSomAvsluttesRettFørDennePerioden) && - erMedlemskapOppfylt(vilkårSomAvsluttesRettFørDennePerioden) && - erDeltBostedSkalIkkDelesOppfylt(vilkårSomAvsluttesRettFørDennePerioden) - } - - private fun erMedlemskapOppfylt(vilkårResultat: MinimertVilkårResultat): Boolean { - val vilkårResultatInneholderMedlemsskap = - vilkårResultat.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.VURDERT_MEDLEMSKAP) - - return this.medlemskap == vilkårResultatInneholderMedlemsskap - } - - private fun erSkjønnsmessigVurderingOppfylt(vilkårResultat: MinimertVilkårResultat): Boolean { - val vilkårResultatInneholderVurderingAnnetGrunnlag = - vilkårResultat.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.VURDERING_ANNET_GRUNNLAG) - - return this.vurderingAnnetGrunnlag == vilkårResultatInneholderVurderingAnnetGrunnlag - } - - private fun erDeltBostedSkalIkkDelesOppfylt(vilkårResultat: MinimertVilkårResultat): Boolean { - val vilkårResultatInnholderDeltBostedSkalIkkeDeles = - vilkårResultat.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED_SKAL_IKKE_DELES) - - return this.deltBostedSkalIkkeDeles == vilkårResultatInnholderDeltBostedSkalIkkeDeles - } - - private fun erDeltBostedOppfylt(vilkårResultat: MinimertVilkårResultat): Boolean { - val vilkårResultatInneholderDeltBosted = - vilkårResultat.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) - - return this.deltbosted == vilkårResultatInneholderDeltBosted - } - - private fun erDeltBostedOppfyltReduksjon( - vilkårSomAvsluttesRettFørDennePerioden: MinimertVilkårResultat, - vilkårSomStarterIDennePerioden: MinimertVilkårResultat?, - ): Boolean { - val avsluttetVilkårInneholdtDeltBosted = - vilkårSomAvsluttesRettFørDennePerioden.utdypendeVilkårsvurderinger.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) - - val påbegyntVilkårInneholderDeltBosted = - vilkårSomStarterIDennePerioden?.utdypendeVilkårsvurderinger - ?.contains(UtdypendeVilkårsvurdering.DELT_BOSTED) ?: false - - return if (this.deltbosted) { - avsluttetVilkårInneholdtDeltBosted != påbegyntVilkårInneholderDeltBosted - } else { - !avsluttetVilkårInneholdtDeltBosted && !påbegyntVilkårInneholderDeltBosted - } - } -} - -fun TriggesAv.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel: MinimertEndretAndel, - minimerteUtbetalingsperiodeDetaljer: List, -): Boolean { - val hørerTilEtterEndretUtbetaling = this.etterEndretUtbetaling - - val oppfyllerSkalUtbetalesTrigger = minimertEndretAndel.oppfyllerSkalUtbetalesTrigger(this) - - val oppfyllerUtvidetScenario = - this.endretUtbetalingSkalUtbetales == EndretUtbetalingsperiodeDeltBostedTriggere.UTBETALING_IKKE_RELEVANT || - endretUtbetalingBegrunnelseOppfyllerUtvidetScenario( - vilkårBegrunnelsenGjelderFor = this.vilkår, - minimerteUtbetalingsperiodeDetaljer = minimerteUtbetalingsperiodeDetaljer, - ) - - val erAvSammeÅrsak = this.endringsaarsaker.contains(minimertEndretAndel.årsak) - - return !hørerTilEtterEndretUtbetaling && - oppfyllerSkalUtbetalesTrigger && - oppfyllerUtvidetScenario && erAvSammeÅrsak -} - -fun MinimertEndretAndel.oppfyllerSkalUtbetalesTrigger( - triggesAv: TriggesAv, -): Boolean { - val inneholderAndelSomSkalUtbetales = this.prosent!! != BigDecimal.ZERO - return when (triggesAv.endretUtbetalingSkalUtbetales) { - EndretUtbetalingsperiodeDeltBostedTriggere.UTBETALING_IKKE_RELEVANT -> true - EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES -> inneholderAndelSomSkalUtbetales - EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES -> !inneholderAndelSomSkalUtbetales - } -} - -private fun endretUtbetalingBegrunnelseOppfyllerUtvidetScenario( - vilkårBegrunnelsenGjelderFor: Set?, - minimerteUtbetalingsperiodeDetaljer: List, -): Boolean { - val begrunnelseGjelderUtvidet = vilkårBegrunnelsenGjelderFor?.contains(Vilkår.UTVIDET_BARNETRYGD) ?: false - - val periodeInneholderUtvidetMedEndring = - minimerteUtbetalingsperiodeDetaljer.singleOrNull { - it.ytelseType == YtelseType.UTVIDET_BARNETRYGD - }?.erPåvirketAvEndring == true - - return begrunnelseGjelderUtvidet == periodeInneholderUtvidetMedEndring -} +) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/VedtakBegrunnelseType.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/VedtakBegrunnelseType.kt index b7fb2dea366..8fe23c2f680 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/VedtakBegrunnelseType.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/VedtakBegrunnelseType.kt @@ -1,12 +1,5 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser -import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.TIDENES_MORGEN -import no.nav.familie.ba.sak.common.forrigeMåned -import no.nav.familie.ba.sak.common.tilMånedÅr - enum class VedtakBegrunnelseType(val sorteringsrekkefølge: Int) { INNVILGET(2), EØS_INNVILGET(2), @@ -31,10 +24,6 @@ enum class VedtakBegrunnelseType(val sorteringsrekkefølge: Int) { return this == INNVILGET || this == INSTITUSJON_INNVILGET } - fun erFortsattInnvilget(): Boolean { - return this == FORTSATT_INNVILGET || this == INSTITUSJON_FORTSATT_INNVILGET - } - fun erReduksjon(): Boolean { return this == REDUKSJON || this == INSTITUSJON_REDUKSJON } @@ -42,28 +31,4 @@ enum class VedtakBegrunnelseType(val sorteringsrekkefølge: Int) { fun erAvslag(): Boolean { return this == AVSLAG || this == INSTITUSJON_AVSLAG || this == EØS_AVSLAG } - - fun erOpphør(): Boolean { - return this == OPPHØR || this == INSTITUSJON_OPPHØR - } } - -fun VedtakBegrunnelseType.hentMånedOgÅrForBegrunnelse(periode: Periode) = - when (this) { - VedtakBegrunnelseType.AVSLAG, VedtakBegrunnelseType.INSTITUSJON_AVSLAG -> { - val fomTekst = periode.fom.forrigeMåned().tilMånedÅr() - - if (periode.fom == TIDENES_MORGEN && periode.tom == TIDENES_ENDE) { - "" - } else { - fomTekst - } - } - - else -> - if (periode.fom == TIDENES_MORGEN) { - throw Feil("Prøver å finne fom-dato for begrunnelse, men fikk \"TIDENES_MORGEN\".") - } else { - periode.fom.forrigeMåned().tilMånedÅr() - } - } diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/domene/MinimertVedtaksperiode.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/domene/MinimertVedtaksperiode.kt deleted file mode 100644 index 42841b41eb0..00000000000 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/domene/MinimertVedtaksperiode.kt +++ /dev/null @@ -1,39 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene - -import no.nav.familie.ba.sak.common.NullableMånedPeriode -import no.nav.familie.ba.sak.common.toYearMonth -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertEndretAndel -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.UtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.UtvidetVedtaksperiodeMedBegrunnelser -import java.time.LocalDate - -class MinimertVedtaksperiode( - val fom: LocalDate?, - val tom: LocalDate?, - val ytelseTyperForPeriode: Set, - val type: Vedtaksperiodetype, - val utbetalingsperioder: List, -) { - fun finnEndredeAndelerISammePeriode( - endretUtbetalingAndeler: List, - ) = endretUtbetalingAndeler.filter { - it.erOverlappendeMed( - NullableMånedPeriode( - this.fom?.toYearMonth(), - this.tom?.toYearMonth(), - ), - ) - } -} - -fun UtvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(): MinimertVedtaksperiode { - return MinimertVedtaksperiode( - fom = this.fom, - tom = this.tom, - ytelseTyperForPeriode = this.utbetalingsperiodeDetaljer.map { it.ytelseType }.toSet(), - type = this.type, - utbetalingsperioder = this.utbetalingsperiodeDetaljer, - ) -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/MinimertRestPerson.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/MinimertRestPerson.kt index bd3d7fb842d..8af2ec2f2ea 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/MinimertRestPerson.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/MinimertRestPerson.kt @@ -1,15 +1,7 @@ package no.nav.familie.ba.sak.kjerne.vedtak.domene import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.toYearMonth import no.nav.familie.ba.sak.ekstern.restDomene.RestPerson -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevPeriodePersonForLogging -import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingAndelPåPersonForLogging -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.UtbetalingPåPersonForLogging -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Person import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType import java.time.LocalDate @@ -21,9 +13,7 @@ data class MinimertRestPerson( val personIdent: String, val fødselsdato: LocalDate, val type: PersonType, -) { - fun hentSeksårsdag(): LocalDate = fødselsdato.plusYears(6) -} +) fun RestPerson.tilMinimertPerson() = MinimertRestPerson( @@ -31,60 +21,3 @@ fun RestPerson.tilMinimertPerson() = fødselsdato = fødselsdato ?: throw Feil("Fødselsdato mangler"), type = this.type, ) - -fun List.barnMedSeksårsdagPåFom(fom: LocalDate?): List { - return this - .filter { it.type == PersonType.BARN } - .filter { person -> - person.hentSeksårsdag().toYearMonth() == ( - fom?.toYearMonth() - ?: TIDENES_ENDE.toYearMonth() - ) - } -} - -fun Person.tilMinimertPerson() = - MinimertRestPerson( - personIdent = this.aktør.aktivFødselsnummer(), - fødselsdato = this.fødselsdato, - type = this.type, - ) - -fun MinimertRestPerson.tilBrevPeriodeTestPerson( - brevPeriodeGrunnlag: MinimertVedtaksperiode, - restBehandlingsgrunnlagForBrev: RestBehandlingsgrunnlagForBrev, - barnMedReduksjonFraForrigeBehandlingIdent: List, -): BrevPeriodePersonForLogging { - val minimertePersonResultater = - restBehandlingsgrunnlagForBrev.minimertePersonResultater.firstOrNull { it.personIdent == this.personIdent }!! - val minimerteEndretUtbetalingAndelPåPerson = - restBehandlingsgrunnlagForBrev.minimerteEndredeUtbetalingAndeler.filter { it.personIdent == this.personIdent } - val minimerteUtbetalingsperiodeDetaljer = - brevPeriodeGrunnlag.minimerteUtbetalingsperiodeDetaljer.filter { - it.person.personIdent == this.personIdent - } - - return BrevPeriodePersonForLogging( - fødselsdato = this.fødselsdato, - type = this.type, - overstyrteVilkårresultater = minimertePersonResultater.minimerteVilkårResultater, - andreVurderinger = minimertePersonResultater.minimerteAndreVurderinger, - endredeUtbetalinger = - minimerteEndretUtbetalingAndelPåPerson.map { - EndretUtbetalingAndelPåPersonForLogging( - periode = it.periode, - årsak = it.årsak, - ) - }, - utbetalinger = - minimerteUtbetalingsperiodeDetaljer.map { - UtbetalingPåPersonForLogging( - it.ytelseType, - it.utbetaltPerMnd, - it.erPåvirketAvEndring, - it.prosent, - ) - }, - harReduksjonFraForrigeBehandling = barnMedReduksjonFraForrigeBehandlingIdent.contains(this.personIdent), - ) -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/Vedtaksbegrunnelse.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/Vedtaksbegrunnelse.kt index 73105b41d95..e7f4ba50d77 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/Vedtaksbegrunnelse.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/Vedtaksbegrunnelse.kt @@ -14,32 +14,16 @@ import jakarta.persistence.ManyToOne import jakarta.persistence.SequenceGenerator import jakarta.persistence.Table import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.Utils import no.nav.familie.ba.sak.common.erDagenFør import no.nav.familie.ba.sak.common.førsteDagIInneværendeMåned import no.nav.familie.ba.sak.common.sisteDagIInneværendeMåned -import no.nav.familie.ba.sak.common.tilKortString -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestEndretAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.kjerne.brev.domene.beløpUtbetaltFor -import no.nav.familie.ba.sak.kjerne.brev.domene.totaltUtbetalt import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.KompetanseAktivitet -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.erAvslagUregistrerteBarnBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.hentMånedOgÅrForBegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.tilBrevTekst import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.RestVedtaksbegrunnelse import no.nav.familie.ba.sak.sikkerhet.RollestyringMotDatabase -import java.time.LocalDate @EntityListeners(RollestyringMotDatabase::class) @Entity(name = "Vedtaksbegrunnelse") @@ -164,113 +148,6 @@ data class EØSBegrunnelseDataUtenKompetanse( override val type: Begrunnelsetype = Begrunnelsetype.EØS_BEGRUNNELSE } -fun BrevBegrunnelseGrunnlagMedPersoner.tilBrevBegrunnelse( - vedtaksperiode: NullablePeriode, - personerIPersongrunnlag: List, - brevMålform: Målform, - uregistrerteBarn: List, - minimerteUtbetalingsperiodeDetaljer: List, - minimerteRestEndredeAndeler: List, -): BrevBegrunnelse { - val personerPåBegrunnelse = - personerIPersongrunnlag.filter { person -> this.personIdenter.contains(person.personIdent) } - - val barnSomOppfyllerTriggereOgHarUtbetaling = - personerPåBegrunnelse.filter { person -> - person.type == PersonType.BARN && minimerteUtbetalingsperiodeDetaljer.any { it.utbetaltPerMnd > 0 && it.person.personIdent == person.personIdent } - } - val barnSomOppfyllerTriggereOgHarNullutbetaling = - personerPåBegrunnelse.filter { person -> - person.type == PersonType.BARN && minimerteUtbetalingsperiodeDetaljer.any { it.utbetaltPerMnd == 0 && it.person.personIdent == person.personIdent } - } - - val gjelderSøker = personerPåBegrunnelse.any { it.type == PersonType.SØKER } - - val barnasFødselsdatoer = - this.hentBarnasFødselsdagerForBegrunnelse( - uregistrerteBarn = uregistrerteBarn, - personerIBehandling = personerIPersongrunnlag, - personerPåBegrunnelse = personerPåBegrunnelse, - personerMedUtbetaling = minimerteUtbetalingsperiodeDetaljer.map { it.person }, - gjelderSøker = gjelderSøker, - ) - - val antallBarn = - this.hentAntallBarnForBegrunnelse( - uregistrerteBarn = uregistrerteBarn, - gjelderSøker = gjelderSøker, - barnasFødselsdatoer = barnasFødselsdatoer, - ) - - val månedOgÅrBegrunnelsenGjelderFor = - if (vedtaksperiode.fom == null) { - null - } else { - this.vedtakBegrunnelseType.hentMånedOgÅrForBegrunnelse( - periode = - Periode( - fom = vedtaksperiode.fom, - tom = vedtaksperiode.tom ?: TIDENES_ENDE, - ), - ) - } - - val beløp = this.hentBeløp(gjelderSøker, minimerteUtbetalingsperiodeDetaljer) - - val endringsperioder = - this.standardbegrunnelse.hentRelevanteEndringsperioderForBegrunnelse( - minimerteRestEndredeAndeler = minimerteRestEndredeAndeler, - vedtaksperiode = vedtaksperiode, - ) - - val søknadstidspunkt = - endringsperioder.sortedBy { it.søknadstidspunkt } - .firstOrNull { this.triggesAv.endringsaarsaker.contains(it.årsak) }?.søknadstidspunkt - - val søkersRettTilUtvidet = - finnUtOmSøkerFårUtbetaltEllerHarRettPåUtvidet(minimerteUtbetalingsperiodeDetaljer = minimerteUtbetalingsperiodeDetaljer) - - this.validerBrevbegrunnelse( - gjelderSøker = gjelderSøker, - barnasFødselsdatoer = barnasFødselsdatoer, - ) - - return BegrunnelseData( - gjelderSoker = gjelderSøker, - barnasFodselsdatoer = barnasFødselsdatoer.tilBrevTekst(), - fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling = - barnSomOppfyllerTriggereOgHarUtbetaling.map { it.fødselsdato } - .tilBrevTekst(), - fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling = - barnSomOppfyllerTriggereOgHarNullutbetaling.map { it.fødselsdato } - .tilBrevTekst(), - antallBarn = antallBarn, - antallBarnOppfyllerTriggereOgHarUtbetaling = barnSomOppfyllerTriggereOgHarUtbetaling.size, - antallBarnOppfyllerTriggereOgHarNullutbetaling = barnSomOppfyllerTriggereOgHarNullutbetaling.size, - maanedOgAarBegrunnelsenGjelderFor = månedOgÅrBegrunnelsenGjelderFor, - maalform = brevMålform.tilSanityFormat(), - apiNavn = this.standardbegrunnelse.sanityApiNavn, - belop = Utils.formaterBeløp(beløp), - soknadstidspunkt = søknadstidspunkt?.tilKortString() ?: "", - avtaletidspunktDeltBosted = this.avtaletidspunktDeltBosted?.tilKortString() ?: "", - sokersRettTilUtvidet = søkersRettTilUtvidet.tilSanityFormat(), - vedtakBegrunnelseType = this.vedtakBegrunnelseType, - ) -} - -private fun finnUtOmSøkerFårUtbetaltEllerHarRettPåUtvidet(minimerteUtbetalingsperiodeDetaljer: List): SøkersRettTilUtvidet { - val utvidetUtbetalingsdetaljerPåSøker = - minimerteUtbetalingsperiodeDetaljer.filter { it.person.type == PersonType.SØKER && it.ytelseType == YtelseType.UTVIDET_BARNETRYGD } - - return when { - utvidetUtbetalingsdetaljerPåSøker.any { it.utbetaltPerMnd > 0 } -> SøkersRettTilUtvidet.SØKER_FÅR_UTVIDET - utvidetUtbetalingsdetaljerPåSøker.isNotEmpty() && - utvidetUtbetalingsdetaljerPåSøker.all { it.utbetaltPerMnd == 0 } -> SøkersRettTilUtvidet.SØKER_HAR_RETT_MEN_FÅR_IKKE - - else -> SøkersRettTilUtvidet.SØKER_HAR_IKKE_RETT - } -} - enum class SøkersRettTilUtvidet { SØKER_FÅR_UTVIDET, SØKER_HAR_RETT_MEN_FÅR_IKKE, @@ -302,29 +179,3 @@ fun IVedtakBegrunnelse.hentRelevanteEndringsperioderForBegrunnelse( else -> emptyList() } - -private fun BrevBegrunnelseGrunnlagMedPersoner.validerBrevbegrunnelse( - gjelderSøker: Boolean, - barnasFødselsdatoer: List, -) { - if (!gjelderSøker && barnasFødselsdatoer.isEmpty() && - !this.triggesAv.satsendring && !this.standardbegrunnelse.erAvslagUregistrerteBarnBegrunnelse() - ) { - throw IllegalStateException("Ingen personer på brevbegrunnelse") - } -} - -private fun BrevBegrunnelseGrunnlagMedPersoner.hentBeløp( - gjelderSøker: Boolean, - minimerteUtbetalingsperiodeDetaljer: List, -) = if (gjelderSøker) { - if (this.vedtakBegrunnelseType.erAvslag() || - this.vedtakBegrunnelseType.erOpphør() - ) { - 0 - } else { - minimerteUtbetalingsperiodeDetaljer.totaltUtbetalt() - } -} else { - minimerteUtbetalingsperiodeDetaljer.beløpUtbetaltFor(this.personIdenter) -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeMedBegrunnelserController.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeMedBegrunnelserController.kt index f5899bc526b..4e337476bca 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeMedBegrunnelserController.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeMedBegrunnelserController.kt @@ -1,8 +1,6 @@ package no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode import no.nav.familie.ba.sak.config.AuditLoggerEvent -import no.nav.familie.ba.sak.config.FeatureToggleConfig.Companion.NY_GENERERING_AV_BREVOBJEKTER -import no.nav.familie.ba.sak.config.featureToggle.UnleashNextMedContextService import no.nav.familie.ba.sak.ekstern.restDomene.RestGenererVedtaksperioderForOverstyrtEndringstidspunkt import no.nav.familie.ba.sak.ekstern.restDomene.RestPutVedtaksperiodeMedFritekster import no.nav.familie.ba.sak.ekstern.restDomene.RestPutVedtaksperiodeMedStandardbegrunnelser @@ -10,7 +8,6 @@ import no.nav.familie.ba.sak.ekstern.restDomene.RestUtvidetBehandling import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.kjerne.behandling.UtvidetBehandlingService import no.nav.familie.ba.sak.kjerne.brev.BrevKlient -import no.nav.familie.ba.sak.kjerne.brev.BrevPeriodeService import no.nav.familie.ba.sak.kjerne.brev.brevPeriodeProdusent.hentBegrunnelser import no.nav.familie.ba.sak.kjerne.steg.BehandlerRolle import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.EØSStandardbegrunnelse @@ -41,10 +38,8 @@ class VedtaksperiodeMedBegrunnelserController( private val tilgangService: TilgangService, private val brevKlient: BrevKlient, private val utvidetBehandlingService: UtvidetBehandlingService, - private val brevPeriodeService: BrevPeriodeService, private val vedtaksperiodeHentOgPersisterService: VedtaksperiodeHentOgPersisterService, private val integrasjonClient: IntegrasjonClient, - private val unleashService: UnleashNextMedContextService, ) { @PutMapping("/standardbegrunnelser/{vedtaksperiodeId}") fun oppdaterVedtaksperiodeStandardbegrunnelser( @@ -144,19 +139,15 @@ class VedtaksperiodeMedBegrunnelserController( val vedtaksperiode = vedtaksperiodeHentOgPersisterService.hentVedtaksperiodeThrows(vedtaksperiodeId) + val grunnlagForBegrunnelser = vedtaksperiodeService.hentGrunnlagForBegrunnelse(behandlingId) + val begrunnelsesGrunnlagPerPerson = vedtaksperiode.finnBegrunnelseGrunnlagPerPerson(grunnlagForBegrunnelser) + val brevBegrunnelser = - if (unleashService.isEnabled(NY_GENERERING_AV_BREVOBJEKTER, behandlingId)) { - val grunnlagForBegrunnelser = vedtaksperiodeService.hentGrunnlagForBegrunnelse(behandlingId) - val begrunnelsesGrunnlagPerPerson = vedtaksperiode.finnBegrunnelseGrunnlagPerPerson(grunnlagForBegrunnelser) - - vedtaksperiode.hentBegrunnelser( - grunnlagForBegrunnelse = grunnlagForBegrunnelser, - begrunnelsesGrunnlagPerPerson = begrunnelsesGrunnlagPerPerson, - landkoder = integrasjonClient.hentLandkoderISO2(), - ) - } else { - brevPeriodeService.genererBrevBegrunnelserForPeriode(vedtaksperiodeId) - } + vedtaksperiode.hentBegrunnelser( + grunnlagForBegrunnelse = grunnlagForBegrunnelser, + begrunnelsesGrunnlagPerPerson = begrunnelsesGrunnlagPerPerson, + landkoder = integrasjonClient.hentLandkoderISO2(), + ) val begrunnelser = brevBegrunnelser.map { diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeUtil.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeUtil.kt index f4bd214f95b..63937523d4d 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeUtil.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeUtil.kt @@ -8,21 +8,11 @@ import no.nav.familie.ba.sak.common.toYearMonth import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandlingsresultat import no.nav.familie.ba.sak.kjerne.beregning.SatsService import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndreteUtbetalinger -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType import no.nav.familie.ba.sak.kjerne.beregning.domene.lagVertikaleSegmenter -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertEndretAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag import no.nav.familie.ba.sak.kjerne.personident.Aktør import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.kombinerMed import no.nav.familie.ba.sak.kjerne.vedtak.Vedtak -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.MinimertPerson -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.endretUtbetalingsperiodeBegrunnelser -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.triggesForPeriode import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser import no.nav.familie.ba.sak.kjerne.vedtak.domene.hentUtbetalingsperiodeDetaljer import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.UtvidetVedtaksperiodeMedBegrunnelser @@ -175,151 +165,6 @@ private fun utledTom( overlappendePeriode: LocalDateSegment, ) = if (gammeltSegment.tom > overlappendePeriode.tom) overlappendePeriode.tom else gammeltSegment.tom -fun hentGyldigeBegrunnelserForVedtaksperiodeMinimert( - minimertVedtaksperiode: MinimertVedtaksperiode, - sanityBegrunnelser: Map, - minimertePersoner: List, - minimertePersonresultater: List, - aktørIderMedUtbetaling: List, - minimerteEndredeUtbetalingAndeler: List, - erFørsteVedtaksperiodePåFagsak: Boolean, - ytelserForSøkerForrigeMåned: List, - ytelserForrigePerioder: List, -): List { - val tillateBegrunnelserForVedtakstype = - Standardbegrunnelse.entries - .filter { - minimertVedtaksperiode.type.tillatteBegrunnelsestyper.contains(it.vedtakBegrunnelseType) - }.filter { - if (it.vedtakBegrunnelseType == VedtakBegrunnelseType.ENDRET_UTBETALING) { - endretUtbetalingsperiodeBegrunnelser.contains(it) - } else { - true - } - } - - return when (minimertVedtaksperiode.type) { - Vedtaksperiodetype.FORTSATT_INNVILGET, - Vedtaksperiodetype.AVSLAG, - -> tillateBegrunnelserForVedtakstype - - Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING -> - velgRedusertBegrunnelser( - tillateBegrunnelserForVedtakstype, - sanityBegrunnelser, - minimertVedtaksperiode, - minimertePersonresultater, - minimertePersoner, - aktørIderMedUtbetaling, - minimerteEndredeUtbetalingAndeler, - erFørsteVedtaksperiodePåFagsak, - ytelserForSøkerForrigeMåned, - ytelserForrigePerioder, - ) - - else -> { - velgUtbetalingsbegrunnelser( - tillateBegrunnelserForVedtakstype, - sanityBegrunnelser, - minimertVedtaksperiode, - minimertePersonresultater, - minimertePersoner, - aktørIderMedUtbetaling, - minimerteEndredeUtbetalingAndeler, - erFørsteVedtaksperiodePåFagsak, - ytelserForSøkerForrigeMåned, - ytelserForrigePerioder, - ) - } - } -} - -private fun velgRedusertBegrunnelser( - tillateBegrunnelserForVedtakstype: List, - sanityBegrunnelser: Map, - minimertVedtaksperiode: MinimertVedtaksperiode, - minimertePersonresultater: List, - minimertePersoner: List, - aktørIderMedUtbetaling: List, - minimerteEndredeUtbetalingAndeler: List, - erFørsteVedtaksperiodePåFagsak: Boolean, - ytelserForSøkerForrigeMåned: List, - ytelserForrigePeriode: List, -): List { - val redusertBegrunnelser = - tillateBegrunnelserForVedtakstype.filter { - sanityBegrunnelser[it]?.triggesAv?.gjelderFraInnvilgelsestidspunkt ?: false - } - if (minimertVedtaksperiode.utbetalingsperioder.any { it.utbetaltPerMnd > 0 }) { - val utbetalingsbegrunnelser = - velgUtbetalingsbegrunnelser( - Standardbegrunnelse.entries, - sanityBegrunnelser, - minimertVedtaksperiode, - minimertePersonresultater, - minimertePersoner, - aktørIderMedUtbetaling, - minimerteEndredeUtbetalingAndeler, - erFørsteVedtaksperiodePåFagsak, - ytelserForSøkerForrigeMåned, - ytelserForrigePeriode, - ) - return redusertBegrunnelser + utbetalingsbegrunnelser - } - return redusertBegrunnelser -} - -private fun velgUtbetalingsbegrunnelser( - tillateBegrunnelserForVedtakstype: List, - sanityBegrunnelser: Map, - minimertVedtaksperiode: MinimertVedtaksperiode, - minimertePersonresultater: List, - minimertePersoner: List, - aktørIderMedUtbetaling: List, - minimerteEndredeUtbetalingAndeler: List, - erFørsteVedtaksperiodePåFagsak: Boolean, - ytelserForSøkerForrigeMåned: List, - ytelserForrigePeriode: List, -): List { - val standardbegrunnelser: MutableSet = - tillateBegrunnelserForVedtakstype.filter { !it.vedtakBegrunnelseType.erFortsattInnvilget() } - .filter { sanityBegrunnelser[it]?.triggesAv?.valgbar ?: false } - .fold(mutableSetOf()) { acc, standardBegrunnelse -> - if (standardBegrunnelse.triggesForPeriode( - minimertVedtaksperiode = minimertVedtaksperiode, - minimertePersonResultater = minimertePersonresultater, - minimertePersoner = minimertePersoner, - aktørIderMedUtbetaling = aktørIderMedUtbetaling, - minimerteEndredeUtbetalingAndeler = minimerteEndredeUtbetalingAndeler, - sanityBegrunnelser = sanityBegrunnelser, - erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak, - ytelserForSøkerForrigeMåned = ytelserForSøkerForrigeMåned, - ytelserForrigePeriode = ytelserForrigePeriode, - ) - ) { - acc.add(standardBegrunnelse) - } - - acc - } - - val fantIngenbegrunnelserOgSkalDerforBrukeFortsattInnvilget = - minimertVedtaksperiode.type == Vedtaksperiodetype.UTBETALING && standardbegrunnelser.isEmpty() - - return if (fantIngenbegrunnelserOgSkalDerforBrukeFortsattInnvilget) { - tillateBegrunnelserForVedtakstype.filter { it.vedtakBegrunnelseType.erFortsattInnvilget() } - } else { - standardbegrunnelser.toList() - } -} - -fun hentYtelserForSøkerForrigeMåned( - andelerTilkjentYtelse: List, - utvidetVedtaksperiodeMedBegrunnelser: UtvidetVedtaksperiodeMedBegrunnelser, -) = andelerTilkjentYtelse.filter { - it.type.erKnyttetTilSøker() && ytelseErFraForrigePeriode(it, utvidetVedtaksperiodeMedBegrunnelser) -}.map { it.type } - fun ytelseErFraForrigePeriode( ytelse: AndelTilkjentYtelseMedEndreteUtbetalinger, utvidetVedtaksperiodeMedBegrunnelser: UtvidetVedtaksperiodeMedBegrunnelser, diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt index a6395a2f011..8611211f2dd 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt @@ -82,7 +82,6 @@ import no.nav.familie.ba.sak.kjerne.vedtak.VedtakService import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.BarnetsBostedsland import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.IVedtakBegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.EØSBegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.domene.Vedtaksbegrunnelse @@ -1044,6 +1043,7 @@ fun lagVedtaksperiodeMedBegrunnelser( tom: LocalDate? = LocalDate.now().let { it.withDayOfMonth(it.lengthOfMonth()) }, type: Vedtaksperiodetype = Vedtaksperiodetype.FORTSATT_INNVILGET, begrunnelser: MutableSet = mutableSetOf(lagVedtaksbegrunnelse()), + eøsBegrunnelser: MutableSet = mutableSetOf(), fritekster: MutableList = mutableListOf(), ) = VedtaksperiodeMedBegrunnelser( vedtak = vedtak, @@ -1052,6 +1052,7 @@ fun lagVedtaksperiodeMedBegrunnelser( type = type, begrunnelser = begrunnelser, fritekster = fritekster, + eøsBegrunnelser = eøsBegrunnelser, ) fun lagUtvidetVedtaksperiodeMedBegrunnelser( @@ -1162,7 +1163,6 @@ fun lagEndretUtbetalingAndel( årsak: Årsak = Årsak.DELT_BOSTED, avtaletidspunktDeltBosted: LocalDate = LocalDate.now().minusMonths(1), søknadstidspunkt: LocalDate = LocalDate.now().minusMonths(1), - standardbegrunnelser: List = emptyList(), ) = EndretUtbetalingAndel( id = id, @@ -1360,43 +1360,6 @@ fun lagSanityEøsBegrunnelse( valgbarhet = valgbarhet, ) -fun lagTriggesAv( - vilkår: Set = emptySet(), - personTyper: Set = setOf(PersonType.BARN, PersonType.SØKER), - personerManglerOpplysninger: Boolean = false, - satsendring: Boolean = false, - barnMedSeksårsdag: Boolean = false, - vurderingAnnetGrunnlag: Boolean = false, - medlemskap: Boolean = false, - deltbosted: Boolean = false, - valgbar: Boolean = true, - valgbarhet: Valgbarhet? = null, - endringsaarsaker: Set<Årsak> = emptySet(), - etterEndretUtbetaling: Boolean = false, - endretUtbetalingSkalUtbetales: EndretUtbetalingsperiodeDeltBostedTriggere = EndretUtbetalingsperiodeDeltBostedTriggere.UTBETALING_IKKE_RELEVANT, - småbarnstillegg: Boolean = false, -): TriggesAv = - TriggesAv( - vilkår = vilkår, - personTyper = personTyper, - personerManglerOpplysninger = personerManglerOpplysninger, - satsendring = satsendring, - barnMedSeksårsdag = barnMedSeksårsdag, - vurderingAnnetGrunnlag = vurderingAnnetGrunnlag, - medlemskap = medlemskap, - deltbosted = deltbosted, - valgbar = valgbar, - endringsaarsaker = endringsaarsaker, - etterEndretUtbetaling = etterEndretUtbetaling, - endretUtbetalingSkalUtbetales = endretUtbetalingSkalUtbetales, - småbarnstillegg = småbarnstillegg, - barnDød = false, - deltBostedSkalIkkeDeles = false, - gjelderFraInnvilgelsestidspunkt = false, - gjelderFørstePeriode = false, - valgbarhet = valgbarhet, - ) - fun oppfyltVilkår( vilkår: Vilkår, regelverk: Regelverk? = null, diff --git "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/behandling/Kj\303\270rRevurdering.kt" "b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/behandling/Kj\303\270rRevurdering.kt" index efdabe98eaf..075ecdc7ffa 100644 --- "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/behandling/Kj\303\270rRevurdering.kt" +++ "b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/behandling/Kj\303\270rRevurdering.kt" @@ -1,8 +1,6 @@ package no.nav.familie.ba.sak.datagenerator.behandling import no.nav.familie.ba.sak.common.lagSøknadDTO -import no.nav.familie.ba.sak.config.FeatureToggleConfig.Companion.NY_GENERERING_AV_BREVOBJEKTER -import no.nav.familie.ba.sak.config.testSanityKlient import no.nav.familie.ba.sak.ekstern.restDomene.RestRegistrerSøknad import no.nav.familie.ba.sak.ekstern.restDomene.RestTilbakekreving import no.nav.familie.ba.sak.kjerne.behandling.NyBehandling @@ -12,19 +10,10 @@ import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingUnderkategori import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandlingsresultat import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndreteUtbetalinger -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelerTilkjentYtelseOgEndreteUtbetalingerService import no.nav.familie.ba.sak.kjerne.brev.BrevmalService -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertEndretUtbetalingAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertPersonResultat -import no.nav.familie.ba.sak.kjerne.endretutbetaling.EndretUtbetalingAndelHentOgPersisterService -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.EndretUtbetalingAndel import no.nav.familie.ba.sak.kjerne.fagsak.Beslutning import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService import no.nav.familie.ba.sak.kjerne.fagsak.RestBeslutningPåVedtak -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag import no.nav.familie.ba.sak.kjerne.steg.StatusFraOppdragMedTask import no.nav.familie.ba.sak.kjerne.steg.StegService import no.nav.familie.ba.sak.kjerne.steg.StegType @@ -32,15 +21,8 @@ import no.nav.familie.ba.sak.kjerne.steg.domene.JournalførVedtaksbrevDTO import no.nav.familie.ba.sak.kjerne.vedtak.VedtakService import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.EØSStandardbegrunnelse import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.tilMinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.tilMinimertePersoner import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.VedtaksperiodeService -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.domene.tilUtvidetVedtaksperiodeMedBegrunnelser -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.erFørsteVedtaksperiodePåFagsak -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.hentGyldigeBegrunnelserForVedtaksperiodeMinimert -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.hentYtelserForSøkerForrigeMåned import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.vedtakBegrunnelseProdusent.hentGyldigeBegrunnelserPerPerson -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.ytelseErFraForrigePeriode import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkårsvurdering import no.nav.familie.ba.sak.task.DistribuerDokumentDTO @@ -51,7 +33,6 @@ import no.nav.familie.ba.sak.task.dto.IverksettingTaskDTO import no.nav.familie.ba.sak.task.dto.StatusFraOppdragDTO import no.nav.familie.kontrakter.felles.tilbakekreving.Tilbakekrevingsvalg import no.nav.familie.prosessering.domene.Task -import no.nav.familie.unleash.UnleashService import java.time.LocalDate import java.util.Properties @@ -67,12 +48,8 @@ fun kjørStegprosessForBehandling( vilkårsvurderingService: VilkårsvurderingService, stegService: StegService, vedtaksperiodeService: VedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService: EndretUtbetalingAndelHentOgPersisterService, fagsakService: FagsakService, - persongrunnlagService: PersongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService: BrevmalService, - unleashService: UnleashService, ): Behandling { val fagsak = fagsakService.hentEllerOpprettFagsakForPersonIdent(søkerFnr) @@ -122,12 +99,6 @@ fun kjørStegprosessForBehandling( vedtakService = vedtakService, vedtaksperiodeService = vedtaksperiodeService, stegService = stegService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, - sanityBegrunnelser = testSanityKlient.hentBegrunnelserMap(), - vilkårsvurdering = vilkårsvurderingService.hentAktivForBehandling(behandlingEtterSimuleringSteg.id)!!, - unleashService = unleashService, ) if (tilSteg == StegType.SEND_TIL_BESLUTTER) return behandlingEtterSendTilBeslutter @@ -183,34 +154,11 @@ private fun håndterSendtTilBeslutterSteg( vedtakService: VedtakService, vedtaksperiodeService: VedtaksperiodeService, stegService: StegService, - persongrunnlagService: PersongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, - endretUtbetalingAndelHentOgPersisterService: EndretUtbetalingAndelHentOgPersisterService, - sanityBegrunnelser: Map, - vilkårsvurdering: Vilkårsvurdering, - unleashService: UnleashService, ): Behandling { - val andelerTilkjentYtelse = - andelerTilkjentYtelseOgEndreteUtbetalingerService - .finnAndelerTilkjentYtelseMedEndreteUtbetalinger(behandlingId = behandlingEtterSimuleringSteg.id) - - val persongrunnlag = - persongrunnlagService.hentAktivThrows(behandlingEtterSimuleringSteg.id) - - val endredeUtbetalingAndeler = - endretUtbetalingAndelHentOgPersisterService.hentForBehandling( - behandlingEtterSimuleringSteg.id, - ) leggTilAlleGyldigeBegrunnelserPåVedtaksperiodeIBehandling( behandling = behandlingEtterSimuleringSteg, vedtakService = vedtakService, vedtaksperiodeService = vedtaksperiodeService, - personopplysningGrunnlag = persongrunnlag, - andelerTilkjentYtelse = andelerTilkjentYtelse, - endredeUtbetalingAndeler = endredeUtbetalingAndeler, - sanityBegrunnelser = sanityBegrunnelser, - vilkårsvurdering = vilkårsvurdering, - unleashService = unleashService, ) val behandlingEtterSendTilBeslutter = stegService.håndterSendTilBeslutter(behandlingEtterSimuleringSteg, "1234") return behandlingEtterSendTilBeslutter @@ -359,12 +307,6 @@ fun leggTilAlleGyldigeBegrunnelserPåVedtaksperiodeIBehandling( behandling: Behandling, vedtakService: VedtakService, vedtaksperiodeService: VedtaksperiodeService, - personopplysningGrunnlag: PersonopplysningGrunnlag, - andelerTilkjentYtelse: List, - endredeUtbetalingAndeler: List, - sanityBegrunnelser: Map, - vilkårsvurdering: Vilkårsvurdering, - unleashService: UnleashService, ) { val aktivtVedtak = vedtakService.hentAktivForBehandling(behandling.id)!! @@ -373,66 +315,13 @@ fun leggTilAlleGyldigeBegrunnelserPåVedtaksperiodeIBehandling( val vedtaksperiode = perisisterteVedtaksperioder.first() - if (unleashService.isEnabled(NY_GENERERING_AV_BREVOBJEKTER)) { - val grunnlagForBegrunnelse = vedtaksperiodeService.hentGrunnlagForBegrunnelse(behandling) - val begrunnelserPerPerson = - vedtaksperiode.hentGyldigeBegrunnelserPerPerson(grunnlagForBegrunnelse).values.flatten() - - vedtaksperiodeService.oppdaterVedtaksperiodeMedStandardbegrunnelser( - vedtaksperiodeId = vedtaksperiode.id, - standardbegrunnelserFraFrontend = begrunnelserPerPerson.filterIsInstance(), - eøsStandardbegrunnelserFraFrontend = begrunnelserPerPerson.filterIsInstance(), - ) - } else { - val utvidetVedtaksperiodeMedBegrunnelser = - vedtaksperiode.tilUtvidetVedtaksperiodeMedBegrunnelser( - personopplysningGrunnlag = personopplysningGrunnlag, - andelerTilkjentYtelse = andelerTilkjentYtelse, - ) + val grunnlagForBegrunnelse = vedtaksperiodeService.hentGrunnlagForBegrunnelse(behandling) + val begrunnelserPerPerson = + vedtaksperiode.hentGyldigeBegrunnelserPerPerson(grunnlagForBegrunnelse).values.flatten() - val aktørerMedUtbetaling = - utvidetVedtaksperiodeMedBegrunnelser - .utbetalingsperiodeDetaljer - .map { personMedUtbetaling -> - personopplysningGrunnlag.søkerOgBarn.find { - it.aktør.aktivFødselsnummer() == personMedUtbetaling.person.personIdent - }!!.aktør - } - - val gyldigeStandardbegrunnelser = - hentGyldigeBegrunnelserForVedtaksperiodeMinimert( - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - sanityBegrunnelser = sanityBegrunnelser, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - minimertePersonresultater = - vilkårsvurdering.personResultater - .map { it.tilMinimertPersonResultat() }, - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - minimerteEndredeUtbetalingAndeler = - endredeUtbetalingAndeler - .map { it.tilMinimertEndretUtbetalingAndel() }, - erFørsteVedtaksperiodePåFagsak = - erFørsteVedtaksperiodePåFagsak( - andelerTilkjentYtelse, - utvidetVedtaksperiodeMedBegrunnelser.fom, - ), - ytelserForSøkerForrigeMåned = - hentYtelserForSøkerForrigeMåned( - andelerTilkjentYtelse, - utvidetVedtaksperiodeMedBegrunnelser, - ), - ytelserForrigePerioder = - andelerTilkjentYtelse.filter { - ytelseErFraForrigePeriode( - it, - utvidetVedtaksperiodeMedBegrunnelser, - ) - }, - ) - vedtaksperiodeService.oppdaterVedtaksperiodeMedStandardbegrunnelser( - vedtaksperiodeId = vedtaksperiode.id, - standardbegrunnelserFraFrontend = gyldigeStandardbegrunnelser, - eøsStandardbegrunnelserFraFrontend = emptyList(), - ) - } + vedtaksperiodeService.oppdaterVedtaksperiodeMedStandardbegrunnelser( + vedtaksperiodeId = vedtaksperiode.id, + standardbegrunnelserFraFrontend = begrunnelserPerPerson.filterIsInstance(), + eøsStandardbegrunnelserFraFrontend = begrunnelserPerPerson.filterIsInstance(), + ) } diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/brev/BrevBegrunnelseGrunnlagMedPersoner.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/brev/BrevBegrunnelseGrunnlagMedPersoner.kt deleted file mode 100644 index 8ed0c1a6d07..00000000000 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/datagenerator/brev/BrevBegrunnelseGrunnlagMedPersoner.kt +++ /dev/null @@ -1,21 +0,0 @@ -package no.nav.familie.ba.sak.datagenerator.brev - -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.TriggesAv -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType - -fun lagBrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse: Standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, - vedtakBegrunnelseType: VedtakBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - triggesAv: TriggesAv = lagTriggesAv(), - personIdenter: List = emptyList(), -): BrevBegrunnelseGrunnlagMedPersoner { - return BrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse = standardbegrunnelse, - vedtakBegrunnelseType = vedtakBegrunnelseType, - triggesAv = triggesAv, - personIdenter = personIdenter, - ) -} diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtilTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtilTest.kt index e18599e7d8a..b8ecb8f48aa 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtilTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevPeriodeUtilTest.kt @@ -1,76 +1,14 @@ package no.nav.familie.ba.sak.kjerne.brev import no.nav.familie.ba.sak.common.MånedPeriode -import no.nav.familie.ba.sak.datagenerator.brev.lagMinimertPerson -import no.nav.familie.ba.sak.kjerne.brev.domene.BrevperiodeData -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.KompetanseAktivitet import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.lagKompetanse -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType import no.nav.familie.ba.sak.kjerne.personident.Aktør -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import java.time.LocalDate import java.time.YearMonth class BrevPeriodeUtilTest { - @Test - fun `Skal sortere perioder kronologisk, med generelle avslag til slutt`() { - val liste = - listOf( - lagBrevperiodeData( - fom = LocalDate.now().minusMonths(12), - tom = LocalDate.now().minusMonths(8), - type = Vedtaksperiodetype.UTBETALING, - ), - lagBrevperiodeData( - fom = LocalDate.now().minusMonths(3), - tom = null, - type = Vedtaksperiodetype.AVSLAG, - ), - lagBrevperiodeData( - fom = null, - tom = null, - type = Vedtaksperiodetype.AVSLAG, - ), - lagBrevperiodeData( - fom = LocalDate.now().minusMonths(7), - tom = LocalDate.now().minusMonths(4), - type = Vedtaksperiodetype.OPPHØR, - ), - lagBrevperiodeData( - fom = LocalDate.now().minusMonths(3), - tom = LocalDate.now(), - type = Vedtaksperiodetype.UTBETALING, - ), - ) - - val sortertListe = liste.sorted() - - Assertions.assertTrue(sortertListe.size == 5) - val førstePeriode = sortertListe.first() - val andrePeriode = sortertListe[1] - val tredjePeriode = sortertListe[2] - val fjerdePeriode = sortertListe[3] - val sistePeriode = sortertListe.last() - - Assertions.assertEquals(Vedtaksperiodetype.UTBETALING, førstePeriode.minimertVedtaksperiode.type) - Assertions.assertEquals(LocalDate.now().minusMonths(12), førstePeriode.minimertVedtaksperiode.fom) - Assertions.assertEquals(Vedtaksperiodetype.OPPHØR, andrePeriode.minimertVedtaksperiode.type) - Assertions.assertEquals(LocalDate.now().minusMonths(7), andrePeriode.minimertVedtaksperiode.fom) - Assertions.assertEquals(Vedtaksperiodetype.UTBETALING, tredjePeriode.minimertVedtaksperiode.type) - Assertions.assertEquals(LocalDate.now().minusMonths(3), tredjePeriode.minimertVedtaksperiode.fom) - Assertions.assertEquals(Vedtaksperiodetype.AVSLAG, fjerdePeriode.minimertVedtaksperiode.type) - Assertions.assertEquals(LocalDate.now().minusMonths(3), fjerdePeriode.minimertVedtaksperiode.fom) - Assertions.assertEquals(Vedtaksperiodetype.AVSLAG, sistePeriode.minimertVedtaksperiode.type) - Assertions.assertNull(sistePeriode.minimertVedtaksperiode.fom) - } - @Test fun `Skal plukke ut kompetansene i perioden`() { val barnAktør1 = Aktør(aktørId = "1111111111111") @@ -105,93 +43,4 @@ class BrevPeriodeUtilTest { .hentIPeriode(periode1.fom, periode2.tom), ) } - - @Test - fun `Skal kunne kombinere registrerte og uregistrerte barns fødselsdatoer til avslagsbegrunnelse`() { - val barnIBegrunnelse = - listOf( - lagMinimertPerson(fødselsdato = LocalDate.of(2021, 1, 1), type = PersonType.BARN), - lagMinimertPerson(fødselsdato = LocalDate.of(2021, 2, 2), type = PersonType.BARN), - ).map { it.tilMinimertRestPerson() } - val barnPåBehandling = - listOf( - lagMinimertPerson(fødselsdato = LocalDate.of(2021, 1, 1), type = PersonType.BARN), - lagMinimertPerson(fødselsdato = LocalDate.of(2021, 2, 2), type = PersonType.BARN), - lagMinimertPerson(fødselsdato = LocalDate.of(2021, 3, 3), type = PersonType.BARN), - ).map { it.tilMinimertRestPerson() } - val uregistrerteBarn = - listOf( - MinimertUregistrertBarn(personIdent = "", navn = "Ole", fødselsdato = LocalDate.of(2021, 4, 4)), - MinimertUregistrertBarn(personIdent = "", navn = "Dole", fødselsdato = LocalDate.of(2021, 5, 5)), - MinimertUregistrertBarn(personIdent = "", navn = "Doffen", fødselsdato = LocalDate.of(2021, 6, 6)), - ) - - Assertions.assertEquals( - hentBarnasFødselsdatoerForAvslagsbegrunnelse( - barnIBegrunnelse, - barnPåBehandling, - uregistrerteBarn, - gjelderSøker = true, - ), - "01.01.21, 02.02.21, 03.03.21, 04.04.21, 05.05.21 og 06.06.21", - ) - Assertions.assertEquals( - hentBarnasFødselsdatoerForAvslagsbegrunnelse( - barnIBegrunnelse, - barnPåBehandling, - uregistrerteBarn, - gjelderSøker = false, - ), - "01.01.21, 02.02.21, 04.04.21, 05.05.21 og 06.06.21", - ) - Assertions.assertEquals( - hentBarnasFødselsdatoerForAvslagsbegrunnelse( - barnIBegrunnelse, - barnPåBehandling, - emptyList(), - gjelderSøker = true, - ), - "01.01.21, 02.02.21 og 03.03.21", - ) - Assertions.assertEquals( - hentBarnasFødselsdatoerForAvslagsbegrunnelse( - emptyList(), - emptyList(), - uregistrerteBarn, - gjelderSøker = true, - ), - "04.04.21, 05.05.21 og 06.06.21", - ) - } -} - -private fun lagBrevperiodeData( - fom: LocalDate?, - tom: LocalDate?, - type: Vedtaksperiodetype, -): BrevperiodeData { - val restBehandlingsgrunnlagForBrev = - RestBehandlingsgrunnlagForBrev( - personerPåBehandling = emptyList(), - minimertePersonResultater = emptyList(), - minimerteEndredeUtbetalingAndeler = emptyList(), - fagsakType = FagsakType.NORMAL, - ) - return BrevperiodeData( - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - erFørsteVedtaksperiodePåFagsak = false, - brevMålform = Målform.NB, - minimertVedtaksperiode = - MinimertVedtaksperiode( - begrunnelser = emptyList(), - fom = fom, - tom = tom, - type = type, - eøsBegrunnelser = emptyList(), - ), - uregistrerteBarn = emptyList(), - minimerteKompetanserForPeriode = emptyList(), - minimerteKompetanserSomStopperRettFørPeriode = emptyList(), - dødeBarnForrigePeriode = emptyList(), - ) } diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevServiceTest.kt index ec91836b280..6086cd6a5b9 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevServiceTest.kt @@ -20,7 +20,6 @@ class BrevServiceTest { arbeidsfordelingService = mockk(), simuleringService = mockk(), vedtaksperiodeService = mockk(), - brevPeriodeService = mockk(), sanityService = mockk(), vilkårsvurderingService = mockk(), korrigertEtterbetalingService = mockk(), @@ -29,7 +28,6 @@ class BrevServiceTest { saksbehandlerContext = saksbehandlerContext, brevmalService = brevmalService, refusjonEøsRepository = mockk(), - unleashNext = mockk(), integrasjonClient = mockk(), ) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtilsTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtilsTest.kt index d854c779535..f565ec02b00 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtilsTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtilsTest.kt @@ -4,11 +4,8 @@ import io.mockk.mockk import no.nav.familie.ba.sak.common.lagBehandling import no.nav.familie.ba.sak.common.lagSanityBegrunnelse import no.nav.familie.ba.sak.common.lagSanityEøsBegrunnelse -import no.nav.familie.ba.sak.common.lagUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.common.lagUtvidetVedtaksperiodeMedBegrunnelser import no.nav.familie.ba.sak.common.lagVedtaksperiodeMedBegrunnelser import no.nav.familie.ba.sak.common.tilMånedÅr -import no.nav.familie.ba.sak.config.testSanityKlient import no.nav.familie.ba.sak.datagenerator.vedtak.lagVedtaksbegrunnelse import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandlingsresultat @@ -53,25 +50,23 @@ internal class BrevUtilsTest { fun `hentHjemmeltekst skal returnere sorterte hjemler`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, vedtaksperiodeMedBegrunnelser = lagVedtaksperiodeMedBegrunnelser(), ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, vedtaksperiodeMedBegrunnelser = lagVedtaksperiodeMedBegrunnelser(), ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -81,7 +76,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - testSanityKlient.hentBegrunnelserMap(), emptyMap(), ) }, @@ -108,23 +102,21 @@ internal class BrevUtilsTest { fun `hentHjemmeltekst skal ikke inkludere hjemmel 17 og 18 hvis opplysningsplikt er oppfylt`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -134,7 +126,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = testSanityKlient.hentBegrunnelserMap(), sanityEØSBegrunnelser = emptyMap(), ) }, @@ -162,23 +153,21 @@ internal class BrevUtilsTest { fun `hentHjemmeltekst skal inkludere hjemmel 17 og 18 hvis opplysningsplikt ikke er oppfylt`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -188,7 +177,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = testSanityKlient.hentBegrunnelserMap(), sanityEØSBegrunnelser = emptyMap(), ) }, @@ -230,23 +218,21 @@ internal class BrevUtilsTest { fun `Skal gi riktig hjemmeltekst ved hjemler både fra barnetrygdloven og folketrygdloven`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SØKER_OG_BARN_FRIVILLIG_MEDLEM, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -271,7 +257,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = emptyMap(), ) }, @@ -287,37 +272,35 @@ internal class BrevUtilsTest { fun `Skal gi riktig formattering ved hjemler fra barnetrygdloven og 2 EØS-forordninger`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_ALENEANSVAR, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_BEGGE_FORELDRE_BOSATT_I_NORGE, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -357,7 +340,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = sanityEøsBegrunnelser, ) }, @@ -373,37 +355,35 @@ internal class BrevUtilsTest { fun `Skal gi riktig formattering ved hjemler fra Separasjonsavtale og to EØS-forordninger`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_ALENEANSVAR, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_BEGGE_FORELDRE_BOSATT_I_NORGE, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -444,7 +424,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = sanityEøsBegrunnelser, ) }, @@ -460,37 +439,35 @@ internal class BrevUtilsTest { fun `Skal gi riktig formattering ved nynorsk og hjemler fra Separasjonsavtale og to EØS-forordninger`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_ALENEANSVAR, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_BEGGE_FORELDRE_BOSATT_I_NORGE, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -531,7 +508,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = sanityEøsBegrunnelser, ) }, @@ -547,37 +523,35 @@ internal class BrevUtilsTest { fun `Skal slå sammen hjemlene riktig når det er 3 eller flere hjemler på 'siste' hjemmeltype`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_ALENEANSVAR, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_BEGGE_FORELDRE_BOSATT_I_NORGE, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -617,7 +591,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = sanityEøsBegrunnelser, ) }, @@ -633,37 +606,35 @@ internal class BrevUtilsTest { fun `Skal kun ta med en hjemmel 1 gang hvis flere begrunnelser er knyttet til samme hjemmel`() { val utvidetVedtaksperioderMedBegrunnelser = listOf( - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_ALENEANSVAR, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), - lagUtvidetVedtaksperiodeMedBegrunnelser( + lagVedtaksperiodeMedBegrunnelser( begrunnelser = - listOf( + mutableSetOf( lagVedtaksbegrunnelse( standardbegrunnelse = Standardbegrunnelse.INNVILGET_SATSENDRING, ), ), eøsBegrunnelser = - listOf( + mutableSetOf( EØSBegrunnelse( vedtaksperiodeMedBegrunnelser = mockk(), begrunnelse = EØSStandardbegrunnelse.INNVILGET_PRIMÆRLAND_BEGGE_FORELDRE_BOSATT_I_NORGE, ), ), - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), ), ) @@ -707,7 +678,6 @@ internal class BrevUtilsTest { minimerteVedtaksperioder = utvidetVedtaksperioderMedBegrunnelser.map { it.tilMinimertVedtaksperiode( - sanityBegrunnelser = sanityBegrunnelser, sanityEØSBegrunnelser = sanityEøsBegrunnelser, ) }, diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevperiodeTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevperiodeTest.kt deleted file mode 100644 index 98fdbaf065e..00000000000 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevperiodeTest.kt +++ /dev/null @@ -1,215 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.brev - -import BegrunnelseDataTestConfig -import BrevPeriodeOutput -import BrevPeriodeTestConfig -import EØSBegrunnelseTestConfig -import FritekstBegrunnelseTestConfig -import com.fasterxml.jackson.module.kotlin.readValue -import no.nav.familie.ba.sak.common.Utils.formaterBeløp -import no.nav.familie.ba.sak.config.testSanityKlient -import no.nav.familie.ba.sak.kjerne.brev.domene.BegrunnelseMedTriggere -import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.eøs.EØSBegrunnelseMedTriggere -import no.nav.familie.ba.sak.kjerne.brev.domene.maler.brevperioder.BrevPeriode -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.domene.FritekstBegrunnelse -import no.nav.familie.kontrakter.felles.objectMapper -import org.junit.jupiter.api.Disabled -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.TestReporter -import java.io.File - -class BrevperiodeTest { - @Test - @Disabled("Må sees nøyere på i forbindelse med brevperioder") - fun test(testReporter: TestReporter) { - val testmappe = File("./src/test/resources/brevperiodeCaser") - - val sanityBegrunnelser = testSanityKlient.hentBegrunnelserMap() - val sanityEØSBegrunnelser = testSanityKlient.hentEØSBegrunnelserMap() - - val antallFeil = - testmappe.list()?.fold(0) { acc, it -> - - val fil = File("$testmappe/$it") - - val behandlingsresultatPersonTestConfig = - try { - objectMapper.readValue(fil.readText()) - } catch (e: Exception) { - testReporter.publishEntry("Feil i fil: $it") - testReporter.publishEntry(e.message) - return@fold acc + 1 - } - - val minimertVedtaksperiode = - MinimertVedtaksperiode( - fom = behandlingsresultatPersonTestConfig.fom, - tom = behandlingsresultatPersonTestConfig.tom, - type = behandlingsresultatPersonTestConfig.vedtaksperiodetype, - begrunnelser = - behandlingsresultatPersonTestConfig - .begrunnelser.map { it.tilBrevBegrunnelseGrunnlag(sanityBegrunnelser) }, - fritekster = behandlingsresultatPersonTestConfig.fritekster, - minimerteUtbetalingsperiodeDetaljer = - behandlingsresultatPersonTestConfig - .personerPåBehandling - .flatMap { it.tilUtbetalingsperiodeDetaljer() }, - eøsBegrunnelser = - behandlingsresultatPersonTestConfig.eøsBegrunnelser?.map { - EØSBegrunnelseMedTriggere( - eøsBegrunnelse = it, - sanityEØSBegrunnelse = sanityEØSBegrunnelser[it]!!, - ) - } ?: emptyList(), - ) - - val restBehandlingsgrunnlagForBrev = - RestBehandlingsgrunnlagForBrev( - personerPåBehandling = behandlingsresultatPersonTestConfig.personerPåBehandling.map { it.tilMinimertPerson() }, - minimertePersonResultater = behandlingsresultatPersonTestConfig.personerPåBehandling.map { it.tilMinimertePersonResultater() }, - minimerteEndredeUtbetalingAndeler = behandlingsresultatPersonTestConfig.personerPåBehandling.flatMap { it.tilMinimerteEndredeUtbetalingAndeler() }, - fagsakType = FagsakType.NORMAL, - ) - - val brevperiode = - try { - BrevPeriodeGenerator( - minimertVedtaksperiode = minimertVedtaksperiode, - restBehandlingsgrunnlagForBrev = restBehandlingsgrunnlagForBrev, - uregistrerteBarn = behandlingsresultatPersonTestConfig.uregistrerteBarn, - erFørsteVedtaksperiodePåFagsak = behandlingsresultatPersonTestConfig.erFørsteVedtaksperiodePåFagsak, - brevMålform = behandlingsresultatPersonTestConfig.brevMålform, - barnMedReduksjonFraForrigeBehandlingIdent = - behandlingsresultatPersonTestConfig.hentBarnMedReduksjonFraForrigeBehandling() - .map { it.personIdent }, - minimerteKompetanserForPeriode = - behandlingsresultatPersonTestConfig.kompetanser?.map { - it.tilMinimertKompetanse( - behandlingsresultatPersonTestConfig.personerPåBehandling, - ) - } ?: emptyList(), - minimerteKompetanserSomStopperRettFørPeriode = - behandlingsresultatPersonTestConfig.kompetanserSomStopperRettFørPeriode?.map { - it.tilMinimertKompetanse( - behandlingsresultatPersonTestConfig.personerPåBehandling, - ) - } ?: emptyList(), - dødeBarnForrigePeriode = emptyList(), - ).genererBrevPeriode() - } catch (e: Exception) { - testReporter.publishEntry( - "Feil i test: $it" + - "\nFeilmelding: ${e.message}" + - "\nFil: ${e.stackTrace.first()}" + - "\n-----------------------------------\n", - ) - return@fold acc + 1 - } - - val feil = - erLike( - forventetOutput = behandlingsresultatPersonTestConfig.forventetOutput, - output = brevperiode, - ) - - if (feil.isNotEmpty()) { - testReporter.publishEntry( - it, - "${behandlingsresultatPersonTestConfig.beskrivelse}\n\n" + - feil.joinToString("\n\n") + - "\n-----------------------------------\n", - ) - acc + 1 - } else { - acc - } - } - - assert(antallFeil == 0) - } - - private fun erLike( - forventetOutput: BrevPeriodeOutput?, - output: BrevPeriode?, - ): List { - val feil = mutableListOf() - - fun validerFelt( - forventet: String?, - faktisk: String?, - variabelNavn: String, - ) { - if (forventet != faktisk) { - feil.add( - "Forventet $variabelNavn var: '$forventet', men fikk '$faktisk'", - ) - } - } - - if (forventetOutput == null || output == null) { - if (forventetOutput != null) { - feil.add("Output er null, men forventet output er $forventetOutput.") - } - if (output != null) { - feil.add("Forventet output er null, men output er $output.") - } - } else { - validerFelt(forventetOutput.fom, output.fom?.single(), "fom") - validerFelt(forventetOutput.tom, output.tom?.single(), "tom") - validerFelt(forventetOutput.type, output.type?.single(), "type") - validerFelt(forventetOutput.barnasFodselsdager, output.barnasFodselsdager?.single(), "barnasFodselsdager") - validerFelt(forventetOutput.antallBarn, output.antallBarn?.single(), "antallBarn") - validerFelt( - if (forventetOutput.belop != null) { - formaterBeløp(forventetOutput.belop) - } else { - null - }, - output.belop?.single(), - "belop", - ) - - val forventedeBegrunnelser = - forventetOutput.begrunnelser.map { - when (it) { - is BegrunnelseDataTestConfig -> it.tilBegrunnelseData() - is FritekstBegrunnelseTestConfig -> FritekstBegrunnelse(it.fritekst) - is EØSBegrunnelseTestConfig -> it.tilEØSBegrunnelseData() - else -> throw IllegalArgumentException("Ugyldig testconfig") - } - } - - if (forventedeBegrunnelser.size != output.begrunnelser.size) { - feil.add( - "Forventet antall begrunnelser var ${forventedeBegrunnelser.size} begrunnelser, " + - "men fikk ${output.begrunnelser.size}." + - "\nForventede begrunnelser: $forventedeBegrunnelser" + - "\nOutput: ${output.begrunnelser}", - ) - } else { - forventedeBegrunnelser.forEachIndexed { index, _ -> - if (forventedeBegrunnelser[index] != output.begrunnelser[index]) { - feil.add( - "Forventet begrunnelse nr. ${index + 1} var: " + - "\n'${forventedeBegrunnelser[index]}', " + - "\nmen fikk " + - "\n'${output.begrunnelser[index]}'", - ) - } - } - } - } - return feil - } - - private fun Standardbegrunnelse.tilBrevBegrunnelseGrunnlag(sanityBegrunnelser: Map) = - BegrunnelseMedTriggere( - standardbegrunnelse = this, - triggesAv = sanityBegrunnelser[this]!!.triggesAv, - ) -} diff --git "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/Utgj\303\270rendePersonerTest.kt" "b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/Utgj\303\270rendePersonerTest.kt" deleted file mode 100644 index 7f7aa7816c2..00000000000 --- "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/Utgj\303\270rendePersonerTest.kt" +++ /dev/null @@ -1,488 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak - -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.TIDENES_ENDE -import no.nav.familie.ba.sak.common.TIDENES_MORGEN -import no.nav.familie.ba.sak.common.lagBehandling -import no.nav.familie.ba.sak.common.lagTestPersonopplysningGrunnlag -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.common.lagVilkårResultat -import no.nav.familie.ba.sak.common.randomFnr -import no.nav.familie.ba.sak.config.tilAktør -import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.hentPersonerForAlleUtgjørendeVilkår -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilMinimertPerson -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårResultat -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkårsvurdering -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import java.time.LocalDate - -class UtgjørendePersonerTest { - @Test - fun `Skal hente riktige personer fra vilkårsvurderingen basert på innvilgelsesbegrunnelse`() { - val søkerFnr = randomFnr() - val barn1Fnr = randomFnr() - val barn2Fnr = randomFnr() - - val søkerAktørId = tilAktør(søkerFnr) - val barn1AktørId = tilAktør(barn1Fnr) - - val behandling = lagBehandling() - val personopplysningGrunnlag = - lagTestPersonopplysningGrunnlag(behandling.id, søkerFnr, listOf(barn1Fnr, barn2Fnr)) - - val vilkårsvurdering = - Vilkårsvurdering( - behandling = behandling, - ) - - val søkerPersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = søkerAktørId) - søkerPersonResultat.setSortedVilkårResultater( - setOf( - VilkårResultat( - personResultat = søkerPersonResultat, - vilkårType = Vilkår.LOVLIG_OPPHOLD, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2009, 12, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - VilkårResultat( - personResultat = søkerPersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2008, 12, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - ), - ) - - val barn1PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn1AktørId) - - barn1PersonResultat.setSortedVilkårResultater( - setOf( - VilkårResultat( - personResultat = barn1PersonResultat, - vilkårType = Vilkår.LOVLIG_OPPHOLD, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2009, 12, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - VilkårResultat( - personResultat = barn1PersonResultat, - vilkårType = Vilkår.GIFT_PARTNERSKAP, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2009, 11, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - VilkårResultat( - personResultat = søkerPersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2009, 12, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - ), - ) - - val barn2PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn1AktørId) - - barn2PersonResultat.setSortedVilkårResultater( - setOf( - VilkårResultat( - personResultat = barn1PersonResultat, - vilkårType = Vilkår.LOVLIG_OPPHOLD, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2010, 2, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - VilkårResultat( - personResultat = barn1PersonResultat, - vilkårType = Vilkår.GIFT_PARTNERSKAP, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2009, 11, 24), - periodeTom = LocalDate.of(2010, 6, 1), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - ), - ) - - vilkårsvurdering.personResultater = setOf(søkerPersonResultat, barn1PersonResultat, barn2PersonResultat) - - val personerMedUtgjørendeVilkårLovligOpphold = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2010, 1, 1), - tom = LocalDate.of(2010, 6, 1), - ), - oppdatertBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.LOVLIG_OPPHOLD)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.INNVILGET_LOVLIG_OPPHOLD_OPPHOLDSTILLATELSE, - ) - - assertEquals(2, personerMedUtgjørendeVilkårLovligOpphold.size) - assertEquals( - listOf(søkerFnr, barn1Fnr).sorted(), - personerMedUtgjørendeVilkårLovligOpphold.map { it.personIdent }.sorted(), - ) - - val personerMedUtgjørendeVilkårBosattIRiket = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2010, 1, 1), - tom = LocalDate.of(2010, 6, 1), - ), - oppdatertBegrunnelseType = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET.vedtakBegrunnelseType, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOSATT_I_RIKET)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, - ) - - assertEquals(1, personerMedUtgjørendeVilkårBosattIRiket.size) - assertEquals(barn1Fnr, personerMedUtgjørendeVilkårBosattIRiket.first().personIdent) - } - - @Test - fun `Skal hente riktige personer fra vilkårsvurderingen basert på reduksjon og opphørsbegrunnelser`() { - val søkerFnr = randomFnr() - val barnFnr = randomFnr() - val barn2Fnr = randomFnr() - - val barnAktørId = tilAktør(barnFnr) - val barn2AktørId = tilAktør(barn2Fnr) - - val behandling = lagBehandling() - val personopplysningGrunnlag = - lagTestPersonopplysningGrunnlag( - behandling.id, - søkerFnr, - listOf(barnFnr, barn2Fnr), - barnasFødselsdatoer = listOf(LocalDate.of(2010, 12, 24), LocalDate.of(2010, 12, 24)), - ) - - val vilkårsvurdering = - Vilkårsvurdering( - behandling = behandling, - ) - - val barnPersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barnAktørId) - - barnPersonResultat.setSortedVilkårResultater( - setOf( - VilkårResultat( - personResultat = barnPersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2010, 12, 24), - periodeTom = LocalDate.of(2021, 3, 31), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - ), - ) - - val barn2PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn2AktørId) - - barn2PersonResultat.setSortedVilkårResultater( - setOf( - VilkårResultat( - personResultat = barn2PersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - resultat = Resultat.OPPFYLT, - periodeFom = LocalDate.of(2010, 12, 24), - periodeTom = LocalDate.of(2021, 1, 31), - begrunnelse = "", - sistEndretIBehandlingId = vilkårsvurdering.behandling.id, - ), - ), - ) - - vilkårsvurdering.personResultater = setOf(barnPersonResultat, barn2PersonResultat) - - val personerMedUtgjørendeVilkårBosattIRiket = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2021, 2, 1), - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = Standardbegrunnelse.REDUKSJON_BOSATT_I_RIKTET.vedtakBegrunnelseType, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOSATT_I_RIKET)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.REDUKSJON_BOSATT_I_RIKTET, - ) - - assertEquals(1, personerMedUtgjørendeVilkårBosattIRiket.size) - assertEquals( - barn2Fnr, - personerMedUtgjørendeVilkårBosattIRiket.first().personIdent, - ) - - val personerMedUtgjørendeVilkårBarnUtvandret = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2021, 4, 1), - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = Standardbegrunnelse.OPPHØR_UTVANDRET.vedtakBegrunnelseType, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOSATT_I_RIKET)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.OPPHØR_UTVANDRET, - ) - - assertEquals(1, personerMedUtgjørendeVilkårBarnUtvandret.size) - assertEquals( - barnFnr, - personerMedUtgjørendeVilkårBarnUtvandret.first().personIdent, - ) - } - - @Test - fun `Skal kun hente medlemskapsbegrunnelser ved medlemskap og ikke hente medlemskapsbegrunnelser ellers`() { - val søkerFnr = randomFnr() - val barn1Fnr = randomFnr() - val barn2Fnr = randomFnr() - - val barn1AktørId = tilAktør(barn1Fnr) - val barn2AktørId = tilAktør(barn2Fnr) - - val behandling = lagBehandling() - val personopplysningGrunnlag = - lagTestPersonopplysningGrunnlag( - behandling.id, - søkerFnr, - listOf(barn1Fnr, barn2Fnr), - ) - - val vilkårsvurdering = - Vilkårsvurdering( - behandling = behandling, - ) - - val barn1PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn1AktørId) - val barn2PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn2AktørId) - - barn1PersonResultat.setSortedVilkårResultater( - setOf( - lagVilkårResultat( - barn1PersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - periodeFom = LocalDate.of(2021, 11, 1), - utdypendeVilkårsvurderinger = listOf(UtdypendeVilkårsvurdering.VURDERT_MEDLEMSKAP), - ), - ), - ) - barn2PersonResultat.setSortedVilkårResultater( - setOf( - lagVilkårResultat( - barn2PersonResultat, - vilkårType = Vilkår.BOSATT_I_RIKET, - periodeFom = LocalDate.of(2021, 11, 1), - utdypendeVilkårsvurderinger = emptyList(), - ), - ), - ) - - vilkårsvurdering.personResultater = - setOf(barn1PersonResultat, barn2PersonResultat) - - val personerMedUtgjørendeVilkårBosattIRiketMedlemskap = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2021, 12, 1), - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOSATT_I_RIKET), medlemskap = true), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, - ) - - val personerMedUtgjørendeVilkårBosattIRiket = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = LocalDate.of(2021, 12, 1), - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOSATT_I_RIKET)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, - ) - - assertEquals(1, personerMedUtgjørendeVilkårBosattIRiketMedlemskap.size) - assertEquals( - barn1Fnr, - personerMedUtgjørendeVilkårBosattIRiketMedlemskap.first().personIdent, - ) - - assertEquals(1, personerMedUtgjørendeVilkårBosattIRiket.size) - assertEquals( - barn2Fnr, - personerMedUtgjørendeVilkårBosattIRiket.first().personIdent, - ) - } - - @Test - fun `Skal ta med riktig personer på avslag som er samtidige`() { - val søkerFnr = randomFnr() - val barn1Fnr = randomFnr() - val barn2Fnr = randomFnr() - - val barn1AktørId = tilAktør(barn1Fnr) - val barn2AktørId = tilAktør(barn2Fnr) - - val behandling = lagBehandling() - val personopplysningGrunnlag = - lagTestPersonopplysningGrunnlag( - behandling.id, - søkerFnr, - listOf(barn1Fnr, barn2Fnr), - ) - - val vilkårsvurdering = - Vilkårsvurdering( - behandling = behandling, - ) - - val barn1PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn1AktørId) - val barn2PersonResultat = - PersonResultat(vilkårsvurdering = vilkårsvurdering, aktør = barn2AktørId) - - val avslagBegrunnelse1 = Standardbegrunnelse.AVSLAG_IKKE_AVTALE_OM_DELT_BOSTED - barn1PersonResultat.setSortedVilkårResultater( - setOf( - lagVilkårResultat( - barn1PersonResultat, - vilkårType = Vilkår.BOR_MED_SØKER, - periodeFom = null, - periodeTom = null, - resultat = Resultat.IKKE_OPPFYLT, - erEksplisittAvslagPåSøknad = true, - standardbegrunnelser = listOf(avslagBegrunnelse1), - ), - ), - ) - - val avslagBegrunnelse2 = Standardbegrunnelse.AVSLAG_BOR_HOS_SØKER - barn2PersonResultat.setSortedVilkårResultater( - setOf( - lagVilkårResultat( - barn2PersonResultat, - vilkårType = Vilkår.BOR_MED_SØKER, - periodeFom = null, - periodeTom = null, - resultat = Resultat.IKKE_OPPFYLT, - erEksplisittAvslagPåSøknad = true, - standardbegrunnelser = listOf(avslagBegrunnelse2), - ), - ), - ) - - vilkårsvurdering.personResultater = - setOf(barn1PersonResultat, barn2PersonResultat) - - val personerMedUtgjørendeVilkårAvslag1 = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = TIDENES_MORGEN, - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = VedtakBegrunnelseType.AVSLAG, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOR_MED_SØKER), medlemskap = true), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = avslagBegrunnelse1, - ) - - val personerMedUtgjørendeVilkårAvslag2 = - hentPersonerForAlleUtgjørendeVilkår( - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - vedtaksperiode = - Periode( - fom = TIDENES_MORGEN, - tom = TIDENES_ENDE, - ), - oppdatertBegrunnelseType = VedtakBegrunnelseType.AVSLAG, - triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.BOR_MED_SØKER)), - aktuellePersonerForVedtaksperiode = - personopplysningGrunnlag.personer.toList() - .map { it.tilMinimertPerson() }, - erFørsteVedtaksperiodePåFagsak = false, - begrunnelse = avslagBegrunnelse2, - ) - - assertEquals(1, personerMedUtgjørendeVilkårAvslag1.size) - assertEquals( - barn1Fnr, - personerMedUtgjørendeVilkårAvslag1.first().personIdent, - ) - - assertEquals(1, personerMedUtgjørendeVilkårAvslag2.size) - assertEquals( - barn2Fnr, - personerMedUtgjørendeVilkårAvslag2.first().personIdent, - ) - } -} diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseTest.kt index 1cb02e013e8..a99a9a08e0d 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/StandardbegrunnelseTest.kt @@ -2,37 +2,16 @@ package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser import no.nav.familie.ba.sak.common.lagAndelTilkjentYtelseMedEndreteUtbetalinger import no.nav.familie.ba.sak.common.lagBehandling -import no.nav.familie.ba.sak.common.lagEndretUtbetalingAndel -import no.nav.familie.ba.sak.common.lagPerson import no.nav.familie.ba.sak.common.lagTestPersonopplysningGrunnlag -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.common.lagUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.common.lagUtvidetVedtaksperiodeMedBegrunnelser -import no.nav.familie.ba.sak.common.lagVilkårsvurdering import no.nav.familie.ba.sak.common.tilfeldigPerson -import no.nav.familie.ba.sak.config.testSanityKlient import no.nav.familie.ba.sak.datagenerator.brev.lagMinimertPerson -import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat -import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingsperiodeDeltBostedTriggere -import no.nav.familie.ba.sak.kjerne.brev.domene.SanityBegrunnelse -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertEndretUtbetalingAndel -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.ØvrigTrigger -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.domene.PersonIdent -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.lagDødsfallFraPdl import no.nav.familie.ba.sak.kjerne.personident.Aktør import no.nav.familie.ba.sak.kjerne.personident.Personident -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.tilMinimertVedtaksperiode -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.domene.tilMinimertePersoner -import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.Vedtaksperiodetype import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance -import java.math.BigDecimal import java.time.LocalDate import java.time.YearMonth @@ -41,441 +20,8 @@ internal class StandardbegrunnelseTest { private val behandling = lagBehandling() private val søker = tilfeldigPerson(personType = PersonType.SØKER) private val barn = tilfeldigPerson(personType = PersonType.BARN) - private val utvidetVedtaksperiodeMedBegrunnelser = - lagUtvidetVedtaksperiodeMedBegrunnelser( - type = Vedtaksperiodetype.UTBETALING, - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), - ) - private val vilkårsvurdering = - lagVilkårsvurdering(søker.aktør, lagBehandling(), Resultat.OPPFYLT) val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, søker, barn) - private val aktørerMedUtbetaling = listOf(søker.aktør, barn.aktør) - - private val sanityBegrunnelser = testSanityKlient.hentBegrunnelserMap() - - @Test - fun `Oppfyller vilkår skal gi true`() { - assertTrue( - Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Annen periode type skal gi false`() { - assertFalse( - Standardbegrunnelse.OPPHØR_UTVANDRET - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Har ikke barn med seksårsdag skal gi false`() { - assertFalse( - Standardbegrunnelse.REDUKSJON_UNDER_6_ÅR - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Har barn med seksårsdag skal gi true`() { - val minimertePersoner = - listOf( - lagMinimertPerson(type = PersonType.BARN, fødselsdato = LocalDate.now().minusYears(6)), - lagMinimertPerson(type = PersonType.SØKER), - ) - - assertTrue( - Standardbegrunnelse.REDUKSJON_UNDER_6_ÅR - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = minimertePersoner, - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Har sats endring skal gi true`() { - val vedtaksperiodeMedBegrunnelserSatsEndring = - lagUtvidetVedtaksperiodeMedBegrunnelser( - fom = LocalDate.of(2021, 9, 1), - type = Vedtaksperiodetype.UTBETALING, - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), - ) - - assertTrue( - Standardbegrunnelse.INNVILGET_SATSENDRING - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = vedtaksperiodeMedBegrunnelserSatsEndring.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Har ikke sats endring skal gi false`() { - val vedtaksperiodeMedBegrunnelserSatsEndring = - lagUtvidetVedtaksperiodeMedBegrunnelser( - fom = LocalDate.of(2021, 8, 1), - type = Vedtaksperiodetype.UTBETALING, - utbetalingsperiodeDetaljer = listOf(lagUtbetalingsperiodeDetalj()), - ) - - assertFalse( - Standardbegrunnelse.INNVILGET_SATSENDRING - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = vedtaksperiodeMedBegrunnelserSatsEndring.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Oppfyller ikke vilkår for person skal gi false`() { - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, barn) - - assertFalse( - Standardbegrunnelse.INNVILGET_LOVLIG_OPPHOLD_EØS_BORGER - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Oppfyller vilkår for person skal gi true`() { - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, søker) - - assertTrue( - Standardbegrunnelse.INNVILGET_LOVLIG_OPPHOLD_EØS_BORGER - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Oppfyller etter endringsperiode skal gi true`() { - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, barn) - - assertTrue( - Standardbegrunnelse.ETTER_ENDRET_UTBETALING_AVTALE_DELT_BOSTED_FØLGES - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - minimertVedtaksperiode = - lagUtvidetVedtaksperiodeMedBegrunnelser( - type = Vedtaksperiodetype.UTBETALING, - fom = LocalDate.of(2021, 10, 1), - tom = LocalDate.of(2021, 10, 31), - ).tilMinimertVedtaksperiode(), - minimerteEndredeUtbetalingAndeler = - listOf( - lagEndretUtbetalingAndel( - prosent = BigDecimal.ZERO, - behandlingId = behandling.id, - person = barn, - fom = YearMonth.of(2021, 6), - tom = YearMonth.of(2021, 9), - årsak = Årsak.DELT_BOSTED, - ), - ).map { it.tilMinimertEndretUtbetalingAndel() }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Oppfyller ikke etter endringsperiode skal gi false`() { - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, barn) - - assertFalse( - Standardbegrunnelse.ETTER_ENDRET_UTBETALING_AVTALE_DELT_BOSTED_FØLGES - .triggesForPeriode( - sanityBegrunnelser = sanityBegrunnelser, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - minimertVedtaksperiode = - lagUtvidetVedtaksperiodeMedBegrunnelser( - type = Vedtaksperiodetype.UTBETALING, - fom = LocalDate.of(2021, 10, 1), - tom = LocalDate.of(2021, 10, 31), - ).tilMinimertVedtaksperiode(), - minimerteEndredeUtbetalingAndeler = - listOf( - lagEndretUtbetalingAndel( - prosent = BigDecimal.ZERO, - behandlingId = behandling.id, - person = barn, - fom = YearMonth.of(2021, 10), - tom = YearMonth.of(2021, 10), - årsak = Årsak.DELT_BOSTED, - ), - ).map { it.tilMinimertEndretUtbetalingAndel() }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = emptyList(), - ), - ) - } - - @Test - fun `Oppfyller skal utbetales gir false`() { - assertFalse( - lagEndretUtbetalingAndel(prosent = BigDecimal.ZERO, person = barn) - .tilMinimertEndretUtbetalingAndel() - .oppfyllerSkalUtbetalesTrigger( - triggesAv = lagTriggesAv(endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES), - ), - ) - - assertFalse( - lagEndretUtbetalingAndel(prosent = BigDecimal.valueOf(100), person = barn) - .tilMinimertEndretUtbetalingAndel() - .oppfyllerSkalUtbetalesTrigger( - triggesAv = lagTriggesAv(endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES), - ), - ) - } - - @Test - fun `Oppfyller skal utbetales gir true`() { - assertTrue( - lagEndretUtbetalingAndel(prosent = BigDecimal.ZERO, person = barn) - .tilMinimertEndretUtbetalingAndel() - .oppfyllerSkalUtbetalesTrigger( - triggesAv = lagTriggesAv(endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES), - ), - ) - - assertTrue( - lagEndretUtbetalingAndel(prosent = BigDecimal.valueOf(100), person = barn) - .tilMinimertEndretUtbetalingAndel() - .oppfyllerSkalUtbetalesTrigger( - triggesAv = lagTriggesAv(endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES), - ), - ) - } - - @Test - fun `Alle begrunnelser er unike`() { - val vedtakBegrunnelser = Standardbegrunnelse.values().groupBy { it.sanityApiNavn } - assertEquals(vedtakBegrunnelser.size, Standardbegrunnelse.values().size) - } - - private fun String.startsWithUppercaseLetter(): Boolean { - return this.matches(Regex("[A-Z]{1}.*")) - } - - @Test - fun `Dersom dødsfalldato ligger i forrige ytelse-periode skal begrunnelsen begrunnelser med trigger BARN_DØD trigges`() { - val fnr = "12345678910" - val dødtBarn = lagPerson(personIdent = PersonIdent(fnr), type = PersonType.BARN) - dødtBarn.dødsfall = - lagDødsfallFraPdl( - dødtBarn, - dødsfallDatoFraPdl = LocalDate.now().minusMonths(1).withDayOfMonth(15).toString(), - dødsfallAdresseFraPdl = null, - ) - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, dødtBarn) - - val reduksjonBarnDødBegrunnelse = - mapOf( - Standardbegrunnelse.REDUKSJON_BARN_DØD to - SanityBegrunnelse( - apiNavn = "reduksjonBarnDod", - navnISystem = "barnDød", - ovrigeTriggere = listOf(ØvrigTrigger.BARN_DØD), - ), - ) - - val ytelserForrigeMåned = - listOf( - lagAndelTilkjentYtelseMedEndreteUtbetalinger( - fom = - YearMonth.of( - LocalDate.now().minusMonths(1).year, - LocalDate.now().minusMonths(1).month, - ), - tom = YearMonth.of(LocalDate.now().year, LocalDate.now().month), - aktør = Aktør(fnr + "00").also { it.personidenter.add(Personident(fnr, it)) }, - ), - ) - - assertTrue( - Standardbegrunnelse.REDUKSJON_BARN_DØD - .triggesForPeriode( - sanityBegrunnelser = reduksjonBarnDødBegrunnelse, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = ytelserForrigeMåned, - ), - ) - } - - @Test - fun `Dersom dødsfalldato ligger etter en ytelse-periode skal ikke begrunnelser med trigger BARN_DØD trigges`() { - val fnr = "12345678910" - val dødtBarn = lagPerson(personIdent = PersonIdent(fnr), type = PersonType.BARN) - val dødsfallDato = LocalDate.now().minusMonths(1).withDayOfMonth(15) - dødtBarn.dødsfall = - lagDødsfallFraPdl(dødtBarn, dødsfallDatoFraPdl = dødsfallDato.toString(), dødsfallAdresseFraPdl = null) - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, dødtBarn) - - val reduksjonBarnDødBegrunnelse = - mapOf( - Standardbegrunnelse.REDUKSJON_BARN_DØD to - SanityBegrunnelse( - apiNavn = "reduksjonBarnDod", - navnISystem = "barnDød", - ovrigeTriggere = listOf(ØvrigTrigger.BARN_DØD), - ), - ) - - val ytelserForrigeMåned = - listOf( - lagAndelTilkjentYtelseMedEndreteUtbetalinger( - fom = - YearMonth.of( - dødsfallDato.minusMonths(5).year, - dødsfallDato.minusMonths(5).month, - ), - tom = YearMonth.of(dødsfallDato.minusMonths(1).year, dødsfallDato.minusMonths(1).month), - aktør = Aktør(fnr + "00").also { it.personidenter.add(Personident(fnr, it)) }, - ), - ) - - assertFalse( - Standardbegrunnelse.REDUKSJON_BARN_DØD - .triggesForPeriode( - sanityBegrunnelser = reduksjonBarnDødBegrunnelse, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = ytelserForrigeMåned, - ), - ) - } - - @Test - fun `Dersom dødsfalldato ligger før en ytelse-periode skal ikke begrunnelser med trigger BARN_DØD trigges`() { - val fnr = "12345678910" - val dødtBarn = lagPerson(personIdent = PersonIdent(fnr), type = PersonType.BARN) - val dødsfallDato = LocalDate.now().minusMonths(1).withDayOfMonth(15) - dødtBarn.dødsfall = - lagDødsfallFraPdl(dødtBarn, dødsfallDatoFraPdl = dødsfallDato.toString(), dødsfallAdresseFraPdl = null) - val personopplysningGrunnlag = lagTestPersonopplysningGrunnlag(behandling.id, dødtBarn) - - val reduksjonBarnDødBegrunnelse = - mapOf( - Standardbegrunnelse.REDUKSJON_BARN_DØD to - SanityBegrunnelse( - apiNavn = "reduksjonBarnDod", - navnISystem = "barnDød", - ovrigeTriggere = listOf(ØvrigTrigger.BARN_DØD), - ), - ) - - val ytelserForrigeMåned = - listOf( - lagAndelTilkjentYtelseMedEndreteUtbetalinger( - fom = - YearMonth.of( - dødsfallDato.plusMonths(5).year, - dødsfallDato.plusMonths(5).month, - ), - tom = YearMonth.of(dødsfallDato.plusMonths(6).year, dødsfallDato.plusMonths(6).month), - aktør = Aktør(fnr + "00").also { it.personidenter.add(Personident(fnr, it)) }, - ), - ) - - assertFalse( - Standardbegrunnelse.REDUKSJON_BARN_DØD - .triggesForPeriode( - sanityBegrunnelser = reduksjonBarnDødBegrunnelse, - minimertVedtaksperiode = utvidetVedtaksperiodeMedBegrunnelser.tilMinimertVedtaksperiode(), - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimertePersoner = personopplysningGrunnlag.tilMinimertePersoner(), - aktørIderMedUtbetaling = aktørerMedUtbetaling.map { it.aktørId }, - erFørsteVedtaksperiodePåFagsak = false, - ytelserForSøkerForrigeMåned = emptyList(), - ytelserForrigePeriode = ytelserForrigeMåned, - ), - ) - } - @Test fun `dødeBarnForrigePeriode() skal returnere barn som døde i forrige periode og som er tilknyttet ytelsen`() { val barn1Fnr = "12345678910" diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAvTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAvTest.kt deleted file mode 100644 index 21fea22203e..00000000000 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/begrunnelser/TriggesAvTest.kt +++ /dev/null @@ -1,267 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser - -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.datagenerator.brev.lagMinimertUtbetalingsperiodeDetalj -import no.nav.familie.ba.sak.datagenerator.endretUtbetaling.lagMinimertEndretUtbetalingAndel -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingsperiodeDeltBostedTriggere -import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.Årsak -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test -import java.math.BigDecimal - -class TriggesAvTest { - val vilkårUtenUtvidetBarnetrygd: Set = emptySet() - val vilkårMedUtvidetBarnetrygd: Set = setOf(Vilkår.UTVIDET_BARNETRYGD) - - val endretUtbetalingAndelNull = - lagMinimertEndretUtbetalingAndel( - prosent = BigDecimal.ZERO, - årsak = Årsak.DELT_BOSTED, - ) - val endretUtbetalingAndelIkkeNull = - lagMinimertEndretUtbetalingAndel( - prosent = BigDecimal.ONE, - årsak = Årsak.DELT_BOSTED, - ) - - val triggesAvEtterEndretUtbetaling = - lagTriggesAv( - etterEndretUtbetaling = true, - endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES, - endringsaarsaker = - setOf( - Årsak.DELT_BOSTED, - ), - vilkår = vilkårMedUtvidetBarnetrygd, - ) - - val triggesIkkeAvSkalUtbetalesMedUtvidetVilkår = - lagTriggesAv( - endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES, - etterEndretUtbetaling = false, - endringsaarsaker = - setOf( - Årsak.DELT_BOSTED, - ), - vilkår = vilkårMedUtvidetBarnetrygd, - ) - - val triggesIkkeAvSkalUtbetalesUtenUtvidetVilkår = - lagTriggesAv( - endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_IKKE_UTBETALES, - etterEndretUtbetaling = false, - endringsaarsaker = - setOf( - Årsak.DELT_BOSTED, - ), - vilkår = vilkårUtenUtvidetBarnetrygd, - ) - - val triggesAvSkalUtbetalesMedUtvidetVilkår = - lagTriggesAv( - endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES, - etterEndretUtbetaling = false, - endringsaarsaker = - setOf( - Årsak.DELT_BOSTED, - ), - vilkår = vilkårMedUtvidetBarnetrygd, - ) - - val triggesAvSkalUtbetalesUtenUtvidetVilkår = - lagTriggesAv( - endretUtbetalingSkalUtbetales = EndretUtbetalingsperiodeDeltBostedTriggere.SKAL_UTBETALES, - etterEndretUtbetaling = false, - endringsaarsaker = - setOf( - Årsak.DELT_BOSTED, - ), - vilkår = vilkårUtenUtvidetBarnetrygd, - ) - - @Test - fun `Skal gi false dersom er etter endret utbetaling`() { - val erEtterEndretUbetaling = - triggesAvEtterEndretUtbetaling.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = emptyList(), - ) - - Assertions.assertFalse(erEtterEndretUbetaling) - - val erEtterEndretUbetalingMedToggle = - triggesAvEtterEndretUtbetaling.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ), - ), - ) - Assertions.assertFalse(erEtterEndretUbetalingMedToggle) - } - - @Test - fun `Triggere for endret utbetaling-begrunnelser skal bli true ved riktig utbetalingsandel`() { - val skalUtbetalesMedUtbetaling = - triggesAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ) - - val skalUtbetalesUtenUtbetaling = - triggesAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ) - - val skalIkkeUtbetalesUtenUtbetaling = - triggesIkkeAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ) - - val skalIkkeUtbetalesMedUtbetaling = - triggesIkkeAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ) - - Assertions.assertTrue(skalUtbetalesMedUtbetaling) - Assertions.assertFalse(skalUtbetalesUtenUtbetaling) - Assertions.assertTrue(skalIkkeUtbetalesUtenUtbetaling) - Assertions.assertFalse(skalIkkeUtbetalesMedUtbetaling) - } - - @Test - fun `Skal gi riktig resultat for om endret utbetaling begrunnelse trigges ved utvidetScenario`() { - Assertions.assertTrue( - triggesAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ), - ) - - Assertions.assertFalse( - triggesAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj(ytelseType = YtelseType.ORDINÆR_BARNETRYGD), - ), - ), - ) - - Assertions.assertTrue( - triggesAvSkalUtbetalesUtenUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.ORDINÆR_BARNETRYGD, - ), - ), - ), - ) - - Assertions.assertFalse( - triggesAvSkalUtbetalesUtenUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = true, - ), - ), - ), - ) - - Assertions.assertFalse( - triggesAvSkalUtbetalesMedUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = false, - ), - ), - ), - ) - - Assertions.assertTrue( - triggesAvSkalUtbetalesUtenUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndelIkkeNull, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - erPåvirketAvEndring = false, - ), - ), - ), - ) - } - - @Test - fun `Skal ikke være oppfylt hvis endringsperiode og triggesav ulik årsak`() { - val endretUtbetalingAndel = - lagMinimertEndretUtbetalingAndel( - prosent = BigDecimal.ZERO, - årsak = Årsak.ALLEREDE_UTBETALT, - ) - - Assertions.assertFalse( - triggesIkkeAvSkalUtbetalesUtenUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndel, - minimerteUtbetalingsperiodeDetaljer = emptyList(), - ), - ) - - Assertions.assertFalse( - triggesIkkeAvSkalUtbetalesUtenUtvidetVilkår.erTriggereOppfyltForEndretUtbetaling( - minimertEndretAndel = endretUtbetalingAndel, - minimerteUtbetalingsperiodeDetaljer = - listOf( - lagMinimertUtbetalingsperiodeDetalj( - ytelseType = YtelseType.ORDINÆR_BARNETRYGD, - ), - ), - ), - ) - } -} diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/VedtaksbegrunnelseTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/VedtaksbegrunnelseTest.kt deleted file mode 100644 index 092e9b6cb95..00000000000 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/domene/VedtaksbegrunnelseTest.kt +++ /dev/null @@ -1,106 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak.domene - -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.common.Utils -import no.nav.familie.ba.sak.common.lagPerson -import no.nav.familie.ba.sak.datagenerator.brev.lagBrevBegrunnelseGrunnlagMedPersoner -import no.nav.familie.ba.sak.datagenerator.vedtak.lagVedtaksbegrunnelse -import no.nav.familie.ba.sak.ekstern.restDomene.BarnMedOpplysninger -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertUregistrertBarn -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Målform -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.tilBrevTekst -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test -import java.time.LocalDate - -class VedtaksbegrunnelseTest { - val søker = lagPerson(type = PersonType.SØKER) - val barn1 = lagPerson(type = PersonType.BARN) - val barn2 = lagPerson(type = PersonType.BARN) - val barn3 = lagPerson(type = PersonType.BARN) - - val restVedtaksbegrunnelse = - lagVedtaksbegrunnelse( - standardbegrunnelse = Standardbegrunnelse.INNVILGET_BOSATT_I_RIKTET, - ) - - val vedtaksperiode = NullablePeriode(LocalDate.now().minusMonths(1), LocalDate.now()) - - val personerIPersongrunnlag = listOf(søker, barn1, barn2, barn3).map { it.tilMinimertPerson() } - - val målform = Målform.NB - - val beløp = "1234" - - @Test - fun `skal ta med alle barnas fødselsdatoer ved avslag på søker, men ikke inkludere dem i antall barn`() { - val brevBegrunnelseGrunnlagMedPersoner = - lagBrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse = Standardbegrunnelse.AVSLAG_BOR_HOS_SØKER, - personIdenter = listOf(søker).map { it.aktør.aktivFødselsnummer() }, - vedtakBegrunnelseType = VedtakBegrunnelseType.AVSLAG, - ) - - val brevbegrunnelse = - brevBegrunnelseGrunnlagMedPersoner.tilBrevBegrunnelse( - vedtaksperiode = vedtaksperiode, - personerIPersongrunnlag = personerIPersongrunnlag, - brevMålform = målform, - uregistrerteBarn = emptyList(), - minimerteUtbetalingsperiodeDetaljer = emptyList(), - minimerteRestEndredeAndeler = emptyList(), - ) as BegrunnelseData - - Assertions.assertEquals(true, brevbegrunnelse.gjelderSoker) - Assertions.assertEquals( - listOf(barn1, barn2, barn3).map { it.fødselsdato }.tilBrevTekst(), - brevbegrunnelse.barnasFodselsdatoer, - ) - Assertions.assertEquals(0, brevbegrunnelse.antallBarn) - Assertions.assertEquals(målform.tilSanityFormat(), brevbegrunnelse.maalform) - Assertions.assertEquals(Utils.formaterBeløp(0), brevbegrunnelse.belop) - } - - @Test - fun `skal ta med uregistrerte barn`() { - val uregistrerteBarn = - listOf( - lagPerson(type = PersonType.BARN), - lagPerson(type = PersonType.BARN), - ).map { - BarnMedOpplysninger( - ident = it.aktør.aktivFødselsnummer(), - fødselsdato = it.fødselsdato, - ).tilMinimertUregistrertBarn() - } - - val brevBegrunnelseGrunnlagMedPersoner = - lagBrevBegrunnelseGrunnlagMedPersoner( - standardbegrunnelse = Standardbegrunnelse.AVSLAG_UREGISTRERT_BARN, - personIdenter = emptyList(), - vedtakBegrunnelseType = VedtakBegrunnelseType.AVSLAG, - ) - - val brevbegrunnelse = - brevBegrunnelseGrunnlagMedPersoner.tilBrevBegrunnelse( - vedtaksperiode = vedtaksperiode, - personerIPersongrunnlag = personerIPersongrunnlag, - brevMålform = målform, - uregistrerteBarn = uregistrerteBarn, - minimerteUtbetalingsperiodeDetaljer = emptyList(), - minimerteRestEndredeAndeler = emptyList(), - ) as BegrunnelseData - - Assertions.assertEquals(false, brevbegrunnelse.gjelderSoker) - Assertions.assertEquals( - uregistrerteBarn.map { it.fødselsdato!! }.tilBrevTekst(), - brevbegrunnelse.barnasFodselsdatoer, - ) - Assertions.assertEquals(2, brevbegrunnelse.antallBarn) - Assertions.assertEquals(målform.tilSanityFormat(), brevbegrunnelse.maalform) - Assertions.assertEquals(Utils.formaterBeløp(0), brevbegrunnelse.belop) - } -} diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeServiceUtilsTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeServiceUtilsTest.kt deleted file mode 100644 index 90837dd93ba..00000000000 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/VedtaksperiodeServiceUtilsTest.kt +++ /dev/null @@ -1,271 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode - -import no.nav.familie.ba.sak.common.NullablePeriode -import no.nav.familie.ba.sak.common.lagBehandling -import no.nav.familie.ba.sak.common.lagEndretUtbetalingAndelMedAndelerTilkjentYtelse -import no.nav.familie.ba.sak.common.lagPerson -import no.nav.familie.ba.sak.common.lagTestPersonopplysningGrunnlag -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.common.lagVilkårsvurdering -import no.nav.familie.ba.sak.common.toYearMonth -import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat -import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType -import no.nav.familie.ba.sak.kjerne.brev.domene.RestBehandlingsgrunnlagForBrev -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertPersonResultat -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertRestEndretUtbetalingAndel -import no.nav.familie.ba.sak.kjerne.brev.hentPersonidenterGjeldendeForBegrunnelse -import no.nav.familie.ba.sak.kjerne.fagsak.FagsakType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.Standardbegrunnelse -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.VedtakBegrunnelseType -import no.nav.familie.ba.sak.kjerne.vedtak.begrunnelser.periodeErOppyltForYtelseType -import no.nav.familie.ba.sak.kjerne.vedtak.domene.tilMinimertPerson -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test -import java.time.LocalDate - -class VedtaksperiodeServiceUtilsTest { - @Test - fun `Skal legge til alle barn med utbetaling ved utvidet barnetrygd`() { - val behandling = lagBehandling() - val søker = lagPerson(type = PersonType.SØKER) - val barn = lagPerson(type = PersonType.BARN) - - val persongrunnlag = - lagTestPersonopplysningGrunnlag(behandlingId = behandling.id, personer = arrayOf(søker, barn)) - val triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.UTVIDET_BARNETRYGD)) - val vilkårsvurdering = - lagVilkårsvurdering( - søkerAktør = søker.aktør, - behandling = behandling, - resultat = Resultat.OPPFYLT, - ) - val identerMedUtbetaling = listOf(barn.aktør.aktivFødselsnummer(), søker.aktør.aktivFødselsnummer()) - - val personidenterForBegrunnelse = - hentPersonidenterGjeldendeForBegrunnelse( - triggesAv = triggesAv, - vedtakBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - vedtaksperiodetype = Vedtaksperiodetype.UTBETALING, - periode = NullablePeriode(LocalDate.now().minusMonths(1), null), - restBehandlingsgrunnlagForBrev = - RestBehandlingsgrunnlagForBrev( - personerPåBehandling = persongrunnlag.personer.map { it.tilMinimertPerson() }, - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimerteEndredeUtbetalingAndeler = emptyList(), - fagsakType = FagsakType.NORMAL, - ), - identerMedUtbetalingPåPeriode = identerMedUtbetaling, - erFørsteVedtaksperiodePåFagsak = false, - minimerteUtbetalingsperiodeDetaljer = listOf(), - dødeBarnForrigePeriode = emptyList(), - begrunnelse = Standardbegrunnelse.INNVILGET_BOR_ALENE_MED_BARN, - ) - - Assertions.assertEquals( - setOf(barn.aktør.aktivFødselsnummer(), søker.aktør.aktivFødselsnummer()), - personidenterForBegrunnelse, - ) - } - - @Test - fun `Skal legge til alle barn fra endret utbetaling ved utvidet barnetrygd og endret utbetaling`() { - val behandling = lagBehandling() - val søker = lagPerson(type = PersonType.SØKER) - val barn1 = lagPerson(type = PersonType.BARN) - val barn2 = lagPerson(type = PersonType.BARN) - - val fom = LocalDate.now().withDayOfMonth(1) - val tom = - LocalDate.now().let { - it.withDayOfMonth(it.lengthOfMonth()) - } - - val persongrunnlag = - lagTestPersonopplysningGrunnlag(behandlingId = behandling.id, personer = arrayOf(søker, barn2)) - val triggesAv = lagTriggesAv(vilkår = setOf(Vilkår.UTVIDET_BARNETRYGD)) - val vilkårsvurdering = - lagVilkårsvurdering( - søkerAktør = søker.aktør, - behandling = behandling, - resultat = Resultat.OPPFYLT, - ) - - val identerMedUtbetaling = listOf(barn1.aktør.aktivFødselsnummer(), søker.aktør.aktivFødselsnummer()) - val endredeUtbetalingAndeler = - listOf( - lagEndretUtbetalingAndelMedAndelerTilkjentYtelse( - person = barn2, - fom = fom.toYearMonth(), - tom = tom.toYearMonth(), - ), - ) - - val personidenterForBegrunnelse = - hentPersonidenterGjeldendeForBegrunnelse( - triggesAv = triggesAv, - periode = NullablePeriode(fom, tom), - vedtakBegrunnelseType = VedtakBegrunnelseType.INNVILGET, - vedtaksperiodetype = Vedtaksperiodetype.UTBETALING, - restBehandlingsgrunnlagForBrev = - RestBehandlingsgrunnlagForBrev( - personerPåBehandling = persongrunnlag.personer.map { it.tilMinimertPerson() }, - minimertePersonResultater = vilkårsvurdering.personResultater.map { it.tilMinimertPersonResultat() }, - minimerteEndredeUtbetalingAndeler = - endredeUtbetalingAndeler - .map { it.tilMinimertRestEndretUtbetalingAndel() }, - fagsakType = FagsakType.NORMAL, - ), - identerMedUtbetalingPåPeriode = identerMedUtbetaling, - erFørsteVedtaksperiodePåFagsak = false, - minimerteUtbetalingsperiodeDetaljer = listOf(), - dødeBarnForrigePeriode = emptyList(), - begrunnelse = Standardbegrunnelse.INNVILGET_BOR_ALENE_MED_BARN, - ) - - Assertions.assertEquals( - setOf(barn1.aktør.aktivFødselsnummer(), barn2.aktør.aktivFødselsnummer(), søker.aktør.aktivFødselsnummer()), - personidenterForBegrunnelse.toSet(), - ) - } - - val ytelseTyperSmåbarnstillegg = - setOf(YtelseType.SMÅBARNSTILLEGG, YtelseType.UTVIDET_BARNETRYGD, YtelseType.ORDINÆR_BARNETRYGD) - val ytelseTyperUtvidetOgOrdinær = - setOf(YtelseType.UTVIDET_BARNETRYGD, YtelseType.ORDINÆR_BARNETRYGD) - val ytelseTyperOrdinær = - setOf(YtelseType.ORDINÆR_BARNETRYGD) - - @Test - fun `Skal gi riktig svar for småbarnstillegg-trigger ved innvilget VedtakBegrunnelseType`() { - Assertions.assertEquals( - true, - VedtakBegrunnelseType.INNVILGET.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperSmåbarnstillegg, - ytelserGjeldeneForSøkerForrigeMåned = emptyList(), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.INNVILGET.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = emptyList(), - ), - ) - } - - @Test - fun `Skal gi riktig svar for småbarnstillegg-trigger når VedtakBegrunnelseType er reduksjon`() { - Assertions.assertEquals( - true, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.SMÅBARNSTILLEGG), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperSmåbarnstillegg, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.SMÅBARNSTILLEGG), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.ORDINÆR_BARNETRYGD), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(), - ), - ) - } - - @Test - fun `Skal gi false når VedtakBegrunnelseType ikke er innvilget eller reduksjon `() { - Assertions.assertEquals( - false, - VedtakBegrunnelseType.AVSLAG.periodeErOppyltForYtelseType( - ytelseType = YtelseType.SMÅBARNSTILLEGG, - ytelseTyperForPeriode = ytelseTyperSmåbarnstillegg, - ytelserGjeldeneForSøkerForrigeMåned = emptyList(), - ), - ) - } - - @Test - fun `Skal gi riktig svar for utvidet-trigger ved innvilget`() { - Assertions.assertEquals( - true, - VedtakBegrunnelseType.INNVILGET.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = emptyList(), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.INNVILGET.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = emptyList(), - ), - ) - } - - @Test - fun `Skal gi riktig svar for utvidet barnetrygd-trigger når VedtakBegrunnelseType er reduksjon`() { - Assertions.assertEquals( - true, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.UTVIDET_BARNETRYGD), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperUtvidetOgOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.UTVIDET_BARNETRYGD), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(YtelseType.ORDINÆR_BARNETRYGD), - ), - ) - - Assertions.assertEquals( - false, - VedtakBegrunnelseType.REDUKSJON.periodeErOppyltForYtelseType( - ytelseType = YtelseType.UTVIDET_BARNETRYGD, - ytelseTyperForPeriode = ytelseTyperOrdinær, - ytelserGjeldeneForSøkerForrigeMåned = listOf(), - ), - ) - } -} diff --git "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/Vilk\303\245rUtilsTest.kt" "b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/Vilk\303\245rUtilsTest.kt" deleted file mode 100644 index 60ea70f1b22..00000000000 --- "a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/vedtaksperiode/Vilk\303\245rUtilsTest.kt" +++ /dev/null @@ -1,108 +0,0 @@ -package no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode - -import io.mockk.mockk -import no.nav.familie.ba.sak.common.Periode -import no.nav.familie.ba.sak.common.lagTriggesAv -import no.nav.familie.ba.sak.common.lagVilkårResultat -import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat -import no.nav.familie.ba.sak.kjerne.brev.domene.tilMinimertVilkårResultat -import no.nav.familie.ba.sak.kjerne.brev.erFørstePeriodeOgVilkårIkkeOppfylt -import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårResultat -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test -import java.time.LocalDate - -class VilkårUtilsTest { - val vedtaksperiode: Periode = - Periode( - fom = LocalDate.now().minusMonths(2), - tom = LocalDate.now().plusMonths(4), - ) - - val triggesAv = lagTriggesAv(deltbosted = false, vurderingAnnetGrunnlag = false, medlemskap = false) - val vilkårResultatIkkeOppfylt: VilkårResultat = - lagVilkårResultat( - resultat = Resultat.IKKE_OPPFYLT, - periodeFom = vedtaksperiode.fom, - periodeTom = vedtaksperiode.tom, - personResultat = mockk(relaxed = true), - ) - val vilkårResultatIkkeOppfyltDelvisOverlapp: VilkårResultat = - lagVilkårResultat( - resultat = Resultat.IKKE_OPPFYLT, - periodeFom = vedtaksperiode.fom.minusMonths(1), - periodeTom = vedtaksperiode.tom.plusMonths(1), - personResultat = mockk(relaxed = true), - ) - val vilkårResultatUtenforPeriode: VilkårResultat = - lagVilkårResultat( - resultat = Resultat.IKKE_OPPFYLT, - periodeFom = vedtaksperiode.tom.plusMonths(1), - periodeTom = vedtaksperiode.tom.plusMonths(3), - personResultat = mockk(relaxed = true), - ) - - val vilkårResultatOppfylt: VilkårResultat = - lagVilkårResultat( - resultat = Resultat.OPPFYLT, - periodeFom = vedtaksperiode.fom, - periodeTom = vedtaksperiode.tom, - personResultat = mockk(relaxed = true), - ) - - @Test - fun `Er førte periode dersom resultat ikke er godkjent og det ikke er noen andeler tilkjent ytelse før perioden`() { - Assertions.assertTrue( - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = true, - vilkårResultat = vilkårResultatIkkeOppfylt.tilMinimertVilkårResultat(), - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - ), - ) - Assertions.assertTrue( - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = true, - vilkårResultat = vilkårResultatIkkeOppfyltDelvisOverlapp.tilMinimertVilkårResultat(), - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - ), - ) - } - - @Test - fun `Er ikke førte periode dersom det er en andel tilkjent ytelse før perioden`() { - Assertions.assertFalse( - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = false, - vilkårResultat = vilkårResultatIkkeOppfylt.tilMinimertVilkårResultat(), - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - ), - ) - } - - @Test - fun `Er ikke førte periode dersom vilkårResultatet er oppfylt`() { - Assertions.assertFalse( - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = true, - vilkårResultat = vilkårResultatOppfylt.tilMinimertVilkårResultat(), - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - ), - ) - } - - @Test - fun `Er ikke førte periode dersom vilkårResultatet ikke overlapper med periode`() { - Assertions.assertFalse( - erFørstePeriodeOgVilkårIkkeOppfylt( - erFørsteVedtaksperiodePåFagsak = true, - vilkårResultat = vilkårResultatUtenforPeriode.tilMinimertVilkårResultat(), - vedtaksperiode = vedtaksperiode, - triggesAv = triggesAv, - ), - ) - } -} diff --git a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/EndringstidspunktTest.kt b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/EndringstidspunktTest.kt index 6f56f3f083f..9a4aeaf22d9 100644 --- a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/EndringstidspunktTest.kt +++ b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/EndringstidspunktTest.kt @@ -10,11 +10,8 @@ import no.nav.familie.ba.sak.datagenerator.vilkårsvurdering.lagVilkårsvurderin import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingUnderkategori import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelerTilkjentYtelseOgEndreteUtbetalingerService import no.nav.familie.ba.sak.kjerne.brev.BrevmalService -import no.nav.familie.ba.sak.kjerne.endretutbetaling.EndretUtbetalingAndelHentOgPersisterService import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService import no.nav.familie.ba.sak.kjerne.steg.StegService import no.nav.familie.ba.sak.kjerne.steg.StegType import no.nav.familie.ba.sak.kjerne.vedtak.VedtakService @@ -25,7 +22,6 @@ import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårResultat -import no.nav.familie.unleash.UnleashService import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired @@ -35,13 +31,9 @@ class EndringstidspunktTest( @Autowired private val fagsakService: FagsakService, @Autowired private val vedtakService: VedtakService, @Autowired private val stegService: StegService, - @Autowired private val persongrunnlagService: PersongrunnlagService, @Autowired private val vilkårsvurderingService: VilkårsvurderingService, @Autowired private val vedtaksperiodeService: VedtaksperiodeService, - @Autowired private val endretUtbetalingAndelHentOgPersisterService: EndretUtbetalingAndelHentOgPersisterService, - @Autowired private val andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, @Autowired private val brevmalService: BrevmalService, - @Autowired private val unleashService: UnleashService, ) : AbstractVerdikjedetest() { @Test fun `Skal filtrere bort alle vedtaksperioder før endringstidspunktet`() { @@ -87,12 +79,8 @@ class EndringstidspunktTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) val sisteDagUtenDeltBostedOppfylt = barnFødselsdato.plusYears(1).sisteDagIMåned() @@ -145,12 +133,8 @@ class EndringstidspunktTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) val vedtak = vedtakService.hentAktivForBehandlingThrows(behandlingId = revurdering.id) diff --git "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/RevurderingD\303\270dsfallTest.kt" "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/RevurderingD\303\270dsfallTest.kt" index 8279ab113b3..928b13d95c0 100644 --- "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/RevurderingD\303\270dsfallTest.kt" +++ "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/verdikjedetester/RevurderingD\303\270dsfallTest.kt" @@ -10,12 +10,9 @@ import no.nav.familie.ba.sak.kjerne.behandling.NyBehandlingHendelse import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingUnderkategori import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelerTilkjentYtelseOgEndreteUtbetalingerService import no.nav.familie.ba.sak.kjerne.brev.BrevmalService -import no.nav.familie.ba.sak.kjerne.endretutbetaling.EndretUtbetalingAndelHentOgPersisterService import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService import no.nav.familie.ba.sak.kjerne.fagsak.FagsakStatus -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService import no.nav.familie.ba.sak.kjerne.personident.PersonidentService import no.nav.familie.ba.sak.kjerne.steg.StegService import no.nav.familie.ba.sak.kjerne.steg.StegType @@ -27,7 +24,6 @@ import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårResultat import no.nav.familie.ba.sak.task.BehandleFødselshendelseTask -import no.nav.familie.unleash.UnleashService import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired @@ -40,13 +36,9 @@ class RevurderingDødsfallTest( @Autowired private val personidentService: PersonidentService, @Autowired private val vedtakService: VedtakService, @Autowired private val stegService: StegService, - @Autowired private val persongrunnlagService: PersongrunnlagService, @Autowired private val vilkårsvurderingService: VilkårsvurderingService, @Autowired private val vedtaksperiodeService: VedtaksperiodeService, - @Autowired private val endretUtbetalingAndelHentOgPersisterService: EndretUtbetalingAndelHentOgPersisterService, - @Autowired private val andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, @Autowired private val brevmalService: BrevmalService, - @Autowired private val unleashService: UnleashService, ) : AbstractVerdikjedetest() { @Test fun `Dødsfall bruker skal kjøre gjennom`() { @@ -118,12 +110,8 @@ class RevurderingDødsfallTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) val restFagsakEtterBehandlingAvsluttet = @@ -194,12 +182,8 @@ class RevurderingDødsfallTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) } } diff --git "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/vilk\303\245rsvurdering/Vilk\303\245rsvurderingFlyttResultaterTest.kt" "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/vilk\303\245rsvurdering/Vilk\303\245rsvurderingFlyttResultaterTest.kt" index 8e0a554bdeb..074a876bf66 100644 --- "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/vilk\303\245rsvurdering/Vilk\303\245rsvurderingFlyttResultaterTest.kt" +++ "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/vilk\303\245rsvurdering/Vilk\303\245rsvurderingFlyttResultaterTest.kt" @@ -12,12 +12,9 @@ import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingUnderkategori import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak -import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelerTilkjentYtelseOgEndreteUtbetalingerService import no.nav.familie.ba.sak.kjerne.brev.BrevmalService -import no.nav.familie.ba.sak.kjerne.endretutbetaling.EndretUtbetalingAndelHentOgPersisterService import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType -import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService import no.nav.familie.ba.sak.kjerne.personident.PersonidentService import no.nav.familie.ba.sak.kjerne.steg.StegService import no.nav.familie.ba.sak.kjerne.steg.StegType @@ -25,7 +22,6 @@ import no.nav.familie.ba.sak.kjerne.vedtak.VedtakService import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.VedtaksperiodeService import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkårsvurdering -import no.nav.familie.unleash.UnleashService import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test @@ -42,20 +38,13 @@ class VilkårsvurderingFlyttResultaterTest( @Autowired private val personidentService: PersonidentService, @Autowired - private val persongrunnlagService: PersongrunnlagService, - @Autowired private val vedtakService: VedtakService, @Autowired private val stegService: StegService, @Autowired private val vedtaksperiodeService: VedtaksperiodeService, @Autowired - private val endretUtbetalingAndelHentOgPersisterService: EndretUtbetalingAndelHentOgPersisterService, - @Autowired - private val andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService, - @Autowired private val brevmalService: BrevmalService, - @Autowired private val unleashService: UnleashService, ) : AbstractSpringIntegrationTest() { @BeforeAll fun init() { @@ -133,12 +122,8 @@ class VilkårsvurderingFlyttResultaterTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) val vilkårsvurderingFraForrigeBehandlingFørNyRevurdering = @@ -157,12 +142,8 @@ class VilkårsvurderingFlyttResultaterTest( vilkårsvurderingService = vilkårsvurderingService, stegService = stegService, vedtaksperiodeService = vedtaksperiodeService, - endretUtbetalingAndelHentOgPersisterService = endretUtbetalingAndelHentOgPersisterService, fagsakService = fagsakService, - persongrunnlagService = persongrunnlagService, - andelerTilkjentYtelseOgEndreteUtbetalingerService = andelerTilkjentYtelseOgEndreteUtbetalingerService, brevmalService = brevmalService, - unleashService = unleashService, ) // Sjekker at vilkårsvurderingen fra forrige behandling ikke er endret diff --git "a/src/test/resources/brevperiodeCaser/AUTOBREV_18_\303\205R.json" "b/src/test/resources/brevperiodeCaser/AUTOBREV_18_\303\205R.json" deleted file mode 100644 index e7581a901c6..00000000000 --- "a/src/test/resources/brevperiodeCaser/AUTOBREV_18_\303\205R.json" +++ /dev/null @@ -1,79 +0,0 @@ -{ - "beskrivelse": "Reduksjon autobrev 18 år", - "fom": "2021-12-01", - "tom": null, - "vedtaksperiodetype": "FORTSATT_INNVILGET", - "begrunnelser": [ - "Standardbegrunnelse$REDUKSJON_UNDER_18_ÅR_AUTOVEDTAK" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2003-12-10", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "UNDER_18_ÅR", - "resultat": "OPPFYLT", - "periodeFom": "2003-12-10", - "periodeTom": "2021-12-10", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2011-09-14", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1973-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "Fra 1. desember 2021 får du:", - "tom": "", - "belop": 1054, - "antallBarn": 1, - "barnasFodselsdager": "14.09.11", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "10.12.03", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "november 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonAutovedtakBarn18Aar", - "belop": 0 - } - ], - "type": "fortsattInnvilget" - } -} diff --git "a/src/test/resources/brevperiodeCaser/AUTOBREV_6_\303\205R.json" "b/src/test/resources/brevperiodeCaser/AUTOBREV_6_\303\205R.json" deleted file mode 100644 index 04eddd10968..00000000000 --- "a/src/test/resources/brevperiodeCaser/AUTOBREV_6_\303\205R.json" +++ /dev/null @@ -1,61 +0,0 @@ -{ - "beskrivelse": "Reduksjon autobrev 6 år", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$REDUKSJON_UNDER_6_ÅR_AUTOVEDTAK" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2015-09-03", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1354, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 1354, - "antallBarn": 1, - "barnasFodselsdager": "03.09.15", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "03.09.15", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "03.09.15", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonAutovedtakBarn6Aar", - "belop": 1354 - } - ], - "type": "innvilgelse" - } -} diff --git a/src/test/resources/brevperiodeCaser/AVSLAG.json b/src/test/resources/brevperiodeCaser/AVSLAG.json deleted file mode 100644 index b89242e61a0..00000000000 --- a/src/test/resources/brevperiodeCaser/AVSLAG.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "beskrivelse": "Avslag 1 barn bor ikke hos søker", - "fom": "2021-01-01", - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [ - "Standardbegrunnelse$AVSLAG_BOR_HOS_SØKER" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2013-12-10", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "IKKE_OPPFYLT", - "periodeFom": "2021-01-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [ - "Standardbegrunnelse$AVSLAG_BOR_HOS_SØKER" - ] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1973-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. januar 2021", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "10.12.13", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "januar 2021", - "maalform": "bokmaal", - "apiNavn": "avslagBorHosSoker", - "belop": 0 - } - ], - "type": "avslag" - } -} diff --git "a/src/test/resources/brevperiodeCaser/AVSLAG_FOR_S\303\230KER_OG_ETT_BARN.json" "b/src/test/resources/brevperiodeCaser/AVSLAG_FOR_S\303\230KER_OG_ETT_BARN.json" deleted file mode 100644 index 2b730a21c00..00000000000 --- "a/src/test/resources/brevperiodeCaser/AVSLAG_FOR_S\303\230KER_OG_ETT_BARN.json" +++ /dev/null @@ -1,102 +0,0 @@ -{ - "beskrivelse": "Avslag. Fire barn, men kun søker og ett barn som har utgjørende vilkår", - "fom": "2021-10-01", - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [ - "Standardbegrunnelse$AVSLAG_BOSATT_I_RIKET" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "2009-04-15", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-10-10", - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [ - "Standardbegrunnelse$AVSLAG_BOSATT_I_RIKET" - ] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1969-07-29", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-10-10", - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [ - "Standardbegrunnelse$AVSLAG_BOSATT_I_RIKET" - ] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2003-03-16", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2010-09-06", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2004-03-10", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "1. oktober 2021", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "16.03.03, 10.03.04, 15.04.09 og 06.09.10", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 0, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "oktober 2021", - "maalform": "bokmaal", - "apiNavn": "avslagBosattIRiket", - "belop": null - } - ], - "type": "avslag" - } -} diff --git a/src/test/resources/brevperiodeCaser/AVSLAG_FRITEKST.json b/src/test/resources/brevperiodeCaser/AVSLAG_FRITEKST.json deleted file mode 100644 index 38e6b97005f..00000000000 --- a/src/test/resources/brevperiodeCaser/AVSLAG_FRITEKST.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "beskrivelse": "Avslag på behandling med 1 barn med fritekst.", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [], - "fritekster": [ - "Du får ikke barnetrygd fordi test 1", - "Du får ikke barnetrygd fordi test 2", - "Du får ikke barnetrygd fordi test 3" - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "LOVLIG_OPPHOLD", - "resultat": "IKKE_OPPFYLT", - "periodeFom": "1993-08-10", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "fritekst": "Du får ikke barnetrygd fordi test 1", - "type": "fritekst" - }, - { - "fritekst": "Du får ikke barnetrygd fordi test 2", - "type": "fritekst" - }, - { - "fritekst": "Du får ikke barnetrygd fordi test 3", - "type": "fritekst" - } - ], - "type": "avslag" - } -} diff --git a/src/test/resources/brevperiodeCaser/AVSLAG_MANGLER_OPPLYSNINGER.json b/src/test/resources/brevperiodeCaser/AVSLAG_MANGLER_OPPLYSNINGER.json deleted file mode 100644 index d486762288d..00000000000 --- a/src/test/resources/brevperiodeCaser/AVSLAG_MANGLER_OPPLYSNINGER.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "beskrivelse": "Avslag 1 barn. Søkt om utvidet, men bor med ektefelle. Bor ikke med barn.", - "fom": null, - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [ - "Standardbegrunnelse$AVSLAG_IKKE_FLYTTET_FRA_EKTEFELLE", - "Standardbegrunnelse$AVSLAG_FORELDRENE_BOR_SAMMEN" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": true, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2010-12-13", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "periodeFom": null, - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [ - "Standardbegrunnelse$AVSLAG_IKKE_FLYTTET_FRA_EKTEFELLE", - "Standardbegrunnelse$AVSLAG_FORELDRENE_BOR_SAMMEN" - ] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1980-01-01", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "UTVIDET_BARNETRYGD", - "periodeFom": null, - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "13.12.10", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 0, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": null, - "maalform": "bokmaal", - "apiNavn": "avslagIkkeFlyttetFraEktefelle", - "belop": 0 - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "13.12.10", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": null, - "maalform": "bokmaal", - "apiNavn": "avslagForeldreneBorSammen", - "belop": 0 - } - ], - "type": "avslagUtenPeriode" - } -} diff --git a/src/test/resources/brevperiodeCaser/AVSLAG_UREGISTRERT_BARN.json b/src/test/resources/brevperiodeCaser/AVSLAG_UREGISTRERT_BARN.json deleted file mode 100644 index 4d2ae7a1b21..00000000000 --- a/src/test/resources/brevperiodeCaser/AVSLAG_UREGISTRERT_BARN.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "beskrivelse": "Avslag uregistrert barn", - "fom": null, - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [ - "Standardbegrunnelse$AVSLAG_UREGISTRERT_BARN" - ], - "fritekster": [ - "Du har fått avslag fordi barnet ikke er registrert på samme adresse som deg og barnet ikke har fått norsk fødselsnummer ennå." - ], - "personerPåBehandling": [ - { - "fødselsdato": "1992-03-15", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-03-11", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - }, - { - "vilkårType": "LOVLIG_OPPHOLD", - "periodeFom": "2021-03-11", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "uregistrerteBarn": [ - { - "personIdent": "", - "navn": "Barn Barnesen", - "fødselsdato": "2017-12-27" - } - ], - "erFørsteVedtaksperiodePåFagsak": true, - "brevMålform": "NB", - "forventetOutput": { - "fom": "", - "tom": "", - "barnasFodselsdager": "", - "antallBarn": 0, - "belop": 0, - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "27.12.17", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": null, - "maalform": "bokmaal", - "apiNavn": "avslagUregistrertBarn", - "belop": 0 - }, - { - "fritekst": "Du har fått avslag fordi barnet ikke er registrert på samme adresse som deg og barnet ikke har fått norsk fødselsnummer ennå.", - "type": "fritekst" - } - ], - "type": "avslagUtenPeriode" - } -} diff --git a/src/test/resources/brevperiodeCaser/AVSLAG_UTVIDET_INGEN_PERIODE.json b/src/test/resources/brevperiodeCaser/AVSLAG_UTVIDET_INGEN_PERIODE.json deleted file mode 100644 index dd275133378..00000000000 --- a/src/test/resources/brevperiodeCaser/AVSLAG_UTVIDET_INGEN_PERIODE.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "beskrivelse": "Avslag uten periode på utvidet barnetrygd med endret utbetaling", - "fom": null, - "tom": null, - "vedtaksperiodetype": "AVSLAG", - "begrunnelser": [ - "Standardbegrunnelse$AVSLAG_IKKE_MEKLINGSATTEST" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "2017-09-26", - "type": "BARN", - "overstyrteVilkårresultater": [ - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2022-01" - }, - "årsak": "DELT_BOSTED" - } - ], - "utbetalinger": [] - }, - { - "fødselsdato": "2013-06-02", - "type": "BARN", - "overstyrteVilkårresultater": [ - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2022-01" - }, - "årsak": "DELT_BOSTED" - } - ], - "utbetalinger": [] - }, - { - "fødselsdato": "1993-02-18", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "UTVIDET_BARNETRYGD", - "periodeFom": null, - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": true, - "standardbegrunnelser": [ - "Standardbegrunnelse$AVSLAG_IKKE_MEKLINGSATTEST" - ] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "02.06.13 og 26.09.17", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 0, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": null, - "maalform": "bokmaal", - "apiNavn": "avslagIkkeMeklingsattest", - "belop": 0 - } - ], - "type": "avslagUtenPeriode" - } -} diff --git a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING.json b/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING.json deleted file mode 100644 index 6c2a0a0ee3e..00000000000 --- a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "beskrivelse": "Innvilget 1 barn bor med søker fra august 2021 på behandling med 1 barn", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_INGEN_UTBETALING_NY" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-05-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2021-12" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 0, - "erPåvirketAvEndring": true, - "prosent": 0 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": " til 31. desember 2021", - "belop": 0, - "antallBarn": 1, - "barnasFodselsdager": "20.01.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "20.01.19", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 1, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "endretUtbetalingDeltBostedIngenUtbetaling", - "belop": 0, - "soknadstidspunkt": "31.01.21" - } - ], - "type": "innvilgelseIngenUtbetaling" - } -} diff --git a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_AVTALEDATO.json b/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_AVTALEDATO.json deleted file mode 100644 index 4f01f234fe9..00000000000 --- a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_AVTALEDATO.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "beskrivelse": "Innvilget 1 barn med endringsperiode", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_ENDRET_UTBETALING" - ], - "fritekster": [], - "utvidetScenario": "IKKE_UTVIDET_YTELSE", - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-05-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2021-12" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31", - "avtaletidspunktDeltBosted": "2021-04-02" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 0, - "erPåvirketAvEndring": true, - "prosent": 0 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": " til 31. desember 2021", - "belop": 0, - "antallBarn": 1, - "barnasFodselsdager": "20.01.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "20.01.19", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 1, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "endretUtbetalingDeltBostedEndretUtbetaling", - "belop": 0, - "soknadstidspunkt": "31.01.21", - "avtaletidspunktDeltBosted": "02.04.21" - } - ], - "type": "innvilgelseIngenUtbetaling" - } -} diff --git a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_FLERE_AVTALEDATOER.json b/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_FLERE_AVTALEDATOER.json deleted file mode 100644 index 58531144f03..00000000000 --- a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_DELT_BOSTED_FLERE_AVTALEDATOER.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "beskrivelse": "Innvilget 2 barn med endringsperioder med ulike avtaledatoer", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$ENDRET_UTBETALINGSPERIODE_DELT_BOSTED_ENDRET_UTBETALING" - ], - "fritekster": [], - "utvidetScenario": "IKKE_UTVIDET_YTELSE", - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-05-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2021-12" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31", - "avtaletidspunktDeltBosted": "2021-04-02" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 0, - "erPåvirketAvEndring": true, - "prosent": 0 - } - ] - }, - { - "fødselsdato": "2017-06-14", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-05-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2021-12" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31", - "avtaletidspunktDeltBosted": "2021-10-07" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 0, - "erPåvirketAvEndring": true, - "prosent": 0 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": " til 31. desember 2021", - "belop": 0, - "antallBarn": 2, - "barnasFodselsdager": "14.06.17 og 20.01.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "20.01.19", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 1, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "endretUtbetalingDeltBostedEndretUtbetaling", - "belop": 0, - "soknadstidspunkt": "31.01.21", - "avtaletidspunktDeltBosted": "02.04.21" - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "14.06.17", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "14.06.17", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 1, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "endretUtbetalingDeltBostedEndretUtbetaling", - "belop": 0, - "soknadstidspunkt": "31.01.21", - "avtaletidspunktDeltBosted": "07.10.21" - } - ], - "type": "innvilgelseIngenUtbetaling" - } -} diff --git a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_ETTERBETALING.json b/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_ETTERBETALING.json deleted file mode 100644 index 518b63de395..00000000000 --- a/src/test/resources/brevperiodeCaser/ENDRET_UTBETALING_ETTERBETALING.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "beskrivelse": "Innvilget 1 barn fra august 2021 på behandling med 1 barn, med overstyrt etterbetalingsperiode ", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$ETTER_ENDRET_UTBETALING_ETTERBETALING" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2017-09", - "tom": "2021-08" - }, - "årsak": "ETTERBETALING_3ÅR", - "søknadstidspunkt": "2021-01-31" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "til 31. desember 2021 ", - "belop": 1054, - "antallBarn": 1, - "barnasFodselsdager": "20.01.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "etterEndretUtbetalingEtterbetalingTreAarTilbakeITid", - "belop": 1054, - "soknadstidspunkt": "31.01.21" - } - ], - "type": "innvilgelse" - } -} diff --git a/src/test/resources/brevperiodeCaser/ETTER_ENDRET_UTBETALING.json b/src/test/resources/brevperiodeCaser/ETTER_ENDRET_UTBETALING.json deleted file mode 100644 index c33ca018f8c..00000000000 --- a/src/test/resources/brevperiodeCaser/ETTER_ENDRET_UTBETALING.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "beskrivelse": "Innvilget delt bosted barn og utvidet. Barn og utvidet endret utbetaling i forrige periode.", - "fom": "2019-07-01", - "tom": "2020-02-29", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$ETTER_ENDRET_UTBETALING_HAR_AVTALE_DELT_BOSTED" - ], - "fritekster": [], - "utvidetScenario": "IKKE_UTVIDET_YTELSE", - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2015-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2019-05-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2019-06", - "tom": "2019-06" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31", - "avtaletidspunktDeltBosted": "2021-04-02" - } - ], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 527, - "erPåvirketAvEndring": false, - "prosent": 50 - } - ] - }, - { - "fødselsdato": "2012-06-13", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2019-06", - "tom": "2019-06" - }, - "årsak": "DELT_BOSTED", - "søknadstidspunkt": "2021-01-31", - "avtaletidspunktDeltBosted": "2021-04-02" - } - ], - "utbetalinger": [ - { - "ytelseType": "UTVIDET_BARNETRYGD", - "utbetaltPerMnd": 527, - "erPåvirketAvEndring": false, - "prosent": 50 - } - ] - } - ], - "forventetOutput": { - "fom": "1. juli 2019", - "tom": "til 29. februar 2020 ", - "belop": 2108, - "antallBarn": 2, - "barnasFodselsdager": "13.06.12 og 20.01.15", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "20.01.15", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.15", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "juni 2019", - "maalform": "bokmaal", - "apiNavn": "etterEndretUtbetalingAvtaleDeltBosted", - "belop": 2108, - "soknadstidspunkt": "31.01.21", - "sokersRettTilUtvidet": "sokerFaarUtvidet" - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/E\303\230S_INNVILGET.json" "b/src/test/resources/brevperiodeCaser/E\303\230S_INNVILGET.json" deleted file mode 100644 index b39b4d9f273..00000000000 --- "a/src/test/resources/brevperiodeCaser/E\303\230S_INNVILGET.json" +++ /dev/null @@ -1,73 +0,0 @@ -{ - "beskrivelse": "Innvilget EØS primærland", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [], - "eøsBegrunnelser": [ - "EØSStandardbegrunnelse$INNVILGET_PRIMÆRLAND_STANDARD" - ], - "kompetanser": [ - { - "id": "1", - "søkersAktivitet": "ARBEIDER", - "annenForeldersAktivitet": "INAKTIV", - "annenForeldersAktivitetsland": "Sverige", - "barnetsBostedsland": "Sverige", - "resultat": "NORGE_ER_PRIMÆRLAND" - } - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ], - "kompetanseIder": [ - "1" - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "til 31. desember 2021 ", - "belop": 1054, - "antallBarn": 1, - "barnasFodselsdager": "20.01.20", - "begrunnelser": [ - { - "apiNavn": "innvilgetPrimarlandStandard", - "annenForeldersAktivitet": "INAKTIV", - "annenForeldersAktivitetsland": "Sverige", - "barnetsBostedsland": "Sverige", - "barnasFodselsdatoer": "20.01.20", - "antallBarn": 1, - "maalform": "bokmaal", - "sokersAktivitet": "ARBEIDER", - "type": "eøsbegrunnelse" - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/E\303\230S_OPPH\303\230R.json" "b/src/test/resources/brevperiodeCaser/E\303\230S_OPPH\303\230R.json" deleted file mode 100644 index 47e085a4251..00000000000 --- "a/src/test/resources/brevperiodeCaser/E\303\230S_OPPH\303\230R.json" +++ /dev/null @@ -1,66 +0,0 @@ -{ - "beskrivelse": "Opphør EØS primærland", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "OPPHØR", - "begrunnelser": [], - "eøsBegrunnelser": [ - "EØSStandardbegrunnelse$OPPHØR_EØS_STANDARD" - ], - "kompetanserSomStopperRettFørPeriode": [ - { - "id": "1", - "søkersAktivitet": "ARBEIDER", - "annenForeldersAktivitet": "IKKE_AKTUELT", - "annenForeldersAktivitetsland": "Sverige", - "barnetsBostedsland": "Sverige", - "resultat": "NORGE_ER_PRIMÆRLAND" - } - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [], - "kompetanseIder": [ - "1" - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "til 31. desember 2021 ", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "apiNavn": "opphorEosStandard", - "annenForeldersAktivitet": "IKKE_AKTUELT", - "annenForeldersAktivitetsland": "Sverige", - "barnetsBostedsland": "Sverige", - "barnasFodselsdatoer": "20.01.20", - "antallBarn": 1, - "maalform": "bokmaal", - "sokersAktivitet": "ARBEIDER", - "type": "eøsbegrunnelse" - } - ], - "type": "opphor" - } -} diff --git a/src/test/resources/brevperiodeCaser/FORTSATT_INNVILGET.json b/src/test/resources/brevperiodeCaser/FORTSATT_INNVILGET.json deleted file mode 100644 index b11118372fb..00000000000 --- a/src/test/resources/brevperiodeCaser/FORTSATT_INNVILGET.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "beskrivelse": "Fortsatt innvilget 2 barn fra august 2021", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "FORTSATT_INNVILGET", - "begrunnelser": [ - "Standardbegrunnelse$FORTSATT_INNVILGET_SØKER_OG_BARN_BOSATT_I_RIKET", - "Standardbegrunnelse$FORTSATT_INNVILGET_BOR_MED_SØKER" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2020-12-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "Du får:", - "tom": "", - "belop": 2108, - "antallBarn": 2, - "barnasFodselsdager": "20.01.20 og 20.12.20", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20 og 20.12.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.20 og 20.12.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 2, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 2, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "fortsattInnvilgetSokerOgBarnBosattIRiket", - "belop": 2108 - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20 og 20.12.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.20 og 20.12.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 2, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 2, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "fortsattInnvilgetBorMedSoker", - "belop": 2108 - } - ], - "type": "fortsattInnvilget" - } -} diff --git "a/src/test/resources/brevperiodeCaser/F\303\230DSELSHENDELSE.json" "b/src/test/resources/brevperiodeCaser/F\303\230DSELSHENDELSE.json" deleted file mode 100644 index 442b9e59d2e..00000000000 --- "a/src/test/resources/brevperiodeCaser/F\303\230DSELSHENDELSE.json" +++ /dev/null @@ -1,61 +0,0 @@ -{ - "beskrivelse": "Reduksjon autobrev 6 år", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_FØDSELSHENDELSE_NYFØDT_BARN_FØRSTE" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2021-08-01", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1354, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 1354, - "antallBarn": 1, - "barnasFodselsdager": "01.08.21", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "01.08.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "01.08.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetFodselshendelseNyfodtBarnForste", - "belop": 1354 - } - ], - "type": "innvilgelse" - } -} diff --git a/src/test/resources/brevperiodeCaser/INGEN_BEGRUNNELSER.json b/src/test/resources/brevperiodeCaser/INGEN_BEGRUNNELSER.json deleted file mode 100644 index 54a38aa6ce1..00000000000 --- a/src/test/resources/brevperiodeCaser/INGEN_BEGRUNNELSER.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "beskrivelse": "Ingen begrunnelser 2 barn fra august 2021", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": null -} diff --git "a/src/test/resources/brevperiodeCaser/INNVILGET_BOR_HOS_S\303\230KER.json" "b/src/test/resources/brevperiodeCaser/INNVILGET_BOR_HOS_S\303\230KER.json" deleted file mode 100644 index f09b1c3a927..00000000000 --- "a/src/test/resources/brevperiodeCaser/INNVILGET_BOR_HOS_S\303\230KER.json" +++ /dev/null @@ -1,71 +0,0 @@ -{ - "beskrivelse": "Innvilget 1 barn bor med søker fra august 2021 på behandling med 1 barn", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_BOR_HOS_SØKER" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-08-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "til 31. desember 2021 ", - "belop": 1054, - "antallBarn": 1, - "barnasFodselsdager": "20.01.20", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetBorHosSoker", - "belop": 1054 - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/INNVILGET_DELT_BOSTED_OG_BOR_HOS_S\303\230KER.json" "b/src/test/resources/brevperiodeCaser/INNVILGET_DELT_BOSTED_OG_BOR_HOS_S\303\230KER.json" deleted file mode 100644 index dd0b77658d9..00000000000 --- "a/src/test/resources/brevperiodeCaser/INNVILGET_DELT_BOSTED_OG_BOR_HOS_S\303\230KER.json" +++ /dev/null @@ -1,112 +0,0 @@ -{ - "beskrivelse": "Innvilget 2 barn bor med søker. Ett barn delt bosted.", - "fom": "2021-09-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_BOR_HOS_SØKER", - "Standardbegrunnelse$INNVILGET_AVTALE_DELT_BOSTED_FÅR_FRA_FLYTTETIDSPUNKT" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-08-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2021-02-13", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-08-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 527, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "til 31. desember 2021 ", - "belop": 1581, - "antallBarn": 2, - "barnasFodselsdager": "20.01.20 og 13.02.21", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetBorHosSoker", - "belop": 1054 - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "13.02.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "13.02.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetAvtaleDeltBostedFaarFraFlyttetidspunkt", - "belop": 527 - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER.json" "b/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER.json" deleted file mode 100644 index 7b14687f94d..00000000000 --- "a/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER.json" +++ /dev/null @@ -1,118 +0,0 @@ -{ - "beskrivelse": "Innvilget. Fire barn, men kun søker som har utgjørende vilkår", - "fom": "2021-11-01", - "tom": "2022-02-28", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_TREDJELANDSBORGER_LOVLIG_OPPHOLD_FOR_BOSATT_I_NORGE" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "1969-07-29", - "type": "SØKER", - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [], - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-10-10", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - }, - { - "vilkårType": "LOVLIG_OPPHOLD", - "periodeFom": "2016-07-01", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ] - }, - { - "fødselsdato": "2009-04-15", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2003-03-16", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2010-09-06", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2004-03-10", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "1. november 2021", - "tom": "til 28. februar 2022 ", - "belop": 3162, - "antallBarn": 3, - "barnasFodselsdager": "10.03.04, 15.04.09 og 06.09.10", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "10.03.04, 15.04.09 og 06.09.10", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 3, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "oktober 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetTredjelandsborgerLovligOppholdForBosattINorge", - "belop": 3162 - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER_OG_ETT_BARN.json" "b/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER_OG_ETT_BARN.json" deleted file mode 100644 index 5c43ef7a803..00000000000 --- "a/src/test/resources/brevperiodeCaser/INNVILGET_FOR_S\303\230KER_OG_ETT_BARN.json" +++ /dev/null @@ -1,119 +0,0 @@ -{ - "beskrivelse": "Innvilget. Fire barn, men kun søker og ett barn som har utgjørende vilkår", - "fom": "2021-11-01", - "tom": "2022-02-28", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_TREDJELANDSBORGER_LOVLIG_OPPHOLD_FOR_BOSATT_I_NORGE" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "2009-04-15", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-10-10", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2003-03-16", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2010-09-06", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2004-03-10", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1969-07-29", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOSATT_I_RIKET", - "periodeFom": "2021-10-10", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "1. november 2021", - "tom": "til 28. februar 2022 ", - "belop": 3162, - "antallBarn": 3, - "barnasFodselsdager": "10.03.04, 15.04.09 og 06.09.10", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "10.03.04, 15.04.09 og 06.09.10", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "15.04.09", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 3, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "oktober 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetTredjelandsborgerLovligOppholdForBosattINorge", - "belop": 3162 - } - ], - "type": "innvilgelse" - } -} diff --git a/src/test/resources/brevperiodeCaser/INNVILGET_MED_REDUKSJON.json b/src/test/resources/brevperiodeCaser/INNVILGET_MED_REDUKSJON.json deleted file mode 100644 index fd7cfe5232f..00000000000 --- a/src/test/resources/brevperiodeCaser/INNVILGET_MED_REDUKSJON.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "beskrivelse": "Innvilget med reduksjon 2 barn fra august 2021. Begrunnelsene skal bli sortert.", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_BOR_HOS_SØKER", - "Standardbegrunnelse$REDUKSJON_FLYTTET_BARN" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-03-14", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-08-01", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2020-01-20", - "periodeTom": "2021-08-01", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 1054, - "antallBarn": 1, - "barnasFodselsdager": "14.03.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonFlyttetBarn", - "belop": 0 - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "14.03.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "14.03.19", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "innvilgetBorHosSoker", - "belop": 1054 - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/OPPH\303\230R.json" "b/src/test/resources/brevperiodeCaser/OPPH\303\230R.json" deleted file mode 100644 index 6a2eb353576..00000000000 --- "a/src/test/resources/brevperiodeCaser/OPPH\303\230R.json" +++ /dev/null @@ -1,64 +0,0 @@ -{ - "beskrivelse": "Opphør 1 barn bor med søker til august 2021 på behandling med 1 barn", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "OPPHØR", - "begrunnelser": [ - "Standardbegrunnelse$OPPHØR_BARN_FLYTTET_FRA_SØKER" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-01-20", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2020-01-20", - "periodeTom": "2021-08-01", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 0, - "antallBarn": 0, - "barnasFodselsdager": "", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "20.01.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "opphorBarnBorIkkeMedSoker", - "belop": 0 - } - ], - "type": "opphor" - } -} diff --git "a/src/test/resources/brevperiodeCaser/REDUKSJON_BOR_MED_S\303\230KER_OG_DELT_BOSTED.json" "b/src/test/resources/brevperiodeCaser/REDUKSJON_BOR_MED_S\303\230KER_OG_DELT_BOSTED.json" deleted file mode 100644 index 6e5ac84e9ea..00000000000 --- "a/src/test/resources/brevperiodeCaser/REDUKSJON_BOR_MED_S\303\230KER_OG_DELT_BOSTED.json" +++ /dev/null @@ -1,148 +0,0 @@ -{ - "beskrivelse": "Reduksjon start delt bosted og reduksjon barn flytter fra søker", - "fom": "2021-11-01", - "tom": "2021-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$REDUKSJON_FLYTTET_BARN", - "Standardbegrunnelse$REDUKSJON_DELT_BARNETRYGD_ANNEN_FORELDER_SØKT" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "1968-12-30", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "UTVIDET_BARNETRYGD", - "periodeFom": "2021-10-12", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "UTVIDET_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2011-07-28", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2020-10-30", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "periodeFom": "2021-03-01", - "periodeTom": "2021-10-10", - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2018-09-06", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "periodeFom": "2021-03-01", - "periodeTom": "2021-10-12", - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - }, - { - "vilkårType": "BOR_MED_SØKER", - "periodeFom": "2021-10-13", - "periodeTom": null, - "resultat": "OPPFYLT", - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 827, - "erPåvirketAvEndring": false, - "prosent": 50 - } - ] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "1. november 2021", - "tom": "til 31. desember 2021 ", - "belop": 2935, - "antallBarn": 2, - "barnasFodselsdager": "28.07.11 og 06.09.18", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "30.10.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "oktober 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonFlyttetBarn", - "belop": 0, - "sokersRettTilUtvidet": "sokerFaarUtvidet" - }, - { - "gjelderSoker": false, - "barnasFodselsdatoer": "06.09.18", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "06.09.18", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "oktober 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonDeltBarnetrygdAnnenForelderSokt", - "belop": 827, - "sokersRettTilUtvidet": "sokerFaarUtvidet" - } - ], - "type": "innvilgelse" - } -} diff --git a/src/test/resources/brevperiodeCaser/REDUKSJON_FRA_FORRIGE_IVERKSATTE_BEHANDLING.json b/src/test/resources/brevperiodeCaser/REDUKSJON_FRA_FORRIGE_IVERKSATTE_BEHANDLING.json deleted file mode 100644 index 27bcb17a8a3..00000000000 --- a/src/test/resources/brevperiodeCaser/REDUKSJON_FRA_FORRIGE_IVERKSATTE_BEHANDLING.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "beskrivelse": "Utbetalingsperiode. Reduksjon fra forrige iverksatte behandling. Ett barn bor ikke med søker og skal ikke med i periodeteksten.", - "fom": "2021-03-01", - "tom": "2021-08-31", - "vedtaksperiodetype": "UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING", - "begrunnelser": [ - "Standardbegrunnelse$REDUKSJON_FORELDRENE_BODDE_SAMMEN" - ], - "fritekster": [], - "personerPåBehandling": [ - { - "fødselsdato": "1985-05-24", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - }, - { - "fødselsdato": "2015-10-05", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1354, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2019-09-25", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1354, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2014-04-14", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2021-02-28", - "type": "BARN", - "harReduksjonFraForrigeBehandling": true, - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "periodeFom": "2021-02-28", - "periodeTom": null, - "resultat": "IKKE_OPPFYLT", - "utdypendeVilkårsvurderinger": [ - "VURDERING_ANNET_GRUNNLAG" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "forventetOutput": { - "fom": "1. mars 2021", - "tom": "til 31. august 2021 ", - "belop": 3762, - "antallBarn": 3, - "barnasFodselsdager": "14.04.14, 05.10.15 og 25.09.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "28.02.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 1, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "februar 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonForeldreneBoddeSammen", - "belop": 0, - "soknadstidspunkt": "", - "avtaletidspunktDeltBosted": "" - } - ], - "type": "innvilgelse", - "antallBarnMedUtbetaling": 3, - "antallBarnMedNullutbetaling": 0, - "fodselsdagerBarnMedUtbetaling": "14.04.14, 05.10.15 og 25.09.19", - "fodselsdagerBarnMedNullutbetaling": "" - } -} diff --git a/src/test/resources/brevperiodeCaser/SATSENDRING.json b/src/test/resources/brevperiodeCaser/SATSENDRING.json deleted file mode 100644 index 8e425b99710..00000000000 --- a/src/test/resources/brevperiodeCaser/SATSENDRING.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "beskrivelse": "Satsendring ", - "fom": "2020-09-01", - "tom": "2020-12-31", - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$INNVILGET_SATSENDRING" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2019-11-30", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1354, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2011-09-06", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [] - } - ], - "forventetOutput": { - "fom": "1. september 2020", - "tom": "til 31. desember 2020 ", - "belop": 2408, - "antallBarn": 2, - "barnasFodselsdager": "06.09.11 og 30.11.19", - "begrunnelser": [ - { - "gjelderSoker": false, - "barnasFodselsdatoer": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 0, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 0, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2020", - "maalform": "bokmaal", - "apiNavn": "innvilgetSatsendring", - "belop": 0 - } - ], - "type": "innvilgelse" - } -} diff --git "a/src/test/resources/brevperiodeCaser/SM\303\205BARNSTILLEGG.json" "b/src/test/resources/brevperiodeCaser/SM\303\205BARNSTILLEGG.json" deleted file mode 100644 index cc50d6cd092..00000000000 --- "a/src/test/resources/brevperiodeCaser/SM\303\205BARNSTILLEGG.json" +++ /dev/null @@ -1,109 +0,0 @@ -{ - "beskrivelse": "Reduksjon småbarnstillegg samtidig som endret utbetaling", - "_kommentar": "Småbarnstillegg-begrunnelsene bruker ikke... ", - "fom": "2021-09-01", - "tom": null, - "vedtaksperiodetype": "UTBETALING", - "begrunnelser": [ - "Standardbegrunnelse$REDUKSJON_SMÅBARNSTILLEGG_IKKE_LENGER_FULL_OVERGANGSSTØNAD" - ], - "fritekster": [], - "uregistrerteBarn": [], - "erFørsteVedtaksperiodePåFagsak": false, - "brevMålform": "NB", - "personerPåBehandling": [ - { - "fødselsdato": "2020-09-03", - "type": "BARN", - "overstyrteVilkårresultater": [], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "ORDINÆR_BARNETRYGD", - "utbetaltPerMnd": 1654, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - }, - { - "fødselsdato": "2021-09-03", - "type": "BARN", - "overstyrteVilkårresultater": [ - { - "vilkårType": "BOR_MED_SØKER", - "resultat": "OPPFYLT", - "periodeFom": "2021-09-03", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [ - "DELT_BOSTED" - ], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [ - { - "periode": { - "fom": "2021-09", - "tom": "2021-09" - }, - "årsak": "DELT_BOSTED" - } - ], - "utbetalinger": [ - ] - }, - { - "fødselsdato": "1993-08-10", - "type": "SØKER", - "overstyrteVilkårresultater": [ - { - "vilkårType": "UTVIDET_BARNETRYGD", - "resultat": "OPPFYLT", - "periodeFom": "2020-08-10", - "periodeTom": null, - "utdypendeVilkårsvurderinger": [], - "erEksplisittAvslagPåSøknad": false, - "standardbegrunnelser": [] - } - ], - "andreVurderinger": [], - "endredeUtbetalinger": [], - "utbetalinger": [ - { - "ytelseType": "UTVIDET_BARNETRYGD", - "utbetaltPerMnd": 1054, - "erPåvirketAvEndring": false, - "prosent": 100 - } - ] - } - ], - "forventetOutput": { - "fom": "1. september 2021", - "tom": "", - "belop": 2708, - "antallBarn": 1, - "barnasFodselsdager": "03.09.20", - "begrunnelser": [ - { - "gjelderSoker": true, - "barnasFodselsdatoer": "03.09.20 og 03.09.21", - "fodselsdatoerBarnOppfyllerTriggereOgHarUtbetaling": "03.09.20", - "fodselsdatoerBarnOppfyllerTriggereOgHarNullutbetaling": "", - "antallBarn": 2, - "antallBarnOppfyllerTriggereOgHarUtbetaling": 1, - "antallBarnOppfyllerTriggereOgHarNullutbetaling": 0, - "maanedOgAarBegrunnelsenGjelderFor": "august 2021", - "maalform": "bokmaal", - "apiNavn": "reduksjonSmaabarnstilleggIkkeLengerFullOvergangsstonad", - "belop": 2708, - "sokersRettTilUtvidet": "sokerFaarUtvidet" - } - ], - "type": "innvilgelse" - } -}