Skip to content

Commit 0bd41ec

Browse files
enklere forkasting
1 parent 3c3cf01 commit 0bd41ec

File tree

12 files changed

+56
-53
lines changed

12 files changed

+56
-53
lines changed

sykepenger-api/src/test/kotlin/no/nav/helse/spleis/graphql/SpeilBehandlingerBuilderTest.kt

+4-12
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,12 @@ internal class SpeilBehandlingerBuilderTest : AbstractE2ETest() {
169169
håndterVilkårsgrunnlagTilGodkjenning()
170170
håndterUtbetalingsgodkjenning(utbetalingGodkjent = false)
171171
generasjoner {
172-
assertEquals(3, size)
172+
assertEquals(2, size)
173173
0.generasjon {
174-
assertEquals(1, size)
175-
uberegnetPeriode(0) fra 1.januar til 10.januar medTilstand Annullert
176-
}
177-
1.generasjon {
178174
assertEquals(1, size)
179175
uberegnetPeriode(0) fra 1.januar til 10.januar medTilstand IngenUtbetaling medHendelser setOf(søknad, im)
180176
}
181-
2.generasjon {
177+
1.generasjon {
182178
assertEquals(1, size)
183179
uberegnetPeriode(0) fra 1.januar til 10.januar medTilstand IngenUtbetaling medHendelser setOf(søknad)
184180
}
@@ -1733,18 +1729,14 @@ internal class SpeilBehandlingerBuilderTest : AbstractE2ETest() {
17331729
håndterUtbetalingsgodkjenning(utbetalingGodkjent = false)
17341730

17351731
generasjoner {
1736-
assertEquals(3, size)
1732+
assertEquals(2, size)
17371733

17381734
0.generasjon {
17391735
assertEquals(2, size)
17401736
uberegnetPeriode(0) fra 21.januar til 27.januar medTilstand Annullert
1741-
uberegnetPeriode(1) fra 10.januar til 20.januar medTilstand Annullert
1737+
uberegnetPeriode(1) fra 10.januar til 20.januar medTilstand IngenUtbetaling
17421738
}
17431739
1.generasjon {
1744-
assertEquals(1, size)
1745-
uberegnetPeriode(0) fra 10.januar til 20.januar medTilstand IngenUtbetaling
1746-
}
1747-
2.generasjon {
17481740
assertEquals(2, size)
17491741
uberegnetPeriode(0) fra 21.januar til 27.januar medTilstand IngenUtbetaling
17501742
uberegnetPeriode(1) fra 12.januar til 20.januar medTilstand IngenUtbetaling

sykepenger-mediators/src/test/kotlin/no/nav/helse/spleis/mediator/e2e/AktørEndringE2ETest.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,11 @@ internal class AktørEndringE2ETest : AbstractEndToEndMediatorTest() {
5353
assertEquals(1, antallPersonalias(FNR1))
5454
assertEquals(1, antallPersonalias(FNR2))
5555
val meldinger = testRapid.inspektør.meldinger("vedtaksperiode_endret")
56-
assertEquals(5, meldinger.size)
56+
assertEquals(4, meldinger.size)
5757
assertEquals(FNR1, meldinger[0].path("fødselsnummer").asText())
5858
assertEquals(FNR1, meldinger[1].path("fødselsnummer").asText())
5959
assertEquals(FNR2, meldinger[2].path("fødselsnummer").asText())
6060
assertEquals(FNR2, meldinger[3].path("fødselsnummer").asText())
61-
assertEquals(FNR2, meldinger[4].path("fødselsnummer").asText())
6261

6362
testRapid.inspektør.siste("vedtaksperiode_forkastet").also { melding ->
6463
assertEquals(FNR2, melding.path("fødselsnummer").asText())

sykepenger-model/src/main/kotlin/no/nav/helse/person/Vedtaksperiode.kt

+4-22
Original file line numberDiff line numberDiff line change
@@ -1281,7 +1281,7 @@ internal class Vedtaksperiode private constructor(
12811281
}
12821282

12831283
private fun forkast(hendelse: Hendelse, aktivitetslogg: IAktivitetslogg) {
1284-
person.søppelbøtte(hendelse, aktivitetslogg, TIDLIGERE_OG_ETTERGØLGENDE(this))
1284+
person.søppelbøtte(hendelse, aktivitetslogg, OVERLAPPENDE_OG_ETTERGØLGENDE(this))
12851285
}
12861286

12871287
private fun registrerKontekst(aktivitetslogg: IAktivitetslogg): IAktivitetslogg {
@@ -1601,7 +1601,7 @@ internal class Vedtaksperiode private constructor(
16011601
}
16021602

16031603
private fun førsteFraværsdagerForForespørsel(): List<PersonObserver.FørsteFraværsdag> {
1604-
val deAndre = person.vedtaksperioder(MED_SAMME_AGP_OG_SKJÆRINGSTIDSPUNKT(this))
1604+
val deAndre = person.vedtaksperioder(MED_SKJÆRINGSTIDSPUNKT(this.skjæringstidspunkt))
16051605
.filterNot { it.arbeidsgiver === this.arbeidsgiver }
16061606
.groupBy { it.arbeidsgiver }
16071607
.mapNotNull { (arbeidsgiver, perioder) ->
@@ -3309,27 +3309,9 @@ internal class Vedtaksperiode private constructor(
33093309
}
33103310

33113311
// Fredet funksjonsnavn
3312-
internal val TIDLIGERE_OG_ETTERGØLGENDE = fun(segSelv: Vedtaksperiode): VedtaksperiodeFilter {
3313-
val medSammeAGP = MED_SAMME_AGP_OG_SKJÆRINGSTIDSPUNKT(segSelv)
3312+
internal val OVERLAPPENDE_OG_ETTERGØLGENDE = fun(segSelv: Vedtaksperiode): VedtaksperiodeFilter {
33143313
return fun(other: Vedtaksperiode): Boolean {
3315-
if (other.periode.start >= segSelv.periode.start) return true // Forkaster nyere perioder på tvers av arbeidsgivere
3316-
return medSammeAGP(other)
3317-
}
3318-
}
3319-
internal val MED_SAMME_AGP_OG_SKJÆRINGSTIDSPUNKT = fun(segSelv: Vedtaksperiode): VedtaksperiodeFilter {
3320-
val skjæringstidspunkt = segSelv.skjæringstidspunkt
3321-
val arbeidsgiverperiode = segSelv.behandlinger
3322-
.arbeidsgiverperiode()
3323-
.arbeidsgiverperioder
3324-
.periode()
3325-
return fun(other: Vedtaksperiode): Boolean {
3326-
val arbeidsgiverperiodeOther = other
3327-
.behandlinger
3328-
.arbeidsgiverperiode()
3329-
.arbeidsgiverperioder
3330-
.periode()
3331-
if (arbeidsgiverperiode != null && other.arbeidsgiver === segSelv.arbeidsgiver && arbeidsgiverperiodeOther?.overlapperMed(arbeidsgiverperiode) == true) return true // Forkaster samme arbeidsgiverperiode (kun for samme arbeidsgiver)
3332-
return other.skjæringstidspunkt == skjæringstidspunkt // Forkaster alt med samme skjæringstidspunkt på tvers av arbeidsgivere
3314+
return segSelv.periode.overlapperEllerStarterFør(other.periode)
33333315
}
33343316
}
33353317

sykepenger-model/src/test/kotlin/no/nav/helse/hendelser/PeriodeTest.kt

+25
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,31 @@ import org.junit.jupiter.api.assertThrows
3434
internal class PeriodeTest {
3535
private val periode = Periode(1.juli, 10.juli)
3636

37+
@Test
38+
fun overlapperEllerStarterFør() {
39+
val p1 = 3.januar til 5.januar
40+
41+
(1.januar til 2.januar).also { p2 ->
42+
assertFalse(p1.overlapperEllerStarterFør(p2))
43+
assertTrue(p2.overlapperEllerStarterFør(p1))
44+
}
45+
46+
(3.januar til 4.januar).also { p2 ->
47+
assertTrue(p1.overlapperEllerStarterFør(p2))
48+
assertTrue(p2.overlapperEllerStarterFør(p1))
49+
}
50+
51+
(5.januar til 6.januar).also { p2 ->
52+
assertTrue(p1.overlapperEllerStarterFør(p2))
53+
assertTrue(p2.overlapperEllerStarterFør(p1))
54+
}
55+
56+
(6.januar til 7.januar).also { p2 ->
57+
assertTrue(p1.overlapperEllerStarterFør(p2))
58+
assertFalse(p2.overlapperEllerStarterFør(p1))
59+
}
60+
}
61+
3762
@Test
3863
fun mursteinsperioder() {
3964
val perioder = listOf(

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/ForkastForlengelseAvForkastetPeriodeTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ internal class ForkastForlengelseAvForkastetPeriodeTest : AbstractEndToEndTest()
7979
assertTrue(observatør.hendelseider(3.vedtaksperiode.id(a1)).isNotEmpty())
8080
assertTrue(observatør.hendelseider(4.vedtaksperiode.id(a1)).isNotEmpty())
8181
assertTrue(observatør.hendelseider(5.vedtaksperiode.id(a1)).isNotEmpty())
82-
assertForkastetPeriodeTilstander(1.vedtaksperiode, START, AVVENTER_INFOTRYGDHISTORIKK, AVVENTER_INNTEKTSMELDING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD)
82+
assertTilstander(1.vedtaksperiode, START, AVVENTER_INFOTRYGDHISTORIKK, AVVENTER_INNTEKTSMELDING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING)
8383
assertForkastetPeriodeTilstander(2.vedtaksperiode, START, AVVENTER_INNTEKTSMELDING, TIL_INFOTRYGD)
8484
assertForkastetPeriodeTilstander(3.vedtaksperiode, START, TIL_INFOTRYGD)
8585
assertForkastetPeriodeTilstander(4.vedtaksperiode, START, TIL_INFOTRYGD)

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/ForkasteAuuTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ internal class ForkasteAuuTest : AbstractDslTest() {
3030
nyPeriode(17.januar til 31.januar)
3131
nullstillTilstandsendringer()
3232
håndterAnmodningOmForkasting(2.vedtaksperiode)
33-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD)
33+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING)
3434
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVVENTER_INNTEKTSMELDING, TIL_INFOTRYGD)
3535
}
3636
}
@@ -42,7 +42,7 @@ internal class ForkasteAuuTest : AbstractDslTest() {
4242
nyPeriode(18.januar til 31.januar)
4343
nullstillTilstandsendringer()
4444
håndterAnmodningOmForkasting(2.vedtaksperiode)
45-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD)
45+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING)
4646
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVVENTER_INNTEKTSMELDING, TIL_INFOTRYGD)
4747
}
4848
}

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/VedtaksperiodeForkastetE2ETest.kt

+5-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import no.nav.helse.hendelser.til
1010
import no.nav.helse.januar
1111
import no.nav.helse.mars
1212
import no.nav.helse.person.TilstandType.AVSLUTTET
13+
import no.nav.helse.person.TilstandType.AVSLUTTET_UTEN_UTBETALING
1314
import no.nav.helse.person.TilstandType.AVVENTER_GODKJENNING
1415
import no.nav.helse.person.TilstandType.TIL_INFOTRYGD
1516
import no.nav.helse.person.aktivitetslogg.Varselkode
@@ -39,11 +40,8 @@ internal class VedtaksperiodeForkastetE2ETest : AbstractEndToEndTest() {
3940

4041
@Test
4142
fun `forkaster kort periode`() {
42-
håndterSykmelding(Sykmeldingsperiode(1.januar, 5.januar))
4343
håndterSøknad(1.januar til 5.januar)
44-
håndterSykmelding(Sykmeldingsperiode(6.januar, 15.januar))
4544
håndterSøknad(6.januar til 15.januar)
46-
håndterSykmelding(Sykmeldingsperiode(16.januar, 31.januar))
4745
håndterSøknad(16.januar til 31.januar)
4846
håndterInntektsmelding(listOf(1.januar til 16.januar))
4947
håndterVilkårsgrunnlag(3.vedtaksperiode)
@@ -52,10 +50,11 @@ internal class VedtaksperiodeForkastetE2ETest : AbstractEndToEndTest() {
5250
håndterUtbetalingsgodkjenning(3.vedtaksperiode)
5351
håndterUtbetalt()
5452
håndterAnnullerUtbetaling(a1)
55-
assertEquals(3, observatør.forkastedePerioder())
53+
håndterUtbetalt()
54+
assertEquals(1, observatør.forkastedePerioder())
5655
assertEquals(AVSLUTTET, observatør.forkastet(3.vedtaksperiode.id(a1)).gjeldendeTilstand)
57-
assertSisteTilstand(1.vedtaksperiode, TIL_INFOTRYGD)
58-
assertSisteTilstand(2.vedtaksperiode, TIL_INFOTRYGD)
56+
assertSisteTilstand(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING)
57+
assertSisteTilstand(2.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING)
5958
assertSisteTilstand(3.vedtaksperiode, TIL_INFOTRYGD)
6059
}
6160

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/VilkårsgrunnlagE2ETest.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ internal class VilkårsgrunnlagE2ETest : AbstractDslTest() {
115115
assertVilkårsgrunnlagFraSpleisFor(1.januar)
116116

117117
håndterAnnullering(inspektør.sisteUtbetaling().utbetalingId)
118-
assertIngenVilkårsgrunnlagFraSpleis()
118+
håndterUtbetalt()
119+
assertVilkårsgrunnlagFraSpleisFor(1.januar)
119120
}
120121
}
121122

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/infotrygd/ForlengelseFraInfotrygdTest.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import no.nav.helse.spleis.e2e.AbstractEndToEndTest
2323
import no.nav.helse.spleis.e2e.assertForkastetPeriodeTilstander
2424
import no.nav.helse.spleis.e2e.assertFunksjonellFeil
2525
import no.nav.helse.spleis.e2e.assertSisteTilstand
26+
import no.nav.helse.spleis.e2e.assertTilstander
2627
import no.nav.helse.spleis.e2e.assertVarsel
2728
import no.nav.helse.spleis.e2e.håndterSykmelding
2829
import no.nav.helse.spleis.e2e.håndterSøknad
@@ -57,7 +58,7 @@ internal class ForlengelseFraInfotrygdTest : AbstractEndToEndTest() {
5758
håndterUtbetalingshistorikkEtterInfotrygdendring(ArbeidsgiverUtbetalingsperiode(a1, 1.januar, 31.januar, 100.prosent, 1000.daglig))
5859

5960
assertVarsel(Varselkode.RV_IT_3, 1.vedtaksperiode.filter())
60-
assertForkastetPeriodeTilstander(1.vedtaksperiode, START, AVVENTER_INFOTRYGDHISTORIKK, AVVENTER_INNTEKTSMELDING, TIL_INFOTRYGD)
61+
assertTilstander(1.vedtaksperiode, START, AVVENTER_INFOTRYGDHISTORIKK, AVVENTER_INNTEKTSMELDING)
6162
assertForkastetPeriodeTilstander(2.vedtaksperiode, START, AVVENTER_INNTEKTSMELDING, TIL_INFOTRYGD)
6263
assertForkastetPeriodeTilstander(3.vedtaksperiode, START, AVVENTER_INNTEKTSMELDING, AVVENTER_BLOKKERENDE_PERIODE, TIL_INFOTRYGD)
6364
}

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/inntektsmelding/InntektsmeldingOgFerieE2ETest.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,10 @@ internal class InntektsmeldingOgFerieE2ETest : AbstractEndToEndTest() {
114114
nyttVedtak(21.januar til 31.januar, arbeidsgiverperiode = listOf(1.januar til 5.januar, 10.januar til 20.januar), orgnummer = a1, vedtaksperiodeIdInnhenter = 4.vedtaksperiode)
115115
nullstillTilstandsendringer()
116116
håndterAnnullerUtbetaling(a1)
117-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD, orgnummer = a1)
118-
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD, orgnummer = a1)
119-
assertForkastetPeriodeTilstander(3.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD, orgnummer = a1)
117+
håndterUtbetalt(orgnummer = a1)
118+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, orgnummer = a1)
119+
assertTilstander(2.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, orgnummer = a1)
120+
assertTilstander(3.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, AVVENTER_BLOKKERENDE_PERIODE, AVSLUTTET_UTEN_UTBETALING, orgnummer = a1)
120121
assertForkastetPeriodeTilstander(4.vedtaksperiode, AVSLUTTET, TIL_INFOTRYGD, orgnummer = a1)
121122
}
122123

sykepenger-model/src/test/kotlin/no/nav/helse/spleis/e2e/revurdering/ReberegningAvAvsluttetUtenUtbetalingNyE2ETest.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ internal class ReberegningAvAvsluttetUtenUtbetalingNyE2ETest : AbstractEndToEndT
211211

212212
nullstillTilstandsendringer()
213213
håndterUtbetalingsgodkjenning(2.vedtaksperiode, utbetalingGodkjent = false)
214-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD)
214+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING)
215215
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVVENTER_GODKJENNING, TIL_INFOTRYGD)
216216
}
217217

@@ -918,8 +918,8 @@ internal class ReberegningAvAvsluttetUtenUtbetalingNyE2ETest : AbstractEndToEndT
918918
nullstillTilstandsendringer()
919919
håndterUtbetalingsgodkjenning(2.vedtaksperiode, utbetalingGodkjent = false, orgnummer = a1)
920920

921-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD, orgnummer = a1)
922-
assertForkastetPeriodeTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, TIL_INFOTRYGD, orgnummer = a2)
921+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, orgnummer = a1)
922+
assertTilstander(1.vedtaksperiode, AVSLUTTET_UTEN_UTBETALING, orgnummer = a2)
923923
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVVENTER_GODKJENNING, TIL_INFOTRYGD, orgnummer = a1)
924924
assertForkastetPeriodeTilstander(2.vedtaksperiode, AVVENTER_BLOKKERENDE_PERIODE, TIL_INFOTRYGD, orgnummer = a2)
925925
assertForkastetPeriodeTilstander(3.vedtaksperiode, AVVENTER_BLOKKERENDE_PERIODE, TIL_INFOTRYGD, orgnummer = a1)

sykepenger-primitiver/src/main/kotlin/no/nav/helse/hendelser/Periode.kt

+3
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ class Periode(fom: LocalDate, tom: LocalDate) : ClosedRange<LocalDate>, Iterable
132132
fun slutterEtter(other: LocalDate) =
133133
other <= this.endInclusive
134134

135+
fun overlapperEllerStarterFør(other: Periode) =
136+
this.start <= other.endInclusive
137+
135138
fun utenfor(other: Periode) =
136139
this.start < other.start || this.endInclusive > other.endInclusive
137140

0 commit comments

Comments
 (0)