Vedlegg (WIP)

Definere et vedlegg

Vedlegg defineres med createAttachment:

@TemplateModelHelpers
val beregningsDetaljer = createAttachment<LangBokmalNynorsk, BeregningDto>(
    title = {
        text(
            bokmal { +"Beregning av uføretrygd" },
            nynorsk { +"Utrekning av uføretrygd" }
        )
    },
    includeSakspart = false
) {
    // OutlineScope - innholdet i vedlegget
}

Parametere

Parameter Beskrivelse

title

Tittelen på vedlegget

includeSakspart

Om sakspartinformasjon skal vises (navn, adresse osv.)

<Data>

Datatypen vedlegget bruker (kan være EmptyVedleggData hvis ingen data trengs)

Inkludere vedlegg i brev

Alltid inkludert

override val template = createTemplate(/*...*/) {
    title { /*...*/ }
    outline { /*...*/ }

    // Inkluder vedlegg med data
    includeAttachment(beregningsDetaljer, beregningsData)
}

Betinget inkludering

Med predikat:

includeAttachment(
    beregningsDetaljer,
    beregningsData,
    predicate = visBeregning
)

Hvis data kan være null:

// Inkluderes kun hvis data ikke er null
includeAttachmentIfNotNull(ekstraDetaljer, nullableData)

Vedlegg uten data

For vedlegg som ikke trenger data fra brevet:

val generellInfoVedlegg = createAttachment<LangBokmalNynorsk, EmptyVedleggData>(
    title = {
        text(
            bokmal { +"Generell informasjon" },
            nynorsk { +"Generell informasjon" }
        )
    },
    includeSakspart = false
) {
    paragraph {
        text(
            bokmal { +"Her er generell informasjon om Nav." },
            nynorsk { +"Her er generell informasjon om Nav." }
        )
    }
}

// I malen
includeAttachment(generellInfoVedlegg, EmptyVedleggData)

Eksempel: Komplett vedlegg

@TemplateModelHelpers
val detaljertBeregning = createAttachment<LangBokmalNynorsk, BeregningDto>(
    title = {
        text(
            bokmal { +"Detaljert beregning" },
            nynorsk { +"Detaljert utrekning" }
        )
    },
    includeSakspart = false
) {
    title1 {
        text(
            bokmal { +"Slik har vi beregnet uføretrygden din" },
            nynorsk { +"Slik har vi rekna ut uføretrygda di" }
        )
    }

    paragraph {
        table(
            header = {
                column { text(bokmal { +"Grunnlag" }) }
                column(alignment = ColumnAlignment.RIGHT) {
                    text(bokmal { +"Beløp" })
                }
            }
        ) {
            row {
                cell { text(bokmal { +"Grunnbeløp" }) }
                cell { eval(grunnbeloep.format()) }
            }
            row {
                cell { text(bokmal { +"Din uføregrad" }) }
                cell { eval(uforegrad.format()) }
            }
        }
    }

    showIf(harBarnetillegg) {
        title2 {
            text(bokmal { +"Barnetillegg" })
        }

        paragraph {
            text(bokmal { +"Du får barnetillegg for følgende barn:" })

            list {
                forEach(barn) { enkeltBarn ->
                    item {
                        text(bokmal { +enkeltBarn.navn })
                    }
                }
            }
        }
    }
}