Skip to content

Commit

Permalink
Avbryt månedlig valutajustering dersom det ikke eksisterer valutakurs…
Browse files Browse the repository at this point in the history
…er i forrige behandling (#4801)

### 💰 Hva skal gjøres, og hvorfor?

Dersom det ikke eksisterer valutaer på forrige behandling er det ingen
valutakurser å oppdatere, så tasken avsluttes.

### ✅ Checklist
_Har du husket alle punktene i listen?_
- [ ] 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 👇

### 💬 Ønsker du en muntlig gjennomgang?
- [ ] Ja
- [x] Nei
  • Loading branch information
MagnusTonnessen authored Oct 2, 2024
1 parent afc4f23 commit cc21980
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak
import no.nav.familie.ba.sak.kjerne.eøs.felles.BehandlingId
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.ValutakursService
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.erAlleValutakurserOppdaterteIMåned
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.måValutakurserOppdateresForMåned
import no.nav.familie.ba.sak.kjerne.fagsak.FagsakStatus
import no.nav.familie.ba.sak.kjerne.simulering.SimuleringService
import no.nav.familie.ba.sak.kjerne.steg.StegType
Expand Down Expand Up @@ -57,7 +57,7 @@ class AutovedtakMånedligValutajusteringService(

val sisteVedtatteBehandling = behandlingHentOgPersisterService.hentSisteBehandlingSomErVedtatt(fagsakId = fagsakId) ?: error("Fant ikke siste vedtatte behandling for $fagsakId")
val sisteValutakurser = valutakursService.hentValutakurser(BehandlingId(sisteVedtatteBehandling.id))
if (sisteValutakurser.erAlleValutakurserOppdaterteIMåned(måned)) {
if (!sisteValutakurser.ValutakurserOppdateresForMåned(måned)) {
logger.info("Valutakursene er allerede oppdatert for fagsak $fagsakId. Hopper ut")
return
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,10 @@ fun List<UtfyltValutakurs>.tilTidslinje() =
)
}.tilTidslinje()

fun Collection<Valutakurs>.erAlleValutakurserOppdaterteIMåned(
fun Collection<Valutakurs>.måValutakurserOppdateresForMåned(
ned: YearMonth,
) = isNotEmpty() &&
none {
) =
any {
val fom = it.fom ?: TIDENES_MORGEN.toYearMonth()
val tom = it.tom ?: TIDENES_ENDE.toYearMonth()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,14 @@ class AutovedtakMånedligValutajusteringServiceTest {
fun `utførMånedligValutajustering kaster Feil hvis en annen enn nåværende måned blir sendt inn`() {
every { localDateProvider.now() } returns LocalDate.now()
every { behandlingHentOgPersisterService.hentSisteBehandlingSomErVedtatt(any()) } returns lagBehandling()
every { valutaKursService.hentValutakurser(any()) } returns emptyList()
every { valutaKursService.hentValutakurser(any()) } returns
listOf(
Valutakurs(
fom = YearMonth.now().minusYears(1),
tom = null,
vurderingsform = Vurderingsform.MANUELL,
),
)

assertThrows<Feil> {
autovedtakMånedligValutajusteringService.utførMånedligValutajustering(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@ class ValutakursTest {
}

@Nested
inner class `Valider at erAlleValutakurserOppdaterteIMåned` {
inner class `Valider at ValutakurserOppdateresForMåned` {
@Test
fun `gir true når alle valutakurser er oppdatert for gitt måned`() {
fun `gir false når alle valutakurser er oppdatert for gitt måned`() {
val måned = LocalDate.now().toYearMonth()

val valutakurs1 =
Expand All @@ -143,11 +143,11 @@ class ValutakursTest {

val valutakurser = listOf(valutakurs1, valutakurs2)

assertThat(valutakurser.erAlleValutakurserOppdaterteIMåned(måned)).isTrue()
assertThat(valutakurser.ValutakurserOppdateresForMåned(måned)).isFalse()
}

@Test
fun `gir false når en valutakurs ikke er oppdatert for gitt måned`() {
fun `gir true når minst én valutakurs ikke er oppdatert for gitt måned`() {
val måned = LocalDate.now().toYearMonth()

val valutakurs1 =
Expand All @@ -166,7 +166,7 @@ class ValutakursTest {

val valutakurser = listOf(valutakurs1, valutakurs2)

assertThat(valutakurser.erAlleValutakurserOppdaterteIMåned(måned)).isFalse()
assertThat(valutakurser.ValutakurserOppdateresForMåned(måned)).isTrue()
}
}
}

0 comments on commit cc21980

Please sign in to comment.