Skip to content

Commit d88d39d

Browse files
authored
Merge branch 'master' into dependabot/maven/tokensupport.version-5.0.17
2 parents cc52d60 + aa4fcb7 commit d88d39d

File tree

5 files changed

+71
-7
lines changed

5 files changed

+71
-7
lines changed

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ghcr.io/navikt/sif-baseimages/java-21:2025.02.13.1522Z
1+
FROM ghcr.io/navikt/sif-baseimages/java-21:2025.02.27.1645Z
22

33
LABEL org.opencontainers.image.source=https://github.com/navikt/pleiepenger-barn-uttak
44

server/pom.xml

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
<artifactId>server</artifactId>
1313

1414
<properties>
15-
<springdoc.version>2.8.4</springdoc.version>
15+
<springdoc.version>2.8.5</springdoc.version>
1616
<logback.logstash.version>8.0</logback.logstash.version>
1717
<postgres.version>42.7.5</postgres.version>
18-
<micrometer.version>1.14.3</micrometer.version>
18+
<micrometer.version>1.14.4</micrometer.version>
1919
<tokensupport.version>5.0.17</tokensupport.version>
20-
<flyway.version>11.3.3</flyway.version>
20+
<flyway.version>11.3.4</flyway.version>
2121
</properties>
2222

2323
<dependencies>
@@ -123,7 +123,7 @@
123123
<dependency>
124124
<groupId>org.testcontainers</groupId>
125125
<artifactId>postgresql</artifactId>
126-
<version>1.20.4</version>
126+
<version>1.20.5</version>
127127
<scope>test</scope>
128128
</dependency>
129129
<dependency>

server/src/main/kotlin/no/nav/pleiepengerbarn/uttak/server/UttaksplanExt.kt

