Skip to content

Commit

Permalink
Merge pull request #538 from navikt/TSFF-1039-arbeidsgiver-brev-ny-info
Browse files Browse the repository at this point in the history
## 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
2 parents 8f3ad86 + 7100fb0 commit 87b6051
Show file tree
Hide file tree
Showing 9 changed files with 167 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn

import no.nav.sifinnsynapi.pdf.PDFGenerator
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 @@ -3,10 +3,13 @@ package no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn
import no.nav.sifinnsynapi.pdf.PDFGenerator
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>() {

Expand All @@ -27,14 +30,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.konsument.pleiepenger.syktbarn

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.konsument.pleiepenger.syktbarn

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/SøknadService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ import no.nav.sifinnsynapi.common.Søknadstype
import no.nav.sifinnsynapi.dokument.DokumentDTO
import no.nav.sifinnsynapi.dokument.DokumentService
import no.nav.sifinnsynapi.dokument.DokumentService.Companion.brevkoder
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.ArbeidsgiverMeldingNavNoPDFGenerator
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.ArbeidsgiverMeldingPDFGenerator
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.PleiepengerJSONObjectUtils.finnOrganisasjon
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.PleiepengerJSONObjectUtils.tilPleiepengerAreidsgivermelding
import no.nav.sifinnsynapi.oppslag.OppslagsService
import no.nav.sifinnsynapi.util.ServletUtils
import org.json.JSONObject
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.http.HttpStatus
import org.springframework.http.ProblemDetail
import org.springframework.stereotype.Service
Expand All @@ -29,7 +31,9 @@ class SøknadService(
private val repo: SøknadRepository,
private val oppslagsService: OppslagsService,
private val dokumentService: DokumentService,
private val arbeidsgiverMeldingPDFGenerator: ArbeidsgiverMeldingPDFGenerator
private val arbeidsgiverMeldingPDFGenerator: ArbeidsgiverMeldingPDFGenerator,
private val arbeidsgiverMeldingNavNoPDFGenerator: ArbeidsgiverMeldingNavNoPDFGenerator,
@Value("\${no.nav.inntektsmelding.ny-im-aktivert}") val erNyImAktivert: Boolean = false
) {

companion object {
Expand Down Expand Up @@ -105,11 +109,20 @@ class SøknadService(
val pleiepengesøknadJson = JSONObject(søknad.søknad)
val funnetOrg: JSONObject = pleiepengesøknadJson.finnOrganisasjon(søknad, 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øknad.id.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 @@ -39,6 +39,10 @@ no.nav:
pleiepenger-sykt-barn:
beskjed:
link: https://sif-innsyn.intern.dev.nav.no/familie/sykdom-i-familien/soknad/innsyn

pleiepenger-sykt-barn-endringsmelding:
beskjed:
link: https://sif-innsyn.intern.dev.nav.no/familie/sykdom-i-familien/soknad/innsyn

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 @@ -22,6 +22,9 @@ no.nav:
tekst: 'Vi har mottatt din ettersendelse til omsorgspenger.'
dagerSynlig: 7

inntektsmelding:
ny-im-aktivert: false

gateways:
k9-selvbetjening-oppslag: # Settes i nais/<cluster>.json
saf-base-url: # Settes i nais/<cluster>.json
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,28 @@
package no.nav.sifinnsynapi.pdf

import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.ArbeidsgiverMeldingNavNoPDFGenerator
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.PleiepengerArbeidsgiverMelding
import no.nav.sifinnsynapi.konsument.pleiepenger.syktbarn.SøknadsPeriode
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 87b6051

Please sign in to comment.