Skip to content

Commit

Permalink
Reduksjonsbegrunnelser flettefelt (#4070)
Browse files Browse the repository at this point in the history
### 💰 Hva skal gjøres, og hvorfor?

[Favro](https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-15351)

Ønsker å ha testdekning på brevbegrunnelser som skal flettes inn når vi
har reduksjon. Legger til støtte for reduksjon som går på andeler når vi
har kompetanse og for tilfeller der vi har flere reduksjoner eller
reduksjon før barnet er fylt 18.

### ✅ 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.
- [x] Jeg har skrevet tester. Hvis du ikke har skrevet tester, beskriv
hvorfor under 👇

---------

Signed-off-by: fredrikpf <[email protected]>
  • Loading branch information
fredrikpf authored Oct 12, 2023
1 parent 2ec32a1 commit 1df25b2
Show file tree
Hide file tree
Showing 4 changed files with 228 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,11 @@ fun EØSStandardbegrunnelse.lagBrevBegrunnelse(
null -> error("Feltet 'periodeResultat' er ikke satt for begrunnelse fra sanity '${sanityBegrunnelse.apiNavn}'.")
}

val personerIBegrunnelse = personerGjeldeneForBegrunnelse
val barnPåBehandling = grunnlag.behandlingsGrunnlagForVedtaksperioder.persongrunnlag.barna
val barnIBegrunnelse = personerGjeldeneForBegrunnelse.filter { it.type == PersonType.BARN }

return if (kompetanser.isEmpty() && sanityBegrunnelse.periodeResultat == SanityPeriodeResultat.IKKE_INNVILGET) {
val personerIBegrunnelse = personerGjeldeneForBegrunnelse
val barnPåBehandling = grunnlag.behandlingsGrunnlagForVedtaksperioder.persongrunnlag.barna
val barnIBegrunnelse = personerGjeldeneForBegrunnelse.filter { it.type == PersonType.BARN }
val gjelderSøker = personerIBegrunnelse.any { it.type == PersonType.SØKER }

val barnasFødselsdatoer = hentBarnasFødselsdatoerForAvslagsbegrunnelse(
Expand Down Expand Up @@ -75,12 +76,8 @@ fun EØSStandardbegrunnelse.lagBrevBegrunnelse(
annenForeldersAktivitet = kompetanse.annenForeldersAktivitet,
annenForeldersAktivitetsland = kompetanse.annenForeldersAktivitetsland?.tilLandNavn(landkoder)?.navn,
barnetsBostedsland = kompetanse.barnetsBostedsland.tilLandNavn(landkoder).navn,
barnasFodselsdatoer = Utils.slåSammen(
kompetanse.barnAktører.map { aktør ->
grunnlag.hent(aktør).fødselsdato.tilKortString()
},
),
antallBarn = kompetanse.barnAktører.size,
barnasFodselsdatoer = Utils.slåSammen(barnIBegrunnelse.map { it.fødselsdato.tilKortString() }),
antallBarn = barnIBegrunnelse.size,
maalform = grunnlag.behandlingsGrunnlagForVedtaksperioder.persongrunnlag.søker.målform.tilSanityFormat(),
sokersAktivitet = kompetanse.søkersAktivitet,
sokersAktivitetsland = kompetanse.søkersAktivitetsland.tilLandNavn(landkoder).navn,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,6 @@ class BegrunnelseTeksterStepDefinition {

private fun genererVedtaksperioderForBehandling(behandlingId: Long): List<UtvidetVedtaksperiodeMedBegrunnelser> {
gjeldendeBehandlingId = behandlingId
val behandling = behandlinger.finnBehandling(behandlingId)

val vedtak = vedtaksliste.find { it.behandling.id == behandlingId && it.aktiv } ?: error("Finner ikke vedtak")

Expand Down Expand Up @@ -330,6 +329,7 @@ class BegrunnelseTeksterStepDefinition {

assertThat(faktiskeBegrunnelser.sortedBy { it.apiNavn })
.usingRecursiveComparison()
.ignoringFields("vedtakBegrunnelseType")
.isEqualTo(forvendtedeBegrunnelser.sortedBy { it.apiNavn })
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# language: no
# encoding: UTF-8

Egenskap: Brevbegrunnelser for reduksjon ved forskjellige tidspunkt

Bakgrunn:
Gitt følgende fagsaker for begrunnelse
| FagsakId | Fagsaktype |
| 1 | NORMAL |

Gitt følgende behandling
| BehandlingId | FagsakId | ForrigeBehandlingId | Behandlingsresultat | Behandlingsårsak | Skal behandles automatisk |
| 1 | 1 | | INNVILGET | SØKNAD | Nei |
| 2 | 1 | 1 | ENDRET_UTBETALING | NYE_OPPLYSNINGER | Nei |

Og følgende persongrunnlag for begrunnelse
| BehandlingId | AktørId | Persontype | Fødselsdato |
| 1 | 1234 | SØKER | 16.04.1985 |
| 1 | 3456 | BARN | 19.04.2006 |
| 1 | 5678 | BARN | 01.10.2007 |
| 1 | 7890 | BARN | 13.10.2014 |
| 2 | 1234 | SØKER | 16.04.1985 |
| 2 | 3456 | BARN | 19.04.2006 |
| 2 | 5678 | BARN | 01.10.2007 |
| 2 | 7890 | BARN | 13.10.2014 |

Scenario: Reduksjon ved forskjellige tidspunkt
Og følgende dagens dato 12.10.2023
Og lag personresultater for begrunnelse for behandling 1
Og lag personresultater for begrunnelse for behandling 2

Og legg til nye vilkårresultater for begrunnelse for behandling 1
| AktørId | Vilkår | Fra dato | Til dato | Resultat |
| 1234 | LOVLIG_OPPHOLD,BOSATT_I_RIKET | 16.04.1985 | | OPPFYLT |
| 1234 | UTVIDET_BARNETRYGD | 02.09.2021 | 05.01.2022 | OPPFYLT |

| 3456 | GIFT_PARTNERSKAP,LOVLIG_OPPHOLD,BOSATT_I_RIKET,BOR_MED_SØKER | 19.04.2006 | | OPPFYLT |
| 3456 | UNDER_18_ÅR | 19.04.2006 | 18.04.2024 | OPPFYLT |

| 7890 | GIFT_PARTNERSKAP | 13.10.2014 | | OPPFYLT |
| 7890 | UNDER_18_ÅR | 13.10.2014 | 12.10.2032 | OPPFYLT |
| 7890 | LOVLIG_OPPHOLD,BOR_MED_SØKER,BOSATT_I_RIKET | 31.08.2021 | | OPPFYLT |

| 5678 | LOVLIG_OPPHOLD,BOR_MED_SØKER,GIFT_PARTNERSKAP,BOSATT_I_RIKET | 01.10.2007 | | OPPFYLT |
| 5678 | UNDER_18_ÅR | 01.10.2007 | 30.09.2025 | OPPFYLT |

Og legg til nye vilkårresultater for begrunnelse for behandling 2
| AktørId | Vilkår | Utdypende vilkår | Fra dato | Til dato | Resultat | Er eksplisitt avslag |
| 3456 | GIFT_PARTNERSKAP,BOSATT_I_RIKET,LOVLIG_OPPHOLD | | 19.04.2006 | | OPPFYLT | Nei |
| 3456 | UNDER_18_ÅR | | 19.04.2006 | 18.04.2024 | OPPFYLT | Nei |
| 3456 | BOR_MED_SØKER | | 19.04.2006 | 12.08.2022 | OPPFYLT | Nei |

| 5678 | BOR_MED_SØKER | | 01.10.2007 | 11.11.2022 | OPPFYLT | Nei |
| 5678 | GIFT_PARTNERSKAP,LOVLIG_OPPHOLD,BOSATT_I_RIKET | | 01.10.2007 | | OPPFYLT | Nei |
| 5678 | UNDER_18_ÅR | | 01.10.2007 | 30.09.2025 | OPPFYLT | Nei |

| 7890 | UNDER_18_ÅR | | 13.10.2014 | 12.10.2032 | OPPFYLT | Nei |
| 7890 | GIFT_PARTNERSKAP | | 13.10.2014 | | OPPFYLT | Nei |
| 7890 | LOVLIG_OPPHOLD,BOR_MED_SØKER,BOSATT_I_RIKET | | 31.08.2021 | | OPPFYLT | Nei |

| 1234 | BOSATT_I_RIKET,LOVLIG_OPPHOLD | | 16.04.1985 | | OPPFYLT | Nei |
| 1234 | UTVIDET_BARNETRYGD | | 02.09.2021 | 05.01.2022 | OPPFYLT | Nei |

Og med andeler tilkjent ytelse for begrunnelse
| AktørId | BehandlingId | Fra dato | Til dato | Beløp | Ytelse type | Prosent | Sats |
| 5678 | 1 | 01.11.2007 | 28.02.2019 | 970 | ORDINÆR_BARNETRYGD | 100 | 970 |
| 5678 | 1 | 01.03.2019 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 5678 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 5678 | 1 | 01.07.2023 | 30.09.2025 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |
| 7890 | 1 | 01.09.2021 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 7890 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 7890 | 1 | 01.07.2023 | 30.09.2032 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |
| 1234 | 1 | 01.10.2021 | 31.01.2022 | 1054 | UTVIDET_BARNETRYGD | 100 | 1054 |
| 3456 | 1 | 01.05.2006 | 28.02.2019 | 970 | ORDINÆR_BARNETRYGD | 100 | 970 |
| 3456 | 1 | 01.03.2019 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 3456 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 3456 | 1 | 01.07.2023 | 31.03.2024 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |

| 5678 | 2 | 01.11.2007 | 28.02.2019 | 970 | ORDINÆR_BARNETRYGD | 100 | 970 |
| 5678 | 2 | 01.03.2019 | 30.11.2022 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 7890 | 2 | 01.09.2021 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 7890 | 2 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 7890 | 2 | 01.07.2023 | 30.09.2032 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |
| 1234 | 2 | 01.10.2021 | 31.01.2022 | 1054 | UTVIDET_BARNETRYGD | 100 | 1054 |
| 3456 | 2 | 01.05.2006 | 28.02.2019 | 970 | ORDINÆR_BARNETRYGD | 100 | 970 |
| 3456 | 2 | 01.03.2019 | 31.08.2022 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |

Og med vedtaksperioder for behandling 2
| Fra dato | Til dato | Standardbegrunnelser |
| 01.09.2022 | 30.11.2022 | REDUKSJON_FLYTTET_BARN |
| 01.12.2022 | 28.02.2023 | REDUKSJON_FLYTTET_BARN |

forvent følgende brevbegrunnelser for behandling 2 i periode 01.09.2022 til 30.11.2022
| Begrunnelse | Gjelder søker | Barnas fødselsdatoer | Antall barn | Måned og år begrunnelsen gjelder for | Målform | Beløp | Søknadstidspunkt | Søkers rett til utvidet |
| REDUKSJON_FLYTTET_BARN | Nei | 19.04.06 | 1 | august 2022 | NB | 0 | | SØKER_HAR_IKKE_RETT |

forvent følgende brevbegrunnelser for behandling 2 i periode 01.12.2022 til 28.02.2023
| Begrunnelse | Gjelder søker | Barnas fødselsdatoer | Antall barn | Måned og år begrunnelsen gjelder for | Målform | Beløp | Søknadstidspunkt | Søkers rett til utvidet |
| REDUKSJON_FLYTTET_BARN | Nei | 01.10.07 | 1 | november 2022 | NB | 0 | | SØKER_HAR_IKKE_RETT |
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# language: no
# encoding: UTF-8

Egenskap: Brevbegrunnelser ved reduksjon

Bakgrunn:
Gitt følgende fagsaker for begrunnelse
| FagsakId | Fagsaktype |
| 1 | NORMAL |

Gitt følgende behandling
| BehandlingId | FagsakId | ForrigeBehandlingId | Behandlingsresultat | Behandlingsårsak | Skal behandles automatisk |
| 1 | 1 | | INNVILGET | SØKNAD | Nei |

Og følgende persongrunnlag for begrunnelse
| BehandlingId | AktørId | Persontype | Fødselsdato |
| 1 | 5678 | BARN | 06.04.2006 |
| 1 | 3456 | BARN | 09.04.2005 |
| 1 | 1234 | SØKER | 09.05.1988 |
| 1 | 7890 | BARN | 24.06.2010 |

Scenario: Frafall av andeler og ikke kompetanse
Og følgende dagens dato 11.10.2023
Og lag personresultater for begrunnelse for behandling 1

Og legg til nye vilkårresultater for begrunnelse for behandling 1
| AktørId | Vilkår | Utdypende vilkår | Fra dato | Til dato | Resultat |
| 7890 | UNDER_18_ÅR | | 24.06.2010 | 23.06.2028 | OPPFYLT |
| 7890 | GIFT_PARTNERSKAP | | 24.06.2010 | | OPPFYLT |
| 7890 | LOVLIG_OPPHOLD | | 11.11.2022 | | OPPFYLT |
| 7890 | BOR_MED_SØKER | BARN_BOR_I_EØS_MED_SØKER | 11.11.2022 | | OPPFYLT |
| 7890 | BOSATT_I_RIKET | BARN_BOR_I_NORGE | 11.11.2022 | | OPPFYLT |

| 1234 | BOSATT_I_RIKET | OMFATTET_AV_NORSK_LOVGIVNING | 11.11.2022 | | OPPFYLT |
| 1234 | LOVLIG_OPPHOLD | | 11.11.2022 | | OPPFYLT |

| 3456 | UNDER_18_ÅR | | 09.04.2005 | 08.04.2023 | OPPFYLT |
| 3456 | GIFT_PARTNERSKAP | | 09.04.2005 | | OPPFYLT |
| 3456 | LOVLIG_OPPHOLD | | 11.11.2022 | | OPPFYLT |
| 3456 | BOR_MED_SØKER | BARN_BOR_I_EØS_MED_SØKER | 11.11.2022 | | OPPFYLT |
| 3456 | BOSATT_I_RIKET | BARN_BOR_I_NORGE | 11.11.2022 | | OPPFYLT |

| 5678 | UNDER_18_ÅR | | 06.04.2006 | 05.04.2024 | OPPFYLT |
| 5678 | GIFT_PARTNERSKAP | | 06.04.2006 | | OPPFYLT |
| 5678 | LOVLIG_OPPHOLD | | 11.11.2022 | | OPPFYLT |
| 5678 | BOR_MED_SØKER | BARN_BOR_I_EØS_MED_SØKER | 11.11.2022 | | OPPFYLT |
| 5678 | BOSATT_I_RIKET | BARN_BOR_I_NORGE | 11.11.2022 | | OPPFYLT |

Og med andeler tilkjent ytelse for begrunnelse
| AktørId | BehandlingId | Fra dato | Til dato | Beløp | Ytelse type | Prosent | Sats |
| 3456 | 1 | 01.12.2022 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 3456 | 1 | 01.03.2023 | 31.03.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |

| 5678 | 1 | 01.12.2022 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 5678 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 5678 | 1 | 01.07.2023 | 31.03.2024 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |

| 7890 | 1 | 01.12.2022 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 7890 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 7890 | 1 | 01.07.2023 | 31.05.2028 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |

Og med kompetanser for begrunnelse
| AktørId | Fra dato | Til dato | Resultat | BehandlingId | Søkers aktivitet | Annen forelders aktivitet | Søkers aktivitetsland | Annen forelders aktivitetsland | Barnets bostedsland |
| 7890, 3456, 5678 | 01.12.2022 | 31.03.2023 | NORGE_ER_PRIMÆRLAND | 1 | ARBEIDER | I_ARBEID | NO | DK | DK |
| 7890, 5678 | 01.04.2023 | | NORGE_ER_PRIMÆRLAND | 1 | ARBEIDER | I_ARBEID | NO | DK | DK |

Når begrunnelsetekster genereres for behandling 1

forvent følgende standardBegrunnelser
| Fra dato | Til dato | VedtaksperiodeType | Regelverk Inkluderte Begrunnelser | Inkluderte Begrunnelser | Ekskluderte Begrunnelser |
| 01.04.2023 | 30.06.2023 | UTBETALING | EØS_FORORDNINGEN | REDUKSJON_IKKE_ANSVAR_FOR_BARN | |

Og med vedtaksperioder for behandling 1
| Fra dato | Til dato | Standardbegrunnelser | Eøsbegrunnelser | Fritekster |
| 01.04.2023 | 30.06.2023 | | REDUKSJON_IKKE_ANSVAR_FOR_BARN | |

forvent følgende brevbegrunnelser for behandling 1 i periode 01.04.2023 til 30.06.2023
| Begrunnelse | Type | Barnas fødselsdatoer | Antall barn | Målform | Annen forelders aktivitetsland | Barnets bostedsland | Søkers aktivitetsland | Annen forelders aktivitet | Søkers aktivitet |
| REDUKSJON_IKKE_ANSVAR_FOR_BARN | EØS | 09.04.05 | 1 | NB | Danmark | Danmark | Norge | I_ARBEID | ARBEIDER |


Scenario: Reduksjon før fylt 18

Og følgende persongrunnlag for begrunnelse
| BehandlingId | AktørId | Persontype | Fødselsdato |
| 1 | 5678 | BARN | 18.10.2009 |
| 1 | 1234 | SØKER | 30.03.1988 |
| 1 | 3456 | BARN | 15.04.2005 |

Og følgende dagens dato 12.10.2023
Og lag personresultater for begrunnelse for behandling 1

Og legg til nye vilkårresultater for begrunnelse for behandling 1
| AktørId | Vilkår | Utdypende vilkår | Fra dato | Til dato | Resultat | Er eksplisitt avslag |
| 3456 | GIFT_PARTNERSKAP | | 15.04.2005 | | OPPFYLT | Nei |
| 3456 | UNDER_18_ÅR | | 15.04.2005 | 14.04.2023 | OPPFYLT | Nei |
| 3456 | BOR_MED_SØKER | | 01.03.2022 | 27.06.2022 | OPPFYLT | Nei |
| 3456 | BOSATT_I_RIKET,LOVLIG_OPPHOLD | | 01.03.2022 | | OPPFYLT | Nei |

| 1234 | BOSATT_I_RIKET,LOVLIG_OPPHOLD | | 01.03.2022 | | OPPFYLT | Nei |

| 5678 | GIFT_PARTNERSKAP | | 18.10.2009 | | OPPFYLT | Nei |
| 5678 | UNDER_18_ÅR | | 18.10.2009 | 17.10.2027 | OPPFYLT | Nei |
| 5678 | BOR_MED_SØKER,BOSATT_I_RIKET,LOVLIG_OPPHOLD | | 01.03.2022 | | OPPFYLT | Nei |

Og med andeler tilkjent ytelse for begrunnelse
| AktørId | BehandlingId | Fra dato | Til dato | Beløp | Ytelse type | Prosent | Sats |
| 3456 | 1 | 01.04.2022 | 30.06.2022 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 5678 | 1 | 01.04.2022 | 28.02.2023 | 1054 | ORDINÆR_BARNETRYGD | 100 | 1054 |
| 5678 | 1 | 01.03.2023 | 30.06.2023 | 1083 | ORDINÆR_BARNETRYGD | 100 | 1083 |
| 5678 | 1 | 01.07.2023 | 30.09.2027 | 1310 | ORDINÆR_BARNETRYGD | 100 | 1310 |

Når begrunnelsetekster genereres for behandling 1

Og med vedtaksperioder for behandling 1
| Fra dato | Til dato | Standardbegrunnelser | Eøsbegrunnelser | Fritekster |
| 01.07.2022 | 28.02.2023 | REDUKSJON_FLYTTET_BARN | | |

forvent følgende brevbegrunnelser for behandling 1 i periode 01.07.2022 til 28.02.2023
| Begrunnelse | Barnas fødselsdatoer | Antall barn | Målform | Beløp | Gjelder søker | Måned og år begrunnelsen gjelder for |
| REDUKSJON_FLYTTET_BARN | 15.04.05 | 1 | NB | 0 | Nei | juni 2022 |

0 comments on commit 1df25b2

Please sign in to comment.