diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/grunnlag/InnhentetGrunnlagMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/grunnlag/InnhentetGrunnlagMapping.kt index bfc5a1e0f..fee2066ce 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/grunnlag/InnhentetGrunnlagMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/grunnlag/InnhentetGrunnlagMapping.kt @@ -312,7 +312,7 @@ private fun List.mapBarnetilsyn(personobjekter: Set) = ) }.toSet() -private fun List.mapAinntekt(personobjekter: Set) = +fun List.mapAinntekt(personobjekter: Set) = filter { it.type == Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER && !it.erBearbeidet } .groupBy { it.rolle.ident } .map { (ident, grunnlagListe) -> @@ -370,7 +370,7 @@ private fun List.mapUtvidetbarnetrygd(personobjekter: Set ) }.toSet() -private fun List.mapSkattegrunnlag(personobjekter: Set) = +fun List.mapSkattegrunnlag(personobjekter: Set) = filter { it.type == Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER && !it.erBearbeidet } .groupBy { it.rolle.ident } .flatMap { (ident, grunnlagListe) -> diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/VedtakGrunnlagMapper.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/VedtakGrunnlagMapper.kt index d821875b0..e72306c72 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/VedtakGrunnlagMapper.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/VedtakGrunnlagMapper.kt @@ -10,6 +10,7 @@ import no.nav.bidrag.behandling.service.PersonService import no.nav.bidrag.behandling.transformers.beregning.EvnevurderingBeregningResultat import no.nav.bidrag.behandling.transformers.beregning.ValiderBeregning import no.nav.bidrag.behandling.transformers.grunnlag.manglerRolleIGrunnlag +import no.nav.bidrag.behandling.transformers.grunnlag.mapAinntekt import no.nav.bidrag.behandling.transformers.grunnlag.tilGrunnlagPerson import no.nav.bidrag.behandling.transformers.grunnlag.tilGrunnlagsreferanse import no.nav.bidrag.behandling.transformers.grunnlag.valider @@ -91,7 +92,18 @@ class VedtakGrunnlagMapper( val gebyrBeregning = if (behandling.avslag != null) { beregnGebyrApi.beregnGebyr(grunnlagsliste, rolle.tilGrunnlagsreferanse()) + - mapper.run { behandling.tilGrunnlagInntektSiste12Mnd(rolle) } + mapper.run { + val grunnlagSkatteGrunnlag = behandling.tilGrunnlagInntektSiste12Mnd(rolle) + if (grunnlagSkatteGrunnlag != null) { + listOf(grunnlagSkatteGrunnlag) + + behandling.grunnlag + .toList() + .mapAinntekt(behandling.tilPersonobjekter()) + .filter { it.gjelderReferanse == rolle.tilGrunnlagsreferanse() } + } else { + emptyList() + } + } } else { beregnGebyrApi.beregnGebyr(grunnlagsliste, rolle.tilGrunnlagsreferanse()) }.filterNotNull() diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/VedtakserviceBidragTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/VedtakserviceBidragTest.kt index 68324ce0e..0f53106e3 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/VedtakserviceBidragTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/VedtakserviceBidragTest.kt @@ -90,6 +90,7 @@ import org.junit.jupiter.api.extension.ExtendWith import org.springframework.test.context.junit.jupiter.SpringExtension import stubPersonConsumer import java.math.BigDecimal +import java.time.LocalDate import java.time.YearMonth @ExtendWith(SpringExtension::class) @@ -891,11 +892,13 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() { behandling.inntekter.add( Inntekt( belop = BigDecimal(90000), - datoFom = behandling.virkningstidspunkt, + datoFom = null, datoTom = null, - ident = behandling.bidragsmottaker!!.ident!!, + ident = behandling.bidragspliktig!!.ident!!, taMed = false, - kilde = Kilde.MANUELL, + opprinneligFom = LocalDate.parse("2023-02-01"), + opprinneligTom = LocalDate.parse("2024-01-31"), + kilde = Kilde.OFFENTLIG, behandling = behandling, type = Inntektsrapportering.AINNTEKT_BEREGNET_12MND, id = 1, @@ -935,35 +938,37 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() { it.any { it.type == Engangsbeløptype.GEBYR_MOTTAKER }.shouldBeTrue() it.any { it.type == Engangsbeløptype.GEBYR_SKYLDNER }.shouldBeTrue() - assertSoftly(it.find { it.type == Engangsbeløptype.GEBYR_MOTTAKER }!!) { + assertSoftly(it.find { it.type == Engangsbeløptype.GEBYR_SKYLDNER }!!) { beløp shouldBe BigDecimal(1277) kravhaver shouldBe Personident("NAV") mottaker shouldBe Personident("NAV") innkreving shouldBe Innkrevingstype.MED_INNKREVING - resultatkode shouldBe Resultatkode.GEBYR_FRITTATT.name + resultatkode shouldBe Resultatkode.GEBYR_ILAGT.name sak shouldBe Saksnummer(SAKSNUMMER) - skyldner shouldBe Personident(testdataBM.ident) + skyldner shouldBe Personident(testdataBP.ident) grunnlagReferanseListe shouldHaveSize 2 opprettVedtakRequest.grunnlagListe.validerHarReferanseTilGrunnlagIReferanser(Grunnlagstype.SLUTTBEREGNING_GEBYR, grunnlagReferanseListe) opprettVedtakRequest.grunnlagListe.validerHarReferanseTilGrunnlagIReferanser(Grunnlagstype.INNTEKT_RAPPORTERING_PERIODE, grunnlagReferanseListe) val sluttberegningGebyrBM = opprettVedtakRequest.grunnlagListe.finnGrunnlagSomErReferertFraGrunnlagsreferanseListe(Grunnlagstype.SLUTTBEREGNING_GEBYR, grunnlagReferanseListe).firstOrNull() - sluttberegningGebyrBM!!.gjelderReferanse shouldBe behandling.bidragsmottaker!!.tilGrunnlagsreferanse() + sluttberegningGebyrBM!!.gjelderReferanse shouldBe behandling.bidragspliktig!!.tilGrunnlagsreferanse() sluttberegningGebyrBM.grunnlagsreferanseListe shouldHaveSize 2 + opprettVedtakRequest.grunnlagListe.filter { it.type == Grunnlagstype.INNHENTET_INNTEKT_AINNTEKT }.shouldHaveSize(1) + opprettVedtakRequest.grunnlagListe.filter { it.type == Grunnlagstype.INNHENTET_INNTEKT_AINNTEKT && it.gjelderReferanse == behandling.bidragspliktig!!.tilGrunnlagsreferanse() }.shouldHaveSize(1) opprettVedtakRequest.grunnlagListe.validerHarReferanseTilGrunnlagIReferanser(Grunnlagstype.MANUELT_OVERSTYRT_GEBYR, sluttberegningGebyrBM.grunnlagsreferanseListe) opprettVedtakRequest.grunnlagListe.validerHarReferanseTilSjablonIReferanser(SjablonTallNavn.FASTSETTELSESGEBYR_BELØP, sluttberegningGebyrBM.grunnlagsreferanseListe) } - assertSoftly(it.find { it.type == Engangsbeløptype.GEBYR_SKYLDNER }!!) { + assertSoftly(it.find { it.type == Engangsbeløptype.GEBYR_MOTTAKER }!!) { beløp shouldBe BigDecimal(1277) kravhaver shouldBe Personident("NAV") mottaker shouldBe Personident("NAV") innkreving shouldBe Innkrevingstype.MED_INNKREVING - resultatkode shouldBe Resultatkode.GEBYR_ILAGT.name + resultatkode shouldBe Resultatkode.GEBYR_FRITTATT.name sak shouldBe Saksnummer(SAKSNUMMER) - skyldner shouldBe Personident(testdataBP.ident) + skyldner shouldBe Personident(testdataBM.ident) grunnlagReferanseListe shouldHaveSize 1 opprettVedtakRequest.grunnlagListe.validerHarReferanseTilGrunnlagIReferanser(Grunnlagstype.SLUTTBEREGNING_GEBYR, grunnlagReferanseListe) val sluttberegningGebyrBP = opprettVedtakRequest.grunnlagListe.finnGrunnlagSomErReferertFraGrunnlagsreferanseListe(Grunnlagstype.SLUTTBEREGNING_GEBYR, grunnlagReferanseListe).firstOrNull() - sluttberegningGebyrBP!!.gjelderReferanse shouldBe behandling.bidragspliktig!!.tilGrunnlagsreferanse() + sluttberegningGebyrBP!!.gjelderReferanse shouldBe behandling.bidragsmottaker!!.tilGrunnlagsreferanse() sluttberegningGebyrBP.grunnlagsreferanseListe shouldHaveSize 2 opprettVedtakRequest.grunnlagListe.validerHarReferanseTilGrunnlagIReferanser(Grunnlagstype.MANUELT_OVERSTYRT_GEBYR, sluttberegningGebyrBP.grunnlagsreferanseListe) opprettVedtakRequest.grunnlagListe.validerHarReferanseTilSjablonIReferanser(SjablonTallNavn.FASTSETTELSESGEBYR_BELØP, sluttberegningGebyrBP.grunnlagsreferanseListe)