Skip to content

Commit

Permalink
Begrunnelse for hvorfor man ikke sender brev (#6522)
Browse files Browse the repository at this point in the history
* Begrunnelse for hvorfor man ikke sender brev

* Ny kolonnne i databasen

* Viser også hvem som sist endret brevutfall

* Bump migreringsscript
  • Loading branch information
oyvindsh authored Dec 4, 2024
1 parent 91fdaf2 commit ae4917b
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class AktivitetspliktBrevDao(
val stmt =
prepareStatement(
"""
SELECT oppgave_id, sak_id, utbetaling, redusert_etter_inntekt, skal_sende_brev, brev_id, kilde, spraak from aktivitetsplikt_brevdata
SELECT oppgave_id, sak_id, utbetaling, redusert_etter_inntekt, skal_sende_brev, brev_id, kilde, spraak, begrunnelse from aktivitetsplikt_brevdata
WHERE oppgave_id = ?
""".trimIndent(),
)
Expand All @@ -43,6 +43,7 @@ class AktivitetspliktBrevDao(
skalSendeBrev = getBoolean("skal_sende_brev"),
kilde = getString("kilde").let { objectMapper.readValue(it) },
spraak = getString("spraak")?.let { Spraak.valueOf(it) },
begrunnelse = getString("begrunnelse"),
)
}
}
Expand All @@ -54,13 +55,14 @@ class AktivitetspliktBrevDao(
val stmt =
prepareStatement(
"""
INSERT INTO aktivitetsplikt_brevdata(sak_id, oppgave_id, utbetaling, redusert_etter_inntekt, skal_sende_brev, kilde, spraak)
VALUES(?, ?, ?, ?, ?, ?, ?)
INSERT INTO aktivitetsplikt_brevdata(sak_id, oppgave_id, utbetaling, redusert_etter_inntekt, skal_sende_brev, kilde, spraak, begrunnelse)
VALUES(?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT (oppgave_id)
DO UPDATE SET utbetaling = excluded.utbetaling,
redusert_etter_inntekt = excluded.redusert_etter_inntekt,
skal_sende_brev = excluded.skal_sende_brev, kilde = excluded.kilde,
spraak = excluded.spraak
spraak = excluded.spraak,
begrunnelse = excluded.begrunnelse
""".trimIndent(),
)
stmt.setLong(1, data.sakid.sakId)
Expand All @@ -70,6 +72,7 @@ class AktivitetspliktBrevDao(
stmt.setBoolean(5, data.skalSendeBrev)
stmt.setJsonb(6, data.kilde)
stmt.setString(7, data.spraak?.name)
stmt.setString(8, data.begrunnelse)
stmt.executeUpdate()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ data class AktivitetspliktInformasjonBrevdataRequest(
val utbetaling: Boolean? = null,
val redusertEtterInntekt: Boolean? = null,
val spraak: Spraak? = null,
val begrunnelse: String? = null,
) {
fun toDaoObjektBrevutfall(
oppgaveId: UUID,
Expand All @@ -351,6 +352,7 @@ data class AktivitetspliktInformasjonBrevdataRequest(
redusertEtterInntekt = this.redusertEtterInntekt,
skalSendeBrev = this.skalSendeBrev,
spraak = this.spraak,
begrunnelse = this.begrunnelse,
)
}

Expand All @@ -361,6 +363,7 @@ data class AktivitetspliktInformasjonBrevdata(
val skalSendeBrev: Boolean,
val utbetaling: Boolean? = null,
val redusertEtterInntekt: Boolean? = null,
val begrunnelse: String? = null,
val spraak: Spraak?,
val kilde: Grunnlagsopplysning.Saksbehandler,
) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
alter table aktivitetsplikt_brevdata add column begrunnelse text;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Alert, Box, Button, Heading, HStack, Radio, VStack } from '@navikt/ds-react'
import { Alert, BodyShort, Box, Button, Heading, HStack, Radio, Textarea, VStack } from '@navikt/ds-react'
import React, { useEffect, useState } from 'react'
import { JaNei, JaNeiRec, mapBooleanToJaNei } from '~shared/types/ISvar'
import { useForm } from 'react-hook-form'
Expand All @@ -25,10 +25,12 @@ import { handlinger } from '~components/behandling/handlinger/typer'
import { Spraak } from '~shared/types/Brev'
import { formaterSpraak } from '~utils/formatering/formatering'
import { LoependeUnntakInfo } from '~components/aktivitetsplikt/brev/LoependeUnntakInfo'
import { formaterDatoMedTidspunkt } from '~utils/formatering/dato'

interface IBrevAktivitetsplikt {
skalSendeBrev: JaNei
utbetaling: JaNei
begrunnelse?: string
redusertEtterInntekt: JaNei
spraak?: Spraak
}
Expand All @@ -48,12 +50,21 @@ function mapToDto(brevdata: IBrevAktivitetsplikt): IBrevAktivitetspliktRequest {
utbetaling: brevdata.utbetaling ? brevdata.utbetaling === JaNei.JA : undefined,
redusertEtterInntekt: brevdata.redusertEtterInntekt ? brevdata.redusertEtterInntekt === JaNei.JA : undefined,
spraak: brevdata.spraak,
begrunnelse: brevdata.skalSendeBrev === JaNei.NEI ? brevdata.begrunnelse : undefined,
}
}

export const ValgForInfobrev = () => {
const { oppgave, aktivtetspliktbrevdata } = useAktivitetspliktOppgaveVurdering()
const { handleSubmit, watch, control, resetField, reset } = useForm<IBrevAktivitetsplikt>({})
const {
handleSubmit,
watch,
control,
resetField,
reset,
register,
formState: { errors },
} = useForm<IBrevAktivitetsplikt>({})

const dispatch = useDispatch()
const [lagrebrevdataStatus, lagrebrevdata, tilbakestillApiResult] = useApiCall(lagreAktivitetspliktBrevdata)
Expand Down Expand Up @@ -110,7 +121,18 @@ export const ValgForInfobrev = () => {
</>
}
/>

{skalsendebrev === JaNei.NEI && (
<Textarea
label="Begrunnelse"
{...register('begrunnelse', {
required: {
value: true,
message: 'Du må si hvorfor brev ikke skal sendes',
},
})}
error={errors?.begrunnelse?.message}
/>
)}
{skalsendebrev === JaNei.JA && (
<>
<ControlledRadioGruppe
Expand Down Expand Up @@ -171,6 +193,9 @@ export const ValgForInfobrev = () => {
{!!brevdata && (
<HStack gap="4">
<Info label="Skal sende brev" tekst={brevdata.skalSendeBrev ? JaNeiRec.JA : JaNeiRec.NEI} />
{!brevdata.skalSendeBrev && brevdata.begrunnelse && (
<Info label="Begrunnelse" tekst={brevdata.begrunnelse} />
)}
{brevdata.skalSendeBrev && (
<>
<Info label="Utbetaling" tekst={brevdata.utbetaling ? JaNeiRec.JA : JaNeiRec.NEI} />
Expand All @@ -181,6 +206,9 @@ export const ValgForInfobrev = () => {
<Info label="Målform" tekst={brevdata.spraak ? formaterSpraak(brevdata.spraak) : '-'} />
</>
)}
<BodyShort>
Sist endret {formaterDatoMedTidspunkt(new Date(brevdata.kilde.tidspunkt))} av {brevdata.kilde.ident}
</BodyShort>
</HStack>
)}
{erOppgaveRedigerbar(oppgave.status) && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ export interface IBrevAktivitetspliktRequest {
utbetaling?: boolean
redusertEtterInntekt?: boolean
spraak?: Spraak
begrunnelse?: string
}

export const lagreAktivitetspliktBrevdata = async (args: {
Expand All @@ -164,5 +165,6 @@ export interface IBrevAktivitetspliktDto {
utbetaling?: boolean
redusertEtterInntekt?: boolean
spraak?: Spraak
begrunnelse?: string
kilde: KildeSaksbehandler
}

0 comments on commit ae4917b

Please sign in to comment.