diff --git a/mulighetsrommet-api/data/refusjon-kvittering.json b/mulighetsrommet-api/data/aft-refusjon-kvittering.json similarity index 100% rename from mulighetsrommet-api/data/refusjon-kvittering.json rename to mulighetsrommet-api/data/aft-refusjon-kvittering.json diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/pdfgen/Pdfgen.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/pdfgen/Pdfgen.kt index 1b5382ea37..b810348df6 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/pdfgen/Pdfgen.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/pdfgen/Pdfgen.kt @@ -25,27 +25,30 @@ object Pdfgen { registerKotlinModule() } - fun refusjonKvittering(refusjonKravAft: RefusjonKravAft, tilsagn: List): ByteArray { - @Serializable - data class PdfData( - val refusjon: RefusjonKravAft, - val tilsagn: List, - ) + object Aft { + fun refusjonKvittering(refusjonKravAft: RefusjonKravAft, tilsagn: List): ByteArray { + @Serializable + data class PdfData( + val refusjon: RefusjonKravAft, + val tilsagn: List, + ) - val jsonNode: JsonNode = objectMapper.valueToTree(PdfData(refusjonKravAft, tilsagn)) - return createPDFA("refusjon-kvittering", "refusjon", jsonNode) - ?: throw Exception("Kunne ikke generere PDF") - } + val jsonNode: JsonNode = objectMapper.valueToTree(PdfData(refusjonKravAft, tilsagn)) + return createPDFA("aft-refusjon-kvittering", "refusjon", jsonNode) + ?: throw Exception("Kunne ikke generere PDF") + } - fun refusjonJournalpost(refusjonKravAft: RefusjonKravAft, tilsagn: List): ByteArray { - @Serializable - data class PdfData( - val refusjon: RefusjonKravAft, - val tilsagn: List, - ) + fun refusjonJournalpost(refusjonKravAft: RefusjonKravAft, tilsagn: List): ByteArray { + @Serializable + data class PdfData( + val refusjon: RefusjonKravAft, + val tilsagn: List, + ) - val jsonNode: JsonNode = objectMapper.valueToTree(PdfData(refusjonKravAft, tilsagn)) - return createPDFA("refusjon-journalpost", "refusjon", jsonNode) - ?: throw Exception("Kunne ikke generere PDF") + val jsonNode: JsonNode = objectMapper.valueToTree(PdfData(refusjonKravAft, tilsagn)) + requireNotNull(jsonNode) + return createPDFA("aft-refusjon-journalpost", "refusjon", jsonNode) + ?: throw Exception("Kunne ikke generere PDF") + } } } diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/ArrangorflateRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/ArrangorflateRoutes.kt index 024120829c..9bf61fb386 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/ArrangorflateRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/ArrangorflateRoutes.kt @@ -136,7 +136,7 @@ fun Route.arrangorflateRoutes() { ) val refusjonsKravAft = toRefusjonskrav(pdl, deltakerRepository, krav) - val pdf = Pdfgen.refusjonKvittering(refusjonsKravAft, tilsagn) + val pdf = Pdfgen.Aft.refusjonKvittering(refusjonsKravAft, tilsagn) call.response.headers.append( "Content-Disposition", diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/task/JournalforRefusjonskrav.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/task/JournalforRefusjonskrav.kt index 43b8e103f6..d0c19b4aab 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/task/JournalforRefusjonskrav.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/refusjon/task/JournalforRefusjonskrav.kt @@ -12,6 +12,7 @@ import no.nav.mulighetsrommet.api.refusjon.HentAdressebeskyttetPersonBolkPdlQuer import no.nav.mulighetsrommet.api.refusjon.db.DeltakerRepository import no.nav.mulighetsrommet.api.refusjon.db.RefusjonskravRepository import no.nav.mulighetsrommet.api.refusjon.model.RefusjonKravAft +import no.nav.mulighetsrommet.api.refusjon.model.RefusjonKravBeregningAft import no.nav.mulighetsrommet.api.refusjon.model.RefusjonskravDto import no.nav.mulighetsrommet.api.refusjon.model.RefusjonskravStatus import no.nav.mulighetsrommet.api.refusjon.toRefusjonskrav @@ -77,8 +78,12 @@ class JournalforRefusjonskrav( gjennomforingId = krav.gjennomforing.id, periode = krav.beregning.input.periode, ) - val refusjonsKravAft: RefusjonKravAft = toRefusjonskrav(pdl, deltakerRepository, krav) - Pdfgen.refusjonJournalpost(refusjonsKravAft, tilsagn) + when (krav.beregning) { + is RefusjonKravBeregningAft -> { + val refusjonsKravAft: RefusjonKravAft = toRefusjonskrav(pdl, deltakerRepository, krav) + Pdfgen.Aft.refusjonJournalpost(refusjonsKravAft, tilsagn) + } + } } dokarkClient.opprettJournalpost( diff --git a/mulighetsrommet-api/src/test/kotlin/no/nav/mulighetsrommet/api/pdfgen/PdfgenTest.kt b/mulighetsrommet-api/src/test/kotlin/no/nav/mulighetsrommet/api/pdfgen/PdfgenTest.kt index 449c5bda3f..056c777128 100644 --- a/mulighetsrommet-api/src/test/kotlin/no/nav/mulighetsrommet/api/pdfgen/PdfgenTest.kt +++ b/mulighetsrommet-api/src/test/kotlin/no/nav/mulighetsrommet/api/pdfgen/PdfgenTest.kt @@ -85,7 +85,7 @@ class PdfgenTest : FunSpec({ ), ) - Pdfgen.refusjonKvittering(refusjonsKravAft, tilsagn) + Pdfgen.Aft.refusjonKvittering(refusjonsKravAft, tilsagn) } test("refusjon-journalpost") { @@ -105,7 +105,13 @@ class PdfgenTest : FunSpec({ id = ArrangorFixtures.underenhet1.id, organisasjonsnummer = ArrangorFixtures.underenhet1.organisasjonsnummer, ), - beregning = Prismodell.TilsagnBeregning.Fri(123), + beregning = Prismodell.TilsagnBeregning.AFT( + belop = 450000, + sats = 20501, + antallPlasser = 23, + periodeStart = LocalDate.now().minusMonths(3), + periodeSlutt = LocalDate.now().plusMonths(3), + ), ), ) @@ -123,7 +129,7 @@ class PdfgenTest : FunSpec({ arrangor = RefusjonskravDto.Arrangor( id = UUID.randomUUID(), organisasjonsnummer = Organisasjonsnummer("123456789"), - navn = "Navn", + navn = "Fretex AS", slettet = false, ), deltakelser = listOf( @@ -137,16 +143,46 @@ class PdfgenTest : FunSpec({ manedsverk = 1.0, person = RefusjonKravDeltakelse.Person( navn = "Donald DUck", - fodselsdato = LocalDate.now(), + fodselsdato = LocalDate.of(1945, 12, 8), fodselsaar = 2000, ), veileder = null, ), + RefusjonKravDeltakelse( + id = UUID.randomUUID(), + startDato = LocalDate.now(), + sluttDato = LocalDate.now().plusDays(20), + forstePeriodeStartDato = LocalDate.now(), + sistePeriodeSluttDato = LocalDate.now(), + sistePeriodeDeltakelsesprosent = 100.0, + manedsverk = 1.0, + person = RefusjonKravDeltakelse.Person( + navn = "Adressebeskyttet", + fodselsaar = null, + fodselsdato = null, + ), + veileder = null, + ), + RefusjonKravDeltakelse( + id = UUID.randomUUID(), + startDato = LocalDate.now(), + sluttDato = LocalDate.now().plusDays(20), + forstePeriodeStartDato = LocalDate.now(), + sistePeriodeSluttDato = LocalDate.now(), + sistePeriodeDeltakelsesprosent = 100.0, + manedsverk = .5, + person = RefusjonKravDeltakelse.Person( + navn = "Onkel Skrue", + fodselsaar = null, + fodselsdato = LocalDate.of(1923, 1, 4), + ), + veileder = null, + ), ), beregning = RefusjonKravAft.Beregning( periodeStart = LocalDate.now(), - periodeSlutt = LocalDate.now(), - antallManedsverk = 1.0, + periodeSlutt = LocalDate.now().plusMonths(1), + antallManedsverk = 2.5, belop = 100, digest = "asdf", ), @@ -156,6 +192,11 @@ class PdfgenTest : FunSpec({ ), ) - Pdfgen.refusjonJournalpost(refusjonsKravAft, tilsagn) + // Sjekker kun at ting ikke krasjer + val pdf = Pdfgen.Aft.refusjonJournalpost(refusjonsKravAft, tilsagn) + + // For å iterere på pdf'en kan man kjøre denne testen og kommentere ut linjene under + // val file = File("//refusjonskrav.pdf>") + // file.writeBytes(pdf) } }) diff --git a/mulighetsrommet-api/templates/refusjon/refusjon-journalpost.hbs b/mulighetsrommet-api/templates/refusjon/aft-refusjon-journalpost.hbs similarity index 73% rename from mulighetsrommet-api/templates/refusjon/refusjon-journalpost.hbs rename to mulighetsrommet-api/templates/refusjon/aft-refusjon-journalpost.hbs index 1eec350ece..18fd00008e 100644 --- a/mulighetsrommet-api/templates/refusjon/refusjon-journalpost.hbs +++ b/mulighetsrommet-api/templates/refusjon/aft-refusjon-journalpost.hbs @@ -17,37 +17,35 @@ width: 100%; margin-top: 0; } - h4 { - padding-top: 2mm; - margin-left: 1mm; - font-size: 13px; - margin-top: 0; - } table th { width: 25%; font-weight: normal; } table td { width: 75%; - font-weight: bold; - } - tr { - font-size: 10px; } .tilsagn-table { border: 1px solid #D1D4D8; padding: 8px; margin-bottom: 20px; } + .deltaker-liste th { + font-weight: bold; + } + .text-align-right { + text-align: right; + } +
Innsendt dato: {{ iso_to_nor_date (now_date) }}
+

Refusjonskrav - {{ refusjon.arrangor.navn }} - {{ refusjon.gjennomforing.navn }}

- + @@ -85,31 +83,31 @@ - - - -
Refusjonskravperiode:{{ iso_to_nor_date refusjon.beregning.periode.start }} - {{ iso_to_nor_date refusjon.beregning.periode.slutt }}{{ iso_to_nor_date refusjon.beregning.periodeStart }} - {{ iso_to_nor_date refusjon.beregning.periodeSlutt }}
First for godkjenning:Beløp: {{ currency_no beregning.belop }} kr
Utbetalt så langt:TODO
{{/each}}

Deltakerliste

- - - - - - +
NavnFødselsdatoStartdatoSluttdatoMånedsverk
+ + + + + + + + + {{#each refusjon.deltakelser }} - - - - - - - + + + + + + + {{/each}}
NavnFødselsdatoStartdatoSluttdatoMånedsverk
{{ person.navn }}{{ person.foedselsdato }} {{ person.foedselsaar }}{{ iso_to_nor_date startDato }}{{ iso_to_nor_date sluttDato }}{{ manedsverk }}
{{ person.navn }}{{ iso_to_nor_date person.fodselsdato }}{{ iso_to_nor_date startDato }}{{ iso_to_nor_date sluttDato }}{{ formatComma manedsverk }}
@@ -120,7 +118,7 @@ Antall månedsverk: - {{ refusjon.beregning.antallManedsverk }} + {{ formatComma refusjon.beregning.antallManedsverk }} Total refusjonskrav: diff --git a/mulighetsrommet-api/templates/refusjon/refusjon-kvittering.hbs b/mulighetsrommet-api/templates/refusjon/aft-refusjon-kvittering.hbs similarity index 100% rename from mulighetsrommet-api/templates/refusjon/refusjon-kvittering.hbs rename to mulighetsrommet-api/templates/refusjon/aft-refusjon-kvittering.hbs