Skip to content

Commit

Permalink
Nytt bekreftelsesbrev til arbeidsgiver tilpasset inntektsmelding gjen…
Browse files Browse the repository at this point in the history
…nom nav.no (#348)

## Bakgrunn
I forbindelse med ny inntektsmelding gjennom nav.no som først skal tas i bruk for pleiepenger, ønsker vi å informere arbeidsgiver om at de kan sende inn inntektsmelding der. 

Jira oppgave: https://jira.adeo.no/browse/TSFF-1039

## Løsning
* Har tatt utgangspunkt i den eksisterende `ArbeidsgiverMeldingPDFGenerator` og lagd en tilsvarende `ArbeidsgiverMeldingNavNoPDFGenerator` som henter riktig brevmal.
* Lagt til feature toggle som styres fra `SøknadService`.
  • Loading branch information
mortenoosvik authored Jan 16, 2025
1 parent ec692c4 commit 26d8223
Show file tree
Hide file tree
Showing 9 changed files with 163 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package no.nav.sifinnsynapi.pdf

import no.nav.sifinnsynapi.util.storForbokstav
import org.springframework.stereotype.Service
import java.time.ZoneOffset.UTC
import java.time.ZonedDateTime

@Service
class ArbeidsgiverMeldingNavNoPDFGenerator : PDFGenerator<PleiepengerArbeidsgiverMelding>() {

override val templateNavn: String
get() = "informasjonsbrev-til-arbeidsgiver-nav-no"


override fun PleiepengerArbeidsgiverMelding.tilMap(): Map<String, Any?> = mapOf(
"arbeidsgiver_navn" to arbeidsgivernavn?.storForbokstav(),
"arbeidstaker_navn" to arbeidstakernavn.storForbokstav(),
"periode" to mapOf(
"fom" to DATE_FORMATTER.format(søknadsperiode.fraOgMed),
"tom" to DATE_FORMATTER.format(søknadsperiode.tilOgMed)
),
"tidspunkt" to DATE_TIME_FORMATTER.format(ZonedDateTime.now(UTC))
)

override val bilder: Map<String, String>
get() = mapOf()
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@ package no.nav.sifinnsynapi.pdf

import no.nav.sifinnsynapi.util.storForbokstav
import org.springframework.stereotype.Service
import java.time.LocalDate
import java.time.ZoneOffset.UTC
import java.time.ZonedDateTime

@Deprecated(
"Etter at ny inntektsmelding gjennom nav.no er aktivert, ønsker vi ikke å bruke denne lenger",
ReplaceWith("ArbeidsgiverMeldingNavNoPDFGenerator")
)
@Service
class ArbeidsgiverMeldingPDFGenerator : PDFGenerator<PleiepengerArbeidsgiverMelding>() {

override val templateNavn: String
get() = "informasjonsbrev-til-arbeidsgiver"


override fun PleiepengerArbeidsgiverMelding.tilMap(): Map<String, Any?> = mapOf(
"arbeidsgiver_navn" to arbeidsgivernavn?.storForbokstav(),
"arbeidstaker_navn" to arbeidstakernavn.storForbokstav(),
Expand All @@ -26,14 +28,3 @@ class ArbeidsgiverMeldingPDFGenerator : PDFGenerator<PleiepengerArbeidsgiverMeld
override val bilder: Map<String, String>
get() = mapOf()
}
data class PleiepengerArbeidsgiverMelding(
val arbeidstakernavn: String,
val arbeidsgivernavn: String? = null,
valknadsperiode: SøknadsPeriode
)

data class SøknadsPeriode(
val fraOgMed: LocalDate,
val tilOgMed: LocalDate
)

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package no.nav.sifinnsynapi.pdf

data class PleiepengerArbeidsgiverMelding(
val arbeidstakernavn: String,
val arbeidsgivernavn: String? = null,
valknadsperiode: SøknadsPeriode
)
8 changes: 8 additions & 0 deletions src/main/kotlin/no/nav/sifinnsynapi/pdf/SøknadsPeriode.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.sifinnsynapi.pdf

import java.time.LocalDate

data class SøknadsPeriode(
val fraOgMed: LocalDate,
val tilOgMed: LocalDate
)
23 changes: 18 additions & 5 deletions src/main/kotlin/no/nav/sifinnsynapi/soknad/InnsendingService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ import no.nav.sifinnsynapi.omsorg.OmsorgService
import no.nav.sifinnsynapi.oppslag.BarnOppslagDTO
import no.nav.sifinnsynapi.oppslag.HentBarnForespørsel
import no.nav.sifinnsynapi.oppslag.OppslagsService
import no.nav.sifinnsynapi.pdf.ArbeidsgiverMeldingNavNoPDFGenerator
import no.nav.sifinnsynapi.pdf.ArbeidsgiverMeldingPDFGenerator
import no.nav.sifinnsynapi.pdf.PleiepengerArbeidsgiverMelding
import no.nav.sifinnsynapi.pdf.SøknadsPeriode
import org.json.JSONObject
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.time.LocalDate
Expand All @@ -31,8 +33,10 @@ class InnsendingService(
private val omsorgService: OmsorgService,
private val oppslagsService: OppslagsService,
private val legacyInnsynApiService: LegacyInnsynApiService,
private val ettersendelseRepository: EttersendelseRepository,
private val arbeidsgiverMeldingPDFGenerator: ArbeidsgiverMeldingPDFGenerator,
private val ettersendelseRepository: EttersendelseRepository
private val arbeidsgiverMeldingNavNoPDFGenerator: ArbeidsgiverMeldingNavNoPDFGenerator,
@Value("\${no.nav.inntektsmelding.ny-im-aktivert}") val erNyImAktivert: Boolean = false
) {

private companion object {
Expand Down Expand Up @@ -123,11 +127,20 @@ class InnsendingService(
val pleiepengesøknadJson = JSONObject(søknad.søknad)
val funnetOrg: JSONObject = pleiepengesøknadJson.finnOrganisasjon(søknadId.toString(), organisasjonsnummer)

arbeidsgiverMeldingPDFGenerator.genererPDF(
pleiepengesøknadJson.tilPleiepengerAreidsgivermelding(
funnetOrg
if (erNyImAktivert) {
logger.info("Ny inntektsmelding er aktivert, genererer PDF med nytt template.")
arbeidsgiverMeldingNavNoPDFGenerator.genererPDF(
pleiepengesøknadJson.tilPleiepengerAreidsgivermelding(
funnetOrg
)
)
)
} else {
arbeidsgiverMeldingPDFGenerator.genererPDF(
pleiepengesøknadJson.tilPleiepengerAreidsgivermelding(
funnetOrg
)
)
}
}

else -> throw NotSupportedArbeidsgiverMeldingException(søknadId.toString(), søknad.søknadstype)
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/application-dev-gcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ kafka:
key-store-location: file:${KAFKA_KEYSTORE_PATH}
key-store-password: ${KAFKA_CREDSTORE_PASSWORD}
key-store-type: PKCS12

no.nav:
inntektsmelding:
ny-im-aktivert: true
3 changes: 3 additions & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ no.nav:
saf-selvbetjening-base-url: # Settes i nais/<cluster>.json
sif-innsyn-api-base-url: # Settes i nais/<cluster>.json

inntektsmelding:
ny-im-aktivert: false

security:
k9-drift-gruppe: ${K9_DRIFT_GRUPPE_ID}
jwt:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="NO">

<head>
<meta charset="UTF-8"/>
<title>Bekreftelse til Arbeidsgiver</title>
<meta name="subject" content="Informasjonsbrev til Arbeidsgiver"/>
<meta name="author" content="nav.no"/>
<meta name="description" content="Bekreftelse til Arbeidsgiver {{soknad_mottatt_dag}} {{ soknad_mottatt }}"/>
<bookmarks>
<bookmark name="Informasjon" href="#informasjon"/>
<bookmark name="Instruksjon" href="#instruksjon"/>
</bookmarks>
{{#block 'style-common' }}
{{/block}}
</head>

<body>
<div class="innholdscontainer">
<span id="header"></span>

<section id="informasjon">
<h1>Til {{arbeidsgiver_navn}}</h1>
<p><strong>{{arbeidstaker_navn}}</strong> har søkt om pleiepenger for perioden</p>
<ul>
<li>
<strong>{{periode.fom}} - {{periode.tom}}</strong>
</li>
</ul>

<p>
Hvis vi trenger inntektsmelding for å behandle søknaden, vil du få varsel om dette via Altinn og på
Min side – arbeidsgiver på nav.no. Du kan da logge inn på nav.no for å sende inn en forhåndsutfylt
inntektsmelding.
</p>

<p>
Det er også mulig å sende inntektsmelding fra Altinn og lønns- og personalsystem, men du må da være
observant på at vi får riktig informasjon om første fraværsdag, organisasjonsnummer og eventuelt
arbeidsforholds-id.
</p>

<p>
Som hovedregel trenger vi inntektsmelding hvis dette er første søknad, eller hvis det har vært et
opphold på minst 4 uker. Hvis det har vært et kortere opphold mellom pleiepengeperiodene, der den
ansatte har hatt en varig lønnsendring, trenger vi også ny inntektsmelding.
</p>
</section>

<section id="spørsmål">
<h2>Har dere spørsmål?</h2>
<p>Dere finner mer informasjon på <a href="https://nav.no/arbeidsgiver">nav.no/arbeidsgiver</a></p>

<p>På <a href="https://nav.no/kontakt">nav.no/kontakt</a> kan dere chatte med oss.</p>

<p>Dere kan også ringe oss på telefon 55 55 33 36, hverdager 09.00-15.00.</p>
</section>
</div>

<!-- FOOTER -->
<p id="footer">
<span class="tidspunkt">{{ tidspunkt }}</span>
<span class="sidetall">side <span id="pagenumber"></span> av <span id="pagecount"></span></span>
</p>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package no.nav.sifinnsynapi.pdf

import org.junit.jupiter.api.Test
import java.io.File
import java.time.LocalDate

class ArbeidsgiverMeldingNavNoPDFGeneratorTest {

@Test
fun pdf() {
val pdf = ArbeidsgiverMeldingNavNoPDFGenerator().genererPDF(
melding = PleiepengerArbeidsgiverMelding(
arbeidstakernavn = "Ola Nordmann",
arbeidsgivernavn = "Sjokkerende Elektriker",
søknadsperiode = SøknadsPeriode(
fraOgMed = LocalDate.now().minusWeeks(1),
tilOgMed = LocalDate.now().plusWeeks(1)
)
)
)
File(pdfPath("Bekreftelse til arbeidsgiver")).writeBytes(pdf)
}

private fun pdfPath(filnavn: String) = "${System.getProperty("user.dir")}/generated-pdf-$filnavn.pdf"
}

0 comments on commit 26d8223

Please sign in to comment.