From 36dbd283d83215c49146e6bc8473709499f855d1 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Mon, 14 Aug 2023 16:06:47 +0200 Subject: [PATCH 01/23] =?UTF-8?q?F=C3=B8rste=20utkast=20p=C3=A5=20vedlegg?= =?UTF-8?q?=20Opplysninger=20om=20etteroppgj=C3=B8ret?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../brev/maler/fraser/common/Constants.kt | 1 + .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 808 ++++++++++++++++++ .../no/nav/pensjon/brev/model/Formatting.kt | 35 +- .../nav/pensjon/brev/template/Operations.kt | 18 +- .../pensjon/brev/template/dsl/TemplateText.kt | 17 +- .../no/nav/pensjon/brev/template/dsl/Utils.kt | 35 +- .../brev/template/dsl/expression/Base.kt | 7 + .../template/dsl/expression/Collection.kt | 7 +- .../brev/template/dsl/expression/Date.kt | 6 +- .../brev/template/dsl/expression/Number.kt | 26 +- ... => MaanedligUfoeretrygdFoerSkattITest.kt} | 6 +- ...t => OpplysningerBruktIBeregningUTTest.kt} | 4 +- .../OpplysningerOmEtteropgjoeretTest.kt | 95 ++ ... => OrienteringOmRettigheterUfoereTest.kt} | 4 +- .../no/nav/pensjon/brev/template/TestUtils.kt | 18 +- 15 files changed, 1004 insertions(+), 83 deletions(-) create mode 100644 pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt rename pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/{MaanedligeUfoeretrygdFoerSkatt.kt => MaanedligUfoeretrygdFoerSkattITest.kt} (95%) rename pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/{OpplysningerBruktIBeregningUT.kt => OpplysningerBruktIBeregningUTTest.kt} (87%) create mode 100644 pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt rename pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/{OrienteringOmRettigheterUfoere.kt => OrienteringOmRettigheterUfoereTest.kt} (88%) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Constants.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Constants.kt index a136bb134..c380bee27 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Constants.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Constants.kt @@ -15,6 +15,7 @@ object Constants { const val KONTAKT_URL = "$NAV_URL/kontakt" const val SKATTEETATEN_URL = "skatteetaten.no" const val SKJEMA_URL = "$NAV_URL/skjema" + const val SKRIV_TIL_OSS_URL = "$NAV_URL/skriv-til-oss" const val UFOERE_ETTERSENDE_POST_URL = "$NAV_URL/uføre-ettersende-post" const val UFOERE_ETTERSENDE_URL = "$NAV_URL/uføre-ettersende" } \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt new file mode 100644 index 000000000..33af1b33d --- /dev/null +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -0,0 +1,808 @@ +package no.nav.pensjon.brev.maler.vedlegg + +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.fribeloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.isFribeloepRedusert +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.isFribeloepRedusert +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.personinntekt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.aarsak +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.beloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.type +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.fratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.sum +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.beloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.registerKilde +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.type +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.inntekter +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.sum +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.fratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.inntekt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.barnetillegg +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.harFaattForMye +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.harGjenlevendeTillegg +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.pensjonsgivendeInntekt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.pensjonsgivendeInntektBruktIBeregningen +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.periode +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.totaltAvvik +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.ufoeretrygd +import no.nav.pensjon.brev.maler.fraser.common.Constants +import no.nav.pensjon.brev.maler.fraser.common.Felles.KronerText +import no.nav.pensjon.brev.model.format +import no.nav.pensjon.brev.model.ubestemtForm +import no.nav.pensjon.brev.template.* +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Table.ColumnAlignment +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType +import no.nav.pensjon.brev.template.Language.Bokmal +import no.nav.pensjon.brev.template.dsl.* +import no.nav.pensjon.brev.template.dsl.expression.* +import no.nav.pensjon.brev.template.dsl.helpers.TemplateModelHelpers +import no.nav.pensjon.brevbaker.api.model.Kroner + +@TemplateModelHelpers +val vedleggOpplysningerOmEtteroppgjoeret = createAttachment( + title = newText( + Bokmal to "Opplysninger om etteroppgjøret", + ), + includeSakspart = true, +) { + paragraph { + textExpr( + Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL} og opplysninger fra Skatteetaten. ".expr() + + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", + ) + } + paragraph { + text( + Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + ) + } + title1 { + text( + Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + ) + } + paragraph { + table( + header = { + column(columnSpan = 5) { + text( + Bokmal to "Type stønad", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Dette skulle du fått", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Dette fikk du", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + textExpr( + Bokmal to "For ".expr() + ifElse(harFaattForMye, "mye", "lite") + " beløp", + fontType = FontType.BOLD, + ) + } + } + ) { + fun avviksResultatRad( + typeStoenad: TextElement, + resultat: Expression + ) { + ifNotNull(resultat) { + row { + cell { + addTextContent(typeStoenad) + } + cell { + textExpr( + Bokmal to it.skulleFaatt.format() + " kr", + ) + } + cell { + textExpr( + Bokmal to it.fikk.format() + " kr", + ) + } + cell { + textExpr( + Bokmal to it.avvik.format() + " kr", + ) + } + } + } + } + avviksResultatRad( + newTextExpr( + Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + ), + ufoeretrygd, + ) + avviksResultatRad( + newText( + Bokmal to "Barnetillegg særkullsbarn", + ), + barnetillegg.saerkull_safe.resultat_safe, + ) + avviksResultatRad( + newText( + Bokmal to "Barnetillegg fellesbarn", + ), + barnetillegg.felles_safe.resultat_safe, + ) + row { + cell { + textExpr( + Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), + fontType = FontType.BOLD, + ) + } + cell { } + cell { } + cell { + textExpr( + Bokmal to totaltAvvik.format() + " kr", + fontType = FontType.BOLD, + ) + } + } + } + } + + paragraph { + textExpr( + Bokmal to "Du har fått ".expr() + totaltAvvik.format() + " kroner for " + ifElse( + harFaattForMye, + "mye", + "lite" + ) + " i uføretrygd", + ) + showIf(barnetillegg.notNull() and harGjenlevendeTillegg) { + text( + Bokmal to ", barnetillegg og gjenlevendetillegg", + ) + }.orShowIf(barnetillegg.notNull()) { + text( + Bokmal to " og barnetillegg", + ) + }.orShowIf(harGjenlevendeTillegg) { + text( + Bokmal to " og gjenlevendetillegg" + ) + } + textExpr( + Bokmal to " i perioden ".expr() + periode.format(), + ) + } + + title1 { + textExpr( + Bokmal to "Om beregningen av uføretrygd".expr() + ifElse( + harGjenlevendeTillegg, + " og gjenlevendetillegg", + "" + ), + ) + } + paragraph { + textExpr( + Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + ifElse( + harGjenlevendeTillegg, + " og gjenlevendetillegg", + "" + ) + + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", + ) + list { + item { + text( + Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", + ) + } + item { + text( + Bokmal to "lønnsinntekt fra utlandet", + ) + } + item { + text( + Bokmal to "inntekt fra selvstendig næringsvirksomhet", + ) + } + item { + text( + Bokmal to "inntekt som fosterforelder", + ) + } + item { + text( + Bokmal to "omsorgslønn", + ) + } + } + + val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() + textExpr( + Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + ) + } + + paragraph { + text( + Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + ) + list { + item { + text( + Bokmal to "inntekt før du ble uføretrygdet", + ) + } + item { + text( + Bokmal to "inntekt etter at uføretrygden din opphørte", + ) + } + item { + text( + Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", + ) + } + item { + text( + Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + ) + } + item { + text( + Bokmal to "etterbetaling du har fått fra NAV", + ) + } + } + + val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() + textExpr( + Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + ) + } + + paragraph { + // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. + textExpr( + Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() + + " kroner for mye/lite i uføretrygd.", + ) + } + + paragraph { + textExpr( + Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" + + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), + ) + } + + title1 { + text( + Bokmal to "Din pensjonsgivende inntekt", + ) + } + paragraph { + includePhrase( + InntektTabell( + pensjonsgivendeInntekt.inntekt, + newText( + Bokmal to "Total pensjonsgivende inntekt", + fontType = FontType.BOLD, + ), + ), + ) + } + + title1 { + text( + Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", + ) + } + paragraph { + showIf(pensjonsgivendeInntekt.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + pensjonsgivendeInntekt.fratrekk, + newText( + Bokmal to "Totalbeløp som er trukket fra", + fontType = FontType.BOLD, + ) + ) + ) + } orShow { + textExpr( + Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + + ) + } + } + + ifNotNull(barnetillegg) { + title1 { + text( + Bokmal to "Om beregning av barnetillegg", + ) + } + paragraph { + text( + Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", + ) + list { + item { + text( + Bokmal to "pensjonsgivende inntekt", + ) + } + item { + text( + Bokmal to "uføretrygd", + ) + } + item { + text( + Bokmal to "alderspensjon fra folketrygden", + ) + } + item { + text( + Bokmal to "andre pensjoner og ytelser, også fra utlandet", + ) + } + } + text( + Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort.", + ) + } + + ifNotNull(it.felles) { fellesbarn -> + title2 { + text( + Bokmal to "For barn som bor sammen med begge foreldrene", + ) + } + paragraph { + list { + item { + textExpr( + Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + ) + } + item { + textExpr( + Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + ) + } + item { + text( + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(fellesbarn.isFribeloepRedusert) { + item { + text( + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } + } + } + } + + ifNotNull(it.saerkull) { saerkull -> + title2 { + text( + Bokmal to "For barn som ikke bor sammen med begge foreldrene", + ) + } + paragraph { + list { + item { + text( + Bokmal to "Barnetillegget beregnes ut fra inntekten din.", + ) + } + item { + textExpr( + Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + ) + } + item { + text( + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(saerkull.isFribeloepRedusert) { + item { + text( + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } + item { + text( + Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." + ) + } + } + } + } + + title2 { + text( + Bokmal to "Beregningene er gjort hver for seg hvis", + ) + } + paragraph { + list { + item { + text( + Bokmal to "du har flere barn som har ulike bosituasjoner.", + ) + } + item { + text( + Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", + ) + } + } + } + + paragraph { + text( + Bokmal to "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + + ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", + ) + } + + paragraph { + val skulleFaatt = + it.saerkull.resultat_safe.skulleFaatt_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.skulleFaatt_safe.ifNull( + Kroner(0) + ) + textExpr( + Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + + "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", + ) + } + + paragraph { + val fikkUtbetalt = + it.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.fikk_safe.ifNull( + Kroner(0) + ) + val totaltAvvik = + it.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.avvik_safe.ifNull( + Kroner(0) + ) + val harFaattForMye = totaltAvvik.lessThanOrEqual(0) + // TODO: Må fikses på når jeg har funnet ut av hvordan avvik skal representeres + textExpr( + Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + + totaltAvvik.format() + " kroner for " + ifElse( + harFaattForMye, + "mye", + "lite" + ) + " i barnetillegg.", + ) + } + + val harFellesTillegg = it.felles.notNull() + + paragraph { + textExpr( + Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg," og annen forelder","") + + " har hatt i perioden " + ifElse(harFellesTillegg,"dere","du") + " hadde rett til barnetillegg" + + "Det er disse inntektene vi har brukt for å beregne barnetillegget.", + ) + } + + title2 { + text( + Bokmal to "Din personinntekt", + ) + } + paragraph { + includePhrase( + InntektTabell( + it.personinntekt.inntekt, + newText( + Bokmal to "Total personinntekt", + fontType = FontType.BOLD, + ), + ) + ) + } + + title2 { + text( + Bokmal to "Beløp som er trukket fra personinntekten din", + ) + } + paragraph { + showIf(it.personinntekt.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + it.personinntekt.fratrekk, + newText( + Bokmal to "Totalbeløp som er trukket fra personinntekten din", + fontType = FontType.BOLD, + ), + ) + ) + } orShow { + text( + Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i " + periode.format() + + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + ) + } + } + + ifNotNull(it.felles) { fellesbarn -> + title2 { + text( + Bokmal to "Personinntekt til annen forelder", + ) + } + paragraph { + includePhrase( + InntektTabell( + fellesbarn.personinntektAnnenForelder.inntekt, + newText( + Bokmal to "Total personinntekt til annen forelder", + fontType = FontType.BOLD, + ), + ) + ) + } + + title2 { + text( + Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + ) + } + paragraph { + showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + fellesbarn.personinntektAnnenForelder.fratrekk, + newText( + Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", + fontType = FontType.BOLD, + ), + ) + ) + } orShow { + text( + Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i " + periode.format() + ".", + ) + } + } + + paragraph { + text( + Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", + ) + } + + showIf(fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum)) { + paragraph { + text( + Bokmal to "Folketrygdens grunnbeløp på inntil " + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + ) + } + } + } + + // TODO Skal ha en betingelse for visning + paragraph { + textExpr( + Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + + " inntekt i " + periode.format() + " for å ha rett på barnetillegg." + ) + } + + title1 { + text( + Bokmal to "Er opplysningene om inntekt feil?", + ) + } + paragraph { + text( + Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", + ) + } + paragraph { + text( + Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + ) + } + + showIf(harFellesTillegg) { + title2 { + text( + Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", + ) + } + paragraph { + text( + Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", + ) + } + paragraph { + text( + Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + + "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", + ) + } + } + + title2 { + text( + Bokmal to "Endringer i pensjonsytelser", + ) + } + paragraph { + text( + Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + + "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + + "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + ) + } + } +} + +data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : + ParagraphPhrase() { + + override fun ParagraphOnlyScope.template() = + table( + header = { + column(columnSpan = 3) { + text( + Bokmal to "Type inntekt", + ) + } + column(columnSpan = 3) { + text( + Bokmal to "Årsak til trekk", + ) + } + column(columnSpan = 2, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Beløp", + ) + } + } + ) { + forEach(fratrekk.fratrekk) { fratrekkLinje -> + row { + cell { + eval(fratrekkLinje.type.format(LocalizedFratrekkType)) + } + cell { + eval(fratrekkLinje.aarsak.format(LocalizedAarsak)) + } + cell { + includePhrase(KronerText(fratrekkLinje.beloep)) + } + } + } + row { + cell { addTextContent(sumText) } + cell { } + cell { includePhrase(KronerText(fratrekk.sum, fontType = FontType.BOLD)) } + } + } + + object LocalizedAarsak : LocalizedFormatter() { + // TODO + override fun apply(first: FratrekkLinje.Aarsak, second: Language): String = + "bla" + } + + object LocalizedFratrekkType : LocalizedFormatter() { + // TODO + override fun apply(first: FratrekkLinje.InntektType, second: Language): String = + "bla" + + } +} + +data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : + ParagraphPhrase() { + + override fun ParagraphOnlyScope.template() = + table( + header = { + column(columnSpan = 3) { + text( + Bokmal to "Type inntekt", + ) + } + column(columnSpan = 3) { + text( + Bokmal to "Mottatt av", + ) + } + column(columnSpan = 2, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Registrert inntekt", + ) + } + } + ) { + forEach(inntekt.inntekter) { inntektLinje -> + row { + cell { + eval(inntektLinje.type.format(LocalizedInntektType)) + } + cell { + eval(inntektLinje.registerKilde.format(LocalizedKilde)) + } + cell { + includePhrase(KronerText(inntektLinje.beloep)) + } + } + } + row { + cell { addTextContent(sumText) } + cell { } + cell { includePhrase(KronerText(inntekt.sum, fontType = FontType.BOLD)) } + } + } + + object LocalizedKilde : LocalizedFormatter() { + // TODO + override fun apply(first: InntektLinje.Kilde, second: Language): String = + "bla" + } + + object LocalizedInntektType : LocalizedFormatter() { + // TODO + override fun apply(first: InntektLinje.InntektType, second: Language): String = + "bla" + + } +} \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/model/Formatting.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/model/Formatting.kt index 7ac3087a7..66f185f1c 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/model/Formatting.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/model/Formatting.kt @@ -17,26 +17,15 @@ fun Expression.format() = Expression.UnaryInvoke(this, UnaryOperation.FormatPhoneNumber) @JvmName("formatKroner") -fun Expression.format() = - Expression.BinaryInvoke( - select(intValueSelector), - Expression.FromScope(ExpressionScope::language), - BinaryOperation.LocalizedCurrencyFormat - ) +fun Expression.format() = select(intValueSelector).format(formatter = BinaryOperation.LocalizedCurrencyFormat) @JvmName("formatIntValue") -fun Expression.format() = - select(intValueSelector).format() +fun Expression.format() = select(intValueSelector).format() @JvmName("formatBormedSivilstandTabell") -fun Expression.tableFormat() = - Expression.BinaryInvoke( - this, - Expression.FromScope(ExpressionScope::language), - FormatBorMedSivilstandTabell, - ) - -object FormatBorMedSivilstandTabell : BinaryOperation() { +fun Expression.tableFormat() = format(formatter = FormatBorMedSivilstandTabell) + +object FormatBorMedSivilstandTabell : LocalizedFormatter() { override fun apply(first: BorMedSivilstand, second: Language): String = when (first) { BorMedSivilstand.GIFT_LEVER_ADSKILT, @@ -71,7 +60,7 @@ fun Expression.bestemtForm() = Expression.BinaryInvoke(this, Expression.FromScope(ExpressionScope::language), SivilstandEpsBestemt) @Deprecated("Bruk bormed sivilstand istedenfor") -object SivilstandEpsBestemt : BinaryOperation() { +object SivilstandEpsBestemt : LocalizedFormatter() { override fun apply(first: Sivilstand, second: Language): String = sivilstand(first, second, true) } @@ -106,20 +95,16 @@ private fun sivilstand(sivilstand: Sivilstand, language: Language, bestemtForm: @JvmName("formatBorMedSivilstandBestemtForm") -fun Expression.bestemtForm() = - Expression.BinaryInvoke(this, Expression.FromScope(ExpressionScope::language), BorMedSivilstandBestemt) +fun Expression.bestemtForm() = format(formatter = BorMedSivilstandBestemt) @JvmName("formatBorMedSivilstandUbestemtForm") -fun Expression.ubestemtForm() = - Expression.BinaryInvoke(this, Expression.FromScope(ExpressionScope::language), BorMedSivilstandUbestemt) - - +fun Expression.ubestemtForm() = format(formatter = BorMedSivilstandUbestemt) -object BorMedSivilstandUbestemt : BinaryOperation() { +object BorMedSivilstandUbestemt : LocalizedFormatter() { override fun apply(first: BorMedSivilstand, second: Language): String = borMedSivilstand(first, second, false) } -object BorMedSivilstandBestemt : BinaryOperation() { +object BorMedSivilstandBestemt : LocalizedFormatter() { override fun apply(first: BorMedSivilstand, second: Language): String = borMedSivilstand(first, second, true) } private fun borMedSivilstand(sivilstand: BorMedSivilstand, language: Language, bestemtForm: Boolean): String = diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/Operations.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/Operations.kt index bd594566d..96b313cbd 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/Operations.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/Operations.kt @@ -68,6 +68,8 @@ sealed class UnaryOperation : Operation() { } } +typealias LocalizedFormatter = BinaryOperation + abstract class BinaryOperation : Operation() { abstract fun apply(first: In1, second: In2): Out @@ -104,34 +106,38 @@ abstract class BinaryOperation : Operation() { override fun apply(first: String, second: String): String = first + second } - object LocalizedShortDateFormat : BinaryOperation() { + object IntPlus : BinaryOperation() { + override fun apply(first: Int, second: Int): Int = first + second + } + + object LocalizedShortDateFormat : LocalizedFormatter() { override fun apply(first: LocalDate, second: Language): String = first.format(dateFormatter(second, FormatStyle.SHORT)).replace(' ', ' ') //space to non braking space } - object LocalizedDateFormat : BinaryOperation() { + object LocalizedDateFormat : LocalizedFormatter() { override fun apply(first: LocalDate, second: Language): String = first.format(dateFormatter(second, FormatStyle.LONG)).replace(' ', ' ') //space to non braking space } - object LocalizedDoubleFormat : BinaryOperation() { + object LocalizedDoubleFormat : LocalizedFormatter() { override fun apply(first: Double, second: Language): String = String.format(second.locale(), "%.2f", first) } - object LocalizedIntFormat : BinaryOperation() { + object LocalizedIntFormat : LocalizedFormatter() { override fun apply(first: Int, second: Language): String = String.format(second.locale(), "%d", first) } - object LocalizedCurrencyFormat : BinaryOperation() { + object LocalizedCurrencyFormat : LocalizedFormatter() { override fun apply(first: Int, second: Language): String = NumberFormat.getNumberInstance(second.locale()) .apply { maximumFractionDigits = 0 } .format(first) } - object LocalizedCollectionFormat : BinaryOperation, Language, String>() { + object LocalizedCollectionFormat : LocalizedFormatter>() { override fun apply(first: Collection, second: Language): String { return if (first.size == 1) { first.first() diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/TemplateText.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/TemplateText.kt index 7ba769bdd..3b39e3662 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/TemplateText.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/TemplateText.kt @@ -2,6 +2,7 @@ package no.nav.pensjon.brev.template.dsl import no.nav.pensjon.brev.template.* import no.nav.pensjon.brev.template.ContentOrControlStructure.* +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType @LetterTemplateMarker class TextOnlyScope : TextScope, ControlStructureScope, TextOnlyScope> { @@ -29,8 +30,8 @@ interface TextScope : TemplateGlobalSc fun addTextContent(e: TextElement) // TODO: Consider removing this since textExpr already supports this, or renaming to allLanguagesExpr (or something similar). - fun eval(expression: StringExpression) { - addTextContent(Content(Element.OutlineContent.ParagraphContent.Text.Expression(expression))) + fun eval(expression: StringExpression, fontType: FontType = FontType.PLAIN) { + addTextContent(Content(Element.OutlineContent.ParagraphContent.Text.Expression(expression, fontType))) } fun newline() { @@ -43,7 +44,7 @@ interface TextScope : TemplateGlobalSc // fun TextScope, ParameterType>.text( lang1: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, fontType).also { addTextContent(Content(it)) } } @@ -51,7 +52,7 @@ fun TextScope TextScope, ParameterType>.text( lang1: Pair, lang2: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, fontType).also { addTextContent(Content(it)) } } @@ -60,7 +61,7 @@ fun lang1: Pair, lang2: Pair, lang3: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, lang3, fontType).also { addTextContent(Content(it)) } } @@ -70,7 +71,7 @@ fun // fun TextScope, ParameterType>.textExpr( lang1: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, fontType).also { addTextContent(Content(it)) } } @@ -78,7 +79,7 @@ fun TextScope TextScope, ParameterType>.textExpr( lang1: Pair, lang2: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, lang2, fontType).also { addTextContent(Content(it)) } } @@ -87,7 +88,7 @@ fun lang1: Pair, lang2: Pair, lang3: Pair, - fontType: Element.OutlineContent.ParagraphContent.Text.FontType = Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN, + fontType: FontType = FontType.PLAIN, ) { Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, lang2, lang3, fontType).also { addTextContent(Content(it)) } } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/Utils.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/Utils.kt index 5a3b7e0d7..eab997b66 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/Utils.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/Utils.kt @@ -2,23 +2,50 @@ package no.nav.pensjon.brev.template.dsl import no.nav.pensjon.brev.template.* import no.nav.pensjon.brev.template.ContentOrControlStructure.Content +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType.PLAIN -fun newText(lang1: Pair): TextElement> = - Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1 = lang1)) +fun newText( + lang1: Pair, + fontType: FontType = PLAIN, +): TextElement> = + Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, fontType)) fun newText( lang1: Pair, lang2: Pair, + fontType: FontType = PLAIN, ): TextElement> = - Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, PLAIN)) + Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, fontType)) fun newText( lang1: Pair, lang2: Pair, lang3: Pair, + fontType: FontType = PLAIN, +): TextElement> = + Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, lang3, fontType)) + +fun newTextExpr( + lang1: Pair, + fontType: FontType = PLAIN, +): TextElement> = + Content(Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, fontType)) + +fun newTextExpr( + lang1: Pair, + lang2: Pair, + fontType: FontType = PLAIN, +): TextElement> = + Content(Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, lang2, fontType)) + +fun newTextExpr( + lang1: Pair, + lang2: Pair, + lang3: Pair, + fontType: FontType = PLAIN, ): TextElement> = - Content(Element.OutlineContent.ParagraphContent.Text.Literal.create(lang1, lang2, lang3, PLAIN)) + Content(Element.OutlineContent.ParagraphContent.Text.Expression.ByLanguage.create(lang1, lang2, lang3, fontType)) fun languages(lang1: Lang1): LanguageSupport.Single = LanguageCombination.Single(lang1) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Base.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Base.kt index 7256d9815..458e1f703 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Base.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Base.kt @@ -95,4 +95,11 @@ infix fun Expression.equalTo(other: Expression) = first = this, second = other, operation = BinaryOperation.Equal() + ) + +fun Expression.format(formatter: LocalizedFormatter): StringExpression = + Expression.BinaryInvoke( + first = this, + second = Expression.FromScope(ExpressionScope::language), + operation = formatter, ) \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Collection.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Collection.kt index 395aa7ebb..49fd25dee 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Collection.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Collection.kt @@ -63,12 +63,7 @@ fun Expression>.map( fun Expression>.map(mapper: BinaryOperation): Expression> = map(mapper, Expression.FromScope(ExpressionScope::language)) -fun Expression>.format(): StringExpression = - Expression.BinaryInvoke( - first = this, - second = Expression.FromScope(ExpressionScope::language), - operation = BinaryOperation.LocalizedCollectionFormat - ) +fun Expression>.format(): StringExpression = format(formatter = BinaryOperation.LocalizedCollectionFormat) /** * Collection contains at least one of the listed items. diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Date.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Date.kt index 13dc2882e..9543dce9c 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Date.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Date.kt @@ -4,11 +4,7 @@ import no.nav.pensjon.brev.template.* import java.time.LocalDate fun Expression.format(short: Boolean = false) = - Expression.BinaryInvoke( - this, - Expression.FromScope(ExpressionScope::language), - if(short) BinaryOperation.LocalizedShortDateFormat else BinaryOperation.LocalizedDateFormat - ) + format(formatter = if(short) BinaryOperation.LocalizedShortDateFormat else BinaryOperation.LocalizedDateFormat) private object LocalDateSelectors { val yearSelector = object : TemplateModelSelector { diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt index 286da964f..8404d1b2d 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt @@ -1,9 +1,9 @@ package no.nav.pensjon.brev.template.dsl.expression -import no.nav.pensjon.brev.api.model.* -import no.nav.pensjon.brev.maler.fraser.common.* -import no.nav.pensjon.brev.template.* -import no.nav.pensjon.brev.template.expression.* +import no.nav.pensjon.brev.template.BinaryOperation +import no.nav.pensjon.brev.template.Expression +import no.nav.pensjon.brev.template.TemplateModelSelector +import no.nav.pensjon.brev.template.UnaryOperation import no.nav.pensjon.brevbaker.api.model.IntValue val intValueSelector = object : TemplateModelSelector { @@ -19,19 +19,17 @@ private val Expression.value: Expression UnaryOperation.Select(intValueSelector) ) -fun Expression.format(): Expression = - Expression.BinaryInvoke( - this, - Expression.FromScope(ExpressionScope::language), - BinaryOperation.LocalizedDoubleFormat, - ) +fun Expression.format(): Expression = format(formatter = BinaryOperation.LocalizedDoubleFormat) @JvmName("formatInt") -fun Expression.format(): Expression = +fun Expression.format(): Expression = format(formatter = BinaryOperation.LocalizedIntFormat) + + +operator fun Expression.plus(other: Expression): Expression = Expression.BinaryInvoke( - this, - Expression.FromScope(ExpressionScope::language), - BinaryOperation.LocalizedIntFormat, + this.value, + other.value, + BinaryOperation.IntPlus, ) diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligeUfoeretrygdFoerSkatt.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligUfoeretrygdFoerSkattITest.kt similarity index 95% rename from pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligeUfoeretrygdFoerSkatt.kt rename to pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligUfoeretrygdFoerSkattITest.kt index 6eb528198..20c38580a 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligeUfoeretrygdFoerSkatt.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/MaanedligUfoeretrygdFoerSkattITest.kt @@ -1,13 +1,12 @@ package no.nav.pensjon.brev.maler.vedlegg -import io.ktor.util.date.* import no.nav.pensjon.brev.* import no.nav.pensjon.brev.api.model.vedlegg.MaanedligUfoeretrygdFoerSkattDto import no.nav.pensjon.brev.api.model.vedlegg.MaanedligUfoeretrygdFoerSkattDto.UfoeretrygdPerMaaned import no.nav.pensjon.brev.template.* import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.dsl.expression.expr -import no.nav.pensjon.brev.template.render.* +import no.nav.pensjon.brev.template.dsl.languages import no.nav.pensjon.brevbaker.api.model.Kroner import org.junit.jupiter.api.* import java.time.LocalDate @@ -52,7 +51,8 @@ class MaanedligUfoeretrygdFoerSkattITest { virkningTilOgMed = LocalDate.of(2020, 1, 31) ), ), - ).expr() + ).expr(), + languages(Bokmal, Nynorsk, English), ) @Test diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUT.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUTTest.kt similarity index 87% rename from pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUT.kt rename to pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUTTest.kt index e4d8db061..e0377ca2d 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUT.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerBruktIBeregningUTTest.kt @@ -6,6 +6,7 @@ import no.nav.pensjon.brev.template.Language import no.nav.pensjon.brev.template.Letter import no.nav.pensjon.brev.template.createVedleggTestTemplate import no.nav.pensjon.brev.template.dsl.expression.expr +import no.nav.pensjon.brev.template.dsl.languages import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test @@ -16,7 +17,8 @@ class OpplysningerBruktIBeregningUTTest { fun testVedlegg() { val template = createVedleggTestTemplate( createVedleggOpplysningerBruktIBeregningUT(skalViseMinsteytelse = true, skalViseBarnetillegg = true), - Fixtures.create(OpplysningerBruktIBeregningUTDto::class).expr() + Fixtures.create(OpplysningerBruktIBeregningUTDto::class).expr(), + languages(Language.Bokmal, Language.Nynorsk, Language.English), ) Letter( template, diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt new file mode 100644 index 000000000..eb1c624cb --- /dev/null +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt @@ -0,0 +1,95 @@ +package no.nav.pensjon.brev.maler.vedlegg + +import no.nav.pensjon.brev.Fixtures +import no.nav.pensjon.brev.TestTags +import no.nav.pensjon.brev.api.model.BorMedSivilstand +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.* +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.Barnetillegg.Fellesbarn +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.Barnetillegg.Saerkullsbarn +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje +import no.nav.pensjon.brev.renderTestPDF +import no.nav.pensjon.brev.template.Language.Bokmal +import no.nav.pensjon.brev.template.Letter +import no.nav.pensjon.brev.template.createVedleggTestTemplate +import no.nav.pensjon.brev.template.dsl.expression.expr +import no.nav.pensjon.brev.template.dsl.languages +import no.nav.pensjon.brevbaker.api.model.Kroner +import no.nav.pensjon.brevbaker.api.model.Year +import org.junit.jupiter.api.Tag +import org.junit.jupiter.api.Test + +@Tag(TestTags.MANUAL_TEST) +class OpplysningerOmEtteropgjoeretTest { + + @Test + fun testVedlegg() { + val template = createVedleggTestTemplate( + vedleggOpplysningerOmEtteroppgjoeret, + OpplysningerOmEtteroppgjoeretDto( + periode = Year(2022), + harGjenlevendeTillegg = true, + ufoeretrygd = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), + barnetillegg = Barnetillegg( + felles = Fellesbarn( + sivilstand = BorMedSivilstand.EKTEFELLE, + grunnbelop = Kroner(117_000), + fribeloep = Kroner(1), + isFribeloepRedusert = true, + resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), + personinntektAnnenForelder = InntektOgFratrekk( + inntekt = Inntekt( + inntekter = emptyList(), + sum = Kroner(0) + ), + fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) + ) + ), + saerkull = Saerkullsbarn( + fribeloep = Kroner(1), + isFribeloepRedusert = true, + resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)) + ), + personinntekt = InntektOgFratrekk( + inntekt = Inntekt(inntekter = emptyList(), sum = Kroner(0)), + fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) + ), + mindreEnn40AarTrygdetid = true, + ), + harFaattForMye = true, + totaltAvvik = Kroner(4), + pensjonsgivendeInntektBruktIBeregningen = Kroner(100), + pensjonsgivendeInntekt = InntektOgFratrekk( + inntekt = Inntekt( + inntekter = listOf( + InntektLinje(InntektLinje.InntektType.ARBEIDSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN, Kroner(10)), + InntektLinje(InntektLinje.InntektType.NAERINGSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + InntektLinje(InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + ), + sum = Kroner(30), + ), + fratrekk = Fratrekk( + fratrekk = listOf( + FratrekkLinje(FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER, FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD, Kroner(10)) + ), + sum = Kroner(10), + ), + ), + ).expr(), + languages(Bokmal), + ) + Letter( + template, + Unit, + Bokmal, + Fixtures.fellesAuto + ).renderTestPDF("OpplysningerOmEtteroppgjoeret") + + } +} + + + diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoere.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoereTest.kt similarity index 88% rename from pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoere.kt rename to pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoereTest.kt index db5b465e5..312ea83a7 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoere.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OrienteringOmRettigheterUfoereTest.kt @@ -6,6 +6,7 @@ import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.Letter import no.nav.pensjon.brev.template.createVedleggTestTemplate import no.nav.pensjon.brev.template.dsl.expression.expr +import no.nav.pensjon.brev.template.dsl.languages import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test @@ -16,7 +17,8 @@ class OrienteringOmRettigheterUfoereTest { fun testVedlegg() { val template = createVedleggTestTemplate( vedleggDineRettigheterOgPlikterUfoere, - Fixtures.create(OrienteringOmRettigheterUfoereDto::class).expr() + Fixtures.create(OrienteringOmRettigheterUfoereDto::class).expr(), + languages(Bokmal, Nynorsk, English), ) Letter( template, diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/template/TestUtils.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/template/TestUtils.kt index f08975a74..f24252424 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/template/TestUtils.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/template/TestUtils.kt @@ -1,6 +1,7 @@ package no.nav.pensjon.brev.template -import no.nav.pensjon.brev.template.dsl.* +import no.nav.pensjon.brev.template.dsl.createTemplate +import no.nav.pensjon.brev.template.dsl.expression.expr import no.nav.pensjon.brev.template.render.PensjonLatexRenderer import no.nav.pensjon.brevbaker.api.model.LetterMetadata import org.junit.jupiter.api.Assertions @@ -31,13 +32,14 @@ private fun Letter.renderLetterAndAttachments(): String { } -fun createVedleggTestTemplate( - template: AttachmentTemplate, - attachmentData: Expression +fun createVedleggTestTemplate( + template: AttachmentTemplate, + attachmentData: Expression, + languages: Lang, ) = createTemplate( name = "test-template", letterDataType = Unit::class, - languages = languages(Language.Bokmal, Language.Nynorsk, Language.English), + languages = languages, letterMetadata = LetterMetadata( "test mal", isSensitiv = false, @@ -46,11 +48,7 @@ fun createVedleggTestTemplate( ), ) { title { - text( - Language.Bokmal to "Tittel", - Language.Nynorsk to "Tittel", - Language.English to "Title" - ) + eval("Tittel".expr()) } outline {} From fbc328dcdaf3d145a917d3916f951cde3226c89a Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Mon, 14 Aug 2023 16:46:24 +0200 Subject: [PATCH 02/23] =?UTF-8?q?F=C3=B8rste=20utkast=20p=C3=A5=20vedlegg?= =?UTF-8?q?=20Opplysninger=20om=20etteroppgj=C3=B8ret?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 29 +++++-------------- .../no/nav/pensjon/brev/model/Formatting.kt | 3 +- .../PraktiskInformasjonEtteroppgjoer.kt | 4 ++- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 33af1b33d..5a719652f 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -176,11 +176,7 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment() { @JvmName("formatSivilstandBestemtForm") -fun Expression.bestemtForm() = - Expression.BinaryInvoke(this, Expression.FromScope(ExpressionScope::language), SivilstandEpsBestemt) +fun Expression.bestemtForm() = format(SivilstandEpsBestemt) @Deprecated("Bruk bormed sivilstand istedenfor") object SivilstandEpsBestemt : LocalizedFormatter() { diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/PraktiskInformasjonEtteroppgjoer.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/PraktiskInformasjonEtteroppgjoer.kt index 44b7b7579..a8e78560a 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/PraktiskInformasjonEtteroppgjoer.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/PraktiskInformasjonEtteroppgjoer.kt @@ -5,6 +5,7 @@ import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.Letter import no.nav.pensjon.brev.template.createVedleggTestTemplate import no.nav.pensjon.brev.template.dsl.expression.expr +import no.nav.pensjon.brev.template.dsl.languages import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test @@ -15,7 +16,8 @@ class PraktiskInformasjonEtteroppgjoerTest { fun testVedlegg() { val template = createVedleggTestTemplate( vedleggPraktiskInformasjonEtteroppgjoerUfoeretrygd, - Unit.expr() + Unit.expr(), + languages(Bokmal) ) Letter( template, From a336625042cdb1d40c0a6234005545bdd8294265 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Tue, 15 Aug 2023 16:53:13 +0200 Subject: [PATCH 03/23] =?UTF-8?q?Nesten=20ferdig=20med=20Bokm=C3=A5l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 177 ++++++++++-------- .../pensjon/brev/template/LetterTemplate.kt | 4 + .../OpplysningerOmEtteropgjoeretTest.kt | 18 +- 3 files changed, 122 insertions(+), 77 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 5a719652f..c6d9384ca 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -66,7 +66,7 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment title2 { text( - Bokmal to "For barn som bor sammen med begge foreldrene", + Bokmal to "For barn som bor sammen med begge foreldrene:", ) } paragraph { @@ -417,7 +426,7 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment title2 { text( - Bokmal to "For barn som ikke bor sammen med begge foreldrene", + Bokmal to "For barn som ikke bor sammen med begge foreldrene:", ) } paragraph { @@ -458,32 +467,6 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment, } object LocalizedAarsak : LocalizedFormatter() { - // TODO + // TODO flere språk override fun apply(first: FratrekkLinje.Aarsak, second: Language): String = - "bla" + when (first) { + FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> "Inntekt før uføretrygden ble innvilget" + FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> "Inntekt etter at uføretrygden opphørte" + FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> "Erstatning for inntektstap ved erstatningsoppgjør" + FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> "Inntekt fra helt avsluttet arbeid eller virksomhet" + FratrekkLinje.Aarsak.ANNET -> "Annet" + FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> "Etterbetaling fra NAV" + } } object LocalizedFratrekkType : LocalizedFormatter() { - // TODO + // TODO Flere språk override fun apply(first: FratrekkLinje.InntektType, second: Language): String = - "bla" + when (first) { + FratrekkLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" + FratrekkLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" + FratrekkLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" + FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" + FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" + FratrekkLinje.InntektType.INNTEKT -> "Inntekt" + FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> "Inntekt som kan trekkes fra" + } } } @@ -779,15 +797,26 @@ data class InntektTabell(val inntekt: Expression, val } object LocalizedKilde : LocalizedFormatter() { - // TODO + // TODO flere språk override fun apply(first: InntektLinje.Kilde, second: Language): String = - "bla" + when (first) { + InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> "Elektronisk innmeldt fra arbeidsgiver" + InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> "Oppgitt av skatteetaten" + InntektLinje.Kilde.OPPGITT_AV_BRUKER -> "Opplyst av deg" + InntektLinje.Kilde.NAV -> "NAV" + } } object LocalizedInntektType : LocalizedFormatter() { - // TODO + // TODO flere språk override fun apply(first: InntektLinje.InntektType, second: Language): String = - "bla" - + when (first) { + InntektLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" + InntektLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" + InntektLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" + InntektLinje.InntektType.UFOERETRYGD -> "Uføretrygd" + InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" + InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" + } } } \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt index 52690562f..20fc0f4ad 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt @@ -21,6 +21,7 @@ data class LetterTemplate( } } +class PreventToStringForExpressionException() : Exception("To prevent incorrect usage of Expression in Text.Literal elements, it's toString fails.") sealed class Expression { abstract fun eval(scope: ExpressionScope<*, *>): Out @@ -52,6 +53,9 @@ sealed class Expression { override fun eval(scope: ExpressionScope<*, *>): Out = operation.apply(first.eval(scope), second.eval(scope)) } + final override fun toString(): String { + throw PreventToStringForExpressionException() + } } typealias StringExpression = Expression diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt index eb1c624cb..dd127b810 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt @@ -42,8 +42,12 @@ class OpplysningerOmEtteropgjoeretTest { resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), personinntektAnnenForelder = InntektOgFratrekk( inntekt = Inntekt( - inntekter = emptyList(), - sum = Kroner(0) + inntekter = listOf( + InntektLinje(InntektLinje.InntektType.ARBEIDSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN, Kroner(10)), + InntektLinje(InntektLinje.InntektType.NAERINGSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + InntektLinje(InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + ), + sum = Kroner(30), ), fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) ) @@ -54,7 +58,15 @@ class OpplysningerOmEtteropgjoeretTest { resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)) ), personinntekt = InntektOgFratrekk( - inntekt = Inntekt(inntekter = emptyList(), sum = Kroner(0)), + inntekt = Inntekt( + inntekter = listOf( + InntektLinje(InntektLinje.InntektType.ARBEIDSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN, Kroner(10)), + InntektLinje(InntektLinje.InntektType.NAERINGSINNTEKT, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + InntektLinje(InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + InntektLinje(InntektLinje.InntektType.UFOERETRYGD, InntektLinje.Kilde.OPPGITT_AV_BRUKER, Kroner(10)), + ), + sum = Kroner(40), + ), fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) ), mindreEnn40AarTrygdetid = true, From 1edea80d76e86a79daf6c6558edc82c759b1a346 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 16 Aug 2023 11:05:39 +0200 Subject: [PATCH 04/23] Skilt ut fraser --- .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 944 +++++++++--------- 1 file changed, 494 insertions(+), 450 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index c6d9384ca..127309185 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -56,6 +56,7 @@ import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brev.template.dsl.helpers.TemplateModelHelpers import no.nav.pensjon.brevbaker.api.model.Kroner +import no.nav.pensjon.brevbaker.api.model.Year @TemplateModelHelpers val vedleggOpplysningerOmEtteroppgjoeret = createAttachment( @@ -64,625 +65,669 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment.erOpplysningeneOmInntektFeil( + harFellesTillegg: Expression, +) { + title1 { text( - Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + Bokmal to "Er opplysningene om inntekt feil?", ) } - title1 { + paragraph { text( - Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", ) } paragraph { - table( - header = { - column(columnSpan = 5) { - text( - Bokmal to "Type stønad", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Dette skulle du fått", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Dette fikk du", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - textExpr( - Bokmal to "For ".expr() + ifElse(harFaattForMye, "mye", "lite") + " beløp", - fontType = FontType.BOLD, - ) - } - } - ) { - fun avviksResultatRad( - typeStoenad: TextElement, - resultat: Expression - ) { - ifNotNull(resultat) { - row { - cell { - addTextContent(typeStoenad) - } - cell { - textExpr( - Bokmal to it.skulleFaatt.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.fikk.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.avvik.format() + " kr", - ) - } - } - } - } - avviksResultatRad( - newTextExpr( - Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), - ), - ufoeretrygd, - ) - avviksResultatRad( - newText( - Bokmal to "Barnetillegg særkullsbarn", - ), - barnetillegg.saerkull_safe.resultat_safe, - ) - avviksResultatRad( - newText( - Bokmal to "Barnetillegg fellesbarn", - ), - barnetillegg.felles_safe.resultat_safe, - ) - row { - cell { - textExpr( - Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), - fontType = FontType.BOLD, - ) - } - cell { } - cell { } - cell { - textExpr( - Bokmal to totaltAvvik.format() + " kr", - fontType = FontType.BOLD, - ) - } - } - } + text( + Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + ) } - paragraph { - textExpr( - Bokmal to "Du har fått ".expr() + totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", - ) - showIf(barnetillegg.notNull() and harGjenlevendeTillegg) { + showIf(harFellesTillegg) { + title2 { text( - Bokmal to ", barnetillegg og gjenlevendetillegg", + Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", ) - }.orShowIf(barnetillegg.notNull()) { + } + paragraph { text( - Bokmal to " og barnetillegg", + Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", ) - }.orShowIf(harGjenlevendeTillegg) { + } + paragraph { text( - Bokmal to " og gjenlevendetillegg" + Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + + "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", ) } - textExpr( - Bokmal to " i perioden ".expr() + periode.format(), + } + + title2 { + text( + Bokmal to "Endringer i pensjonsytelser", ) } + paragraph { + text( + Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + + "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + + "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + ) + } +} +private fun OutlineOnlyScope.omBeregningAvBarnetillegg( + barnetillegg: Expression, + periode: Expression, +) { title1 { - textExpr( - Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + text( + Bokmal to "Om beregning av barnetillegg", ) } paragraph { - textExpr( - Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() - + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") - + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", + text( + Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", ) list { item { text( - Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", + Bokmal to "pensjonsgivende inntekt", ) } item { text( - Bokmal to "lønnsinntekt fra utlandet", + Bokmal to "uføretrygd", ) } item { text( - Bokmal to "inntekt fra selvstendig næringsvirksomhet", + Bokmal to "alderspensjon fra folketrygden", ) } item { text( - Bokmal to "inntekt som fosterforelder", + Bokmal to "andre pensjoner og ytelser, også fra utlandet", ) } - item { - text( - Bokmal to "omsorgslønn", - ) + } + text( + Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + + "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + + ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", + ) + } + + ifNotNull(barnetillegg.felles) { fellesbarn -> + title2 { + text( + Bokmal to "For barn som bor sammen med begge foreldrene:", + ) + } + paragraph { + list { + item { + textExpr( + Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + ) + } + item { + textExpr( + Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + ) + } + item { + text( + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(fellesbarn.isFribeloepRedusert) { + item { + text( + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } } } + } - val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() + ifNotNull(barnetillegg.saerkull) { saerkull -> + title2 { + text( + Bokmal to "For barn som ikke bor sammen med begge foreldrene:", + ) + } + paragraph { + list { + item { + text( + Bokmal to "Barnetillegget beregnes ut fra inntekten din.", + ) + } + item { + textExpr( + Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + ) + } + item { + text( + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(saerkull.isFribeloepRedusert) { + item { + text( + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } + item { + text( + Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." + ) + } + } + } + } + + + paragraph { + val skulleFaatt = + barnetillegg.saerkull.resultat_safe.skulleFaatt_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.skulleFaatt_safe.ifNull( + Kroner(0) + ) textExpr( - Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + + "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", ) } paragraph { + val fikkUtbetalt = + barnetillegg.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.fikk_safe.ifNull( + Kroner(0) + ) + val totaltAvvik = + barnetillegg.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.avvik_safe.ifNull( + Kroner(0) + ) + val harFaattForMye = totaltAvvik.lessThanOrEqual(0) + // TODO: Må fikses på når jeg har funnet ut av hvordan avvik skal representeres + textExpr( + Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + + totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i barnetillegg.", + ) + } + + title2 { text( - Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + Bokmal to "Beregningene er gjort hver for seg hvis", ) + } + paragraph { list { item { text( - Bokmal to "inntekt før du ble uføretrygdet", - ) - } - item { - text( - Bokmal to "inntekt etter at uføretrygden din opphørte", - ) - } - item { - text( - Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", - ) - } - item { - text( - Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + Bokmal to "du har flere barn som har ulike bosituasjoner.", ) } item { text( - Bokmal to "etterbetaling du har fått fra NAV", + Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", ) } } + } - val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() + val harFellesTillegg = barnetillegg.felles.notNull() + + paragraph { textExpr( - Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + + " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + + "Det er disse inntektene vi har brukt for å beregne barnetillegget.", ) } - paragraph { - // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. - textExpr( - Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() - + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() - + " kroner for mye/lite i uføretrygd.", + title2 { + text( + Bokmal to "Din personinntekt", ) } - paragraph { - textExpr( - Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() - + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" - + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), + includePhrase( + InntektTabell( + barnetillegg.personinntekt.inntekt, + newText( + Bokmal to "Total personinntekt", + fontType = FontType.BOLD, + ), + ) ) } - title1 { + title2 { text( - Bokmal to "Din pensjonsgivende inntekt", + Bokmal to "Beløp som er trukket fra personinntekten din", ) } - showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { + paragraph { + showIf(barnetillegg.personinntekt.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + barnetillegg.personinntekt.fratrekk, + newText( + Bokmal to "Totalbeløp som er trukket fra personinntekten din", + fontType = FontType.BOLD, + ), + ) + ) + } orShow { + textExpr( + Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + ) + } + } + + ifNotNull(barnetillegg.felles) { fellesbarn -> + title2 { + text( + Bokmal to "Personinntekt til annen forelder", + ) + } paragraph { includePhrase( InntektTabell( - pensjonsgivendeInntekt.inntekt, + fellesbarn.personinntektAnnenForelder.inntekt, newText( - Bokmal to "Total pensjonsgivende inntekt", + Bokmal to "Total personinntekt til annen forelder", fontType = FontType.BOLD, ), - ), + ) ) } - title1 { + title2 { text( - Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", + Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", ) } paragraph { - showIf(pensjonsgivendeInntekt.fratrekk.fratrekk.isNotEmpty()) { + showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { includePhrase( FratrekkTabell( - pensjonsgivendeInntekt.fratrekk, + fellesbarn.personinntektAnnenForelder.fratrekk, newText( - Bokmal to "Totalbeløp som er trukket fra", + Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", fontType = FontType.BOLD, - ) + ), ) ) } orShow { textExpr( - Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() - + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", ) } } - } orShow { - paragraph { - textExpr( - Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", - ) - } - } - ifNotNull(barnetillegg) { - title1 { - text( - Bokmal to "Om beregning av barnetillegg", - ) - } paragraph { text( - Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", + Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", ) - list { - item { - text( - Bokmal to "pensjonsgivende inntekt", - ) - } - item { - text( - Bokmal to "uføretrygd", - ) - } - item { - text( - Bokmal to "alderspensjon fra folketrygden", - ) - } - item { - text( - Bokmal to "andre pensjoner og ytelser, også fra utlandet", - ) - } + } + + showIf(fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum)) { + paragraph { + textExpr( + Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + ) } - text( - Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + - "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + - ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", - ) } + } + + // TODO Skal ha en betingelse for visning + paragraph { + textExpr( + Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + + " inntekt i " + periode.format() + " for å ha rett på barnetillegg." + ) + } +} - ifNotNull(it.felles) { fellesbarn -> - title2 { +private fun OutlineOnlyScope.omBeregningAvUfoeretrygd( + harGjenlevendeTillegg: Expression, + pensjonsgivendeInntekt: Expression, + periode: Expression, + pensjonsgivendeInntektBruktIBeregningen: Expression, + ufoeretrygd: Expression, +) { + title1 { + textExpr( + Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + ) + } + paragraph { + textExpr( + Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") + + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", + ) + list { + item { text( - Bokmal to "For barn som bor sammen med begge foreldrene:", + Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", ) } - paragraph { - list { - item { - textExpr( - Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", - ) - } - item { - textExpr( - Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", - ) - } - item { - text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", - ) - } - showIf(fellesbarn.isFribeloepRedusert) { - item { - text( - Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", - ) - } - } - item { - text( - Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", - ) - } - } + item { + text( + Bokmal to "lønnsinntekt fra utlandet", + ) } - } - - ifNotNull(it.saerkull) { saerkull -> - title2 { + item { text( - Bokmal to "For barn som ikke bor sammen med begge foreldrene:", + Bokmal to "inntekt fra selvstendig næringsvirksomhet", ) } - paragraph { - list { - item { - text( - Bokmal to "Barnetillegget beregnes ut fra inntekten din.", - ) - } - item { - textExpr( - Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", - ) - } - item { - text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", - ) - } - showIf(saerkull.isFribeloepRedusert) { - item { - text( - Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", - ) - } - } - item { - text( - Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", - ) - } - item { - text( - Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." - ) - } - } + item { + text( + Bokmal to "inntekt som fosterforelder", + ) + } + item { + text( + Bokmal to "omsorgslønn", + ) } } + val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() + textExpr( + Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + ) + } - paragraph { - val skulleFaatt = - it.saerkull.resultat_safe.skulleFaatt_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.skulleFaatt_safe.ifNull( - Kroner(0) + paragraph { + text( + Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + ) + list { + item { + text( + Bokmal to "inntekt før du ble uføretrygdet", ) - textExpr( - Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + - "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", - ) - } - - paragraph { - val fikkUtbetalt = - it.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.fikk_safe.ifNull( - Kroner(0) + } + item { + text( + Bokmal to "inntekt etter at uføretrygden din opphørte", ) - val totaltAvvik = - it.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + it.felles.resultat_safe.avvik_safe.ifNull( - Kroner(0) + } + item { + text( + Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", + ) + } + item { + text( + Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + ) + } + item { + text( + Bokmal to "etterbetaling du har fått fra NAV", ) - val harFaattForMye = totaltAvvik.lessThanOrEqual(0) - // TODO: Må fikses på når jeg har funnet ut av hvordan avvik skal representeres - textExpr( - Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + - totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i barnetillegg.", - ) - } - - title2 { - text( - Bokmal to "Beregningene er gjort hver for seg hvis", - ) - } - paragraph { - list { - item { - text( - Bokmal to "du har flere barn som har ulike bosituasjoner.", - ) - } - item { - text( - Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", - ) - } } } - val harFellesTillegg = it.felles.notNull() + val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() + textExpr( + Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + ) + } + + paragraph { + // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. + textExpr( + Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() + + " kroner for mye/lite i uføretrygd.", + ) + } - paragraph { - textExpr( - Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + - " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + - "Det er disse inntektene vi har brukt for å beregne barnetillegget.", - ) - } + paragraph { + textExpr( + Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" + + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), + ) + } - title2 { - text( - Bokmal to "Din personinntekt", - ) - } + title1 { + text( + Bokmal to "Din pensjonsgivende inntekt", + ) + } + showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { paragraph { includePhrase( InntektTabell( - it.personinntekt.inntekt, + pensjonsgivendeInntekt.inntekt, newText( - Bokmal to "Total personinntekt", + Bokmal to "Total pensjonsgivende inntekt", fontType = FontType.BOLD, ), - ) + ), ) } - title2 { + title1 { text( - Bokmal to "Beløp som er trukket fra personinntekten din", + Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", ) } paragraph { - showIf(it.personinntekt.fratrekk.fratrekk.isNotEmpty()) { + showIf(pensjonsgivendeInntekt.fratrekk.fratrekk.isNotEmpty()) { includePhrase( FratrekkTabell( - it.personinntekt.fratrekk, + pensjonsgivendeInntekt.fratrekk, newText( - Bokmal to "Totalbeløp som er trukket fra personinntekten din", + Bokmal to "Totalbeløp som er trukket fra", fontType = FontType.BOLD, - ), + ) ) ) } orShow { textExpr( - Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + - ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", - ) - } - } - - ifNotNull(it.felles) { fellesbarn -> - title2 { - text( - Bokmal to "Personinntekt til annen forelder", - ) - } - paragraph { - includePhrase( - InntektTabell( - fellesbarn.personinntektAnnenForelder.inntekt, - newText( - Bokmal to "Total personinntekt til annen forelder", - fontType = FontType.BOLD, - ), - ) - ) - } - - title2 { - text( - Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", - ) - } - paragraph { - showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { - includePhrase( - FratrekkTabell( - fellesbarn.personinntektAnnenForelder.fratrekk, - newText( - Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", - fontType = FontType.BOLD, - ), - ) - ) - } orShow { - textExpr( - Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", - ) - } - } - - paragraph { - text( - Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", + Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", ) } - - showIf(fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum)) { - paragraph { - textExpr( - Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", - ) - } - } } - - // TODO Skal ha en betingelse for visning + } orShow { paragraph { textExpr( - Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + - " inntekt i " + periode.format() + " for å ha rett på barnetillegg." + Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", ) } + } +} - title1 { +private fun OutlineOnlyScope.duHarFaattAvviksBeloep( + totaltAvvik: Expression, + harFaattForMye: Expression, + harBarnetillegg: Expression, + harGjenlevendeTillegg: Expression, + periode: Expression, +) { + paragraph { + textExpr( + Bokmal to "Du har fått ".expr() + totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", + ) + showIf(harBarnetillegg and harGjenlevendeTillegg) { text( - Bokmal to "Er opplysningene om inntekt feil?", + Bokmal to ", barnetillegg og gjenlevendetillegg", ) - } - paragraph { + }.orShowIf(harBarnetillegg) { text( - Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", + Bokmal to " og barnetillegg", ) - } - paragraph { + }.orShowIf(harGjenlevendeTillegg) { text( - Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + Bokmal to " og gjenlevendetillegg" ) } + textExpr( + Bokmal to " i perioden ".expr() + periode.format(), + ) + } +} - showIf(harFellesTillegg) { - title2 { - text( - Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", - ) - } - paragraph { - text( - Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", - ) +private fun OutlineOnlyScope.fikkSkulleFaattTabell( + harFaattForMye: Expression, + harGjenlevendeTillegg: Expression, + ufoeretrygd: Expression, + barnetillegg: Expression, + totaltAvvik: Expression, +) { + title1 { + text( + Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + ) + } + paragraph { + table( + header = { + column(columnSpan = 5) { + text( + Bokmal to "Type stønad", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Dette skulle du fått", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + text( + Bokmal to "Dette fikk du", + fontType = FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { + textExpr( + Bokmal to "For ".expr() + ifElse(harFaattForMye, "mye", "lite") + " beløp", + fontType = FontType.BOLD, + ) + } } - paragraph { - text( - Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + - "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", - ) + ) { + fun avviksResultatRad( + typeStoenad: TextElement, + resultat: Expression + ) { + ifNotNull(resultat) { + row { + cell { + addTextContent(typeStoenad) + } + cell { + textExpr( + Bokmal to it.skulleFaatt.format() + " kr", + ) + } + cell { + textExpr( + Bokmal to it.fikk.format() + " kr", + ) + } + cell { + textExpr( + Bokmal to it.avvik.format() + " kr", + ) + } + } + } } - } - - title2 { - text( - Bokmal to "Endringer i pensjonsytelser", + avviksResultatRad( + newTextExpr( + Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + ), + ufoeretrygd, ) - } - paragraph { - text( - Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + - "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + - "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + avviksResultatRad( + newText( + Bokmal to "Barnetillegg særkullsbarn", + ), + barnetillegg.saerkull_safe.resultat_safe, + ) + avviksResultatRad( + newText( + Bokmal to "Barnetillegg fellesbarn", + ), + barnetillegg.felles_safe.resultat_safe, ) + row { + cell { + textExpr( + Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), + fontType = FontType.BOLD, + ) + } + cell { } + cell { } + cell { + textExpr( + Bokmal to totaltAvvik.format() + " kr", + fontType = FontType.BOLD, + ) + } + } } } } -data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : - ParagraphPhrase() { +private fun OutlineOnlyScope.introduksjon(periode: Expression) { + paragraph { + textExpr( + Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", + ) + } + paragraph { + text( + Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + ) + } +} + +data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : ParagraphPhrase() { override fun ParagraphOnlyScope.template() = table( @@ -753,8 +798,7 @@ data class FratrekkTabell(val fratrekk: Expression, } } -data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : - ParagraphPhrase() { +data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : ParagraphPhrase() { override fun ParagraphOnlyScope.template() = table( From b2d566282e85d48721055c56d2aa56e64945f051 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 16 Aug 2023 11:44:20 +0200 Subject: [PATCH 05/23] =?UTF-8?q?Fiks=20rekkef=C3=B8lge=20og=20visningslog?= =?UTF-8?q?ikk=20p=C3=A5=20barnetillegg=20avsnitt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 127309185..76dde0433 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -14,6 +14,7 @@ import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSel import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.isFribeloepRedusert import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep @@ -371,14 +372,19 @@ private fun OutlineOnlyScope.omBeregningAvBarnetillegg( ) ) } - - title2 { + paragraph { text( - Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", ) } - paragraph { - showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { + + showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { + title2 { + text( + Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + ) + } + paragraph { includePhrase( FratrekkTabell( fellesbarn.personinntektAnnenForelder.fratrekk, @@ -388,26 +394,26 @@ private fun OutlineOnlyScope.omBeregningAvBarnetillegg( ), ) ) - } orShow { - textExpr( - Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", - ) } - } - paragraph { - text( - Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", - ) - } - - showIf(fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum)) { + showIf( + fellesbarn.resultat.avvik.notEqualTo(0) + and fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum) + ) { + paragraph { + textExpr( + Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + ) + } + } + } orShow { paragraph { textExpr( - Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", ) } } + } // TODO Skal ha en betingelse for visning From d4bfd030d7f537964d74765f3594b067d85fb9a7 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 16 Aug 2023 13:30:05 +0200 Subject: [PATCH 06/23] =?UTF-8?q?Fiks=20at=20totaltAvvik=20kan=20v=C3=A6re?= =?UTF-8?q?=20negativ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt | 6 +++--- .../brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt index 80480d112..985a8e9c0 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt @@ -24,9 +24,9 @@ data class Innledning( } paragraph { textExpr( - Bokmal to "Vår beregning viser at du har fått ".expr() + totaltAvvik.format() + " kroner for mye utbetalt.", - Nynorsk to "Utrekninga vår viser at du har fått utbetalt ".expr() + totaltAvvik.format() + " kroner for mykje.", - English to "Our calculations show that you have received an overpayment of NOK ".expr() + totaltAvvik.format() + "." + Bokmal to "Vår beregning viser at du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for mye utbetalt.", + Nynorsk to "Utrekninga vår viser at du har fått utbetalt ".expr() + totaltAvvik.absoluteValue().format() + " kroner for mykje.", + English to "Our calculations show that you have received an overpayment of NOK ".expr() + totaltAvvik.absoluteValue().format() + "." ) } } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 76dde0433..2bcf56159 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -591,7 +591,7 @@ private fun OutlineOnlyScope.duHarFaattAvviksBeloep( ) { paragraph { textExpr( - Bokmal to "Du har fått ".expr() + totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", + Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", ) showIf(harBarnetillegg and harGjenlevendeTillegg) { text( @@ -646,8 +646,8 @@ private fun OutlineOnlyScope.fikkSkulleFaattTabell( ) } column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - textExpr( - Bokmal to "For ".expr() + ifElse(harFaattForMye, "mye", "lite") + " beløp", + text( + Bokmal to "Avviksbeløp", fontType = FontType.BOLD, ) } From 7048d6eb994e11c20e63e2d5d3b0bf16cece0a07 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 16 Aug 2023 14:47:12 +0200 Subject: [PATCH 07/23] Fiks nynorsk referanse til vedlegg --- .../no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt index 985a8e9c0..20c7eea45 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/ufoer/Etteroppgjoer.kt @@ -45,7 +45,7 @@ object SjekkBeregning : OutlinePhrase() { paragraph { text( Bokmal to "Dette brevet er et forhåndsvarsel, slik at du kan sjekke at beregningene i vedlegg «Opplysninger om etteroppgjøret» er korrekte, og melde fra til oss hvis noe er feil eller mangler.", - Nynorsk to "Dette brevet er eit førehandsvarsel, og du har såleis høve til å sjekke at utrekningane i vedlegg «Opplysninger om etteroppgjøret» er korrekte, og melde frå til oss dersom noko er feil eller manglar.", + Nynorsk to "Dette brevet er eit førehandsvarsel, og du har såleis høve til å sjekke at utrekningane i vedlegg «Opplysningar om etteroppgjeret» er korrekte, og melde frå til oss dersom noko er feil eller manglar.", English to "We are writing to inform you in advance before we make a final decision. Please review the calculations in appendix «Calculation of settlement» carefully. Check if there are any mistakes or missing information. If you find any errors, let us know as soon as possible." ) } @@ -197,7 +197,7 @@ object FristerOpplysningerKlage : OutlinePhrase() { paragraph { text( Bokmal to "Hvis du mener at beregningene i vedlegg «Opplysninger om etteroppgjøret» er feil, må du melde fra til oss innen 3 uker fra du fikk dette brevet. Du vil da få en ny vurdering og et nytt vedtak.", - Nynorsk to "Dersom du meiner at utrekningane i vedlegg «Opplysninger om etteroppgjøret» er feil, må du melde frå til oss innan 3 veker frå du fekk dette brevet. Du vil då få ei ny vurdering og eit nytt vedtak.", + Nynorsk to "Dersom du meiner at utrekningane i vedlegg «Opplysningar om etteroppgjeret» er feil, må du melde frå til oss innan 3 veker frå du fekk dette brevet. Du vil då få ei ny vurdering og eit nytt vedtak.", English to "If you believe that the calculations in appendix «Information about the settlement» are incorrect, you must notify us within 3 weeks of the date you received this letter. In such case you will receive a new assessment and a new decision." ) } From 0e8b3c48eac3d3b51ba02ef1e64eba744d43ac57 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Tue, 22 Aug 2023 09:40:48 +0200 Subject: [PATCH 08/23] Skill ut i fraser --- gradle.properties | 2 +- .../VedleggOpplysningerOmEtteroppgjoeret.kt | 854 ++++++++++++++++++ .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 849 +---------------- 3 files changed, 862 insertions(+), 843 deletions(-) create mode 100644 pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt diff --git a/gradle.properties b/gradle.properties index b8977dc57..418bdf8ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,5 +9,5 @@ jupiterVersion=5.10.0 hamkrestVersion=1.8.0.1 logstashVersion=7.4 micrometerVersion=1.11.2 -apiModelVersion=43 +apiModelVersion=46 jacksonJsr310Version=2.15.2 \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt new file mode 100644 index 000000000..bf81aceb9 --- /dev/null +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -0,0 +1,854 @@ +package no.nav.pensjon.brev.maler.fraser.vedlegg + +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.fribeloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.isFribeloepRedusert +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.isFribeloepRedusert +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.personinntekt +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.aarsak +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.beloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.type +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.fratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.sum +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.beloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.registerKilde +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.type +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.inntekter +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.sum +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.fratrekk +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.inntekt +import no.nav.pensjon.brev.maler.fraser.common.Constants +import no.nav.pensjon.brev.maler.fraser.common.Felles +import no.nav.pensjon.brev.model.format +import no.nav.pensjon.brev.model.ubestemtForm +import no.nav.pensjon.brev.template.* +import no.nav.pensjon.brev.template.dsl.* +import no.nav.pensjon.brev.template.dsl.expression.* +import no.nav.pensjon.brevbaker.api.model.Kroner +import no.nav.pensjon.brevbaker.api.model.Year + +data class Introduksjon(val periode: Expression) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + paragraph { + textExpr( + Language.Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", + ) + } + paragraph { + text( + Language.Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + ) + } + } +} + +data class FikkSkulleFaattTabell( + val harFaattForMye: Expression, + val harGjenlevendeTillegg: Expression, + val ufoeretrygd: Expression, + val barnetillegg: Expression, + val totaltAvvik: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + title1 { + text( + Language.Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + ) + } + paragraph { + table( + header = { + column(columnSpan = 5) { + text( + Language.Bokmal to "Type stønad", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { + text( + Language.Bokmal to "Dette skulle du fått", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { + text( + Language.Bokmal to "Dette fikk du", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { + text( + Language.Bokmal to "Avviksbeløp", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + } + ) { + fun avviksResultatRad( + typeStoenad: TextElement, + resultat: Expression + ) { + ifNotNull(resultat) { + row { + cell { + addTextContent(typeStoenad) + } + cell { + textExpr( + Language.Bokmal to it.skulleFaatt.format() + " kr", + ) + } + cell { + textExpr( + Language.Bokmal to it.fikk.format() + " kr", + ) + } + cell { + textExpr( + Language.Bokmal to it.avvik.format() + " kr", + ) + } + } + } + } + avviksResultatRad( + newTextExpr( + Language.Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + ), + ufoeretrygd, + ) + avviksResultatRad( + newText( + Language.Bokmal to "Barnetillegg særkullsbarn", + ), + barnetillegg.saerkull_safe.resultat_safe, + ) + avviksResultatRad( + newText( + Language.Bokmal to "Barnetillegg fellesbarn", + ), + barnetillegg.felles_safe.resultat_safe, + ) + row { + cell { + textExpr( + Language.Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + cell { } + cell { } + cell { + textExpr( + Language.Bokmal to totaltAvvik.format() + " kr", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + } + } + } + } + } +} + +data class DuHarFaattAvviksBeloep( + val totaltAvvik: Expression, + val harFaattForMye: Expression, + val harBarnetillegg: Expression, + val harGjenlevendeTillegg: Expression, + val periode: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + paragraph { + textExpr( + Language.Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", + ) + showIf(harBarnetillegg and harGjenlevendeTillegg) { + text( + Language.Bokmal to ", barnetillegg og gjenlevendetillegg", + ) + }.orShowIf(harBarnetillegg) { + text( + Language.Bokmal to " og barnetillegg", + ) + }.orShowIf(harGjenlevendeTillegg) { + text( + Language.Bokmal to " og gjenlevendetillegg" + ) + } + textExpr( + Language.Bokmal to " i perioden ".expr() + periode.format(), + ) + } + } +} + +data class OmBeregningAvBarnetillegg( + val barnetillegg: Expression, + val periode: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + title1 { + text( + Language.Bokmal to "Om beregning av barnetillegg", + ) + } + paragraph { + text( + Language.Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", + ) + list { + item { + text( + Language.Bokmal to "pensjonsgivende inntekt", + ) + } + item { + text( + Language.Bokmal to "uføretrygd", + ) + } + item { + text( + Language.Bokmal to "alderspensjon fra folketrygden", + ) + } + item { + text( + Language.Bokmal to "andre pensjoner og ytelser, også fra utlandet", + ) + } + } + text( + Language.Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + + "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + + ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", + ) + } + + ifNotNull(barnetillegg.felles) { fellesbarn -> + title2 { + text( + Language.Bokmal to "For barn som bor sammen med begge foreldrene:", + ) + } + paragraph { + list { + item { + textExpr( + Language.Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + ) + } + item { + textExpr( + Language.Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + ) + } + item { + text( + Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(fellesbarn.isFribeloepRedusert) { + item { + text( + Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Language.Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } + } + } + } + + ifNotNull(barnetillegg.saerkull) { saerkull -> + title2 { + text( + Language.Bokmal to "For barn som ikke bor sammen med begge foreldrene:", + ) + } + paragraph { + list { + item { + text( + Language.Bokmal to "Barnetillegget beregnes ut fra inntekten din.", + ) + } + item { + textExpr( + Language.Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + ) + } + item { + text( + Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + ) + } + showIf(saerkull.isFribeloepRedusert) { + item { + text( + Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + ) + } + } + item { + text( + Language.Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + ) + } + item { + text( + Language.Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." + ) + } + } + } + } + + + paragraph { + val skulleFaatt = + barnetillegg.saerkull.resultat_safe.skulleFaatt_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.skulleFaatt_safe.ifNull( + Kroner(0) + ) + textExpr( + Language.Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + + "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", + ) + } + + paragraph { + val fikkUtbetalt = + barnetillegg.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.fikk_safe.ifNull( + Kroner(0) + ) + val totaltAvvik = + barnetillegg.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.avvik_safe.ifNull( + Kroner(0) + ) + // TODO: Må bruke felt fra dto + val harFaattForMye = totaltAvvik.lessThanOrEqual(0) + textExpr( + Language.Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + + totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i barnetillegg.", + ) + } + + title2 { + text( + Language.Bokmal to "Beregningene er gjort hver for seg hvis", + ) + } + paragraph { + list { + item { + text( + Language.Bokmal to "du har flere barn som har ulike bosituasjoner.", + ) + } + item { + text( + Language.Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", + ) + } + } + } + + val harFellesTillegg = barnetillegg.felles.notNull() + + paragraph { + textExpr( + Language.Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + + " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + + "Det er disse inntektene vi har brukt for å beregne barnetillegget.", + ) + } + + title2 { + text( + Language.Bokmal to "Din personinntekt", + ) + } + paragraph { + includePhrase( + InntektTabell( + barnetillegg.personinntekt.inntekt, + newText( + Language.Bokmal to "Total personinntekt", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ), + ) + ) + } + + title2 { + text( + Language.Bokmal to "Beløp som er trukket fra personinntekten din", + ) + } + paragraph { + showIf(barnetillegg.personinntekt.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + barnetillegg.personinntekt.fratrekk, + newText( + Language.Bokmal to "Totalbeløp som er trukket fra personinntekten din", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ), + ) + ) + } orShow { + textExpr( + Language.Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + ) + } + } + + ifNotNull(barnetillegg.felles) { fellesbarn -> + title2 { + text( + Language.Bokmal to "Personinntekt til annen forelder", + ) + } + paragraph { + includePhrase( + InntektTabell( + fellesbarn.personinntektAnnenForelder.inntekt, + newText( + Language.Bokmal to "Total personinntekt til annen forelder", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ), + ) + ) + } + paragraph { + text( + Language.Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", + ) + } + + showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { + title2 { + text( + Language.Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + ) + } + paragraph { + includePhrase( + FratrekkTabell( + fellesbarn.personinntektAnnenForelder.fratrekk, + newText( + Language.Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ), + ) + ) + } + + showIf( + fellesbarn.resultat.avvik.notEqualTo(0) + and fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum) + ) { + paragraph { + textExpr( + Language.Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + ) + } + } + } orShow { + paragraph { + textExpr( + Language.Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", + ) + } + } + + } + + // TODO Skal ha en betingelse for visning + paragraph { + textExpr( + Language.Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + + " inntekt i " + periode.format() + " for å ha rett på barnetillegg." + ) + } + } +} + +data class OmBeregningAvUfoeretrygd( + val harGjenlevendeTillegg: Expression, + val pensjonsgivendeInntekt: Expression, + val periode: Expression, + val pensjonsgivendeInntektBruktIBeregningen: Expression, + val ufoeretrygd: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + title1 { + textExpr( + Language.Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + ) + } + paragraph { + textExpr( + Language.Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") + + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", + ) + list { + item { + text( + Language.Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", + ) + } + item { + text( + Language.Bokmal to "lønnsinntekt fra utlandet", + ) + } + item { + text( + Language.Bokmal to "inntekt fra selvstendig næringsvirksomhet", + ) + } + item { + text( + Language.Bokmal to "inntekt som fosterforelder", + ) + } + item { + text( + Language.Bokmal to "omsorgslønn", + ) + } + } + + val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() + textExpr( + Language.Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + ) + } + + paragraph { + text( + Language.Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + ) + list { + item { + text( + Language.Bokmal to "inntekt før du ble uføretrygdet", + ) + } + item { + text( + Language.Bokmal to "inntekt etter at uføretrygden din opphørte", + ) + } + item { + text( + Language.Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", + ) + } + item { + text( + Language.Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + ) + } + item { + text( + Language.Bokmal to "etterbetaling du har fått fra NAV", + ) + } + } + + val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() + textExpr( + Language.Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + ) + } + + paragraph { + // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. + textExpr( + Language.Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() + + " kroner for mye/lite i uføretrygd.", + ) + } + + paragraph { + textExpr( + Language.Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" + + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), + ) + } + + title1 { + text( + Language.Bokmal to "Din pensjonsgivende inntekt", + ) + } + showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { + paragraph { + includePhrase( + InntektTabell( + pensjonsgivendeInntekt.inntekt, + newText( + Language.Bokmal to "Total pensjonsgivende inntekt", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ), + ), + ) + } + + title1 { + text( + Language.Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", + ) + } + paragraph { + showIf(pensjonsgivendeInntekt.fratrekk.fratrekk.isNotEmpty()) { + includePhrase( + FratrekkTabell( + pensjonsgivendeInntekt.fratrekk, + newText( + Language.Bokmal to "Totalbeløp som er trukket fra", + fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + ) + ) + ) + } orShow { + textExpr( + Language.Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + ) + } + } + } orShow { + paragraph { + textExpr( + Language.Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", + ) + } + } + } +} + +data class ErOpplysningeneOmInntektFeil( + val harFellesTillegg: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { + title1 { + text( + Language.Bokmal to "Er opplysningene om inntekt feil?", + ) + } + paragraph { + text( + Language.Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", + ) + } + paragraph { + text( + Language.Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + ) + } + + showIf(harFellesTillegg) { + title2 { + text( + Language.Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", + ) + } + paragraph { + text( + Language.Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", + ) + } + paragraph { + text( + Language.Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + + "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", + ) + } + } + + title2 { + text( + Language.Bokmal to "Endringer i pensjonsytelser", + ) + } + paragraph { + text( + Language.Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + + "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + + "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + ) + } + } +} + +data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : + ParagraphPhrase() { + + override fun ParagraphOnlyScope.template() = + table( + header = { + column(columnSpan = 3) { + text( + Language.Bokmal to "Type inntekt", + ) + } + column(columnSpan = 3) { + text( + Language.Bokmal to "Årsak til trekk", + ) + } + column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { + text( + Language.Bokmal to "Beløp", + ) + } + } + ) { + forEach(fratrekk.fratrekk) { fratrekkLinje -> + row { + cell { + eval(fratrekkLinje.type.format(LocalizedFratrekkType)) + } + cell { + eval(fratrekkLinje.aarsak.format(LocalizedAarsak)) + } + cell { + includePhrase(Felles.KronerText(fratrekkLinje.beloep)) + } + } + } + row { + cell { addTextContent(sumText) } + cell { } + cell { includePhrase(Felles.KronerText(fratrekk.sum, fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD)) } + } + } + + object LocalizedAarsak : LocalizedFormatter() { + // TODO flere språk + override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak, second: Language): String = + when (first) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> "Inntekt før uføretrygden ble innvilget" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> "Inntekt etter at uføretrygden opphørte" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> "Erstatning for inntektstap ved erstatningsoppgjør" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> "Inntekt fra helt avsluttet arbeid eller virksomhet" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> "Annet" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> "Etterbetaling fra NAV" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> TODO() + } + } + + object LocalizedFratrekkType : LocalizedFormatter() { + // TODO Flere språk + override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType, second: Language): String = + when (first) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.INNTEKT -> "Inntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> "Inntekt som kan trekkes fra" + } + + } +} + +data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : + ParagraphPhrase() { + + override fun ParagraphOnlyScope.template() = + table( + header = { + column(columnSpan = 3) { + text( + Language.Bokmal to "Type inntekt", + ) + } + column(columnSpan = 3) { + text( + Language.Bokmal to "Mottatt av", + ) + } + column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { + text( + Language.Bokmal to "Registrert inntekt", + ) + } + } + ) { + forEach(inntekt.inntekter) { inntektLinje -> + row { + cell { + eval(inntektLinje.type.format(LocalizedInntektType)) + } + cell { + eval(inntektLinje.registerKilde.format(LocalizedKilde)) + } + cell { + includePhrase(Felles.KronerText(inntektLinje.beloep)) + } + } + } + row { + cell { addTextContent(sumText) } + cell { } + cell { includePhrase(Felles.KronerText(inntekt.sum, fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD)) } + } + } + + object LocalizedKilde : LocalizedFormatter() { + // TODO flere språk + override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde, second: Language): String = + when (first) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> "Elektronisk innmeldt fra arbeidsgiver" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> "Oppgitt av skatteetaten" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_BRUKER -> "Opplyst av deg" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.NAV -> "NAV" + } + } + + object LocalizedInntektType : LocalizedFormatter() { + // TODO flere språk + override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType, second: Language): String = + when (first) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UFOERETRYGD -> "Uføretrygd" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" + } + } +} \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 2bcf56159..47758c597 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -1,42 +1,7 @@ package no.nav.pensjon.brev.maler.vedlegg import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.fribeloep -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.isFribeloepRedusert -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.isFribeloepRedusert -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.resultat_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.personinntekt -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull_safe -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.aarsak -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.beloep -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.type -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.fratrekk -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.sum -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.beloep -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.registerKilde -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.InntektLinjeSelectors.type -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.inntekter -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.InntektSelectors.sum -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.fratrekk -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.inntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.barnetillegg import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.harFaattForMye import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.harGjenlevendeTillegg @@ -45,19 +10,12 @@ import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSel import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.periode import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.totaltAvvik import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.ufoeretrygd -import no.nav.pensjon.brev.maler.fraser.common.Constants -import no.nav.pensjon.brev.maler.fraser.common.Felles.KronerText -import no.nav.pensjon.brev.model.format -import no.nav.pensjon.brev.model.ubestemtForm +import no.nav.pensjon.brev.maler.fraser.vedlegg.* import no.nav.pensjon.brev.template.* -import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Table.ColumnAlignment -import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType import no.nav.pensjon.brev.template.Language.Bokmal import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brev.template.dsl.helpers.TemplateModelHelpers -import no.nav.pensjon.brevbaker.api.model.Kroner -import no.nav.pensjon.brevbaker.api.model.Year @TemplateModelHelpers val vedleggOpplysningerOmEtteroppgjoeret = createAttachment( @@ -67,806 +25,13 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment.erOpplysningeneOmInntektFeil( - harFellesTillegg: Expression, -) { - title1 { - text( - Bokmal to "Er opplysningene om inntekt feil?", - ) - } - paragraph { - text( - Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", - ) - } - paragraph { - text( - Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", - ) - } - - showIf(harFellesTillegg) { - title2 { - text( - Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", - ) - } - paragraph { - text( - Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", - ) - } - paragraph { - text( - Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + - "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", - ) - } - } - - title2 { - text( - Bokmal to "Endringer i pensjonsytelser", - ) - } - paragraph { - text( - Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + - "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + - "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", - ) - } -} - -private fun OutlineOnlyScope.omBeregningAvBarnetillegg( - barnetillegg: Expression, - periode: Expression, -) { - title1 { - text( - Bokmal to "Om beregning av barnetillegg", - ) - } - paragraph { - text( - Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", - ) - list { - item { - text( - Bokmal to "pensjonsgivende inntekt", - ) - } - item { - text( - Bokmal to "uføretrygd", - ) - } - item { - text( - Bokmal to "alderspensjon fra folketrygden", - ) - } - item { - text( - Bokmal to "andre pensjoner og ytelser, også fra utlandet", - ) - } - } - text( - Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + - "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + - ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", - ) - } - - ifNotNull(barnetillegg.felles) { fellesbarn -> - title2 { - text( - Bokmal to "For barn som bor sammen med begge foreldrene:", - ) - } - paragraph { - list { - item { - textExpr( - Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", - ) - } - item { - textExpr( - Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", - ) - } - item { - text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", - ) - } - showIf(fellesbarn.isFribeloepRedusert) { - item { - text( - Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", - ) - } - } - item { - text( - Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", - ) - } - } - } - } - - ifNotNull(barnetillegg.saerkull) { saerkull -> - title2 { - text( - Bokmal to "For barn som ikke bor sammen med begge foreldrene:", - ) - } - paragraph { - list { - item { - text( - Bokmal to "Barnetillegget beregnes ut fra inntekten din.", - ) - } - item { - textExpr( - Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", - ) - } - item { - text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", - ) - } - showIf(saerkull.isFribeloepRedusert) { - item { - text( - Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", - ) - } - } - item { - text( - Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", - ) - } - item { - text( - Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." - ) - } - } - } - } - - - paragraph { - val skulleFaatt = - barnetillegg.saerkull.resultat_safe.skulleFaatt_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.skulleFaatt_safe.ifNull( - Kroner(0) - ) - textExpr( - Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + - "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", - ) - } - - paragraph { - val fikkUtbetalt = - barnetillegg.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.fikk_safe.ifNull( - Kroner(0) - ) - val totaltAvvik = - barnetillegg.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.avvik_safe.ifNull( - Kroner(0) - ) - val harFaattForMye = totaltAvvik.lessThanOrEqual(0) - // TODO: Må fikses på når jeg har funnet ut av hvordan avvik skal representeres - textExpr( - Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + - totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i barnetillegg.", - ) - } - - title2 { - text( - Bokmal to "Beregningene er gjort hver for seg hvis", - ) - } - paragraph { - list { - item { - text( - Bokmal to "du har flere barn som har ulike bosituasjoner.", - ) - } - item { - text( - Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", - ) - } - } - } - - val harFellesTillegg = barnetillegg.felles.notNull() - - paragraph { - textExpr( - Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + - " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + - "Det er disse inntektene vi har brukt for å beregne barnetillegget.", - ) - } - - title2 { - text( - Bokmal to "Din personinntekt", - ) - } - paragraph { - includePhrase( - InntektTabell( - barnetillegg.personinntekt.inntekt, - newText( - Bokmal to "Total personinntekt", - fontType = FontType.BOLD, - ), - ) - ) - } - - title2 { - text( - Bokmal to "Beløp som er trukket fra personinntekten din", - ) - } - paragraph { - showIf(barnetillegg.personinntekt.fratrekk.fratrekk.isNotEmpty()) { - includePhrase( - FratrekkTabell( - barnetillegg.personinntekt.fratrekk, - newText( - Bokmal to "Totalbeløp som er trukket fra personinntekten din", - fontType = FontType.BOLD, - ), - ) - ) - } orShow { - textExpr( - Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + - ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", - ) - } - } - - ifNotNull(barnetillegg.felles) { fellesbarn -> - title2 { - text( - Bokmal to "Personinntekt til annen forelder", - ) - } - paragraph { - includePhrase( - InntektTabell( - fellesbarn.personinntektAnnenForelder.inntekt, - newText( - Bokmal to "Total personinntekt til annen forelder", - fontType = FontType.BOLD, - ), - ) - ) - } - paragraph { - text( - Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", - ) - } - - showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { - title2 { - text( - Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", - ) - } - paragraph { - includePhrase( - FratrekkTabell( - fellesbarn.personinntektAnnenForelder.fratrekk, - newText( - Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", - fontType = FontType.BOLD, - ), - ) - ) - } - - showIf( - fellesbarn.resultat.avvik.notEqualTo(0) - and fellesbarn.personinntektAnnenForelder.inntekt.sum.greaterThan(fellesbarn.personinntektAnnenForelder.fratrekk.sum) - ) { - paragraph { - textExpr( - Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", - ) - } - } - } orShow { - paragraph { - textExpr( - Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", - ) - } - } - - } - - // TODO Skal ha en betingelse for visning - paragraph { - textExpr( - Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + - " inntekt i " + periode.format() + " for å ha rett på barnetillegg." - ) - } -} - -private fun OutlineOnlyScope.omBeregningAvUfoeretrygd( - harGjenlevendeTillegg: Expression, - pensjonsgivendeInntekt: Expression, - periode: Expression, - pensjonsgivendeInntektBruktIBeregningen: Expression, - ufoeretrygd: Expression, -) { - title1 { - textExpr( - Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), - ) - } - paragraph { - textExpr( - Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() - + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") - + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", - ) - list { - item { - text( - Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", - ) - } - item { - text( - Bokmal to "lønnsinntekt fra utlandet", - ) - } - item { - text( - Bokmal to "inntekt fra selvstendig næringsvirksomhet", - ) - } - item { - text( - Bokmal to "inntekt som fosterforelder", - ) - } - item { - text( - Bokmal to "omsorgslønn", - ) - } - } - - val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() - textExpr( - Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", - ) - } - - paragraph { - text( - Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", - ) - list { - item { - text( - Bokmal to "inntekt før du ble uføretrygdet", - ) - } - item { - text( - Bokmal to "inntekt etter at uføretrygden din opphørte", - ) - } - item { - text( - Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", - ) - } - item { - text( - Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", - ) - } - item { - text( - Bokmal to "etterbetaling du har fått fra NAV", - ) - } - } - - val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() - textExpr( - Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", - ) - } - - paragraph { - // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. - textExpr( - Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() - + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() - + " kroner for mye/lite i uføretrygd.", - ) - } - - paragraph { - textExpr( - Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() - + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" - + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), - ) - } - - title1 { - text( - Bokmal to "Din pensjonsgivende inntekt", - ) - } - showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { - paragraph { - includePhrase( - InntektTabell( - pensjonsgivendeInntekt.inntekt, - newText( - Bokmal to "Total pensjonsgivende inntekt", - fontType = FontType.BOLD, - ), - ), - ) - } - - title1 { - text( - Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", - ) - } - paragraph { - showIf(pensjonsgivendeInntekt.fratrekk.fratrekk.isNotEmpty()) { - includePhrase( - FratrekkTabell( - pensjonsgivendeInntekt.fratrekk, - newText( - Bokmal to "Totalbeløp som er trukket fra", - fontType = FontType.BOLD, - ) - ) - ) - } orShow { - textExpr( - Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() - + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", - ) - } - } - } orShow { - paragraph { - textExpr( - Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", - ) - } - } -} - -private fun OutlineOnlyScope.duHarFaattAvviksBeloep( - totaltAvvik: Expression, - harFaattForMye: Expression, - harBarnetillegg: Expression, - harGjenlevendeTillegg: Expression, - periode: Expression, -) { - paragraph { - textExpr( - Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", - ) - showIf(harBarnetillegg and harGjenlevendeTillegg) { - text( - Bokmal to ", barnetillegg og gjenlevendetillegg", - ) - }.orShowIf(harBarnetillegg) { - text( - Bokmal to " og barnetillegg", - ) - }.orShowIf(harGjenlevendeTillegg) { - text( - Bokmal to " og gjenlevendetillegg" - ) - } - textExpr( - Bokmal to " i perioden ".expr() + periode.format(), - ) + includePhrase(OmBeregningAvBarnetillegg(it, periode)) } + includePhrase(ErOpplysningeneOmInntektFeil(barnetillegg.felles_safe.notNull())) } -private fun OutlineOnlyScope.fikkSkulleFaattTabell( - harFaattForMye: Expression, - harGjenlevendeTillegg: Expression, - ufoeretrygd: Expression, - barnetillegg: Expression, - totaltAvvik: Expression, -) { - title1 { - text( - Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", - ) - } - paragraph { - table( - header = { - column(columnSpan = 5) { - text( - Bokmal to "Type stønad", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Dette skulle du fått", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Dette fikk du", - fontType = FontType.BOLD, - ) - } - column(columnSpan = 4, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Avviksbeløp", - fontType = FontType.BOLD, - ) - } - } - ) { - fun avviksResultatRad( - typeStoenad: TextElement, - resultat: Expression - ) { - ifNotNull(resultat) { - row { - cell { - addTextContent(typeStoenad) - } - cell { - textExpr( - Bokmal to it.skulleFaatt.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.fikk.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.avvik.format() + " kr", - ) - } - } - } - } - avviksResultatRad( - newTextExpr( - Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), - ), - ufoeretrygd, - ) - avviksResultatRad( - newText( - Bokmal to "Barnetillegg særkullsbarn", - ), - barnetillegg.saerkull_safe.resultat_safe, - ) - avviksResultatRad( - newText( - Bokmal to "Barnetillegg fellesbarn", - ), - barnetillegg.felles_safe.resultat_safe, - ) - row { - cell { - textExpr( - Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), - fontType = FontType.BOLD, - ) - } - cell { } - cell { } - cell { - textExpr( - Bokmal to totaltAvvik.format() + " kr", - fontType = FontType.BOLD, - ) - } - } - } - } -} - -private fun OutlineOnlyScope.introduksjon(periode: Expression) { - paragraph { - textExpr( - Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + - "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + - "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", - ) - } - paragraph { - text( - Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", - ) - } -} - -data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : ParagraphPhrase() { - - override fun ParagraphOnlyScope.template() = - table( - header = { - column(columnSpan = 3) { - text( - Bokmal to "Type inntekt", - ) - } - column(columnSpan = 3) { - text( - Bokmal to "Årsak til trekk", - ) - } - column(columnSpan = 2, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Beløp", - ) - } - } - ) { - forEach(fratrekk.fratrekk) { fratrekkLinje -> - row { - cell { - eval(fratrekkLinje.type.format(LocalizedFratrekkType)) - } - cell { - eval(fratrekkLinje.aarsak.format(LocalizedAarsak)) - } - cell { - includePhrase(KronerText(fratrekkLinje.beloep)) - } - } - } - row { - cell { addTextContent(sumText) } - cell { } - cell { includePhrase(KronerText(fratrekk.sum, fontType = FontType.BOLD)) } - } - } - - object LocalizedAarsak : LocalizedFormatter() { - // TODO flere språk - override fun apply(first: FratrekkLinje.Aarsak, second: Language): String = - when (first) { - FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> "Inntekt før uføretrygden ble innvilget" - FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> "Inntekt etter at uføretrygden opphørte" - FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> "Erstatning for inntektstap ved erstatningsoppgjør" - FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> "Inntekt fra helt avsluttet arbeid eller virksomhet" - FratrekkLinje.Aarsak.ANNET -> "Annet" - FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> "Etterbetaling fra NAV" - } - } - - object LocalizedFratrekkType : LocalizedFormatter() { - // TODO Flere språk - override fun apply(first: FratrekkLinje.InntektType, second: Language): String = - when (first) { - FratrekkLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" - FratrekkLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" - FratrekkLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" - FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" - FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" - FratrekkLinje.InntektType.INNTEKT -> "Inntekt" - FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> "Inntekt som kan trekkes fra" - } - - } -} - -data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : ParagraphPhrase() { - - override fun ParagraphOnlyScope.template() = - table( - header = { - column(columnSpan = 3) { - text( - Bokmal to "Type inntekt", - ) - } - column(columnSpan = 3) { - text( - Bokmal to "Mottatt av", - ) - } - column(columnSpan = 2, alignment = ColumnAlignment.RIGHT) { - text( - Bokmal to "Registrert inntekt", - ) - } - } - ) { - forEach(inntekt.inntekter) { inntektLinje -> - row { - cell { - eval(inntektLinje.type.format(LocalizedInntektType)) - } - cell { - eval(inntektLinje.registerKilde.format(LocalizedKilde)) - } - cell { - includePhrase(KronerText(inntektLinje.beloep)) - } - } - } - row { - cell { addTextContent(sumText) } - cell { } - cell { includePhrase(KronerText(inntekt.sum, fontType = FontType.BOLD)) } - } - } - - object LocalizedKilde : LocalizedFormatter() { - // TODO flere språk - override fun apply(first: InntektLinje.Kilde, second: Language): String = - when (first) { - InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> "Elektronisk innmeldt fra arbeidsgiver" - InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> "Oppgitt av skatteetaten" - InntektLinje.Kilde.OPPGITT_AV_BRUKER -> "Opplyst av deg" - InntektLinje.Kilde.NAV -> "NAV" - } - } - - object LocalizedInntektType : LocalizedFormatter() { - // TODO flere språk - override fun apply(first: InntektLinje.InntektType, second: Language): String = - when (first) { - InntektLinje.InntektType.ARBEIDSINNTEKT -> "Arbeidsinntekt" - InntektLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" - InntektLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" - InntektLinje.InntektType.UFOERETRYGD -> "Uføretrygd" - InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" - InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" - } - } -} \ No newline at end of file From 47dc77cc0b692d53b105d60d878c4e72fa0fc7d3 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Tue, 22 Aug 2023 10:49:44 +0200 Subject: [PATCH 09/23] Fiks endringer fra ny modell --- .../vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 9 ++++----- .../maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index bf81aceb9..74fa9a1fc 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -9,16 +9,15 @@ import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSel import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.fribeloep import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.isFribeloepRedusert import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.isFribeloepRedusert import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.resultat_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.mindreEnn40AarTrygdetid import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.personinntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull_safe @@ -268,7 +267,7 @@ data class OmBeregningAvBarnetillegg( Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", ) } - showIf(fellesbarn.isFribeloepRedusert) { + showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", @@ -307,7 +306,7 @@ data class OmBeregningAvBarnetillegg( Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", ) } - showIf(saerkull.isFribeloepRedusert) { + showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", @@ -489,7 +488,7 @@ data class OmBeregningAvBarnetillegg( } - // TODO Skal ha en betingelse for visning + // TODO Skal ha en betingelse for visning: harSamletInntektOverInntektstak, inntektstakSamletInntekt paragraph { textExpr( Language.Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt index dd127b810..abe7cf0d5 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt @@ -38,7 +38,6 @@ class OpplysningerOmEtteropgjoeretTest { sivilstand = BorMedSivilstand.EKTEFELLE, grunnbelop = Kroner(117_000), fribeloep = Kroner(1), - isFribeloepRedusert = true, resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), personinntektAnnenForelder = InntektOgFratrekk( inntekt = Inntekt( @@ -50,11 +49,12 @@ class OpplysningerOmEtteropgjoeretTest { sum = Kroner(30), ), fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) - ) + ), + harSamletInntektOverInntektstak = true, + inntektstakSamletInntekt = Kroner(10) ), saerkull = Saerkullsbarn( fribeloep = Kroner(1), - isFribeloepRedusert = true, resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)) ), personinntekt = InntektOgFratrekk( From 72e49b89f14e3030c786899d07530ae65eb82b71 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Tue, 22 Aug 2023 14:43:30 +0200 Subject: [PATCH 10/23] =?UTF-8?q?Ferdig=20med=20bokm=C3=A5l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../VedleggOpplysningerOmEtteroppgjoeret.kt | 252 ++++++++++-------- .../pensjon/brev/template/dsl/TemplateText.kt | 1 - .../brev/template/dsl/expression/Number.kt | 1 - ...haandsvarselEtteroppgjoerUfoeretrygdDto.kt | 1 + .../OpplysningerOmEtteropgjoeretTest.kt | 18 +- 6 files changed, 152 insertions(+), 123 deletions(-) diff --git a/gradle.properties b/gradle.properties index 418bdf8ef..f28d7d999 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,5 +9,5 @@ jupiterVersion=5.10.0 hamkrestVersion=1.8.0.1 logstashVersion=7.4 micrometerVersion=1.11.2 -apiModelVersion=46 +apiModelVersion=48 jacksonJsr310Version=2.15.2 \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index 74fa9a1fc..e7d546d7f 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -2,25 +2,29 @@ package no.nav.pensjon.brev.maler.fraser.vedlegg import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDto import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.avvik_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk -import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.fikk_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.harFaattForMye import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.AvviksResultatSelectors.skulleFaatt_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.fribeloep import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.grunnbelop +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.inntektstakSamletInntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.personinntektAnnenForelder import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.samletInntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.FellesbarnSelectors.sivilstand import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.fribeloep +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.inntektstakSamletInntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.resultat_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.SaerkullsbarnSelectors.samletInntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.felles_safe import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.mindreEnn40AarTrygdetid import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.personinntekt import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.saerkull_safe +import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.BarnetilleggSelectors.totaltResultat import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.aarsak import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.beloep import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.InntektOgFratrekkSelectors.FratrekkSelectors.FratrekkLinjeSelectors.type @@ -38,6 +42,7 @@ import no.nav.pensjon.brev.maler.fraser.common.Felles import no.nav.pensjon.brev.model.format import no.nav.pensjon.brev.model.ubestemtForm import no.nav.pensjon.brev.template.* +import no.nav.pensjon.brev.template.Language.Bokmal import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brevbaker.api.model.Kroner @@ -47,14 +52,14 @@ data class Introduksjon(val periode: Expression) : OutlinePhrase.template() { paragraph { textExpr( - Language.Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + + Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", ) } paragraph { text( - Language.Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", ) } } @@ -70,7 +75,7 @@ data class FikkSkulleFaattTabell( override fun OutlineOnlyScope.template() { title1 { text( - Language.Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", ) } paragraph { @@ -78,25 +83,25 @@ data class FikkSkulleFaattTabell( header = { column(columnSpan = 5) { text( - Language.Bokmal to "Type stønad", + Bokmal to "Type stønad", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( - Language.Bokmal to "Dette skulle du fått", + Bokmal to "Dette skulle du fått", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( - Language.Bokmal to "Dette fikk du", + Bokmal to "Dette fikk du", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( - Language.Bokmal to "Avviksbeløp", + Bokmal to "Avviksbeløp", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } @@ -113,17 +118,17 @@ data class FikkSkulleFaattTabell( } cell { textExpr( - Language.Bokmal to it.skulleFaatt.format() + " kr", + Bokmal to it.skulleFaatt.format() + " kr", ) } cell { textExpr( - Language.Bokmal to it.fikk.format() + " kr", + Bokmal to it.fikk.format() + " kr", ) } cell { textExpr( - Language.Bokmal to it.avvik.format() + " kr", + Bokmal to it.avvik.format() + " kr", ) } } @@ -131,26 +136,26 @@ data class FikkSkulleFaattTabell( } avviksResultatRad( newTextExpr( - Language.Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), ), ufoeretrygd, ) avviksResultatRad( newText( - Language.Bokmal to "Barnetillegg særkullsbarn", + Bokmal to "Barnetillegg særkullsbarn", ), barnetillegg.saerkull_safe.resultat_safe, ) avviksResultatRad( newText( - Language.Bokmal to "Barnetillegg fellesbarn", + Bokmal to "Barnetillegg fellesbarn", ), barnetillegg.felles_safe.resultat_safe, ) row { cell { textExpr( - Language.Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), + Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } @@ -158,7 +163,7 @@ data class FikkSkulleFaattTabell( cell { } cell { textExpr( - Language.Bokmal to totaltAvvik.format() + " kr", + Bokmal to totaltAvvik.format() + " kr", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } @@ -178,24 +183,24 @@ data class DuHarFaattAvviksBeloep( override fun OutlineOnlyScope.template() { paragraph { textExpr( - Language.Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + + Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", ) showIf(harBarnetillegg and harGjenlevendeTillegg) { text( - Language.Bokmal to ", barnetillegg og gjenlevendetillegg", + Bokmal to ", barnetillegg og gjenlevendetillegg", ) }.orShowIf(harBarnetillegg) { text( - Language.Bokmal to " og barnetillegg", + Bokmal to " og barnetillegg", ) }.orShowIf(harGjenlevendeTillegg) { text( - Language.Bokmal to " og gjenlevendetillegg" + Bokmal to " og gjenlevendetillegg" ) } textExpr( - Language.Bokmal to " i perioden ".expr() + periode.format(), + Bokmal to " i perioden ".expr() + periode.format(), ) } } @@ -208,37 +213,37 @@ data class OmBeregningAvBarnetillegg( override fun OutlineOnlyScope.template() { title1 { text( - Language.Bokmal to "Om beregning av barnetillegg", + Bokmal to "Om beregning av barnetillegg", ) } paragraph { text( - Language.Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", + Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", ) list { item { text( - Language.Bokmal to "pensjonsgivende inntekt", + Bokmal to "pensjonsgivende inntekt", ) } item { text( - Language.Bokmal to "uføretrygd", + Bokmal to "uføretrygd", ) } item { text( - Language.Bokmal to "alderspensjon fra folketrygden", + Bokmal to "alderspensjon fra folketrygden", ) } item { text( - Language.Bokmal to "andre pensjoner og ytelser, også fra utlandet", + Bokmal to "andre pensjoner og ytelser, også fra utlandet", ) } } text( - Language.Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + + Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", ) @@ -247,36 +252,36 @@ data class OmBeregningAvBarnetillegg( ifNotNull(barnetillegg.felles) { fellesbarn -> title2 { text( - Language.Bokmal to "For barn som bor sammen med begge foreldrene:", + Bokmal to "For barn som bor sammen med begge foreldrene:", ) } paragraph { list { item { textExpr( - Language.Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", ) } item { textExpr( - Language.Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", ) } item { text( - Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( - Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", ) } } item { text( - Language.Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", ) } } @@ -286,41 +291,41 @@ data class OmBeregningAvBarnetillegg( ifNotNull(barnetillegg.saerkull) { saerkull -> title2 { text( - Language.Bokmal to "For barn som ikke bor sammen med begge foreldrene:", + Bokmal to "For barn som ikke bor sammen med begge foreldrene:", ) } paragraph { list { item { text( - Language.Bokmal to "Barnetillegget beregnes ut fra inntekten din.", + Bokmal to "Barnetillegget beregnes ut fra inntekten din.", ) } item { textExpr( - Language.Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", ) } item { text( - Language.Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( - Language.Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", ) } } item { text( - Language.Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", ) } item { text( - Language.Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." + Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." ) } } @@ -334,43 +339,34 @@ data class OmBeregningAvBarnetillegg( Kroner(0) ) textExpr( - Language.Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + + Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", ) } paragraph { - val fikkUtbetalt = - barnetillegg.saerkull.resultat_safe.fikk_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.fikk_safe.ifNull( - Kroner(0) - ) - val totaltAvvik = - barnetillegg.saerkull.resultat_safe.avvik_safe.ifNull(Kroner(0)) + barnetillegg.felles.resultat_safe.avvik_safe.ifNull( - Kroner(0) - ) - // TODO: Må bruke felt fra dto - val harFaattForMye = totaltAvvik.lessThanOrEqual(0) textExpr( - Language.Bokmal to "Du har fått utbetalt ".expr() + fikkUtbetalt.format() + " kroner i barnetillegg. Du har fått " + - totaltAvvik.format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i barnetillegg.", + Bokmal to "Du har fått utbetalt ".expr() + barnetillegg.totaltResultat.fikk.format() + " kroner i barnetillegg. Du har fått " + + barnetillegg.totaltResultat.avvik.absoluteValue().format() + " kroner for " + + ifElse(barnetillegg.totaltResultat.harFaattForMye, "mye", "lite") + " i barnetillegg.", ) } title2 { text( - Language.Bokmal to "Beregningene er gjort hver for seg hvis", + Bokmal to "Beregningene er gjort hver for seg hvis", ) } paragraph { list { item { text( - Language.Bokmal to "du har flere barn som har ulike bosituasjoner.", + Bokmal to "du har flere barn som har ulike bosituasjoner.", ) } item { text( - Language.Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", + Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", ) } } @@ -380,7 +376,7 @@ data class OmBeregningAvBarnetillegg( paragraph { textExpr( - Language.Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + + Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + "Det er disse inntektene vi har brukt for å beregne barnetillegget.", ) @@ -388,7 +384,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( - Language.Bokmal to "Din personinntekt", + Bokmal to "Din personinntekt", ) } paragraph { @@ -396,7 +392,7 @@ data class OmBeregningAvBarnetillegg( InntektTabell( barnetillegg.personinntekt.inntekt, newText( - Language.Bokmal to "Total personinntekt", + Bokmal to "Total personinntekt", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -405,7 +401,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( - Language.Bokmal to "Beløp som er trukket fra personinntekten din", + Bokmal to "Beløp som er trukket fra personinntekten din", ) } paragraph { @@ -414,14 +410,14 @@ data class OmBeregningAvBarnetillegg( FratrekkTabell( barnetillegg.personinntekt.fratrekk, newText( - Language.Bokmal to "Totalbeløp som er trukket fra personinntekten din", + Bokmal to "Totalbeløp som er trukket fra personinntekten din", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) ) } orShow { textExpr( - Language.Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + + Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", ) } @@ -430,7 +426,7 @@ data class OmBeregningAvBarnetillegg( ifNotNull(barnetillegg.felles) { fellesbarn -> title2 { text( - Language.Bokmal to "Personinntekt til annen forelder", + Bokmal to "Personinntekt til annen forelder", ) } paragraph { @@ -438,7 +434,7 @@ data class OmBeregningAvBarnetillegg( InntektTabell( fellesbarn.personinntektAnnenForelder.inntekt, newText( - Language.Bokmal to "Total personinntekt til annen forelder", + Bokmal to "Total personinntekt til annen forelder", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -446,14 +442,14 @@ data class OmBeregningAvBarnetillegg( } paragraph { text( - Language.Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", + Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", ) } showIf(fellesbarn.personinntektAnnenForelder.fratrekk.fratrekk.isNotEmpty()) { title2 { text( - Language.Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", ) } paragraph { @@ -461,7 +457,7 @@ data class OmBeregningAvBarnetillegg( FratrekkTabell( fellesbarn.personinntektAnnenForelder.fratrekk, newText( - Language.Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", + Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -474,28 +470,53 @@ data class OmBeregningAvBarnetillegg( ) { paragraph { textExpr( - Language.Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", ) } } } orShow { paragraph { textExpr( - Language.Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", + Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", ) } } } - // TODO Skal ha en betingelse for visning: harSamletInntektOverInntektstak, inntektstakSamletInntekt + ifNotNull(barnetillegg.saerkull) { saerkull -> + includePhrase(ForHoeyInntektBarnetillegg(false, periode, saerkull.samletInntekt, saerkull.inntektstakSamletInntekt)) + } + + ifNotNull(barnetillegg.felles) { fellesbarn -> + includePhrase(ForHoeyInntektBarnetillegg(true, periode, fellesbarn.samletInntekt, fellesbarn.inntektstakSamletInntekt)) + } + } +} + +private data class ForHoeyInntektBarnetillegg( + val gjelderFlerePersonersInntekt: Boolean, + val periode: Expression, + val samletInntekt: Expression, + val inntektstak: Expression, +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() = paragraph { + if (gjelderFlerePersonersInntekt) { + text( + Bokmal to "Du ", + ) + } else { + text( + Bokmal to "Dere ", + ) + } textExpr( - Language.Bokmal to ifElse(harFellesTillegg, "Dere", "Du") + " hadde for høy" + ifElse(harFellesTillegg, " samlet", "") + - " inntekt i " + periode.format() + " for å ha rett på barnetillegg." + Bokmal to "hadde for høy samlet inntekt i ".expr() + periode.format() + " for å få utbetalt barnetillegg for særkullsbarn. " + + "Sum av samlet inntekt som gjør at barnetillegget ikke blir utbetalt var " + samletInntekt.format() + " kroner. " + + "Inntektstaket for å få utbetalt barnetillegg for særkullsbarn var " + inntektstak.format() + " kroner.", ) } - } } data class OmBeregningAvUfoeretrygd( @@ -508,99 +529,98 @@ data class OmBeregningAvUfoeretrygd( override fun OutlineOnlyScope.template() { title1 { textExpr( - Language.Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), ) } paragraph { textExpr( - Language.Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", ) list { item { text( - Language.Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", + Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", ) } item { text( - Language.Bokmal to "lønnsinntekt fra utlandet", + Bokmal to "lønnsinntekt fra utlandet", ) } item { text( - Language.Bokmal to "inntekt fra selvstendig næringsvirksomhet", + Bokmal to "inntekt fra selvstendig næringsvirksomhet", ) } item { text( - Language.Bokmal to "inntekt som fosterforelder", + Bokmal to "inntekt som fosterforelder", ) } item { text( - Language.Bokmal to "omsorgslønn", + Bokmal to "omsorgslønn", ) } } val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() textExpr( - Language.Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", ) } paragraph { text( - Language.Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", ) list { item { text( - Language.Bokmal to "inntekt før du ble uføretrygdet", + Bokmal to "inntekt før du ble uføretrygdet", ) } item { text( - Language.Bokmal to "inntekt etter at uføretrygden din opphørte", + Bokmal to "inntekt etter at uføretrygden din opphørte", ) } item { text( - Language.Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", + Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", ) } item { text( - Language.Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", ) } item { text( - Language.Bokmal to "etterbetaling du har fått fra NAV", + Bokmal to "etterbetaling du har fått fra NAV", ) } } val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() textExpr( - Language.Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", ) } paragraph { - // TODO: Må håndtere mye/lite her, og potensielt avvik som absolutt. textExpr( - Language.Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() - + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.format() - + " kroner for mye/lite i uføretrygd.", + Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.absoluteValue().format() + + " kroner for " + ifElse(ufoeretrygd.harFaattForMye, "mye", "lite") + " i uføretrygd.", ) } paragraph { textExpr( - Language.Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), ) @@ -608,7 +628,7 @@ data class OmBeregningAvUfoeretrygd( title1 { text( - Language.Bokmal to "Din pensjonsgivende inntekt", + Bokmal to "Din pensjonsgivende inntekt", ) } showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { @@ -617,7 +637,7 @@ data class OmBeregningAvUfoeretrygd( InntektTabell( pensjonsgivendeInntekt.inntekt, newText( - Language.Bokmal to "Total pensjonsgivende inntekt", + Bokmal to "Total pensjonsgivende inntekt", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ), @@ -626,7 +646,7 @@ data class OmBeregningAvUfoeretrygd( title1 { text( - Language.Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", + Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", ) } paragraph { @@ -635,14 +655,14 @@ data class OmBeregningAvUfoeretrygd( FratrekkTabell( pensjonsgivendeInntekt.fratrekk, newText( - Language.Bokmal to "Totalbeløp som er trukket fra", + Bokmal to "Totalbeløp som er trukket fra", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) ) ) } orShow { textExpr( - Language.Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", ) } @@ -650,7 +670,7 @@ data class OmBeregningAvUfoeretrygd( } orShow { paragraph { textExpr( - Language.Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", + Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", ) } } @@ -663,34 +683,34 @@ data class ErOpplysningeneOmInntektFeil( override fun OutlineOnlyScope.template() { title1 { text( - Language.Bokmal to "Er opplysningene om inntekt feil?", + Bokmal to "Er opplysningene om inntekt feil?", ) } paragraph { text( - Language.Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", + Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", ) } paragraph { text( - Language.Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", ) } showIf(harFellesTillegg) { title2 { text( - Language.Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", + Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", ) } paragraph { text( - Language.Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", + Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", ) } paragraph { text( - Language.Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + + Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", ) } @@ -698,12 +718,12 @@ data class ErOpplysningeneOmInntektFeil( title2 { text( - Language.Bokmal to "Endringer i pensjonsytelser", + Bokmal to "Endringer i pensjonsytelser", ) } paragraph { text( - Language.Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + + Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", ) @@ -719,17 +739,17 @@ data class FratrekkTabell(val fratrekk: Expression "Inntekt fra helt avsluttet arbeid eller virksomhet" OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> "Annet" OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> "Etterbetaling fra NAV" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> TODO() + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> "Inntekt inntil ett grunnbeløp" } } @@ -792,17 +812,17 @@ data class InntektTabell(val inntekt: Expression : TemplateGlobalSc fun addTextContent(e: TextElement) - // TODO: Consider removing this since textExpr already supports this, or renaming to allLanguagesExpr (or something similar). fun eval(expression: StringExpression, fontType: FontType = FontType.PLAIN) { addTextContent(Content(Element.OutlineContent.ParagraphContent.Text.Expression(expression, fontType))) } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt index 8404d1b2d..56543bc11 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/dsl/expression/Number.kt @@ -33,7 +33,6 @@ operator fun Expression.plus(other: Expression): Expression ) -// TODO: Skriv tester på disse fun > Expression.greaterThan(compareTo: Expression): Expression = Expression.BinaryInvoke( first = this, diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/fixtures/ForhaandsvarselEtteroppgjoerUfoeretrygdDto.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/fixtures/ForhaandsvarselEtteroppgjoerUfoeretrygdDto.kt index 543ab83b9..6bfcb8489 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/fixtures/ForhaandsvarselEtteroppgjoerUfoeretrygdDto.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/fixtures/ForhaandsvarselEtteroppgjoerUfoeretrygdDto.kt @@ -36,5 +36,6 @@ fun createForhaandsvarselEtteroppgjoerUfoeretrygdDtoOpplysningerOmEtteroppgjoret skulleFaatt = Kroner(100000), fikk = Kroner(150000), avvik = Kroner(50000), + harFaattForMye = false, ), ) \ No newline at end of file diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt index abe7cf0d5..e53518c79 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteropgjoeretTest.kt @@ -32,13 +32,13 @@ class OpplysningerOmEtteropgjoeretTest { OpplysningerOmEtteroppgjoeretDto( periode = Year(2022), harGjenlevendeTillegg = true, - ufoeretrygd = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), + ufoeretrygd = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4), harFaattForMye = true), barnetillegg = Barnetillegg( felles = Fellesbarn( sivilstand = BorMedSivilstand.EKTEFELLE, grunnbelop = Kroner(117_000), fribeloep = Kroner(1), - resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)), + resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4), harFaattForMye = true), personinntektAnnenForelder = InntektOgFratrekk( inntekt = Inntekt( inntekter = listOf( @@ -51,11 +51,15 @@ class OpplysningerOmEtteropgjoeretTest { fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) ), harSamletInntektOverInntektstak = true, - inntektstakSamletInntekt = Kroner(10) + inntektstakSamletInntekt = Kroner(10), + samletInntekt = Kroner(12), ), saerkull = Saerkullsbarn( fribeloep = Kroner(1), - resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4)) + resultat = AvviksResultat(skulleFaatt = Kroner(10), fikk = Kroner(14), avvik = Kroner(-4), harFaattForMye = true), + harSamletInntektOverInntektstak = true, + inntektstakSamletInntekt = Kroner(8), + samletInntekt = Kroner(10), ), personinntekt = InntektOgFratrekk( inntekt = Inntekt( @@ -70,6 +74,12 @@ class OpplysningerOmEtteropgjoeretTest { fratrekk = Fratrekk(fratrekk = emptyList(), sum = Kroner(0)) ), mindreEnn40AarTrygdetid = true, + totaltResultat = AvviksResultat( + skulleFaatt = Kroner(20), + fikk = Kroner(28), + avvik = Kroner(-8), + harFaattForMye = true, + ) ), harFaattForMye = true, totaltAvvik = Kroner(4), From 289e9afa0011dd7e920a08a3c6f1e2fb2897f91a Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Tue, 22 Aug 2023 17:59:36 +0200 Subject: [PATCH 11/23] Ferdig med nynorsk --- .../VedleggOpplysningerOmEtteroppgjoeret.kt | 353 ++++++++++++++---- .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 2 +- 2 files changed, 274 insertions(+), 81 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index e7d546d7f..c656e1841 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -42,40 +42,46 @@ import no.nav.pensjon.brev.maler.fraser.common.Felles import no.nav.pensjon.brev.model.format import no.nav.pensjon.brev.model.ubestemtForm import no.nav.pensjon.brev.template.* -import no.nav.pensjon.brev.template.Language.Bokmal +import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brevbaker.api.model.Kroner import no.nav.pensjon.brevbaker.api.model.Year -data class Introduksjon(val periode: Expression) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +data class Introduksjon(val periode: Expression) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { paragraph { textExpr( Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", + Nynorsk to "Vi nyttar opplysningane som du legg sjølv inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysningar frå Skatteetaten. ".expr() + + "Vi har gjort ei ny utrekning av uføretrygda di for " + periode.format() + " etter opplysningar frå Skatteetaten." + + "Du kan sjå skatteoppgjeret ditt på ${Constants.SKATTEETATEN_URL}.", ) } paragraph { text( Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", + Nynorsk to "Hugs at du må melde frå til oss innan 3 veker om du meiner berekningane er feil", ) } } } data class FikkSkulleFaattTabell( + val periode: Expression, val harFaattForMye: Expression, val harGjenlevendeTillegg: Expression, val ufoeretrygd: Expression, val barnetillegg: Expression, val totaltAvvik: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { - text( - Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt", + textExpr( + Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt i ".expr() + periode.format(), + Nynorsk to "Kva du fekk utbetalt og kva du skulle ha fått utbetalt i ".expr() + periode.format(), ) } paragraph { @@ -84,31 +90,35 @@ data class FikkSkulleFaattTabell( column(columnSpan = 5) { text( Bokmal to "Type stønad", + Nynorsk to "Type stønad", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Dette skulle du fått", + Nynorsk to "Dette skulle du fått", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Dette fikk du", + Nynorsk to "Dette fekk du", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Avviksbeløp", + Nynorsk to "Avviksbeløp", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } } ) { fun avviksResultatRad( - typeStoenad: TextElement, + typeStoenad: TextElement, resultat: Expression ) { ifNotNull(resultat) { @@ -119,16 +129,19 @@ data class FikkSkulleFaattTabell( cell { textExpr( Bokmal to it.skulleFaatt.format() + " kr", + Nynorsk to it.skulleFaatt.format() + " kr", ) } cell { textExpr( Bokmal to it.fikk.format() + " kr", + Nynorsk to it.fikk.format() + " kr", ) } cell { textExpr( Bokmal to it.avvik.format() + " kr", + Nynorsk to it.avvik.format() + " kr", ) } } @@ -137,18 +150,21 @@ data class FikkSkulleFaattTabell( avviksResultatRad( newTextExpr( Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + Nynorsk to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", ""), ), ufoeretrygd, ) avviksResultatRad( newText( Bokmal to "Barnetillegg særkullsbarn", + Nynorsk to "Barnetillegg særkullsbarn", ), barnetillegg.saerkull_safe.resultat_safe, ) avviksResultatRad( newText( Bokmal to "Barnetillegg fellesbarn", + Nynorsk to "Barnetillegg fellesbarn", ), barnetillegg.felles_safe.resultat_safe, ) @@ -156,6 +172,7 @@ data class FikkSkulleFaattTabell( cell { textExpr( Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), + Nynorsk to "Belop du har fått for ".expr() + ifElse(harFaattForMye, "mykje", "lite"), fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } @@ -164,6 +181,7 @@ data class FikkSkulleFaattTabell( cell { textExpr( Bokmal to totaltAvvik.format() + " kr", + Nynorsk to totaltAvvik.format() + " kr", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) } @@ -179,28 +197,34 @@ data class DuHarFaattAvviksBeloep( val harBarnetillegg: Expression, val harGjenlevendeTillegg: Expression, val periode: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { paragraph { textExpr( Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", + Nynorsk to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + + ifElse(harFaattForMye, "mykje", "lite") + " i uføretrygd", ) showIf(harBarnetillegg and harGjenlevendeTillegg) { text( Bokmal to ", barnetillegg og gjenlevendetillegg", + Nynorsk to ", barnetillegg og attlevandetillegg", ) }.orShowIf(harBarnetillegg) { text( Bokmal to " og barnetillegg", + Nynorsk to " og barnetillegg", ) }.orShowIf(harGjenlevendeTillegg) { text( - Bokmal to " og gjenlevendetillegg" + Bokmal to " og gjenlevendetillegg", + Nynorsk to " og attlevandetillegg" ) } textExpr( - Bokmal to " i perioden ".expr() + periode.format(), + Bokmal to " i ".expr() + periode.format() + ".", + Nynorsk to " i ".expr() + periode.format() + ".", ) } } @@ -209,43 +233,52 @@ data class DuHarFaattAvviksBeloep( data class OmBeregningAvBarnetillegg( val barnetillegg: Expression, val periode: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { text( Bokmal to "Om beregning av barnetillegg", + Nynorsk to "Om utrekning av barnetillegg", ) } paragraph { text( Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", + Nynorsk to "Det er personinntekta som avgjer kor mykje du får i barnetillegg. Dette står i §12-2 i skattelova. Personinntekter omfattar:", ) list { item { text( Bokmal to "pensjonsgivende inntekt", + Nynorsk to "pensjonsgivande inntekt", ) } item { text( Bokmal to "uføretrygd", + Nynorsk to "uføretrygd", ) } item { text( Bokmal to "alderspensjon fra folketrygden", + Nynorsk to "alderspensjon frå folketrygda", ) } item { text( Bokmal to "andre pensjoner og ytelser, også fra utlandet", + Nynorsk to "andre pensjonar og ytingar, også frå utlandet" ) } } text( - Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller faller helt bort." + + Bokmal to "Hvis personinntekten din overstiger et visst beløp (fribeløp), blir barnetillegget redusert eller falle helt bort. " + "Fikk du innvilget barnetillegg i løpet av året, eller barnetillegget opphørte i løpet av året" + ", er det bare inntekten for perioden med rett til barnetillegg som har betydning.", + Nynorsk to "Dersom personinntekta di er over eit visst beløp (fribeløp), vil barnetillegget bli redusert eller falle bort heilt. " + + "Viss barnetillegg blei innvilga eller avvikla i løpet av året, vil det berre vere inntekta for perioden med rett til " + + "barnetillegg som har betydning.", ) } @@ -253,6 +286,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( Bokmal to "For barn som bor sammen med begge foreldrene:", + Nynorsk to "For barn som bur saman med begge foreldra:", ) } paragraph { @@ -260,28 +294,33 @@ data class OmBeregningAvBarnetillegg( item { textExpr( Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + Nynorsk to "Barnetillegget blir rekna ut med utgangspunkt i di eiga inntekt og inntekta til ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", ) } item { textExpr( Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + Nynorsk to "Fribeløpet er 4,6 gonger grunnbeløpet i folketrygda. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", ) } item { text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + Bokmal to "Fribeløpet øker med 40 prosent av folketrygdens grunnbeløp for hvert ekstra barn.", + Nynorsk to "Fribeløpet aukar med 40 prosent av grunnbeløpet i folketrygda for kvart ekstra barn.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + Nynorsk to "Fribeløpet blir redusert ut frå trygdetida du har.", ) } } item { text( Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + Nynorsk to "Barnetillegget blir redusert med 50 prosent av inntekta som er over fribeløpet.", ) } } @@ -292,6 +331,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( Bokmal to "For barn som ikke bor sammen med begge foreldrene:", + Nynorsk to "For barn som ikkje bur saman med begge foreldra:", ) } paragraph { @@ -299,33 +339,39 @@ data class OmBeregningAvBarnetillegg( item { text( Bokmal to "Barnetillegget beregnes ut fra inntekten din.", + Nynorsk to "Barnetillegget blir rekna ut på grunnlag av inntekta di.", ) } item { textExpr( Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + Nynorsk to "Fribeløpet er 3,1 gongar grunnbeløpet i folketrygda. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", ) } item { text( - Bokmal to "Fribeløpet øker med 40% av folketrygdens grunnbeløp for hvert ekstra barn.", + Bokmal to "Fribeløpet øker med 40 prosent av folketrygdens grunnbeløp for hvert ekstra barn.", + Nynorsk to "Fribeløpet aukar med 40 prosent av grunnbeløpet i folketrygda for kvart ekstra barn.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { item { text( Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", + Nynorsk to "Fribeløpet blir redusert ut frå trygdetida du har.", ) } } item { text( Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", + Nynorsk to "Barnetillegget blir redusert med 50 prosent av inntekta som er over fribeløpet.", ) } item { text( - Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning." + Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning.", + Nynorsk to "Inntekta til ein ektefelle/partnar/sambuer som ikkje er forelder til barnet, har inga betydning.", ) } } @@ -341,6 +387,8 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Ved beregning av barnetillegg har vi først oppdatert hvor mye du skulle hatt i uføretrygd. ".expr() + "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", + Nynorsk to "Når vi reknar ut barnetillegg, byrjar vi med å oppdatere kor mykje du skulle hatt i uføretrygd. ".expr() + + "Etter denne utrekninga, blir barnetillegget ditt " + skulleFaatt.format() + " kroner for " + periode.format() + ".", ) } @@ -349,12 +397,16 @@ data class OmBeregningAvBarnetillegg( Bokmal to "Du har fått utbetalt ".expr() + barnetillegg.totaltResultat.fikk.format() + " kroner i barnetillegg. Du har fått " + barnetillegg.totaltResultat.avvik.absoluteValue().format() + " kroner for " + ifElse(barnetillegg.totaltResultat.harFaattForMye, "mye", "lite") + " i barnetillegg.", + Nynorsk to "Du har fått utbetalt ".expr() + barnetillegg.totaltResultat.fikk.format() + " kroner i barnetillegg. Du har fått " + + barnetillegg.totaltResultat.avvik.absoluteValue().format() + " kroner for " + + ifElse(barnetillegg.totaltResultat.harFaattForMye, "mykje", "lite") + " i barnetillegg.", ) } title2 { text( - Bokmal to "Beregningene er gjort hver for seg hvis", + Bokmal to "Beregningene er gjort hver for seg hvis:", + Nynorsk to "Utrekningane er gjort kvar for seg viss:", ) } paragraph { @@ -362,11 +414,13 @@ data class OmBeregningAvBarnetillegg( item { text( Bokmal to "du har flere barn som har ulike bosituasjoner.", + Nynorsk to "du har fleire barn som har ulike busituasjoner.", ) } item { text( Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", + Nynorsk to "barnet bur med begge foreldra delar av året, og en av foreldra resten av året.", ) } } @@ -377,14 +431,16 @@ data class OmBeregningAvBarnetillegg( paragraph { textExpr( Bokmal to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og annen forelder", "") + - " har hatt i perioden " + ifElse(harFellesTillegg, "dere", "du") + " hadde rett til barnetillegg" + - "Det er disse inntektene vi har brukt for å beregne barnetillegget.", + " har hatt i " + periode.format() + ". Det er disse inntektene vi har brukt for å beregne barnetillegget.", + Nynorsk to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og anna forelder", "") + + " har hatt i " + periode.format() + ". Det er desse inntektene vi har brukt for å rekne ut barnetillegget.", ) } title2 { text( Bokmal to "Din personinntekt", + Nynorsk to "Personinntekta di", ) } paragraph { @@ -393,6 +449,7 @@ data class OmBeregningAvBarnetillegg( barnetillegg.personinntekt.inntekt, newText( Bokmal to "Total personinntekt", + Nynorsk to "Samla personinntekt", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -402,6 +459,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( Bokmal to "Beløp som er trukket fra personinntekten din", + Nynorsk to "Beløp som er trekt frå personinntekta di", ) } paragraph { @@ -411,6 +469,7 @@ data class OmBeregningAvBarnetillegg( barnetillegg.personinntekt.fratrekk, newText( Bokmal to "Totalbeløp som er trukket fra personinntekten din", + Nynorsk to "Totalbeløp som er trekt frå personinntekta di", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -419,6 +478,8 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Du har ikke hatt inntekter som er trukket fra personinntekten din i ".expr() + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + Nynorsk to "Du har ikkje hatt inntekter som er trekte frå personinntekta di i ".expr() + periode.format() + + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", ) } } @@ -427,6 +488,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( Bokmal to "Personinntekt til annen forelder", + Nynorsk to "Personinntekta til den andre forelderen", ) } paragraph { @@ -435,6 +497,7 @@ data class OmBeregningAvBarnetillegg( fellesbarn.personinntektAnnenForelder.inntekt, newText( Bokmal to "Total personinntekt til annen forelder", + Nynorsk to "Den samla personinntekta til den andre forelderen", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -443,6 +506,7 @@ data class OmBeregningAvBarnetillegg( paragraph { text( Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", + Nynorsk to "Mottar den andre forelderen uføretrygd eller alderspensjon frå NAV, blir dette også rekna som personinntekt.", ) } @@ -450,6 +514,7 @@ data class OmBeregningAvBarnetillegg( title2 { text( Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", + Nynorsk to "Beløp som er trekt frå personinntekta til den andre forelderen", ) } paragraph { @@ -458,6 +523,7 @@ data class OmBeregningAvBarnetillegg( fellesbarn.personinntektAnnenForelder.fratrekk, newText( Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", + Nynorsk to "Totalbeløp som er trekt frå personinntekta til den andre forelderen", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ) @@ -471,6 +537,7 @@ data class OmBeregningAvBarnetillegg( paragraph { textExpr( Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", + Nynorsk to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er halde utanfor inntekta til den andre forelderen.", ) } } @@ -478,6 +545,7 @@ data class OmBeregningAvBarnetillegg( paragraph { textExpr( Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", + Nynorsk to "Den andre forelderen har ikkje hatt inntekt som er trekt frå sin personinntekt i ".expr() + periode.format() + ".", ) } } @@ -485,38 +553,31 @@ data class OmBeregningAvBarnetillegg( } ifNotNull(barnetillegg.saerkull) { saerkull -> - includePhrase(ForHoeyInntektBarnetillegg(false, periode, saerkull.samletInntekt, saerkull.inntektstakSamletInntekt)) + paragraph { + textExpr( + Bokmal to "Du hadde for høy samlet inntekt i ".expr() + periode.format() + " for å få utbetalt barnetillegg for særkullsbarn. " + + "Sum av samlet inntekt som gjør at barnetillegget ikke blir utbetalt var " + saerkull.samletInntekt.format() + " kroner. " + + "Inntektstaket for å få utbetalt barnetillegg for særkullsbarn var " + saerkull.inntektstakSamletInntekt.format() + " kroner.", + Nynorsk to "Du hadde for høg samla inntekt i ".expr() + periode.format() + " til å få utbetalt barnetillegg for særkullsbarn. " + + "Summen av den samla inntekta som gjer at barnetillegget ikkje blir utbetalt, var " + saerkull.samletInntekt.format() + " kroner. " + + "Inntektstaket for å få utbetalt barnetillegg for særkullsbarn var " + saerkull.inntektstakSamletInntekt.format() + " kroner.", + ) + } } ifNotNull(barnetillegg.felles) { fellesbarn -> - includePhrase(ForHoeyInntektBarnetillegg(true, periode, fellesbarn.samletInntekt, fellesbarn.inntektstakSamletInntekt)) - } - } -} - -private data class ForHoeyInntektBarnetillegg( - val gjelderFlerePersonersInntekt: Boolean, - val periode: Expression, - val samletInntekt: Expression, - val inntektstak: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() = - paragraph { - if (gjelderFlerePersonersInntekt) { - text( - Bokmal to "Du ", - ) - } else { - text( - Bokmal to "Dere ", + paragraph { + textExpr( + Bokmal to "Dere hadde for høy samlet inntekt i ".expr() + periode.format() + " for å få utbetalt barnetillegg for fellesbarn. " + + "Sum av samlet inntekt som gjør at barnetillegget ikke blir utbetalt var " + fellesbarn.samletInntekt.format() + " kroner. " + + "Inntektstaket for å få utbetalt barnetillegg for fellessbarn var " + fellesbarn.inntektstakSamletInntekt.format() + " kroner.", + Nynorsk to "Dere hadde for høg samla inntekt i ".expr() + periode.format() + " til å få utbetalt barnetillegg for fellesbarn. " + + "Summen av den samla inntekta som gjer at barnetillegget ikkje blir utbetalt, var " + fellesbarn.samletInntekt.format() + " kroner. " + + "Inntektstaket for å få utbetalt barnetillegg for fellesbarn var " + fellesbarn.inntektstakSamletInntekt.format() + " kroner.", ) } - textExpr( - Bokmal to "hadde for høy samlet inntekt i ".expr() + periode.format() + " for å få utbetalt barnetillegg for særkullsbarn. " + - "Sum av samlet inntekt som gjør at barnetillegget ikke blir utbetalt var " + samletInntekt.format() + " kroner. " + - "Inntektstaket for å få utbetalt barnetillegg for særkullsbarn var " + inntektstak.format() + " kroner.", - ) } + } } data class OmBeregningAvUfoeretrygd( @@ -525,11 +586,12 @@ data class OmBeregningAvUfoeretrygd( val periode: Expression, val pensjonsgivendeInntektBruktIBeregningen: Expression, val ufoeretrygd: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { textExpr( Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), + Nynorsk to "Om utrekning av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", ""), ) } paragraph { @@ -537,69 +599,84 @@ data class OmBeregningAvUfoeretrygd( Bokmal to "Det er pensjonsgivende inntekt som avgjør hvor mye du får i uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", "") + ". Dette står i § 3-15 i folketrygdloven. Pensjonsgivende inntekt er blant annet:", + Nynorsk to "Det er pensjonsgivande inntekt som avgjer kor mykje du får i uføretrygd".expr() + + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", "") + + ". Dette står i § 3-15 i folketrygdlova. Døme på pensjonsgivande inntekt:", ) list { item { text( Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", + Nynorsk to "brutto lønsinntekt frå Noreg, inkludert feriepengar", ) } item { text( Bokmal to "lønnsinntekt fra utlandet", + Nynorsk to "lønsinntekt frå utlandet", ) } item { text( Bokmal to "inntekt fra selvstendig næringsvirksomhet", + Nynorsk to "inntekt frå sjølvstendig næringsverksemd", ) } item { text( Bokmal to "inntekt som fosterforelder", + Nynorsk to "inntekt som fosterforelder", ) } item { text( Bokmal to "omsorgslønn", + Nynorsk to "omsorgsløn", ) } } val inntektFoerFratrekk = pensjonsgivendeInntekt.inntekt.sum.format() textExpr( - Bokmal to "Din pensjonsgivende inntekt har i perioden ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + Bokmal to "Din pensjonsgivende inntekt har i ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", + Nynorsk to "Den pensjonsgivande inntekta di i ".expr() + periode.format() + " var " + inntektFoerFratrekk + " kroner.", ) } paragraph { text( Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", + Nynorsk to "Kva kan trekkjast frå den pensjonsgivande inntekta?", ) list { item { text( Bokmal to "inntekt før du ble uføretrygdet", + Nynorsk to "inntekt før du blei uføretrygda", ) } item { text( Bokmal to "inntekt etter at uføretrygden din opphørte", + Nynorsk to "inntekt etter at uføretrygda blei avvikla", ) } item { text( Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", + Nynorsk to "erstatning for inntektstap (erstatningsoppgjer)", ) } item { text( Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", + Nynorsk to "inntekt frå heilt avslutta arbeid eller verksemd", ) } item { text( Bokmal to "etterbetaling du har fått fra NAV", + Nynorsk to "etterbetalingar du har fått frå NAV", ) } } @@ -607,6 +684,7 @@ data class OmBeregningAvUfoeretrygd( val inntektEtterFratrekk = pensjonsgivendeInntektBruktIBeregningen.format() textExpr( Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", + Nynorsk to "Utrekninga vår viser at du har ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivande inntekt.", ) } @@ -615,6 +693,9 @@ data class OmBeregningAvUfoeretrygd( Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.absoluteValue().format() + " kroner for " + ifElse(ufoeretrygd.harFaattForMye, "mye", "lite") + " i uføretrygd.", + Nynorsk to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() + + ". Du fekk derimot " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.absoluteValue().format() + + " kroner for " + ifElse(ufoeretrygd.harFaattForMye, "mykje", "lite") + " i uføretrygd.", ) } @@ -623,12 +704,16 @@ data class OmBeregningAvUfoeretrygd( Bokmal to "Tabellene under viser inntektene du har hatt i ".expr() + periode.format() + ". Det er disse inntektene vi har brukt for å beregne uføretrygden din" + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegget ditt.", "."), + Nynorsk to "Tabellane under viser inntektene du har hatt i løpet av ".expr() + periode.format() + + ". Det er desse inntektene vi har nytta for å berekne uføretrygda di" + + ifElse(harGjenlevendeTillegg, " og attlevandetillegget ditt.", "."), ) } title1 { text( Bokmal to "Din pensjonsgivende inntekt", + Nynorsk to "Di pensjonsgivande inntekt" ) } showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { @@ -638,6 +723,7 @@ data class OmBeregningAvUfoeretrygd( pensjonsgivendeInntekt.inntekt, newText( Bokmal to "Total pensjonsgivende inntekt", + Nynorsk to "Samla pensjonsgivande inntekt", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ), ), @@ -647,6 +733,7 @@ data class OmBeregningAvUfoeretrygd( title1 { text( Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", + Nynorsk to "Beløp som er trekt frå den pensjonsgivande inntekta di", ) } paragraph { @@ -656,6 +743,7 @@ data class OmBeregningAvUfoeretrygd( pensjonsgivendeInntekt.fratrekk, newText( Bokmal to "Totalbeløp som er trukket fra", + Nynorsk to "Totalbeløp som er trekt frå", fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, ) ) @@ -664,6 +752,8 @@ data class OmBeregningAvUfoeretrygd( textExpr( Bokmal to "Du har ikke hatt inntekter som er trukket fra den pensjonsgivende inntekten din i ".expr() + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", + Nynorsk to "Du har ikkje hatt inntekter som er trekte frå den pensjonsgivande inntekta di i ".expr() + + periode.format() + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", ) } } @@ -671,6 +761,7 @@ data class OmBeregningAvUfoeretrygd( paragraph { textExpr( Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", + Nynorsk to "Du har ikkje hatt pensjonsgivande inntekt i ".expr() + periode.format() + ".", ) } } @@ -731,25 +822,28 @@ data class ErOpplysningeneOmInntektFeil( } } -data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : - ParagraphPhrase() { +data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : + ParagraphPhrase() { - override fun ParagraphOnlyScope.template() = + override fun ParagraphOnlyScope.template() = table( header = { column(columnSpan = 3) { text( Bokmal to "Type inntekt", + Nynorsk to "Type inntekt", ) } column(columnSpan = 3) { text( Bokmal to "Årsak til trekk", + Nynorsk to "Årsak til trekk", ) } column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Beløp", + Nynorsk to "Beløp", ) } } @@ -778,13 +872,41 @@ data class FratrekkTabell(val fratrekk: Expression "Inntekt før uføretrygden ble innvilget" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> "Inntekt etter at uføretrygden opphørte" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> "Erstatning for inntektstap ved erstatningsoppgjør" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> "Inntekt fra helt avsluttet arbeid eller virksomhet" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> "Annet" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> "Etterbetaling fra NAV" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> "Inntekt inntil ett grunnbeløp" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> when(second) { + Bokmal -> "Inntekt før uføretrygden ble innvilget" + Nynorsk -> "Inntekt før uføretrygda vart innvilga" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> when(second) { + Bokmal -> "Inntekt etter at uføretrygden opphørte" + Nynorsk -> "Inntekt etter at uføretrygda var avslutta" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> when(second) { + Bokmal -> "Erstatning for inntektstap ved erstatningsoppgjør" + Nynorsk -> "Erstatning for inntektstap ved erstatningsoppgjer" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> when(second) { + Bokmal -> "Inntekt fra helt avsluttet arbeid eller virksomhet" + Nynorsk -> "Inntekt frå heilt avslutta arbeid eller verksemd" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> when(second) { + Bokmal -> "Annet" + Nynorsk -> "Anna" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> when(second) { + Bokmal -> "Etterbetaling fra NAV" + Nynorsk -> "Etterbetaling frå NAV" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> when(second) { + Bokmal -> "Inntekt inntil ett grunnbeløp" + Nynorsk -> "Inntekt inntil eit grunnbeløp" + English -> TODO() + } } } @@ -792,37 +914,68 @@ data class FratrekkTabell(val fratrekk: Expression "Arbeidsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.INNTEKT -> "Inntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> "Inntekt som kan trekkes fra" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ARBEIDSINNTEKT -> when(second) { + Bokmal -> "Arbeidsinntekt" + Nynorsk -> "Arbeidsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.UTLANDSINNTEKT -> when(second) { + Bokmal -> "Utlandsinntekt" + Nynorsk -> "Utlandsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.NAERINGSINNTEKT -> when(second) { + Bokmal -> "Næringsinntekt" + Nynorsk -> "Næringsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when(second) { + Bokmal -> "Pensjon fra andre enn NAV" + Nynorsk -> "Pensjonar frå andre enn NAV" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when(second) { + Bokmal -> "Pensjon fra utlandet" + Nynorsk -> "Pensjonar frå utlandet" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.INNTEKT -> when(second) { + Bokmal -> "Inntekt" + Nynorsk -> "Inntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> when(second) { + Bokmal -> "Inntekt som kan trekkes fra" + Nynorsk -> "Inntekt som kan trekkjast frå" + English -> TODO() + } } } } -data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : - ParagraphPhrase() { +data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : + ParagraphPhrase() { - override fun ParagraphOnlyScope.template() = + override fun ParagraphOnlyScope.template() = table( header = { column(columnSpan = 3) { text( Bokmal to "Type inntekt", + Nynorsk to "Type inntekt", ) } column(columnSpan = 3) { text( Bokmal to "Mottatt av", + Nynorsk to "Motteke av", ) } column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Registrert inntekt", + Nynorsk to "Registrert inntekt", ) } } @@ -851,10 +1004,26 @@ data class InntektTabell(val inntekt: Expression "Elektronisk innmeldt fra arbeidsgiver" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> "Oppgitt av skatteetaten" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_BRUKER -> "Opplyst av deg" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.NAV -> "NAV" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> when(second) { + Bokmal -> "Elektronisk innmeldt fra arbeidsgiver" + Nynorsk -> "Elektronisk meldt inn frå arbeidsgivar" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> when(second) { + Bokmal -> "Oppgitt av skatteetaten" + Nynorsk -> "Oppgjeva av skatteetaten" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_BRUKER -> when(second) { + Bokmal -> "Opplyst av deg" + Nynorsk -> "Opplyst av deg" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.NAV -> when(second) { + Bokmal -> "NAV" + Nynorsk -> "NAV" + English -> TODO() + } } } @@ -862,12 +1031,36 @@ data class InntektTabell(val inntekt: Expression "Arbeidsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UTLANDSINNTEKT -> "Utlandsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.NAERINGSINNTEKT -> "Næringsinntekt" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UFOERETRYGD -> "Uføretrygd" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> "Pensjon fra andre enn NAV" - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> "Pensjon fra utlandet" + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ARBEIDSINNTEKT -> when(second) { + Bokmal -> "Arbeidsinntekt" + Nynorsk -> "Arbeidsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UTLANDSINNTEKT -> when(second) { + Bokmal -> "Utlandsinntekt" + Nynorsk -> "Utlandsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.NAERINGSINNTEKT -> when(second) { + Bokmal -> "Næringsinntekt" + Nynorsk -> "Næringsinntekt" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UFOERETRYGD -> when(second) { + Bokmal -> "Uføretrygd" + Nynorsk -> "Uføretrygd" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when(second) { + Bokmal -> "Pensjon fra andre enn NAV" + Nynorsk -> "Pensjonar frå andre enn NAV" + English -> TODO() + } + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when(second) { + Bokmal -> "Pensjon fra utlandet" + Nynorsk -> "Pensjonar frå utlandet" + English -> TODO() + } } } } \ No newline at end of file diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 47758c597..20c7471e3 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -26,7 +26,7 @@ val vedleggOpplysningerOmEtteroppgjoeret = createAttachment Date: Wed, 23 Aug 2023 14:56:35 +0200 Subject: [PATCH 12/23] Ferdig med engelsk --- .../brev/maler/fraser/common/Felles.kt | 4 +- .../VedleggOpplysningerOmEtteroppgjoeret.kt | 380 ++++++++++++------ .../vedlegg/OpplysningerOmEtteroppgjoeret.kt | 6 +- 3 files changed, 265 insertions(+), 125 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Felles.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Felles.kt index cecab9c4b..30203f797 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Felles.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/common/Felles.kt @@ -60,8 +60,8 @@ object Felles { textExpr( Bokmal to kroner.format() + " kr", Nynorsk to kroner.format() + " kr", - English to kroner.format() + " NOK", - fontType + English to "NOK ".expr() + kroner.format(), + fontType, ) } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index c656e1841..864c2468c 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -42,28 +42,33 @@ import no.nav.pensjon.brev.maler.fraser.common.Felles import no.nav.pensjon.brev.model.format import no.nav.pensjon.brev.model.ubestemtForm import no.nav.pensjon.brev.template.* +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brevbaker.api.model.Kroner import no.nav.pensjon.brevbaker.api.model.Year -data class Introduksjon(val periode: Expression) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +data class Introduksjon(val periode: Expression) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { paragraph { textExpr( Bokmal to "Vi bruker opplysningene som du selv legger inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysninger fra Skatteetaten. ".expr() + "Vi har gjort en ny beregning av uføretrygden din for " + periode.format() + " etter opplysninger fra Skatteetaten. " + "Du kan se skatteoppgjøret ditt på ${Constants.SKATTEETATEN_URL}.", Nynorsk to "Vi nyttar opplysningane som du legg sjølv inn som inntekt på ${Constants.INNTEKTSPLANLEGGEREN_URL}, og opplysningar frå Skatteetaten. ".expr() + - "Vi har gjort ei ny utrekning av uføretrygda di for " + periode.format() + " etter opplysningar frå Skatteetaten." + + "Vi har gjort ei ny utrekning av uføretrygda di for " + periode.format() + " etter opplysningar frå Skatteetaten. " + "Du kan sjå skatteoppgjeret ditt på ${Constants.SKATTEETATEN_URL}.", + English to "We use the information that you input as income on ${Constants.INNTEKTSPLANLEGGEREN_URL}, as well as information from the Tax Office".expr() + + "We have recalculated your disability benefit for " + periode.format() + " based on your tax settlement provided by the Tax Office. " + + "You can see your tax settlement at ${Constants.SKATTEETATEN_URL}.", ) } paragraph { text( Bokmal to "Husk at du må melde fra til oss innen 3 uker hvis du mener beregningene feil.", - Nynorsk to "Hugs at du må melde frå til oss innan 3 veker om du meiner berekningane er feil", + Nynorsk to "Hugs at du må melde frå til oss innan 3 veker om du meiner berekningane er feil.", + English to "Please remember to inform us within 3 weeks if you believe the calculations are incorrect.", ) } } @@ -76,12 +81,13 @@ data class FikkSkulleFaattTabell( val ufoeretrygd: Expression, val barnetillegg: Expression, val totaltAvvik: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { textExpr( Bokmal to "Hva du fikk utbetalt og hva du skulle fått utbetalt i ".expr() + periode.format(), Nynorsk to "Kva du fekk utbetalt og kva du skulle ha fått utbetalt i ".expr() + periode.format(), + English to "What you received and what you should have received in ".expr() + periode.format(), ) } paragraph { @@ -91,59 +97,46 @@ data class FikkSkulleFaattTabell( text( Bokmal to "Type stønad", Nynorsk to "Type stønad", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Type of benefit", + fontType = FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Dette skulle du fått", Nynorsk to "Dette skulle du fått", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Amount you should have received", + fontType = FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Dette fikk du", Nynorsk to "Dette fekk du", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Amount you received", + fontType = FontType.BOLD, ) } column(columnSpan = 4, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Avviksbeløp", Nynorsk to "Avviksbeløp", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Deviation amount", + fontType = FontType.BOLD, ) } } ) { fun avviksResultatRad( - typeStoenad: TextElement, + typeStoenad: TextElement, resultat: Expression ) { ifNotNull(resultat) { row { - cell { - addTextContent(typeStoenad) - } - cell { - textExpr( - Bokmal to it.skulleFaatt.format() + " kr", - Nynorsk to it.skulleFaatt.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.fikk.format() + " kr", - Nynorsk to it.fikk.format() + " kr", - ) - } - cell { - textExpr( - Bokmal to it.avvik.format() + " kr", - Nynorsk to it.avvik.format() + " kr", - ) - } + cell { addTextContent(typeStoenad) } + cell { includePhrase(Felles.KronerText(it.skulleFaatt)) } + cell { includePhrase(Felles.KronerText(it.fikk)) } + cell { includePhrase(Felles.KronerText(it.avvik)) } } } } @@ -151,6 +144,7 @@ data class FikkSkulleFaattTabell( newTextExpr( Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), Nynorsk to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", ""), + English to "Disability benefit".expr() + ifElse(harGjenlevendeTillegg, " and survivor supplement", ""), ), ufoeretrygd, ) @@ -158,6 +152,7 @@ data class FikkSkulleFaattTabell( newText( Bokmal to "Barnetillegg særkullsbarn", Nynorsk to "Barnetillegg særkullsbarn", + English to "Child supplement, children from a previous relationship" ), barnetillegg.saerkull_safe.resultat_safe, ) @@ -165,6 +160,7 @@ data class FikkSkulleFaattTabell( newText( Bokmal to "Barnetillegg fellesbarn", Nynorsk to "Barnetillegg fellesbarn", + English to "Child supplement, joint children" ), barnetillegg.felles_safe.resultat_safe, ) @@ -173,18 +169,13 @@ data class FikkSkulleFaattTabell( textExpr( Bokmal to "Beløp du har fått for ".expr() + ifElse(harFaattForMye, "mye", "lite"), Nynorsk to "Belop du har fått for ".expr() + ifElse(harFaattForMye, "mykje", "lite"), - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Amount you were paid too ".expr() + ifElse(harFaattForMye, "much", "little"), + fontType = FontType.BOLD, ) } cell { } cell { } - cell { - textExpr( - Bokmal to totaltAvvik.format() + " kr", - Nynorsk to totaltAvvik.format() + " kr", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, - ) - } + cell { includePhrase(Felles.KronerText(totaltAvvik, FontType.BOLD)) } } } } @@ -197,34 +188,40 @@ data class DuHarFaattAvviksBeloep( val harBarnetillegg: Expression, val harGjenlevendeTillegg: Expression, val periode: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { paragraph { textExpr( Bokmal to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mye", "lite") + " i uføretrygd", Nynorsk to "Du har fått ".expr() + totaltAvvik.absoluteValue().format() + " kroner for " + ifElse(harFaattForMye, "mykje", "lite") + " i uføretrygd", + English to "You received NOK ".expr() + totaltAvvik.absoluteValue().format() + " too " + + ifElse(harFaattForMye, "much", "little") + " in disability benefit", ) showIf(harBarnetillegg and harGjenlevendeTillegg) { text( Bokmal to ", barnetillegg og gjenlevendetillegg", Nynorsk to ", barnetillegg og attlevandetillegg", + English to ", child supplement and survivor supplement", ) }.orShowIf(harBarnetillegg) { text( Bokmal to " og barnetillegg", Nynorsk to " og barnetillegg", + English to " and child supplement", ) }.orShowIf(harGjenlevendeTillegg) { text( Bokmal to " og gjenlevendetillegg", - Nynorsk to " og attlevandetillegg" + Nynorsk to " og attlevandetillegg", + English to " and survivor supplement" ) } textExpr( Bokmal to " i ".expr() + periode.format() + ".", Nynorsk to " i ".expr() + periode.format() + ".", + English to " in ".expr() + periode.format() + ".", ) } } @@ -233,42 +230,48 @@ data class DuHarFaattAvviksBeloep( data class OmBeregningAvBarnetillegg( val barnetillegg: Expression, val periode: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { text( Bokmal to "Om beregning av barnetillegg", Nynorsk to "Om utrekning av barnetillegg", + English to "Child supplement", ) } paragraph { text( Bokmal to "Det er personinntekt som avgjør hvor mye du får i barnetillegg. Dette står i §12-2 i skatteloven. Personinntekter omfatter:", Nynorsk to "Det er personinntekta som avgjer kor mykje du får i barnetillegg. Dette står i §12-2 i skattelova. Personinntekter omfattar:", + English to "Personal income determines how much you receive in child supplement. This is stated in §12-2 of the Taxation Act. Personal income includes:", ) list { item { text( Bokmal to "pensjonsgivende inntekt", Nynorsk to "pensjonsgivande inntekt", + English to "pensionable income", ) } item { text( Bokmal to "uføretrygd", Nynorsk to "uføretrygd", + English to "disability benefit", ) } item { text( Bokmal to "alderspensjon fra folketrygden", Nynorsk to "alderspensjon frå folketrygda", + English to "retirement pension from the National Insurance Scheme", ) } item { text( Bokmal to "andre pensjoner og ytelser, også fra utlandet", - Nynorsk to "andre pensjonar og ytingar, også frå utlandet" + Nynorsk to "andre pensjonar og ytingar, også frå utlandet", + English to "other pensions and benefits, including those from abroad", ) } } @@ -279,6 +282,10 @@ data class OmBeregningAvBarnetillegg( Nynorsk to "Dersom personinntekta di er over eit visst beløp (fribeløp), vil barnetillegget bli redusert eller falle bort heilt. " + "Viss barnetillegg blei innvilga eller avvikla i løpet av året, vil det berre vere inntekta for perioden med rett til " + "barnetillegg som har betydning.", + English to "The limit for what you can earn before child supplement is reduced is called the free allowance. If your personal income " + + "exceeds the free allowance, the child supplement will be reduced or cease completely. If you were granted a child supplement " + + "during the year, or if the child supplement ceased during the year, only the income for the period when you were eligible " + + "for the child supplement matters." ) } @@ -287,6 +294,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "For barn som bor sammen med begge foreldrene:", Nynorsk to "For barn som bur saman med begge foreldra:", + English to "When the child lives together with both parents:" ) } paragraph { @@ -295,18 +303,23 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", Nynorsk to "Barnetillegget blir rekna ut med utgangspunkt i di eiga inntekt og inntekta til ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", + // TODO: Dette er litt feil engelsk, bør fikses + English to "Child supplement is calculated based on you and your ".expr() + fellesbarn.sivilstand.ubestemtForm() + " total income." ) } item { textExpr( Bokmal to "Fribeløpet er 4,6 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", Nynorsk to "Fribeløpet er 4,6 gonger grunnbeløpet i folketrygda. I ".expr() + periode.format() + " var fribeløpet " + fellesbarn.fribeloep.format() + " kroner.", + English to "The free allowance is 4.6 times the basic amount of the National Insurance Scheme. In ".expr() + periode.format() + + " the free allowance was NOK " + fellesbarn.fribeloep.format() + ".", ) } item { text( Bokmal to "Fribeløpet øker med 40 prosent av folketrygdens grunnbeløp for hvert ekstra barn.", Nynorsk to "Fribeløpet aukar med 40 prosent av grunnbeløpet i folketrygda for kvart ekstra barn.", + English to "The free allowance increases by 40 percent of the basic amount of the National Insurance Scheme for each additional child.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { @@ -314,6 +327,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", Nynorsk to "Fribeløpet blir redusert ut frå trygdetida du har.", + English to "The free allowance is reduced based on your period of national insurance." ) } } @@ -321,6 +335,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", Nynorsk to "Barnetillegget blir redusert med 50 prosent av inntekta som er over fribeløpet.", + English to "Child supplement will be reduced by 50 percent of the income exceeding the free allowance.", ) } } @@ -332,6 +347,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "For barn som ikke bor sammen med begge foreldrene:", Nynorsk to "For barn som ikkje bur saman med begge foreldra:", + English to "When the child lives together with one parent:", ) } paragraph { @@ -340,18 +356,22 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Barnetillegget beregnes ut fra inntekten din.", Nynorsk to "Barnetillegget blir rekna ut på grunnlag av inntekta di.", + English to "Child supplement is calculated based on your income.", ) } item { textExpr( Bokmal to "Fribeløpet er 3,1 ganger folketrygdens grunnbeløp. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", Nynorsk to "Fribeløpet er 3,1 gongar grunnbeløpet i folketrygda. I ".expr() + periode.format() + " var fribeløpet " + saerkull.fribeloep.format() + " kroner.", + English to "The free allowance is 3.1 times the basic amount of the National Insurance Scheme. In ".expr() + periode.format() + + " the free allowance was NOK " + saerkull.fribeloep.format() + ".", ) } item { text( Bokmal to "Fribeløpet øker med 40 prosent av folketrygdens grunnbeløp for hvert ekstra barn.", Nynorsk to "Fribeløpet aukar med 40 prosent av grunnbeløpet i folketrygda for kvart ekstra barn.", + English to "The free allowance increases by 40 percent of the basic amount of the National Insurance Scheme for each additional child.", ) } showIf(barnetillegg.mindreEnn40AarTrygdetid) { @@ -359,6 +379,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Fribeløpet blir redusert ut fra trygdetiden du har.", Nynorsk to "Fribeløpet blir redusert ut frå trygdetida du har.", + English to "The free allowance is reduced based on your period of the national insurance.", ) } } @@ -366,12 +387,14 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Barnetillegget blir redusert med 50 prosent av inntekten som overstiger fribeløpet.", Nynorsk to "Barnetillegget blir redusert med 50 prosent av inntekta som er over fribeløpet.", + English to "Child supplement will be reduced by 50 percent of the income exceeding the free allowance.", ) } item { text( Bokmal to "Inntekten til en ektefelle/parner/samboer som ikke er forelder for barnet, har ingen betydning.", Nynorsk to "Inntekta til ein ektefelle/partnar/sambuer som ikkje er forelder til barnet, har inga betydning.", + English to "The income of a spouse/partner/cohabitant that is not a parent of the child is of no significance.", ) } } @@ -389,6 +412,8 @@ data class OmBeregningAvBarnetillegg( "Etter denne beregningen er gjort, blir ditt barnetillegg " + skulleFaatt.format() + " kroner for " + periode.format() + ".", Nynorsk to "Når vi reknar ut barnetillegg, byrjar vi med å oppdatere kor mykje du skulle hatt i uføretrygd. ".expr() + "Etter denne utrekninga, blir barnetillegget ditt " + skulleFaatt.format() + " kroner for " + periode.format() + ".", + English to "In calculating the child supplement, we first updated the amount you should have received in disability benefit. ".expr() + + "After this calculation, your child supplement is NOK " + skulleFaatt.format() + " for " + periode.format() + ".", ) } @@ -400,6 +425,8 @@ data class OmBeregningAvBarnetillegg( Nynorsk to "Du har fått utbetalt ".expr() + barnetillegg.totaltResultat.fikk.format() + " kroner i barnetillegg. Du har fått " + barnetillegg.totaltResultat.avvik.absoluteValue().format() + " kroner for " + ifElse(barnetillegg.totaltResultat.harFaattForMye, "mykje", "lite") + " i barnetillegg.", + English to "You have received NOK ".expr() + barnetillegg.totaltResultat.fikk.format() + " in child supplement. You have been " + + ifElse(barnetillegg.totaltResultat.harFaattForMye, "overpaid", "underpaid") + " in child supplement.", ) } @@ -407,6 +434,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Beregningene er gjort hver for seg hvis:", Nynorsk to "Utrekningane er gjort kvar for seg viss:", + English to "The calculations are done separately for each child if:" ) } paragraph { @@ -415,12 +443,14 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "du har flere barn som har ulike bosituasjoner.", Nynorsk to "du har fleire barn som har ulike busituasjoner.", + English to "you have multiple children with different living arrangements." ) } item { text( Bokmal to "barnet bor med begge foreldre i deler av året, og en av foreldrene resten av året.", Nynorsk to "barnet bur med begge foreldra delar av året, og en av foreldra resten av året.", + English to "the child lives with both parents part of the year, and one of the parents the rest." ) } } @@ -434,6 +464,8 @@ data class OmBeregningAvBarnetillegg( " har hatt i " + periode.format() + ". Det er disse inntektene vi har brukt for å beregne barnetillegget.", Nynorsk to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og anna forelder", "") + " har hatt i " + periode.format() + ". Det er desse inntektene vi har brukt for å rekne ut barnetillegget.", + English to "The tables below display the personal incomes you had in ".expr() + periode.format() + + ". These incomes were used to calculate your child supplement.", ) } @@ -441,6 +473,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Din personinntekt", Nynorsk to "Personinntekta di", + English to "Your personal income", ) } paragraph { @@ -450,7 +483,8 @@ data class OmBeregningAvBarnetillegg( newText( Bokmal to "Total personinntekt", Nynorsk to "Samla personinntekt", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total personal income", + fontType = FontType.BOLD, ), ) ) @@ -460,6 +494,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Beløp som er trukket fra personinntekten din", Nynorsk to "Beløp som er trekt frå personinntekta di", + English to "Amount deducted from your personal income", ) } paragraph { @@ -470,7 +505,8 @@ data class OmBeregningAvBarnetillegg( newText( Bokmal to "Totalbeløp som er trukket fra personinntekten din", Nynorsk to "Totalbeløp som er trekt frå personinntekta di", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total amount deducted from your personal income", + fontType = FontType.BOLD, ), ) ) @@ -480,6 +516,8 @@ data class OmBeregningAvBarnetillegg( ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", Nynorsk to "Du har ikkje hatt inntekter som er trekte frå personinntekta di i ".expr() + periode.format() + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", + English to "You have not had income deducted from your personal income in ".expr() + periode.format() + + ". If you have had income that can be deducted, you must provide us with documentation within 3 weeks.", ) } } @@ -489,6 +527,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Personinntekt til annen forelder", Nynorsk to "Personinntekta til den andre forelderen", + English to "Personal income of the other parent", ) } paragraph { @@ -498,7 +537,8 @@ data class OmBeregningAvBarnetillegg( newText( Bokmal to "Total personinntekt til annen forelder", Nynorsk to "Den samla personinntekta til den andre forelderen", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total personal income for the other parent", + fontType = FontType.BOLD, ), ) ) @@ -507,6 +547,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Mottar annen forelder uføretrygd eller alderspensjon fra NAV, regnes dette også med som personinntekt.", Nynorsk to "Mottar den andre forelderen uføretrygd eller alderspensjon frå NAV, blir dette også rekna som personinntekt.", + English to "If the other parent receives disability benefit or retirement pension from NAV, this will also count as personal income." ) } @@ -515,6 +556,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", Nynorsk to "Beløp som er trekt frå personinntekta til den andre forelderen", + English to "Amount deducted from the other parent's personal income" ) } paragraph { @@ -524,7 +566,8 @@ data class OmBeregningAvBarnetillegg( newText( Bokmal to "Totalbeløp som er trukket fra personinntekten til annen forelder", Nynorsk to "Totalbeløp som er trekt frå personinntekta til den andre forelderen", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total amount deducted from the other parent's personal income", + fontType = FontType.BOLD, ), ) ) @@ -538,6 +581,8 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er holdt utenfor inntekten til annen forelder.", Nynorsk to "Folketrygdens grunnbeløp på inntil ".expr() + fellesbarn.grunnbelop.format() + " kroner er halde utanfor inntekta til den andre forelderen.", + English to "The National Insurance Scheme basic amount of up to NOK ".expr() + fellesbarn.grunnbelop.format() + + " has been excluded from the income of the other parent.", ) } } @@ -546,6 +591,7 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", Nynorsk to "Den andre forelderen har ikkje hatt inntekt som er trekt frå sin personinntekt i ".expr() + periode.format() + ".", + English to "The other parent has not had income deducted from their personal income in ".expr() + periode.format() + "." ) } } @@ -561,6 +607,9 @@ data class OmBeregningAvBarnetillegg( Nynorsk to "Du hadde for høg samla inntekt i ".expr() + periode.format() + " til å få utbetalt barnetillegg for særkullsbarn. " + "Summen av den samla inntekta som gjer at barnetillegget ikkje blir utbetalt, var " + saerkull.samletInntekt.format() + " kroner. " + "Inntektstaket for å få utbetalt barnetillegg for særkullsbarn var " + saerkull.inntektstakSamletInntekt.format() + " kroner.", + English to "In ".expr() + periode.format() + " your income was too high to receive child supplement. The amount preventing the " + + "payment of the child supplement was NOK " + saerkull.samletInntekt.format() + ". The income threshold to receive child supplement " + + "for children from a previous relationship was NOK " + saerkull.inntektstakSamletInntekt.format() + ".", ) } } @@ -574,6 +623,9 @@ data class OmBeregningAvBarnetillegg( Nynorsk to "Dere hadde for høg samla inntekt i ".expr() + periode.format() + " til å få utbetalt barnetillegg for fellesbarn. " + "Summen av den samla inntekta som gjer at barnetillegget ikkje blir utbetalt, var " + fellesbarn.samletInntekt.format() + " kroner. " + "Inntektstaket for å få utbetalt barnetillegg for fellesbarn var " + fellesbarn.inntektstakSamletInntekt.format() + " kroner.", + English to "In ".expr() + periode.format() + " your combined income was too high to receive child supplement. The amount preventing the " + + "payment of the child supplement was NOK " + fellesbarn.samletInntekt.format() + ". The income threshold to receive child supplement " + + "for joint children was NOK " + fellesbarn.inntektstakSamletInntekt.format() + ".", ) } } @@ -586,12 +638,13 @@ data class OmBeregningAvUfoeretrygd( val periode: Expression, val pensjonsgivendeInntektBruktIBeregningen: Expression, val ufoeretrygd: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { textExpr( Bokmal to "Om beregningen av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), Nynorsk to "Om utrekning av uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", ""), + English to "Disability benefit".expr() + ifElse(harGjenlevendeTillegg, " and survivor supplement", ""), ) } paragraph { @@ -602,36 +655,48 @@ data class OmBeregningAvUfoeretrygd( Nynorsk to "Det er pensjonsgivande inntekt som avgjer kor mykje du får i uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", "") + ". Dette står i § 3-15 i folketrygdlova. Døme på pensjonsgivande inntekt:", + English to "The pensionable income determines how much you receive in disability benefit".expr() + + ifElse(harGjenlevendeTillegg, " and survivor supplement", "") + + ". This is stated in § 3-15 of the National Insurance Act. Pensionable income includes:", ) list { item { text( Bokmal to "brutto lønnsinntekt fra Norge inkludert feriepenger", Nynorsk to "brutto lønsinntekt frå Noreg, inkludert feriepengar", + English to "gross income from employment in Norway, including holiday pay", ) } item { text( Bokmal to "lønnsinntekt fra utlandet", Nynorsk to "lønsinntekt frå utlandet", + English to "income from emplyment abroad", ) } + + + + item { text( Bokmal to "inntekt fra selvstendig næringsvirksomhet", Nynorsk to "inntekt frå sjølvstendig næringsverksemd", + English to "income from self-employment", ) } item { text( Bokmal to "inntekt som fosterforelder", Nynorsk to "inntekt som fosterforelder", + English to "income as a foster parent", ) } item { text( Bokmal to "omsorgslønn", Nynorsk to "omsorgsløn", + English to "care benefit", ) } } @@ -640,6 +705,7 @@ data class OmBeregningAvUfoeretrygd( textExpr( Bokmal to "Din pensjonsgivende inntekt har i ".expr() + periode.format() + " vært " + inntektFoerFratrekk + " kroner.", Nynorsk to "Den pensjonsgivande inntekta di i ".expr() + periode.format() + " var " + inntektFoerFratrekk + " kroner.", + English to "Your pensionable income during the period ".expr() + periode.format() + " has been NOK " + inntektFoerFratrekk + ".", ) } @@ -647,36 +713,42 @@ data class OmBeregningAvUfoeretrygd( text( Bokmal to "Hva kan bli trukket fra den pensjonsgivende inntekten din?", Nynorsk to "Kva kan trekkjast frå den pensjonsgivande inntekta?", + English to "What can be deducted from your pensionable income?", ) list { item { text( Bokmal to "inntekt før du ble uføretrygdet", Nynorsk to "inntekt før du blei uføretrygda", + English to "income before you received disability benefit", ) } item { text( Bokmal to "inntekt etter at uføretrygden din opphørte", Nynorsk to "inntekt etter at uføretrygda blei avvikla", + English to "income after your disability benefit ceased", ) } item { text( Bokmal to "erstatning for inntektstap (erstatningsoppgjør)", Nynorsk to "erstatning for inntektstap (erstatningsoppgjer)", + English to "compensation for loss of income (compensation settlements)", ) } item { text( Bokmal to "inntekt fra helt avsluttet arbeid eller virksomhet", Nynorsk to "inntekt frå heilt avslutta arbeid eller verksemd", + English to "income from fully concluded work or business", ) } item { text( Bokmal to "etterbetaling du har fått fra NAV", Nynorsk to "etterbetalingar du har fått frå NAV", + English to "back payment you have received from NAV", ) } } @@ -685,17 +757,22 @@ data class OmBeregningAvUfoeretrygd( textExpr( Bokmal to "Etter beregningen er gjort, har du ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivende inntekt.", Nynorsk to "Utrekninga vår viser at du har ".expr() + inntektEtterFratrekk + " kroner i pensjonsgivande inntekt.", + English to "After the calculation, your pensionable income is NOK ".expr() + inntektEtterFratrekk + ".", ) } paragraph { + val avvikAbsolutt = ufoeretrygd.avvik.absoluteValue().format() textExpr( Bokmal to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() - + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.absoluteValue().format() + + ". Du fikk imidlertid " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + avvikAbsolutt + " kroner for " + ifElse(ufoeretrygd.harFaattForMye, "mye", "lite") + " i uføretrygd.", Nynorsk to "Du skulle ha fått ".expr() + ufoeretrygd.skulleFaatt.format() + " kroner i uføretrygd i " + periode.format() - + ". Du fekk derimot " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + ufoeretrygd.avvik.absoluteValue().format() + + ". Du fekk derimot " + ufoeretrygd.fikk.format() + " kroner. Du har derfor fått " + avvikAbsolutt + " kroner for " + ifElse(ufoeretrygd.harFaattForMye, "mykje", "lite") + " i uføretrygd.", + English to "You were supposed to receive NOK ".expr() + ufoeretrygd.skulleFaatt.format() + " in disability benefit for " + periode.format() + + ". However, you received NOK ".expr() + ufoeretrygd.fikk.format() + ". Therefore, you have received NOK " + avvikAbsolutt + + " too " + ifElse(ufoeretrygd.harFaattForMye, "much", "little") + "in disability benefit.", ) } @@ -707,13 +784,17 @@ data class OmBeregningAvUfoeretrygd( Nynorsk to "Tabellane under viser inntektene du har hatt i løpet av ".expr() + periode.format() + ". Det er desse inntektene vi har nytta for å berekne uføretrygda di" + ifElse(harGjenlevendeTillegg, " og attlevandetillegget ditt.", "."), + English to "The tables below show the pensionable incomes you had in ".expr() + periode.format() + + ". These incomes were used to calculate your disability benefit" + + ifElse(harGjenlevendeTillegg, " and survivor supplement.", "."), ) } title1 { text( Bokmal to "Din pensjonsgivende inntekt", - Nynorsk to "Di pensjonsgivande inntekt" + Nynorsk to "Di pensjonsgivande inntekt", + English to "Your pensionable income", ) } showIf(pensjonsgivendeInntekt.inntekt.inntekter.isNotEmpty()) { @@ -724,7 +805,8 @@ data class OmBeregningAvUfoeretrygd( newText( Bokmal to "Total pensjonsgivende inntekt", Nynorsk to "Samla pensjonsgivande inntekt", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total pensionable income", + fontType = FontType.BOLD, ), ), ) @@ -734,6 +816,7 @@ data class OmBeregningAvUfoeretrygd( text( Bokmal to "Beløp som er trukket fra den pensjonsgivende inntekten din", Nynorsk to "Beløp som er trekt frå den pensjonsgivande inntekta di", + English to "Amounts deducted from your pensionable income" ) } paragraph { @@ -744,7 +827,8 @@ data class OmBeregningAvUfoeretrygd( newText( Bokmal to "Totalbeløp som er trukket fra", Nynorsk to "Totalbeløp som er trekt frå", - fontType = Element.OutlineContent.ParagraphContent.Text.FontType.BOLD, + English to "Total amount deducted", + fontType = FontType.BOLD, ) ) ) @@ -754,6 +838,8 @@ data class OmBeregningAvUfoeretrygd( + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", Nynorsk to "Du har ikkje hatt inntekter som er trekte frå den pensjonsgivande inntekta di i ".expr() + periode.format() + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", + English to "You have not had income deducted from your pensionable income in ".expr() + + periode.format() + ". If you have had income that can be deducted, you must provide us with documentation within 3 weeks.", ) } } @@ -762,6 +848,7 @@ data class OmBeregningAvUfoeretrygd( textExpr( Bokmal to "Du har ikke hatt pensjonsgivende inntekt i ".expr() + periode.format() + ".", Nynorsk to "Du har ikkje hatt pensjonsgivande inntekt i ".expr() + periode.format() + ".", + English to "You have not had any pensionable income in ".expr() + periode.format() + ".", ) } } @@ -770,21 +857,28 @@ data class OmBeregningAvUfoeretrygd( data class ErOpplysningeneOmInntektFeil( val harFellesTillegg: Expression, -) : OutlinePhrase() { - override fun OutlineOnlyScope.template() { +) : OutlinePhrase() { + override fun OutlineOnlyScope.template() { title1 { text( Bokmal to "Er opplysningene om inntekt feil?", + Nynorsk to "Er opplysningane om inntekt feil?", + English to "Are the income details incorrect?", ) } paragraph { text( Bokmal to "Mener du at inntektsopplysningene i skatteoppgjøret er feil, er det Skatteetaten som skal vurdere om inntekten kan endres.", + Nynorsk to "Dersom du meiner at inntektsopplysningane i skatteoppgjeret er feil, er det Skatteetaten som skal vurdere om inntekta kan endrast.", + English to "If you believe that the income information in your tax settlement is incorrect, it is the Tax Office that must assess whether " + + "your income can be amended.", ) } paragraph { text( Bokmal to "Vi gjør et nytt etteroppgjør automatisk hvis Skatteetaten endrer inntekten din. Du får tilbakemelding hvis endringen påvirker etteroppgjøret ditt.", + Nynorsk to "Vi utfører automatisk eit nytt etteroppgjer dersom Skatteetaten endrar inntekta di. Du får tilbakemelding dersom endringa påverker etteroppgjeret ditt.", + English to "We will issue a new post-settlement automatically if the Tax Office amends your income. You will be notified if any changes affect your post-settlement.", ) } @@ -792,17 +886,25 @@ data class ErOpplysningeneOmInntektFeil( title2 { text( Bokmal to "Barnetillegg og feil i den andre forelderens inntektsopplysninger", + Nynorsk to "Barnetillegg og feil i inntektsopplysningane til den andre forelderen", + English to "Child supplement and errors in the other parent's income information", ) } paragraph { text( Bokmal to "Hvis du mener inntektsopplysningene for den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", + Nynorsk to "Dersom du meiner at inntektsopplysningane til den andre forelderen er feil, må den andre forelderen kontakte Skatteetaten.", + English to " If you believe that the income information for the other parent is incorrect, the other parent must contact the Tax Office.", ) } paragraph { text( Bokmal to "Vi oppdaterer ikke automatisk etteroppgjøret ditt når vi får en korrigering fra Skatteetaten som gjelder den andre forelderen. " + "Du må derfor gi beskjed til oss. Vi gjør da et manuelt etteroppgjør. Du trenger ikke å sende inn dokumentasjon.", + Nynorsk to "Vi oppdaterer ikkje automatisk etteroppgjeret ditt når vi får ei korrigering frå Skatteetaten som gjeld den andre forelderen. " + + "Du må difor gi beskjed til oss. Vi utfører då eit etteroppgjer manuelt. Du treng ikkje sende inn dokumentasjon.", + English to "We do not automatically update your settlement when we receive a correction from the the Tax Office regarding the other parent. " + + "Therefore, you need to inform us. We will then conduct a manual post-settlement. You do not need to submit documentation.", ) } } @@ -810,6 +912,8 @@ data class ErOpplysningeneOmInntektFeil( title2 { text( Bokmal to "Endringer i pensjonsytelser", + Nynorsk to "Endringar i pensjonsytingar", + English to "Changes in pension payments", ) } paragraph { @@ -817,33 +921,45 @@ data class ErOpplysningeneOmInntektFeil( Bokmal to "Hvis inntekten din fra pensjonsytelser utenom NAV blir endret, må du gi beskjed til oss når endringen er gjort. " + "Vi gjør da et nytt etteroppgjør. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + "eller ringe oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + Nynorsk to "Dersom inntekta di frå pensjonsytingar utanom NAV blir endra, må du gi beskjed til oss når endringa er gjort. " + + "Vi utfører då eit nytt etteroppgjer. Du kan gi beskjed ved å skrive til oss på ${Constants.SKRIV_TIL_OSS_URL} " + + "eller ringje til oss på telefon ${Constants.NAV_KONTAKTSENTER_TELEFON}.", + English to "If your income pensions outside of NAV changes, you must notify us once the changes have been made. " + + "We will then conduct a manual post-settlement. You can notify us by writing to us at ${Constants.SKRIV_TIL_OSS_URL} " + + "or by calling us at +47 ${Constants.NAV_KONTAKTSENTER_TELEFON}.", ) } } } -data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : - ParagraphPhrase() { +data class FratrekkTabell(val fratrekk: Expression, val sumText: TextElement) : + ParagraphPhrase() { - override fun ParagraphOnlyScope.template() = + override fun ParagraphOnlyScope.template() = table( header = { column(columnSpan = 3) { text( Bokmal to "Type inntekt", Nynorsk to "Type inntekt", + English to "Type of income", + fontType = FontType.BOLD, ) } column(columnSpan = 3) { text( Bokmal to "Årsak til trekk", Nynorsk to "Årsak til trekk", + English to "Reason for deduction", + fontType = FontType.BOLD, ) } column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Beløp", Nynorsk to "Beløp", + English to "Amount", + fontType = FontType.BOLD, ) } } @@ -864,118 +980,134 @@ data class FratrekkTabell(val fratrekk: Expression() { - // TODO flere språk override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak, second: Language): String = when (first) { - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> when(second) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.FOER_INNVILGET_UFOERETRYGD -> when (second) { Bokmal -> "Inntekt før uføretrygden ble innvilget" Nynorsk -> "Inntekt før uføretrygda vart innvilga" - English -> TODO() + English -> "Income before disability benefit was granted" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTER_OPPHOERT_UFOERETRYGD -> when (second) { Bokmal -> "Inntekt etter at uføretrygden opphørte" Nynorsk -> "Inntekt etter at uføretrygda var avslutta" - English -> TODO() + English -> "Income after disability benefit ceased" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ERSTATNING_INNTEKTSTAP_ERSTATNINGSOPPGJOER -> when (second) { Bokmal -> "Erstatning for inntektstap ved erstatningsoppgjør" Nynorsk -> "Erstatning for inntektstap ved erstatningsoppgjer" - English -> TODO() + English -> "Compensation for loss of income through compensation settlement" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERSLEP_AVSLUTTET_ARBEID_ELLER_VIRKSOMHET -> when (second) { Bokmal -> "Inntekt fra helt avsluttet arbeid eller virksomhet" Nynorsk -> "Inntekt frå heilt avslutta arbeid eller verksemd" - English -> TODO() + English -> "Income from completely terminated work or business" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ANNET -> when (second) { Bokmal -> "Annet" Nynorsk -> "Anna" - English -> TODO() + English -> "Other" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.ETTERBETALING_FRA_NAV -> when (second) { Bokmal -> "Etterbetaling fra NAV" Nynorsk -> "Etterbetaling frå NAV" - English -> TODO() + English -> "Back payment from NAV" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.Aarsak.INNTEKT_INNTIL_1G -> when (second) { Bokmal -> "Inntekt inntil ett grunnbeløp" Nynorsk -> "Inntekt inntil eit grunnbeløp" - English -> TODO() + English -> "Income up to the basic amount of the National Insurance Scheme" } } } object LocalizedFratrekkType : LocalizedFormatter() { - // TODO Flere språk override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType, second: Language): String = when (first) { - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ARBEIDSINNTEKT -> when(second) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ARBEIDSINNTEKT -> when (second) { Bokmal -> "Arbeidsinntekt" Nynorsk -> "Arbeidsinntekt" - English -> TODO() + English -> "Employment income" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.UTLANDSINNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.UTLANDSINNTEKT -> when (second) { Bokmal -> "Utlandsinntekt" Nynorsk -> "Utlandsinntekt" - English -> TODO() + English -> "Income from abroad" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.NAERINGSINNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.NAERINGSINNTEKT -> when (second) { Bokmal -> "Næringsinntekt" Nynorsk -> "Næringsinntekt" - English -> TODO() + English -> "Business income" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when (second) { Bokmal -> "Pensjon fra andre enn NAV" Nynorsk -> "Pensjonar frå andre enn NAV" - English -> TODO() + English -> "Pensions from other than NAV" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when (second) { Bokmal -> "Pensjon fra utlandet" Nynorsk -> "Pensjonar frå utlandet" - English -> TODO() + English -> "Pensions from abroad" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.INNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.INNTEKT -> when (second) { Bokmal -> "Inntekt" Nynorsk -> "Inntekt" - English -> TODO() + English -> "Income" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Fratrekk.FratrekkLinje.InntektType.FRATREKKBAR_INNTEKT -> when (second) { Bokmal -> "Inntekt som kan trekkes fra" Nynorsk -> "Inntekt som kan trekkjast frå" - English -> TODO() + English -> "Deductable income" } } } } -data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : - ParagraphPhrase() { +data class InntektTabell(val inntekt: Expression, val sumText: TextElement) : + ParagraphPhrase() { - override fun ParagraphOnlyScope.template() = + override fun ParagraphOnlyScope.template() = table( header = { column(columnSpan = 3) { text( Bokmal to "Type inntekt", Nynorsk to "Type inntekt", + English to "Type of income", + fontType = FontType.BOLD, ) } column(columnSpan = 3) { text( Bokmal to "Mottatt av", Nynorsk to "Motteke av", + English to "Received by", + fontType = FontType.BOLD, ) } column(columnSpan = 2, alignment = Element.OutlineContent.ParagraphContent.Table.ColumnAlignment.RIGHT) { text( Bokmal to "Registrert inntekt", Nynorsk to "Registrert inntekt", + English to "Registered income", + fontType = FontType.BOLD, ) } } @@ -996,70 +1128,76 @@ data class InntektTabell(val inntekt: Expression() { - // TODO flere språk override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde, second: Language): String = when (first) { - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> when(second) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.INNMELDT_AV_ARBEIDSGIVER -> when (second) { Bokmal -> "Elektronisk innmeldt fra arbeidsgiver" Nynorsk -> "Elektronisk meldt inn frå arbeidsgivar" - English -> TODO() + English -> "Electronically reported by the employer" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> when(second) { - Bokmal -> "Oppgitt av skatteetaten" - Nynorsk -> "Oppgjeva av skatteetaten" - English -> TODO() + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_SKATTEETATEN -> when (second) { + Bokmal -> "Oppgitt av Skatteetaten" + Nynorsk -> "Oppgjeva av Skatteetaten" + English -> "Reported by the Tax Office" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_BRUKER -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.OPPGITT_AV_BRUKER -> when (second) { Bokmal -> "Opplyst av deg" Nynorsk -> "Opplyst av deg" - English -> TODO() + English -> "Provided by you" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.NAV -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.Kilde.NAV -> when (second) { Bokmal -> "NAV" Nynorsk -> "NAV" - English -> TODO() + English -> "NAV" } } } object LocalizedInntektType : LocalizedFormatter() { - // TODO flere språk override fun apply(first: OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType, second: Language): String = when (first) { - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ARBEIDSINNTEKT -> when(second) { + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ARBEIDSINNTEKT -> when (second) { Bokmal -> "Arbeidsinntekt" Nynorsk -> "Arbeidsinntekt" - English -> TODO() + English -> "Employment income" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UTLANDSINNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UTLANDSINNTEKT -> when (second) { Bokmal -> "Utlandsinntekt" Nynorsk -> "Utlandsinntekt" - English -> TODO() + English -> "Income from abroad" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.NAERINGSINNTEKT -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.NAERINGSINNTEKT -> when (second) { Bokmal -> "Næringsinntekt" Nynorsk -> "Næringsinntekt" - English -> TODO() + English -> "Business income" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UFOERETRYGD -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.UFOERETRYGD -> when (second) { Bokmal -> "Uføretrygd" Nynorsk -> "Uføretrygd" - English -> TODO() + English -> "Disability benefit" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.ANDRE_PENSJONER_OG_YTELSER -> when (second) { Bokmal -> "Pensjon fra andre enn NAV" Nynorsk -> "Pensjonar frå andre enn NAV" - English -> TODO() + English -> "Pensions from other than NAV" } - OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when(second) { + + OpplysningerOmEtteroppgjoeretDto.InntektOgFratrekk.Inntekt.InntektLinje.InntektType.FORVENTET_PENSJON_FRA_UTLANDET -> when (second) { Bokmal -> "Pensjon fra utlandet" Nynorsk -> "Pensjonar frå utlandet" - English -> TODO() + English -> "Pensions from abroad" } } } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt index 20c7471e3..bfcd3b94d 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/vedlegg/OpplysningerOmEtteroppgjoeret.kt @@ -12,15 +12,17 @@ import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSel import no.nav.pensjon.brev.api.model.vedlegg.OpplysningerOmEtteroppgjoeretDtoSelectors.ufoeretrygd import no.nav.pensjon.brev.maler.fraser.vedlegg.* import no.nav.pensjon.brev.template.* -import no.nav.pensjon.brev.template.Language.Bokmal +import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.dsl.* import no.nav.pensjon.brev.template.dsl.expression.* import no.nav.pensjon.brev.template.dsl.helpers.TemplateModelHelpers @TemplateModelHelpers -val vedleggOpplysningerOmEtteroppgjoeret = createAttachment( +val vedleggOpplysningerOmEtteroppgjoeret = createAttachment( title = newText( Bokmal to "Opplysninger om etteroppgjøret", + Nynorsk to "Opplysningar om etteroppgjer", + English to "Information about the settlement", ), includeSakspart = true, ) { From b2b80935ec4303828a48b6a33726fdcc0c9de93b Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 23 Aug 2023 14:58:58 +0200 Subject: [PATCH 13/23] Legg til vedlegget i brevet --- .../brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAuto.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAuto.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAuto.kt index adebfdd8b..99e362751 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAuto.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAuto.kt @@ -86,7 +86,7 @@ object ForhaandsvarselEtteroppgjoerUfoeretrygdAuto : AutobrevTemplate Date: Wed, 23 Aug 2023 15:57:10 +0200 Subject: [PATCH 14/23] Fikset to tilfeller av Expression.tostring i etterlatte --- .../pensjon/brev/template/LetterTemplate.kt | 5 ++++- .../maler/fraser/barnepensjon/Lover.kt | 19 +++++++++++-------- .../barnepensjon/UtAvFengselsoppholdfraser.kt | 16 ++++++++-------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt index 20fc0f4ad..62e70d24b 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/template/LetterTemplate.kt @@ -21,7 +21,10 @@ data class LetterTemplate( } } -class PreventToStringForExpressionException() : Exception("To prevent incorrect usage of Expression in Text.Literal elements, it's toString fails.") +class PreventToStringForExpressionException() : Exception("Expression.toString should not be used. " + + "In most cases this means that a template contains string concatenation of a string literal with an Expression-object, e.g:" + + "text(Bokmal to \"The year is \${year.format()} \")" +) sealed class Expression { abstract fun eval(scope: ExpressionScope<*, *>): Out diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Lover.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Lover.kt index 11f03df67..bbd5e47cd 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Lover.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Lover.kt @@ -8,7 +8,10 @@ import no.nav.pensjon.brev.template.Language.English import no.nav.pensjon.brev.template.Language.Nynorsk import no.nav.pensjon.brev.template.OutlinePhrase import no.nav.pensjon.brev.template.dsl.OutlineOnlyScope +import no.nav.pensjon.brev.template.dsl.expression.expr +import no.nav.pensjon.brev.template.dsl.expression.plus import no.nav.pensjon.brev.template.dsl.text +import no.nav.pensjon.brev.template.dsl.textExpr object Lover { @@ -50,18 +53,18 @@ object Lover { override fun OutlineOnlyScope.template() { showIf(erEtterbetaling) { paragraph { - text( - Bokmal to "Vedtaket er gjort etter bestemmelsene om barnepensjon i folketrygdloven § $paragraf, § 22-12 og § 22-13.", - Nynorsk to "", - English to "" + textExpr( + Bokmal to "Vedtaket er gjort etter bestemmelsene om barnepensjon i folketrygdloven § ".expr() + paragraf + ", § 22-12 og § 22-13.", + Nynorsk to "".expr(), + English to "".expr() ) } } orShow { paragraph { - text( - Bokmal to "Vedtaket er gjort etter bestemmelsene om barnepensjon i folketrygdloven § $paragraf og § 22-12.", - Nynorsk to "", - English to "" + textExpr( + Bokmal to "Vedtaket er gjort etter bestemmelsene om barnepensjon i folketrygdloven §".expr() + paragraf + "og § 22-12.", + Nynorsk to "".expr(), + English to "".expr() ) } } diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/UtAvFengselsoppholdfraser.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/UtAvFengselsoppholdfraser.kt index 6e0450243..de9f16c7c 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/UtAvFengselsoppholdfraser.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/UtAvFengselsoppholdfraser.kt @@ -3,13 +3,13 @@ package no.nav.pensjon.etterlatte.maler.fraser.barnepensjon import no.nav.pensjon.brev.model.format import no.nav.pensjon.brev.template.Expression import no.nav.pensjon.brev.template.LangBokmalNynorskEnglish -import no.nav.pensjon.brev.template.Language.Bokmal -import no.nav.pensjon.brev.template.Language.English -import no.nav.pensjon.brev.template.Language.Nynorsk +import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.OutlinePhrase import no.nav.pensjon.brev.template.dsl.OutlineOnlyScope +import no.nav.pensjon.brev.template.dsl.expression.expr import no.nav.pensjon.brev.template.dsl.expression.format -import no.nav.pensjon.brev.template.dsl.text +import no.nav.pensjon.brev.template.dsl.expression.plus +import no.nav.pensjon.brev.template.dsl.textExpr import no.nav.pensjon.brevbaker.api.model.Kroner import java.time.LocalDate @@ -20,10 +20,10 @@ object UtAvFengselsoppholdfraser { ) : OutlinePhrase() { override fun OutlineOnlyScope.template() { paragraph { - text( - Bokmal to "Barnepensjonen din utbetales igjen fra ${virkningsdato.format()} fordi [fritekst: du er løslatt/din formue ikke lenger er satt under forvaltning]. Barnepensjonen utbetales fra og med måneden [fritekst: du ble løslatt/din formue ikke lenger er under forvaltning]. Du får ${kronebeloep.format()} kroner hver måned.", - Nynorsk to "", - English to "", + textExpr( + Bokmal to "Barnepensjonen din utbetales igjen fra ".expr() + virkningsdato.format() + " fordi [fritekst: du er løslatt/din formue ikke lenger er satt under forvaltning]. Barnepensjonen utbetales fra og med måneden [fritekst: du ble løslatt/din formue ikke lenger er under forvaltning]. Du får " + kronebeloep.format() + " kroner hver måned.", + Nynorsk to "".expr(), + English to "".expr(), ) } } From 2fd7ab49a3cba264ceed3b369c60a439bf76132c Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 23 Aug 2023 16:14:57 +0200 Subject: [PATCH 15/23] Fikset flere tilfeller av Expression.tostring i etterlatte --- .../barnepensjon/Fengselsoppholdfraser.kt | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Fengselsoppholdfraser.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Fengselsoppholdfraser.kt index a1a0d838c..0c905ccd4 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Fengselsoppholdfraser.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/etterlatte/maler/fraser/barnepensjon/Fengselsoppholdfraser.kt @@ -2,9 +2,7 @@ package no.nav.pensjon.etterlatte.maler.fraser.barnepensjon import no.nav.pensjon.brev.template.Expression import no.nav.pensjon.brev.template.LangBokmalNynorskEnglish -import no.nav.pensjon.brev.template.Language.Bokmal -import no.nav.pensjon.brev.template.Language.English -import no.nav.pensjon.brev.template.Language.Nynorsk +import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.OutlinePhrase import no.nav.pensjon.brev.template.dsl.OutlineOnlyScope import no.nav.pensjon.brev.template.dsl.expression.expr @@ -12,7 +10,6 @@ import no.nav.pensjon.brev.template.dsl.expression.format import no.nav.pensjon.brev.template.dsl.expression.plus import no.nav.pensjon.brev.template.dsl.text import no.nav.pensjon.brev.template.dsl.textExpr -import no.nav.pensjon.etterlatte.maler.Utbetalingsinfo import java.time.LocalDate object Fengselsoppholdfraser { @@ -31,10 +28,11 @@ object Fengselsoppholdfraser { ) } paragraph { - text( - Bokmal to "Barnepensjonen utbetales ikke fra og med andre måned etter at soning tar til. Dette gjelder også dersom formuen er satt under forvaltning. Vi har fått melding om at du [fritekst: er under straffegjennomføring/din formue er satt under forvaltning] fra ${fraDato.format()}.", - Nynorsk to "", - English to "", + textExpr( + Bokmal to "Barnepensjonen utbetales ikke fra og med andre måned etter at soning tar til. Dette gjelder også dersom formuen er satt under forvaltning. ".expr() + + "Vi har fått melding om at du [fritekst: er under straffegjennomføring/din formue er satt under forvaltning] fra " + fraDato.format() + ".", + Nynorsk to "".expr(), + English to "".expr(), ) } paragraph { @@ -45,10 +43,10 @@ object Fengselsoppholdfraser { ) } paragraph { - text( - Bokmal to "En foreløpig dato for løslatelse er angitt til ${tilDato.format()}. Barnepensjonen blir utbetalt igjen når NAV mottar skriftlig dokumentasjon på formell løslatelse.", - Nynorsk to "", - English to "", + textExpr( + Bokmal to "En foreløpig dato for løslatelse er angitt til ".expr() + tilDato.format() + ". Barnepensjonen blir utbetalt igjen når NAV mottar skriftlig dokumentasjon på formell løslatelse.", + Nynorsk to "".expr(), + English to "".expr(), ) } paragraph { @@ -59,10 +57,10 @@ object Fengselsoppholdfraser { ) } paragraph { - text( - Bokmal to "Det er antatt at forvaltningen av formuen din opphever ${tilDato.format()}. Barnepensjonen blir utbetalt igjen når NAV mottar det formelle vedtaket om at forvaltningen er opphørt.", - Nynorsk to "", - English to "", + textExpr( + Bokmal to "Det er antatt at forvaltningen av formuen din opphever ".expr() + tilDato.format() + ". Barnepensjonen blir utbetalt igjen når NAV mottar det formelle vedtaket om at forvaltningen er opphørt.", + Nynorsk to "".expr(), + English to "".expr(), ) } paragraph { From bc5a555bbec2080a3b7b4dad10b165b94c124d42 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 23 Aug 2023 16:53:47 +0200 Subject: [PATCH 16/23] Fiks en setning engelsk --- .../fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index 864c2468c..f4f9bde1c 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -303,8 +303,7 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Barnetillegget beregnes ut fra inntekten til deg og din ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", Nynorsk to "Barnetillegget blir rekna ut med utgangspunkt i di eiga inntekt og inntekta til ".expr() + fellesbarn.sivilstand.ubestemtForm() + ".", - // TODO: Dette er litt feil engelsk, bør fikses - English to "Child supplement is calculated based on you and your ".expr() + fellesbarn.sivilstand.ubestemtForm() + " total income." + English to "Child supplement is calculated based on the total income of you and your ".expr() + fellesbarn.sivilstand.ubestemtForm() + "." ) } item { From 38b550f84f566340691720740b035b1ce5765675 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Wed, 23 Aug 2023 16:58:15 +0200 Subject: [PATCH 17/23] Fiks en setning engelsk --- .../fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index f4f9bde1c..eea290387 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -463,8 +463,8 @@ data class OmBeregningAvBarnetillegg( " har hatt i " + periode.format() + ". Det er disse inntektene vi har brukt for å beregne barnetillegget.", Nynorsk to "Tabellene under viser inntektene du".expr() + ifElse(harFellesTillegg, " og anna forelder", "") + " har hatt i " + periode.format() + ". Det er desse inntektene vi har brukt for å rekne ut barnetillegget.", - English to "The tables below display the personal incomes you had in ".expr() + periode.format() + - ". These incomes were used to calculate your child supplement.", + English to "The tables below display the personal incomes you".expr() + ifElse(harFellesTillegg, " and the other parent", "") + + " had in ".expr() + periode.format() + ". These incomes were used to calculate your child supplement.", ) } From e1297e2eb6801bd826bdaad5cc9f52b8db7d2d1a Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Thu, 24 Aug 2023 09:14:55 +0200 Subject: [PATCH 18/23] Fiks engelsk --- .../VedleggOpplysningerOmEtteroppgjoeret.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index eea290387..cdf01bea0 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -42,6 +42,7 @@ import no.nav.pensjon.brev.maler.fraser.common.Felles import no.nav.pensjon.brev.model.format import no.nav.pensjon.brev.model.ubestemtForm import no.nav.pensjon.brev.template.* +import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Table.ColumnAlignment import no.nav.pensjon.brev.template.Element.OutlineContent.ParagraphContent.Text.FontType import no.nav.pensjon.brev.template.Language.* import no.nav.pensjon.brev.template.dsl.* @@ -59,7 +60,7 @@ data class Introduksjon(val periode: Expression) : OutlinePhrase Date: Thu, 24 Aug 2023 09:29:34 +0200 Subject: [PATCH 19/23] Fiks alternativ tekst for tom fratrekk-tabell --- .../vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index cdf01bea0..f5fdf1351 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -517,8 +517,8 @@ data class OmBeregningAvBarnetillegg( ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", Nynorsk to "Du har ikkje hatt inntekter som er trekte frå personinntekta di i ".expr() + periode.format() + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", - English to "You have not had income deducted from your personal income in ".expr() + periode.format() + - ". If you have had income that can be deducted, you must provide us with documentation within 3 weeks.", + English to "None of your personal income in ".expr() + periode.format() + " has been deducted. "+ + "If you have had income that can be deducted, you must provide us with documentation within 3 weeks.", ) } } @@ -592,7 +592,7 @@ data class OmBeregningAvBarnetillegg( textExpr( Bokmal to "Annen forelder har ikke hatt inntekt som er trukket fra sin personinntekt i ".expr() + periode.format() + ".", Nynorsk to "Den andre forelderen har ikkje hatt inntekt som er trekt frå sin personinntekt i ".expr() + periode.format() + ".", - English to "The other parent has not had income deducted from their personal income in ".expr() + periode.format() + "." + English to "No income was deducted from the other parent's income in ".expr() + periode.format() + "." ) } } @@ -839,8 +839,8 @@ data class OmBeregningAvUfoeretrygd( + periode.format() + ". Hvis du har hatt inntekter som kan trekkes fra, må du sende oss dokumentasjon på det innen 3 uker.", Nynorsk to "Du har ikkje hatt inntekter som er trekte frå den pensjonsgivande inntekta di i ".expr() + periode.format() + ". Dersom du har hatt inntekter som kan trekkjast frå, må du sende oss dokumentasjon på dette innan 3 veker.", - English to "You have not had income deducted from your pensionable income in ".expr() - + periode.format() + ". If you have had income that can be deducted, you must provide us with documentation within 3 weeks.", + English to "No income was deducted from your pensionable income in ".expr() + periode.format() + + ". If you have had deductable income, you must provide us with documentation within 3 weeks.", ) } } From f671731b28dce3656f2f68c0a982f3e6786a42a0 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Thu, 24 Aug 2023 09:31:32 +0200 Subject: [PATCH 20/23] Fiks titler til fratrekk-tabeller --- .../fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index f5fdf1351..7ba3d37d8 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -495,7 +495,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Beløp som er trukket fra personinntekten din", Nynorsk to "Beløp som er trekt frå personinntekta di", - English to "Amount deducted from your personal income", + English to "Amounts deducted from your personal income", ) } paragraph { @@ -557,7 +557,7 @@ data class OmBeregningAvBarnetillegg( text( Bokmal to "Beløp som er trukket fra annen forelder sin personinntekt", Nynorsk to "Beløp som er trekt frå personinntekta til den andre forelderen", - English to "Amount deducted from the other parent's personal income" + English to "Amounts deducted from the other parent's personal income" ) } paragraph { From 87fbb04649dc5278925b6a13a40cc7fbd967623b Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Thu, 24 Aug 2023 10:55:37 +0200 Subject: [PATCH 21/23] Endre type test --- ...aandsvarselEtteroppgjoerUfoeretrygdAutoTest.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAutoTest.kt b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAutoTest.kt index 0de40a7cd..72ad3f5ce 100644 --- a/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAutoTest.kt +++ b/pensjon-brevbaker/src/test/kotlin/no/nav/pensjon/brev/maler/ForhaandsvarselEtteroppgjoerUfoeretrygdAutoTest.kt @@ -1,13 +1,16 @@ package no.nav.pensjon.brev.maler -import no.nav.pensjon.brev.* +import no.nav.pensjon.brev.Fixtures +import no.nav.pensjon.brev.TestTags import no.nav.pensjon.brev.api.model.maler.ForhaandsvarselEtteroppgjoerUfoeretrygdDto -import no.nav.pensjon.brev.latex.* -import no.nav.pensjon.brev.template.* -import no.nav.pensjon.brev.template.render.* -import org.junit.jupiter.api.* +import no.nav.pensjon.brev.renderTestHtml +import no.nav.pensjon.brev.renderTestPDF +import no.nav.pensjon.brev.template.Language +import no.nav.pensjon.brev.template.Letter +import org.junit.jupiter.api.Tag +import org.junit.jupiter.api.Test -@Tag(TestTags.INTEGRATION_TEST) +@Tag(TestTags.MANUAL_TEST) class ForhaandsvarselEtteroppgjoerUfoeretrygdAutoTest { @Test fun testPdf() { From 76b1e8ec07637c2e718df5145e4a873ec2298221 Mon Sep 17 00:00:00 2001 From: Alexander Hoem Rosbach Date: Thu, 24 Aug 2023 11:09:13 +0200 Subject: [PATCH 22/23] =?UTF-8?q?Sm=C3=A5fikses=20engelsk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index 7ba3d37d8..ad22ba770 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -69,7 +69,7 @@ data class Introduksjon(val periode: Expression) : OutlinePhrase Date: Thu, 24 Aug 2023 11:12:44 +0200 Subject: [PATCH 23/23] =?UTF-8?q?Sm=C3=A5fikses=20engelsk=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt index ad22ba770..24fbb69cb 100644 --- a/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt +++ b/pensjon-brevbaker/src/main/kotlin/no/nav/pensjon/brev/maler/fraser/vedlegg/VedleggOpplysningerOmEtteroppgjoeret.kt @@ -106,7 +106,7 @@ data class FikkSkulleFaattTabell( text( Bokmal to "Dette skulle du fått", Nynorsk to "Dette skulle du fått", - English to "Amount you should have received", + English to "You should have received", fontType = FontType.BOLD, ) } @@ -114,7 +114,7 @@ data class FikkSkulleFaattTabell( text( Bokmal to "Dette fikk du", Nynorsk to "Dette fekk du", - English to "Amount you received", + English to "You received", fontType = FontType.BOLD, ) } @@ -145,7 +145,7 @@ data class FikkSkulleFaattTabell( newTextExpr( Bokmal to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og gjenlevendetillegg", ""), Nynorsk to "Uføretrygd".expr() + ifElse(harGjenlevendeTillegg, " og attlevandetillegg", ""), - English to "Disability benefit".expr() + ifElse(harGjenlevendeTillegg, " and survivor supplement", ""), + English to "Disability benefit".expr() + ifElse(harGjenlevendeTillegg, " and survivor's supplement", ""), ), ufoeretrygd, )