Skip to content

Commit

Permalink
Klargjør for prodsetting
Browse files Browse the repository at this point in the history
  • Loading branch information
Oddsor committed Oct 2, 2024
1 parent 7cd1690 commit 4280782
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,13 @@ class Korreksjon(
var besluttetTidspunkt: Instant? = null

@JsonProperty
fun harTattStillingTilAlleInntektslinjer(): Boolean = if (refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype == Tiltakstype.VTAO) true else (refusjonsgrunnlag.inntektsgrunnlag?.inntekter?.filter { it.erMedIInntektsgrunnlag() }?.find { inntekt -> inntekt.erOpptjentIPeriode === null } === null)
fun harTattStillingTilAlleInntektslinjer(): Boolean =
refusjonsgrunnlag.inntektsgrunnlag?.inntekter?.filter { it.erMedIInntektsgrunnlag() }
?.find { inntekt -> inntekt.erOpptjentIPeriode == null } == null

@JsonProperty
fun måTaStillingTilInntekter(): Boolean =
refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype != Tiltakstype.VTAO

override fun getFnrOgBedrift(): FnrOgBedrift = FnrOgBedrift(deltakerFnr, bedriftNr)

Expand Down Expand Up @@ -130,7 +136,7 @@ class Korreksjon(
if (kostnadssted.isBlank()) {
throw FeilkodeException(Feilkode.KOSTNADSSTED_MANGLER)
}
if (!this.harTattStillingTilAlleInntektslinjer()) {
if (this.måTaStillingTilInntekter() && !this.harTattStillingTilAlleInntektslinjer()) {
throw FeilkodeException(Feilkode.IKKE_TATT_STILLING_TIL_ALLE_INNTEKTSLINJER)
}

Expand All @@ -150,7 +156,7 @@ class Korreksjon(
if (refusjonsbeløp == null || refusjonsbeløp != 0) {
throw FeilkodeException(Feilkode.KORREKSJONSBELOP_IKKE_NULL)
}
if (!this.harTattStillingTilAlleInntektslinjer()) {
if (this.måTaStillingTilInntekter() && !this.harTattStillingTilAlleInntektslinjer()) {
throw FeilkodeException(Feilkode.IKKE_TATT_STILLING_TIL_ALLE_INNTEKTSLINJER)
}
this.godkjentTidspunkt = Now.instant()
Expand All @@ -166,7 +172,7 @@ class Korreksjon(
if (refusjonsbeløp == null || refusjonsbeløp >= 0) {
throw FeilkodeException(Feilkode.KORREKSJONSBELOP_POSITIVT)
}
if (!this.harTattStillingTilAlleInntektslinjer()) {
if (this.måTaStillingTilInntekter() && !this.harTattStillingTilAlleInntektslinjer()) {
throw FeilkodeException(Feilkode.IKKE_TATT_STILLING_TIL_ALLE_INNTEKTSLINJER)
}
this.godkjentTidspunkt = Now.instant()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,13 @@ class Refusjon(
}

@JsonProperty
fun harTattStillingTilAlleInntektslinjer(): Boolean = if (refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype == Tiltakstype.VTAO) true else (refusjonsgrunnlag.inntektsgrunnlag?.inntekter?.filter { it.erMedIInntektsgrunnlag() }?.find { inntekt -> inntekt.erOpptjentIPeriode === null } === null)
fun harTattStillingTilAlleInntektslinjer(): Boolean =
refusjonsgrunnlag.inntektsgrunnlag?.inntekter?.filter { it.erMedIInntektsgrunnlag() }
?.find { inntekt -> inntekt.erOpptjentIPeriode == null } == null

@JsonProperty
fun måTaStillingTilInntekter(): Boolean =
refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype != Tiltakstype.VTAO

private fun krevStatus(vararg gyldigeStatuser: RefusjonStatus) {
if (status !in gyldigeStatuser) throw FeilkodeException(Feilkode.UGYLDIG_STATUS)
Expand Down Expand Up @@ -159,7 +165,7 @@ class Refusjon(
if (refusjonsgrunnlag.bedriftKontonummer == null) {
throw FeilkodeException(Feilkode.INGEN_BEDRIFTKONTONUMMER)
}
if (!this.harTattStillingTilAlleInntektslinjer()) {
if (this.måTaStillingTilInntekter() && !this.harTattStillingTilAlleInntektslinjer()) {
throw FeilkodeException(Feilkode.IKKE_TATT_STILLING_TIL_ALLE_INNTEKTSLINJER)
}
if (refusjonsgrunnlag.beregning == null) {
Expand Down
28 changes: 23 additions & 5 deletions src/test/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/TestData.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
package no.nav.arbeidsgiver.tiltakrefusjon

import no.nav.arbeidsgiver.tiltakrefusjon.autorisering.InnloggetBruker
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.*
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.BrukerRolle
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Inntektsgrunnlag
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Inntektslinje
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Refusjon
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tilskuddsgrunnlag
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tiltakstype
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.beregnRefusjonsbeløp
import no.nav.arbeidsgiver.tiltakrefusjon.utils.Now
import no.nav.arbeidsgiver.tiltakrefusjon.utils.ulid
import no.nav.arbeidsgiver.tiltakrefusjon.varsling.VarselType
import no.nav.arbeidsgiver.tiltakrefusjon.varsling.Varsling
import java.time.YearMonth
import java.time.ZoneId
import java.time.temporal.TemporalAdjusters.firstDayOfMonth
import java.time.temporal.TemporalAdjusters.lastDayOfMonth
import java.util.UUID
import java.util.*

val innloggetTestbruker = innloggetBruker("testsystem", BrukerRolle.SYSTEM)

Expand Down Expand Up @@ -816,7 +824,10 @@ fun `Vidar SendKrav`(): Refusjon {
refusjon.let {
it.medBedriftKontonummer()
it.status = RefusjonStatus.SENDT_KRAV
it.godkjentAvArbeidsgiver = Now.localDate().minusMonths(1).with(lastDayOfMonth()).plusDays(1).atStartOfDay(ZoneId.of("Europe/Oslo")).toInstant()
it.godkjentAvArbeidsgiver = Now.localDate()
.with(firstDayOfMonth())
.atStartOfDay(ZoneId.of("Europe/Oslo"))
.toInstant()
}

return refusjon
Expand All @@ -842,8 +853,15 @@ fun `Vidar Utbetalt`(): Refusjon {
refusjon.let {
it.medBedriftKontonummer()
it.status = RefusjonStatus.UTBETALT
it.godkjentAvArbeidsgiver = Now.localDate().minusMonths(1).with(lastDayOfMonth()).plusDays(1).atStartOfDay(ZoneId.of("Europe/Oslo")).toInstant()
it.utbetaltTidspunkt = Now.localDate().minusMonths(1).with(lastDayOfMonth()).plusDays(3).atStartOfDay(ZoneId.of("Europe/Oslo")).toInstant()
it.godkjentAvArbeidsgiver = Now.localDate()
.with(firstDayOfMonth())
.atStartOfDay(ZoneId.of("Europe/Oslo"))
.toInstant()
it.utbetaltTidspunkt = Now.localDate()
.with(firstDayOfMonth())
.plusDays(2)
.atStartOfDay(ZoneId.of("Europe/Oslo"))
.toInstant()
}

return refusjon
Expand Down

0 comments on commit 4280782

Please sign in to comment.