+18-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal fun Uttaksplan.slåSammenLikePerioder(): Uttaksplan {
2020
//Slå sammen perioder og bygg nye perioder
2121
val nyePerioder = mutableMapOf<LukketPeriode, UttaksperiodeInfo>()
2222
perioderMedLikInfo.forEach { (info, perioder) ->
23-
val sammenslåttePerioder = perioder.slåSammen()
23+
val sammenslåttePerioder = perioder.slåSammen(this.perioder)
2424
sammenslåttePerioder.forEach { sammenslåttPeriode ->
2525
nyePerioder[sammenslåttPeriode] = info
2626
}
@@ -29,7 +29,7 @@ internal fun Uttaksplan.slåSammenLikePerioder(): Uttaksplan {
2929
return Uttaksplan(perioder = nyePerioder, trukketUttak = this.trukketUttak, kvoteInfo = this.kvoteInfo, commitId = this.commitId)
3030
}
3131

32-
private fun List<LukketPeriode>.slåSammen(): List<LukketPeriode> {
32+
private fun List<LukketPeriode>.slåSammen(allePerioder: Map<LukketPeriode, UttaksperiodeInfo>): List<LukketPeriode> {
3333
val sortertePerioder = this.sortedBy { it.fom }
3434

3535
var nyPeriode: LukketPeriode? = null
@@ -41,17 +41,33 @@ private fun List<LukketPeriode>.slåSammen(): List<LukketPeriode> {
4141
} else if (bareHelgEllerIngenDagerMellom(nyPeriode!!.tom, periode.fom)) {
4242
nyPeriode = LukketPeriode(nyPeriode!!.fom, periode.tom)
4343
} else {
44+
if (slutterPåFredagOgHelgErInkludertIUttaksplanen(nyPeriode!!, allePerioder)) {
45+
nyPeriode = utvidOverHelgIEtterkant(nyPeriode!!)
46+
}
4447
nyePerioder.add(nyPeriode!!)
4548
nyPeriode = periode
4649
}
4750
}
4851
if (nyPeriode != null) {
52+
if (slutterPåFredagOgHelgErInkludertIUttaksplanen(nyPeriode!!, allePerioder)) {
53+
nyPeriode = utvidOverHelgIEtterkant(nyPeriode!!)
54+
}
4955
nyePerioder.add(nyPeriode!!)
56+
5057
}
5158

5259
return nyePerioder
5360
}
5461

62+
private fun utvidOverHelgIEtterkant(nyPeriode: LukketPeriode) =
63+
LukketPeriode(nyPeriode.fom, nyPeriode.tom.plusDays(2))
64+
65+
private fun slutterPåFredagOgHelgErInkludertIUttaksplanen(
66+
nyPeriode: LukketPeriode,
67+
allePerioder: Map<LukketPeriode, UttaksperiodeInfo>
68+
): Boolean =
69+
nyPeriode.tom.dayOfWeek == DayOfWeek.FRIDAY && allePerioder.any { it.key.fom.isAfter(nyPeriode.tom) }
70+
5571
internal fun bareHelgEllerIngenDagerMellom(dato1: LocalDate, dato2: LocalDate): Boolean {
5672
require(dato1 < dato2) {"Dato1($dato1) må være før dato2($dato2)."}
5773
val dagerMellom = ChronoUnit.DAYS.between(dato1, dato2)

server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/UttakplanApiTest.kt

+47
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,53 @@ class UttakplanApiTest(@Autowired val restTemplate: TestRestTemplate) {
695695
)
696696
}
697697

698+
@Test
699+
internal fun `Utvider sammenslått periode over helg ved endring på mandag`() {
700+
val søknadsperiode1 = LukketPeriode("2025-02-01/2025-02-23")
701+
val søknadsperiode2 = LukketPeriode("2025-02-24/2025-03-31")
702+
703+
val grunnlag = lagGrunnlag(
704+
søknadsperiode = LukketPeriode("2025-02-01/2025-03-31"),
705+
arbeid = listOf(
706+
Arbeid(
707+
ARBEIDSFORHOLD1,
708+
mapOf(søknadsperiode1 to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = INGENTING), søknadsperiode2 to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = HALV_DAG))
709+
)
710+
),
711+
pleiebehov = mapOf(LukketPeriode("2025-02-01/2025-03-31") to Pleiebehov.PROSENT_100),
712+
)
713+
714+
val postResponse = testClient.opprettUttaksplan(grunnlag)
715+
assertThat(postResponse.statusCode).isEqualTo(HttpStatus.CREATED)
716+
717+
val hentResponse = testClient.hentUttaksplan(grunnlag.behandlingUUID, true)
718+
assertThat(hentResponse.statusCode).isEqualTo(HttpStatus.OK)
719+
val uttaksplan = hentResponse.body ?: fail("Mangler uttaksplan")
720+
721+
uttaksplan.assertOppfylt(
722+
perioder = listOf(LukketPeriode("2025-02-03/2025-02-23")),
723+
grad = HUNDRE_PROSENT,
724+
gradPerArbeidsforhold = mapOf(
725+
ARBEIDSFORHOLD1 to HUNDRE_PROSENT
726+
),
727+
oppfyltÅrsak = Årsak.FULL_DEKNING,
728+
endringsstatus = Endringsstatus.NY
729+
)
730+
731+
732+
uttaksplan.assertOppfylt(
733+
perioder = listOf(LukketPeriode("2025-02-24/2025-03-31")),
734+
grad = Prosent(50),
735+
gradPerArbeidsforhold = mapOf(
736+
ARBEIDSFORHOLD1 to Prosent(50)
737+
),
738+
oppfyltÅrsak = Årsak.AVKORTET_MOT_INNTEKT,
739+
endringsstatus = Endringsstatus.NY
740+
)
741+
}
742+
743+
744+
698745
@Test
699746
internal fun `Enkelt uttak på flere arbeidsforhold`() {
700747
val grunnlag = lagGrunnlag(

server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/testklient/ScenarioHelper.kt

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import java.time.LocalDate
1010
import java.util.*
1111

1212
internal val FULL_DAG = Duration.ofHours(7).plusMinutes(30)
13+
internal val HALV_DAG = Duration.ofHours(3).plusMinutes(45)
1314
internal val INGENTING = Duration.ZERO
1415

1516
internal val HELE_2020 = LukketPeriode("2020-01-01/2020-12-31")

0 commit comments

Comments
 (0)