diff --git a/pom.xml b/pom.xml index c563b2339..65fe0a7c5 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 2.0.20 2.6.0 3.20240806111424_fff2930 - 3.0_20240910101142_f4fc87e + 3.0_20240911135543_ae5a9ac 2.0_20240425094647_26b983d 2.0_20230214104704_706e9c0 2.0_20230214104704_706e9c0 diff --git "a/src/main/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtil.kt" "b/src/main/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtil.kt" index fcc8271f8..d07581ba5 100644 --- "a/src/main/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtil.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtil.kt" @@ -46,6 +46,7 @@ fun lagSimuleringsoppsummering( tidSimuleringHentet = tidSimuleringHentet, tomSisteUtbetaling = tomSisteUtbetaling, sumManuellePosteringer = summerManuellePosteringer(detaljertSimuleringResultat), + sumKreditorPosteringer = summerKreditorPosteringer(detaljertSimuleringResultat), ) } @@ -53,7 +54,13 @@ fun summerManuellePosteringer(detaljertSimuleringResultat: DetaljertSimuleringRe detaljertSimuleringResultat.simuleringMottaker .flatMap { simuleringMottaker -> simuleringMottaker.simulertPostering } .filter { simulertPostering -> simulertPostering.fagOmrådeKode.gjelderManuellPostering() } - .fold(ZERO) { acc, simulertPostering -> acc + simulertPostering.beløp } + .sumOf ( SimulertPostering::beløp ) + +fun summerKreditorPosteringer(detaljertSimuleringResultat: DetaljertSimuleringResultat): BigDecimal = + detaljertSimuleringResultat.simuleringMottaker + .flatMap { simuleringMottaker -> simuleringMottaker.simulertPostering } + .filter { simulertPostering -> simulertPostering.gjelderKreditortrekk() } + .sumOf ( SimulertPostering::beløp ) fun grupperPosteringerEtterDato(mottakere: List): List = mottakere diff --git a/src/test/kotlin/no/nav/familie/ef/iverksett/DomainTestUtil.kt b/src/test/kotlin/no/nav/familie/ef/iverksett/DomainTestUtil.kt index 88546d5a8..87137cdbc 100644 --- a/src/test/kotlin/no/nav/familie/ef/iverksett/DomainTestUtil.kt +++ b/src/test/kotlin/no/nav/familie/ef/iverksett/DomainTestUtil.kt @@ -139,6 +139,7 @@ fun posteringer( posteringstype: PosteringType = PosteringType.YTELSE, betalingstype: BetalingType = if (beløp >= 0) BetalingType.DEBIT else BetalingType.KREDIT, fagOmrådeKode: FagOmrådeKode = FagOmrådeKode.ENSLIG_FORSØRGER_OVERGANGSSTØNAD, + klassekode: String = "EFOG" ): List = MutableList(antallMåneder) { index -> SimulertPostering( @@ -154,6 +155,7 @@ fun posteringer( .atEndOfMonth(), // Forfallsdato i bank (dagen går til brukeren). Det sendes til banken kanskje en uke i forveien utenInntrekk = false, + klassekode = klassekode ) // Brukes ikke for EF } diff --git "a/src/test/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtilKtTest.kt" "b/src/test/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtilKtTest.kt" index 698f1fa6a..e7448aa21 100644 --- "a/src/test/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtilKtTest.kt" +++ "b/src/test/kotlin/no/nav/familie/ef/iverksett/\303\270konomi/simulering/SimuleringUtilKtTest.kt" @@ -71,4 +71,30 @@ class SimuleringUtilKtTest { every { simuleringsResultat.simuleringMottaker } returns emptyList() assertThat(summerManuellePosteringer(simuleringsResultat)).isEqualTo(BigDecimal.ZERO) } + + @Test + fun `summerKreditorPosteringer skal returnere ZERO by default `() { + every { simuleringsResultat.simuleringMottaker } returns emptyList() + assertThat(summerKreditorPosteringer(simuleringsResultat)).isEqualTo(BigDecimal.ZERO) + } + + @Test + fun `summer flere kreditorposteringer`() { + val simulertePosteringer = + posteringer(klassekode = "KREDKRED", beløp = 1, antallMåneder = 3) + val simulertePosteringerAnnenKlassekode = + posteringer(klassekode = "KLASSEKODE", beløp = 2) + val simuleringsMottaker = + listOf( + SimuleringMottaker( + simulertPostering = simulertePosteringer + simulertePosteringerAnnenKlassekode, + mottakerType = MottakerType.BRUKER, + ), + ) + + every { simuleringsResultat.simuleringMottaker } returns simuleringsMottaker + + assertThat(summerKreditorPosteringer(simuleringsResultat)).isEqualTo(BigDecimal(3)) + } + }