Skip to content

Commit 0fd55e3

Browse files
committed
Oppdatert struktur for inntekt fra areg
1 parent 6ed7f7f commit 0fd55e3

File tree

9 files changed

+96
-45
lines changed

9 files changed

+96
-45
lines changed

apps/ungdomsytelse-deltaker/mock/msw/mocks/soker1/deltakelser/harSøkt.ts

+16-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,22 @@ export const deltakelserHarSøkt: DeltakelsePeriodInfo[] = [
4343
tilOgMed: '2026-01-31',
4444
},
4545
inntektFraAinntekt: {
46-
arbeidstakerOgFrilansInntekt: 7500,
47-
inntektFraYtelse: 1500,
46+
arbeidsgivere: [
47+
{
48+
navn: 'Flåklypa barteservice',
49+
beløp: 1232,
50+
},
51+
{
52+
navn: 'Hopen klyp og klem',
53+
beløp: 50,
54+
},
55+
],
56+
ytelser: [
57+
{
58+
navn: 'Sykepenger',
59+
beløp: 4200,
60+
},
61+
],
4862
},
4963
inntektFraDeltaker: {
5064
arbeidstakerOgFrilansInntekt: undefined,

apps/ungdomsytelse-deltaker/src/apps/innsyn/components/inntekt-tabell/InntektTabell.tsx

+12-16
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
import { Table } from '@navikt/ds-react';
2+
import { InntektFraAInntekt } from '@navikt/ung-common';
23
import { FormattedNumber } from 'react-intl';
34

4-
interface Props {}
5+
interface Props {
6+
inntekt: InntektFraAInntekt;
7+
}
58

6-
const InntektTabell = ({}: Props) => {
7-
const data = [
8-
{
9-
navn: 'Godlia video og persienner',
10-
inntekt: 213,
11-
},
12-
{
13-
navn: 'Mix kiosk',
14-
inntekt: 3500,
15-
},
16-
{
17-
navn: 'Sykepenger',
18-
inntekt: 500,
19-
},
20-
];
9+
const InntektTabell = ({ inntekt }: Props) => {
10+
const data: Array<{ navn: string; inntekt: number }> = [];
11+
inntekt.arbeidsgivere.forEach((arbeidsgiver) => {
12+
data.push({ navn: arbeidsgiver.navn, inntekt: arbeidsgiver.beløp });
13+
});
14+
inntekt.ytelser.forEach((ytelse) => {
15+
data.push({ navn: ytelse.navn, inntekt: ytelse.beløp });
16+
});
2117
return (
2218
<Table zebraStripes>
2319
<Table.Header>

apps/ungdomsytelse-deltaker/src/apps/innsyn/components/oppgaver/KorrigertInntektOppgave.tsx

+20-11
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import { dateFormatter, dateRangeFormatter } from '@navikt/sif-common-utils';
33
import { KorrigertInntektOppgave, Oppgavetype } from '@navikt/ung-common';
44
import OppgaveLayout from './OppgaveLayout';
55
import {
6+
FormikConfirmationCheckbox,
67
getIntlFormErrorHandler,
78
getTypedFormComponents,
89
ValidationError,
910
YesOrNo,
1011
} from '@navikt/sif-common-formik-ds';
1112
import { useAppIntl } from '../../../../i18n';
12-
import { getStringValidator, getYesOrNoValidator } from '@navikt/sif-validation';
13+
import { getCheckedValidator, getStringValidator, getYesOrNoValidator } from '@navikt/sif-validation';
1314
import { UngdomsytelseOppgavebekreftelse } from '@navikt/k9-brukerdialog-prosessering-api';
1415
import { useBesvarOppgave } from '../../hooks/useBesvarOppgave';
1516
import { WalletIcon } from '@navikt/aksel-icons';
@@ -90,10 +91,10 @@ const KorrigertInntektOppgave = ({ deltakelseId, oppgave }: Props) => {
9091
Derfor vil vi bruke inntekten fra a-ordningen som grunnlag for beregning av ytelsen din.
9192
</BodyShort>
9293
<BodyShort spacing={true}>
93-
For at vi skal kunne behandle saken din, må du bekrefte denne endringen innen{' '}
94-
<strong>{svarfristTekst}</strong>. Hvis vi ikke mottar en bekreftelse innen fristen, vil vi
95-
automatisk bruke inntektsopplysningene fra a-ordningen. Eventuell utbetaling vil bli satt på
96-
vent til du har bekreftet endringen, eller fristen har passert.
94+
For at vi skal kunne behandle saken din, må du bekrefte at den inntekten vi har registrert er
95+
den korrekte innen <strong>{svarfristTekst}</strong>. Hvis vi ikke mottar en bekreftelse innen
96+
fristen, vil vi automatisk bruke inntektsopplysningene fra a-ordningen. Eventuell utbetaling vil
97+
bli satt på vent til du har bekreftet endringen, eller fristen har passert.
9798
</BodyShort>
9899
</>
99100
}>
@@ -112,25 +113,33 @@ const KorrigertInntektOppgave = ({ deltakelseId, oppgave }: Props) => {
112113
<VStack gap="8" marginBlock="2 0">
113114
<VStack gap="2">
114115
<Heading level="3" size="small">
115-
Inntekt registrert i a-ordningen
116-
{/* Registrert inntekt */}
116+
Registrert inntekt
117117
</Heading>
118-
<InntektTabell />
118+
<InntektTabell inntekt={oppgave.oppgavetypeData.inntektFraAinntekt} />
119119
</VStack>
120120

121121
<YesOrNoQuestion
122122
name={FormFields.godkjenner}
123-
legend={`Stemmer inntektsopplysningene vi har mottatt fra a-ordningen, og at vi skal bruke dette for å beregne ytelse?`}
123+
legend={`Er inntektsopplysningene over korrekte?`}
124124
validate={getYesOrNoValidator()}
125125
labels={{
126-
yes: 'Ja, bruk inntekten fra a-ordningen',
126+
yes: 'Ja, inntekten er korrekt',
127127
}}
128128
/>
129+
{values[FormFields.godkjenner] === YesOrNo.YES ? (
130+
<>
131+
<FormikConfirmationCheckbox
132+
name={FormFields.bekrefterOpplysninger}
133+
label="Jeg bekrefter at inntekten over skal brukes for å beregne min ytelse"
134+
validate={getCheckedValidator()}
135+
/>
136+
</>
137+
) : null}
129138
{values[FormFields.godkjenner] === YesOrNo.NO ? (
130139
<>
131140
<Textarea
132141
name={FormFields.begrunnelse}
133-
label="Hvorfor skal vi ikke bruke inntekten vi har mottatt fra a-ordningen?"
142+
label="Hvorfor stemmer ikke inntekten vi har fått fra a-ordningen?"
134143
maxLength={250}
135144
description={
136145
<ReadMore header="Hva skal jeg skrive her?">

apps/ungdomsytelse-veileder/src/api/veilederApiService.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const getDeltakerByDeltakerId = async (deltakerIdent: string): Promise<Deltaker>
4949
* @returns {Promise<Deltakelse[]>}
5050
* @throws {ApiErrorObject}
5151
*/
52-
const getDeltakelser = async (deltakerId: string): Promise<Deltakelse[]> => {
52+
const getDeltakelserForDeltaker = async (deltakerId: string): Promise<Deltakelse[]> => {
5353
try {
5454
const { data } = await VeilederService.hentAlleDeltakelserGittDeltakerId({ path: { deltakerId } });
5555
return deltakelserSchema.parse(data);
@@ -148,7 +148,7 @@ const fjernDeltakelse = async (deltakelseId: string): Promise<void> => {
148148
export const veilederApiService = {
149149
findDeltakerByDeltakerIdent,
150150
getDeltakerByDeltakerId,
151-
getDeltakelser,
151+
getDeltakelser: getDeltakelserForDeltaker,
152152
endreStartdatoForDeltakelse,
153153
endreSluttdatoForDeltakelse,
154154
fjernDeltakelse,

apps/ungdomsytelse-veileder/src/pages/deltaker-page/DeltakerPage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const Content = () => {
2222

2323
return (
2424
<Page.Block width="xl" gutters={true}>
25-
<VStack>
25+
<VStack className="shadow-xl">
2626
<DeltakerPageHeader />
2727
<Box className="bg-white rounded-b-lg p-3 pr-6 pl-6">
2828
<DeltakerPageContent />

packages/ung-common/src/api/parse-utils/parseOppgaverElement.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ export const parseOppgaverElement = (oppgaver: zOppgaveElement[]): Oppgave[] =>
8080
oppgavetype: Oppgavetype.BEKREFT_KORRIGERT_INNTEKT,
8181
oppgavetypeData: {
8282
inntektFraAinntekt: {
83-
arbeidstakerOgFrilansInntekt:
84-
korrigertInntektData.inntektFraAinntekt.arbeidstakerOgFrilansInntekt,
85-
inntektFraYtelse: korrigertInntektData.inntektFraAinntekt.inntektFraYtelse,
83+
arbeidsgivere: korrigertInntektData.inntektFraAinntekt.arbeidsgivere,
84+
ytelser: korrigertInntektData.inntektFraAinntekt.ytelser,
8685
},
8786
periodeForInntekt: {
8887
fraOgMed: ISODateToDate(korrigertInntektData.periodeForInntekt.fraOgMed),

packages/ung-common/src/types/Oppgave.ts

+11-4
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,24 @@ export interface EndreSluttdatoOppgave extends oppgaveBase {
2626
};
2727
}
2828

29+
export interface InntektFraAInntekt {
30+
arbeidsgivere: Array<{
31+
navn: string;
32+
beløp: number;
33+
}>;
34+
ytelser: Array<{
35+
navn: string;
36+
beløp: number;
37+
}>;
38+
}
2939
export interface KorrigertInntektOppgave extends oppgaveBase {
3040
oppgavetype: Oppgavetype.BEKREFT_KORRIGERT_INNTEKT;
3141
oppgavetypeData: {
3242
periodeForInntekt: {
3343
fraOgMed: Date;
3444
tilOgMed: Date;
3545
};
36-
inntektFraAinntekt: {
37-
arbeidstakerOgFrilansInntekt: number;
38-
inntektFraYtelse: number;
39-
};
46+
inntektFraAinntekt: InntektFraAInntekt;
4047
inntektFraDeltaker?: {
4148
arbeidstakerOgFrilansInntekt?: number;
4249
inntektFraYtelse?: number;

packages/ung-deltakelse-opplyser-api/src/client/types.gen.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,14 @@ export type KorrigertInntektOppgavetypeDataDto = OppgavetypeDataDto & {
4545
tilOgMed: string;
4646
};
4747
inntektFraAinntekt: {
48-
arbeidstakerOgFrilansInntekt: number;
49-
inntektFraYtelse: number;
48+
arbeidsgivere: Array<{
49+
navn: string;
50+
beløp: number;
51+
}>;
52+
ytelser: Array<{
53+
navn: string;
54+
beløp: number;
55+
}>;
5056
};
5157
inntektFraDeltaker?: {
5258
arbeidstakerOgFrilansInntekt?: number;

packages/ung-deltakelse-opplyser-api/src/client/zod.gen.ts

+24-4
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,18 @@ export const zDeltakelseOpplysningDto = z.object({
4242
z.object({}).merge(
4343
z.object({
4444
inntektFraAinntekt: z.object({
45-
arbeidstakerOgFrilansInntekt: z.number().optional(),
46-
inntektFraYtelse: z.number().optional(),
45+
arbeidsgivere: z.array(
46+
z.object({
47+
navn: z.string(),
48+
beløp: z.number(),
49+
}),
50+
),
51+
ytelser: z.array(
52+
z.object({
53+
navn: z.string(),
54+
beløp: z.number(),
55+
}),
56+
),
4757
}),
4858
inntektFraDeltaker: z.object({
4959
arbeidstakerOgFrilansInntekt: z.number().optional(),
@@ -87,8 +97,18 @@ export const zEndretStartdatoOppgavetypeDataDto = z.object({}).merge(
8797
export const zKorrigertOppgavetypeDataDto = z.object({}).merge(
8898
z.object({
8999
inntektFraAinntekt: z.object({
90-
arbeidstakerOgFrilansInntekt: z.number().optional(),
91-
inntektFraYtelse: z.number().optional(),
100+
arbeidsgivere: z.array(
101+
z.object({
102+
navn: z.string(),
103+
beløp: z.number(),
104+
}),
105+
),
106+
ytelser: z.array(
107+
z.object({
108+
navn: z.string(),
109+
beløp: z.number(),
110+
}),
111+
),
92112
}),
93113
inntektFraDeltaker: z.object({
94114
arbeidstakerOgFrilansInntekt: z.number().optional(),

0 commit comments

Comments
 (0)