Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Fjerne toggle for lansert funksjonalitet (grense på 60 dager) #921

Merged
merged 2 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions nais/dev-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,3 @@ spec:
# Feature toggles
- name: UTVIDET_LOGGING
value: "false"
- name: GIR_ALDRI_MER_ENN_60_DAGER
value: "true"
2 changes: 0 additions & 2 deletions nais/prod-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,3 @@ spec:
value: PROD

# Feature toggles
- name: GIR_ALDRI_MER_ENN_60_DAGER
value: "true"
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,7 @@ internal class MaxAntallDagerRegel : UttaksplanRegel {

if (rest <= BigDecimal.ZERO) {
// Hvis ingenting igjen på kvoten så må undersøke om det fremdeles kan innvilges
if (FeatureToggle.isActive("GIR_ALDRI_MER_ENN_60_DAGER")) {
nyePerioder[periode] = info.settIkkeoppfylt()
} else {
kanPeriodenInnvilgesFordiDenOverlapperMedTidligereInnvilgetPeriode(nyePerioder, periode, info, maxDatoHittil)
}
nyePerioder[periode] = info.settIkkeoppfylt()
} else if (forbrukteDagerDennePerioen <= rest) {
// Hvis det er nok dager igjen, så settes hele periode til oppfylt
nyePerioder[periode] = info
Expand All @@ -55,11 +51,7 @@ internal class MaxAntallDagerRegel : UttaksplanRegel {
val restHeleDagerMedEventuellHelg = if (restHeleDager > BigDecimal(5)) ((restHeleDager.divide(BigDecimal(5), 2, RoundingMode.HALF_UP)) * BigDecimal(2)) + restHeleDager - BigDecimal(2) else restHeleDager
nyePerioder[LukketPeriode(periode.fom, periode.fom.plusDays((restHeleDagerMedEventuellHelg - BigDecimal.ONE).toLong()))] = info
if (erDetFlereDagerIgjenÅVurdere(periode, restHeleDagerMedEventuellHelg)) {
if (FeatureToggle.isActive("GIR_ALDRI_MER_ENN_60_DAGER")) {
nyePerioder[LukketPeriode(periode.fom.plusDays(restHeleDagerMedEventuellHelg.toLong()), periode.tom)] = info.settIkkeoppfylt()
} else {
kanPeriodenInnvilgesFordiDenOverlapperMedTidligereInnvilgetPeriode(nyePerioder, LukketPeriode(periode.fom.plusDays(restHeleDagerMedEventuellHelg.toLong()), periode.tom), info, maxDatoHittil)
}
nyePerioder[LukketPeriode(periode.fom.plusDays(restHeleDagerMedEventuellHelg.toLong()), periode.tom)] = info.settIkkeoppfylt()
}
rest = BigDecimal.ZERO
}
Expand Down Expand Up @@ -109,41 +101,6 @@ internal class MaxAntallDagerRegel : UttaksplanRegel {
return null
}

private fun kanPeriodenInnvilgesFordiDenOverlapperMedTidligereInnvilgetPeriode(
nyePerioder: MutableMap<LukketPeriode, UttaksperiodeInfo>,
periode: LukketPeriode,
info: UttaksperiodeInfo,
maxDatoHittil: LocalDate?
): Map<LukketPeriode, UttaksperiodeInfo> {
if (maxDatoHittil != null) {
if (sjekkOmAltKanInnvilgesFordiDetErFørTidligereInnvilgetPeriode(periode, maxDatoHittil)) {
nyePerioder[periode] = info
} else if (sjekkOmNoeKanInnvilgesFordiDetOverlapperMedTidligereInnvilgetPeriode(periode, maxDatoHittil)) {
nyePerioder[LukketPeriode(periode.fom, maxDatoHittil)] = info
nyePerioder[LukketPeriode(maxDatoHittil.plusDays(1), periode.tom)] = info.settIkkeoppfylt()
} else {
nyePerioder[periode] = info.settIkkeoppfylt()
}
} else {
nyePerioder[periode] = info.settIkkeoppfylt()
}
return nyePerioder
}

private fun sjekkOmNoeKanInnvilgesFordiDetOverlapperMedTidligereInnvilgetPeriode(
periode: LukketPeriode,
maxDatoHittil: LocalDate
): Boolean {
return (periode.fom == maxDatoHittil || periode.fom.isBefore(maxDatoHittil))
}

private fun sjekkOmAltKanInnvilgesFordiDetErFørTidligereInnvilgetPeriode(
periode: LukketPeriode,
maxDatoHittil: LocalDate
): Boolean {
return (periode.tom == maxDatoHittil || periode.tom.isBefore(maxDatoHittil))
}

}

private fun UttaksperiodeInfo.settIkkeoppfylt(): UttaksperiodeInfo {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,6 @@ import java.util.*
class MaxAntallDagerRegelTest {
private val regel: MaxAntallDagerRegel = MaxAntallDagerRegel()

@BeforeEach
internal fun setUp() {
System.setProperty("GIR_ALDRI_MER_ENN_60_DAGER", "true")
}

@AfterEach
internal fun tearDown() {
System.clearProperty("GIR_ALDRI_MER_ENN_60_DAGER")
}
@Test
internal fun `Pleiepenger sykt barn skal få innvilget uavhengig av kvote, og kvoteInfo skal derfor ikke være satt`() {
val periode1 = LukketPeriode("2020-01-06/2020-04-03") // 65 dager
Expand Down Expand Up @@ -100,6 +91,38 @@ class MaxAntallDagerRegelTest {
assertThat(resultatInfo2.utfall).isEqualTo(Utfall.IKKE_OPPFYLT)
}

@Test
internal fun `Søker får innvilget det fraværet som er mindre enn max antall dager, deretter avslag, Har søkt i to søknader som behandles sekvensielt`() {
val periode1 = LukketPeriode("2024-01-01/2024-01-31")
val periode2 = LukketPeriode("2024-02-01/2024-03-31")
val søkersUttaksplan1 = Uttaksplan(
perioder = mapOf(
periode1 to dummyUttaksperiodeInfo()
), trukketUttak = listOf()
)
val søkersUttaksplan2 = Uttaksplan(
perioder = mapOf(
periode2 to dummyUttaksperiodeInfo()
), trukketUttak = listOf()
)

val grunnlagBehandling1 = dummyRegelGrunnlag(periode1)
val uttaksplanBehandling1 = regel.kjør(søkersUttaksplan1, grunnlagBehandling1)
assertThat(uttaksplanBehandling1.perioder).hasSize(1)
assertThat(uttaksplanBehandling1.kvoteInfo).isNotNull
assertThat(uttaksplanBehandling1.kvoteInfo!!.maxDato).isNull()
assertThat(uttaksplanBehandling1.kvoteInfo!!.totaltForbruktKvote).isEqualByComparingTo(BigDecimal.valueOf(23))

val helePerioden = LukketPeriode(periode1.fom, periode2.tom)
val grunnlagBehandling2 = dummyRegelGrunnlag(helePerioden).copy(forrigeUttaksplan = uttaksplanBehandling1)
val uttaksplanBehandling2 = regel.kjør(søkersUttaksplan2, grunnlagBehandling2)
assertThat(uttaksplanBehandling2.perioder).hasSize(2)
assertThat(uttaksplanBehandling2.kvoteInfo).isNotNull
assertThat(uttaksplanBehandling2.kvoteInfo!!.maxDato).isEqualTo("2024-03-22")
assertThat(uttaksplanBehandling2.kvoteInfo!!.totaltForbruktKvote).isEqualByComparingTo(BigDecimal.valueOf(60))

}

@Test
internal fun `Søker får avslått det fraværet som ikke er oppfylt av andre grunner, innvilget det som er innenfor kvoten, og avslått det som er over kvoten`() {
val periode1 = LukketPeriode("2020-01-06/2020-01-31") // 20 dager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,6 @@ class NedjusteringAvUttaksgradTest(@Autowired val restTemplate: TestRestTemplate
PleiepengerBarnUttakTestClient(restTemplate, token)
}

@BeforeEach
internal fun setUp() {
System.setProperty("GIR_ALDRI_MER_ENN_60_DAGER", "true")
}

@AfterEach
internal fun tearDown() {
System.clearProperty("GIR_ALDRI_MER_ENN_60_DAGER")
}

@Test
internal fun `Uttak med nedjustert søkers uttaksgrad grunnet inntektsgradering`() {
val søknadsperiode = LukketPeriode("2020-01-01/2020-01-10")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,6 @@ class UttakplanApiTest(@Autowired val restTemplate: TestRestTemplate) {
PleiepengerBarnUttakTestClient(restTemplate, token)
}

@BeforeEach
internal fun setUp() {
System.setProperty("GIR_ALDRI_MER_ENN_60_DAGER", "true")
}

@AfterEach
internal fun tearDown() {
System.clearProperty("GIR_ALDRI_MER_ENN_60_DAGER")
}

@Test
internal fun `Enkelt uttak på et arbeidsforhold`() {
val søknadsperiode = LukketPeriode("2020-01-01/2020-01-10")
Expand Down
Loading