Skip to content

Commit

Permalink
EY-4762 begrunnelse overstyrt trygdetid (#6901)
Browse files Browse the repository at this point in the history
* Begrunnelse felt

* Lagre begrunnselse for overstyrt trygdetid

* Begrunnelse backend er nullable

* Begrunnelse påkrevd
  • Loading branch information
Bjodn authored Jan 29, 2025
1 parent 8a2850b commit b9723ec
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 24 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react'
import { Alert, Box, Button, Checkbox, Heading, HStack, TextField, VStack } from '@navikt/ds-react'
import { Alert, Box, Button, Checkbox, Heading, HStack, Textarea, TextField, VStack } from '@navikt/ds-react'
import { useApiCall } from '~shared/hooks/useApiCall'
import {
IDetaljertBeregnetTrygdetid,
Expand All @@ -15,6 +15,14 @@ import { Toast } from '~shared/alerts/Toast'
import { useBehandling } from '~components/behandling/useBehandling'
import { FormProvider, useForm } from 'react-hook-form'

interface IOverstyrtTrygdetidForm {
skalHaProrata: boolean
anvendtTrygdetid: number
prorataTeller: number | undefined
prorataNevner: number | undefined
begrunnelse: string
}

export const TrygdetidManueltOverstyrt = ({
trygdetidId,
ident,
Expand All @@ -36,43 +44,37 @@ export const TrygdetidManueltOverstyrt = ({
const [oppdaterStatus, oppdaterTrygdetidRequest] = useApiCall(oppdaterTrygdetidOverstyrtMigrering)
const [opprettStatus, opprettTrygdetid] = useApiCall(opprettTrygdetider)

const methods = useForm<{
skalHaProrata: boolean
anvendtTrygdetid: number
prorataTeller: number | undefined
prorataNevner: number | undefined
// TODO begrunnelse
}>({
const methods = useForm<IOverstyrtTrygdetidForm>({
defaultValues: {
skalHaProrata: !!beregnetTrygdetid.resultat.prorataBroek,
anvendtTrygdetid: !!beregnetTrygdetid.resultat.prorataBroek
? beregnetTrygdetid.resultat.samletTrygdetidTeoretisk
: beregnetTrygdetid.resultat.samletTrygdetidNorge,
prorataTeller: beregnetTrygdetid.resultat.prorataBroek?.teller,
prorataNevner: beregnetTrygdetid.resultat.prorataBroek?.nevner,
// TODO begrunnelse
begrunnelse: '',
},
})
const {
register,
handleSubmit,
formState: { errors },
watch,
getValues,
} = methods

const lagre = () => {
const lagre = (data: IOverstyrtTrygdetidForm) => {
oppdaterTrygdetidRequest(
{
behandlingId: behandling!!.id,
trygdetidId: trygdetidId,
anvendtTrygdetid: getValues().anvendtTrygdetid,
prorataBroek: getValues().skalHaProrata
anvendtTrygdetid: data.anvendtTrygdetid,
prorataBroek: data.skalHaProrata
? {
teller: getValues().prorataTeller!!,
nevner: getValues().prorataNevner!!,
teller: data.prorataTeller!!,
nevner: data.prorataNevner!!,
}
: undefined,
begrunnelse: data.begrunnelse,
},
(trygdetid) => {
oppdaterTrygdetid(trygdetid)
Expand Down Expand Up @@ -123,13 +125,12 @@ export const TrygdetidManueltOverstyrt = ({
required: { value: true, message: 'Må fylles ut' },
})}
label="Anvendt trygdetid"
placeholder="Anvendt trygdetid"
htmlSize={20}
error={errors.anvendtTrygdetid?.message}
disabled={!redigerbar}
readOnly={!redigerbar}
/>

<Checkbox {...register('skalHaProrata')} disabled={!redigerbar}>
<Checkbox {...register('skalHaProrata')} readOnly={!redigerbar}>
Prorata brøk
</Checkbox>

Expand All @@ -146,9 +147,8 @@ export const TrygdetidManueltOverstyrt = ({
required: { value: true, message: 'Må fylles ut' },
})}
label="Prorata teller"
placeholder="Prorata teller"
error={errors.prorataTeller?.message}
disabled={!redigerbar}
readOnly={!redigerbar}
/>
</Box>
<Box width="20rem">
Expand All @@ -162,13 +162,22 @@ export const TrygdetidManueltOverstyrt = ({
required: { value: true, message: 'Må fylles ut' },
})}
label="Prorata nevner"
placeholder="Prorata nevner"
error={errors.prorataNevner?.message}
disabled={!redigerbar}
readOnly={!redigerbar}
/>
</Box>
</HStack>
)}
<Box width="20rem">
<Textarea
{...register('begrunnelse', {
required: { value: true, message: 'Må fylles ut' },
})}
label="Begrunnelse"
error={errors.begrunnelse?.message}
readOnly={!redigerbar}
/>
</Box>
{redigerbar && (
<Box width="20rem">
<Button variant="primary" size="small" onClick={handleSubmit(lagre)} loading={isPending(oppdaterStatus)}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,15 @@ export const oppdaterTrygdetidOverstyrtMigrering = async (args: {
trygdetidId: string
anvendtTrygdetid: number
prorataBroek?: IProrataBroek
begrunnelse: string
}): Promise<ApiResponse<ITrygdetid>> =>
apiClient.post(`/trygdetid_v2/${args.behandlingId}/migrering/${args.trygdetidId}/manuell/lagre`, {
samletTrygdetidNorge: args.prorataBroek ? undefined : args.anvendtTrygdetid,
samletTrygdetidTeoretisk: args.prorataBroek ? args.anvendtTrygdetid : undefined,
prorataBroek: args.prorataBroek,
overstyrt: true,
yrkesskade: false,
begrunnelse: args.begrunnelse,
})

export const kopierTrygdetidFraAnnenBehandling = async (args: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,8 @@ class TrygdetidRepository(
trygdetid_tidspunkt = :trygdetidTidspunkt,
trygdetid_regelresultat = :trygdetidRegelresultat,
beregnet_trygdetid_overstyrt = :overstyrt,
yrkesskade = :yrkesskade
yrkesskade = :yrkesskade,
overstyrt_begrunnelse = :overstyrtBegrunnelse
WHERE behandling_id = :behandlingId AND id = :trygdetidId
""".trimIndent(),
paramMap =
Expand Down Expand Up @@ -489,6 +490,7 @@ class TrygdetidRepository(
"trygdetidRegelresultat" to beregnetTrygdetid.regelResultat.toJson(),
"overstyrt" to beregnetTrygdetid.resultat.overstyrt,
"yrkesskade" to beregnetVerdi.yrkesskade,
"overstyrtBegrunnelse" to beregnetVerdi.overstyrtBegrunnelse,
),
).let { query ->
tx.update(query)
Expand Down Expand Up @@ -522,7 +524,8 @@ class TrygdetidRepository(
trygdetid_tidspunkt = null,
trygdetid_regelresultat = null,
beregnet_trygdetid_overstyrt = false,
yrkesskade = false
yrkesskade = false,
overstyrt_begrunnelse = null
WHERE behandling_id = :behandlingId
""".trimIndent(),
paramMap = mapOf("behandlingId" to behandlingId),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE trygdetid
ADD COLUMN overstyrt_begrunnelse TEXT;
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ data class DetaljertBeregnetTrygdetidResultat(
val overstyrt: Boolean,
val yrkesskade: Boolean,
val beregnetSamletTrygdetidNorge: Int?,
val overstyrtBegrunnelse: String? = null,
) {
companion object {
fun fraSamletTrygdetidProrata(
Expand Down

0 comments on commit b9723ec

Please sign in to comment.