diff --git a/.github/workflows/dp-inntekt-api-deploy.yaml b/.github/workflows/dp-inntekt-api-deploy.yaml index 6b4aefb7..c48b81ec 100644 --- a/.github/workflows/dp-inntekt-api-deploy.yaml +++ b/.github/workflows/dp-inntekt-api-deploy.yaml @@ -37,7 +37,7 @@ jobs: deploy-dev: name: Deploy to dev needs: [build] - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/task/nye-inntektsklasser' runs-on: ubuntu-latest environment: dev-fss steps: diff --git a/buildSrc/src/main/kotlin/Constants.kt b/buildSrc/src/main/kotlin/Constants.kt index de055bdc..d6004926 100644 --- a/buildSrc/src/main/kotlin/Constants.kt +++ b/buildSrc/src/main/kotlin/Constants.kt @@ -46,7 +46,6 @@ object Dagpenger { const val Grunnbeløp = "com.github.navikt:dp-grunnbelop:2023.04.11-15.15.dd33088904de" const val Streams = "com.github.navikt:dagpenger-streams:2023.04.26-10.04.3a1a87ddfe2c" - const val Events = "com.github.navikt:dagpenger-events:2023.04.26-10.02.4df92899b455" } object Database { diff --git a/dp-inntekt-api/build.gradle.kts b/dp-inntekt-api/build.gradle.kts index 4c5746c3..c50a1098 100644 --- a/dp-inntekt-api/build.gradle.kts +++ b/dp-inntekt-api/build.gradle.kts @@ -30,7 +30,7 @@ val expediaGraphqlVersion = "6.4.0" dependencies { - implementation("com.github.navikt:dagpenger-events:20230831.d11fdb") + implementation("com.github.navikt:dagpenger-events:20231204.ee1cc3") implementation("com.github.navikt:dagpenger-streams:20230831.f3d785") implementation(Ktor2.Server.library("netty")) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifiserer/KlassifisertPostering.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifiserer/KlassifisertPostering.kt index 55eff28c..7b4bbb7b 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifiserer/KlassifisertPostering.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifiserer/KlassifisertPostering.kt @@ -19,6 +19,9 @@ private fun klassifiserPosteringsType(posteringsType: PosteringsType): InntektKl isSykepengerFangstFiske(posteringsType) -> InntektKlasse.SYKEPENGER_FANGST_FISKE isSykepenger(posteringsType) -> InntektKlasse.SYKEPENGER isTiltakslønn(posteringsType) -> InntektKlasse.TILTAKSLØNN + isOpplæringspenger(posteringsType) -> InntektKlasse.OPPLÆRINGSPENGER + isOmsorgspenger(posteringsType) -> InntektKlasse.OMSORGSPENGER + isPleiepenger(posteringsType) -> InntektKlasse.PLEIEPENGER else -> throw KlassifiseringsException("Unknown inntektklasse for $posteringsType") } } @@ -46,6 +49,7 @@ private fun isArbeidsInntekt(posteringsType: PosteringsType): Boolean { PosteringsType.L_FERIEPENGER, PosteringsType.L_FOND_FOR_IDRETTSUTØVERE, PosteringsType.Y_FORELDREPENGER, + PosteringsType.Y_FORELDREPENGER_FERIEPENGER, PosteringsType.L_HELLIGDAGSTILLEGG, PosteringsType.L_HONORAR_AKKORD_PROSENT_PROVISJON, PosteringsType.L_HYRETILLEGG, @@ -74,6 +78,7 @@ private fun isArbeidsInntekt(posteringsType: PosteringsType): Boolean { PosteringsType.L_STIPEND, PosteringsType.L_STYREHONORAR_OG_GODTGJØRELSE_VERV, PosteringsType.Y_SVANGERSKAPSPENGER, + PosteringsType.Y_SVANGERSKAPSPENGER_FERIEPENGER, PosteringsType.L_TIMELØNN, PosteringsType.L_TREKK_I_LØNN_FOR_FERIE, PosteringsType.L_UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, @@ -104,7 +109,9 @@ private fun isArbeidsInntekt(posteringsType: PosteringsType): Boolean { private fun isDagpenger(posteringsType: PosteringsType): Boolean { val dagpengerPosteringsTyper = listOf( PosteringsType.Y_DAGPENGER_VED_ARBEIDSLØSHET, - PosteringsType.Y_DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE + PosteringsType.Y_DAGPENGER_VED_ARBEIDSLØSHET_FERIETILLEGG, + PosteringsType.Y_DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE, + PosteringsType.Y_DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE_FERIETILLEGG, ) return dagpengerPosteringsTyper.contains(posteringsType) } @@ -112,10 +119,33 @@ private fun isDagpenger(posteringsType: PosteringsType): Boolean { private fun isSykepenger(posteringsType: PosteringsType): Boolean { val sykepengerPosteringsTyper = listOf( PosteringsType.Y_SYKEPENGER, - PosteringsType.Y_SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE + PosteringsType.Y_SYKEPENGER_FERIEPENGER, + PosteringsType.Y_SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE, + PosteringsType.Y_SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE_FERIEPENGER, ) return sykepengerPosteringsTyper.contains(posteringsType) } +private fun isOpplæringspenger(posteringsType: PosteringsType): Boolean { + val opplæringspengerPosteringsTyper = listOf( + PosteringsType.Y_OPPLÆRINGSPENGER, + PosteringsType.Y_OPPLÆRINGSPENGER_FERIEPENGER, + ) + return opplæringspengerPosteringsTyper.contains(posteringsType) +} +private fun isPleiepenger(posteringsType: PosteringsType): Boolean { + val pleiepengerPosteringsTyper = listOf( + PosteringsType.Y_PLEIEPENGER, + PosteringsType.Y_PLEIEPENGER_FERIEPENGER, + ) + return pleiepengerPosteringsTyper.contains(posteringsType) +} +private fun isOmsorgspenger(posteringsType: PosteringsType): Boolean { + val omsorgspengerPosteringsTyper = listOf( + PosteringsType.Y_OMSORGSPENGER, + PosteringsType.Y_OMSORGSPENGER_FERIEPENGER, + ) + return omsorgspengerPosteringsTyper.contains(posteringsType) +} private fun isFangstFiske(posteringsType: PosteringsType): Boolean { val fangstFiskePosteringsTyper = listOf( diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifiser/KlassifiserInntektTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifiser/KlassifiserInntektTest.kt index 1a370cef..96424d35 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifiser/KlassifiserInntektTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifiser/KlassifiserInntektTest.kt @@ -84,12 +84,15 @@ internal class klassifiserOgMapInntektTest { val inntektsKlasser = firstMonth.klassifiserteInntekter.map { it.inntektKlasse }.toSet() - firstMonth.klassifiserteInntekter.size shouldBe 3 - inntektsKlasser.size shouldBe 3 + firstMonth.klassifiserteInntekter.size shouldBe 6 + inntektsKlasser.size shouldBe 6 inntektsKlasser shouldBe setOf( InntektKlasse.ARBEIDSINNTEKT, InntektKlasse.DAGPENGER, - InntektKlasse.SYKEPENGER + InntektKlasse.SYKEPENGER, + InntektKlasse.PLEIEPENGER, + InntektKlasse.OMSORGSPENGER, + InntektKlasse.OPPLÆRINGSPENGER, ) } diff --git a/dp-inntekt-api/src/test/resources/test-data/spesifisert-inntekt-flere-klasser.json b/dp-inntekt-api/src/test/resources/test-data/spesifisert-inntekt-flere-klasser.json index 8d5324aa..a204d6ed 100644 --- a/dp-inntekt-api/src/test/resources/test-data/spesifisert-inntekt-flere-klasser.json +++ b/dp-inntekt-api/src/test/resources/test-data/spesifisert-inntekt-flere-klasser.json @@ -18,6 +18,48 @@ }, "posteringsType": "Y_DAGPENGER_VED_ARBEIDSLØSHET" }, + { + "posteringsMåned": "2017-01", + "beløp": "100", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-01", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_DAGPENGER_VED_ARBEIDSLØSHET_FERIETILLEGG" + }, + { + "posteringsMåned": "2017-02", + "beløp": "300", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-01", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE" + }, + { + "posteringsMåned": "2017-01", + "beløp": "35", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-01", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE_FERIETILLEGG" + }, { "posteringsMåned": "2017-01", "beløp": "2214", @@ -46,6 +88,20 @@ }, "posteringsType": "Y_SVANGERSKAPSPENGER" }, + { + "posteringsMåned": "2017-01", + "beløp": "65", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-01", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_SVANGERSKAPSPENGER_FERIEPENGER" + }, { "posteringsMåned": "2017-01", "beløp": "2612", @@ -102,6 +158,20 @@ }, "posteringsType": "Y_FORELDREPENGER" }, + { + "posteringsMåned": "2017-01", + "beløp": "966", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-02", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_FORELDREPENGER_FERIEPENGER" + }, { "posteringsMåned": "2017-02", "beløp": "4504", @@ -131,7 +201,21 @@ "posteringsType": "Y_SYKEPENGER" }, { - "posteringsMåned": "2017-02", + "posteringsMåned": "2017-01", + "beløp": "300", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-02", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_SYKEPENGER_FERIEPENGER" + }, + { + "posteringsMåned": "2017-01", "beløp": "7283", "fordel": "", "inntektskilde": "", @@ -144,6 +228,20 @@ }, "posteringsType": "Y_SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE" }, + { + "posteringsMåned": "2017-01", + "beløp": "42", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-02", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE_FERIEPENGER" + }, { "posteringsMåned": "2017-03", "beløp": "6817", @@ -200,6 +298,90 @@ }, "posteringsType": "Y_SYKEPENGER" }, + { + "posteringsMåned": "2017-01", + "beløp": "2000", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_PLEIEPENGER" + }, + { + "posteringsMåned": "2017-01", + "beløp": "200", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_PLEIEPENGER_FERIEPENGER" + }, + { + "posteringsMåned": "2017-01", + "beløp": "1463", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_OMSORGSPENGER" + }, + { + "posteringsMåned": "2017-01", + "beløp": "444", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_OMSORGSPENGER_FERIEPENGER" + }, + { + "posteringsMåned": "2017-01", + "beløp": "1463", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_OPPLÆRINGSPENGER" + }, + { + "posteringsMåned": "2017-01", + "beløp": "367", + "fordel": "", + "inntektskilde": "", + "inntektsstatus": "", + "inntektsperiodetype": "", + "utbetaltIMåned": "2017-03", + "virksomhet": { + "aktørType": "ORGANISASJON", + "identifikator": "123456789" + }, + "posteringsType": "Y_OPPLÆRINGSPENGER_FERIEPENGER" + }, { "posteringsMåned": "2017-03", "beløp": "8521",