Skip to content

Commit befa22e

Browse files
committed
Bugfix - sort søknadshendelser FORVENTET_SVAR
1 parent 0b74c11 commit befa22e

File tree

4 files changed

+265
-7
lines changed

4 files changed

+265
-7
lines changed

apps/dine-pleiepenger/api-mock-server/api-mock-server.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ const helmet = require('helmet');
44
const server = express();
55
const søknader = require('./mockdata/soknader.json');
66
// const saker = require('./mockdata/saker-søknad-og-endring-ubehandlet.json');
7-
const saker = require('./mockdata/saker-med-to-vedtak.json');
7+
// const saker = require('./mockdata/saker-med-to-vedtak.json');
88
// const saker = require('./mockdata/saker-uten-søknad-men-behandling.json');
99
// const saker = require('./mockdata/sak-uten-behandling.json');
1010
// const saker = require('./mockdata/saker.json');
1111
// const saker = require('./mockdata/saker-sn.json');
1212
// const saker = require('./mockdata/saker-med-venteårsak.json');
13+
const saker = require('./mockdata/saker-debug.json');
1314

1415
server.use(express.json());
1516

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
[
2+
{
3+
"pleietrengende": {
4+
"identitetsnummer": "21522057999",
5+
"fødselsdato": "2020-12-21",
6+
"fornavn": "GRÅ",
7+
"mellomnavn": null,
8+
"etternavn": "EKSPLOSJON",
9+
"aktørId": "2426520634541"
10+
},
11+
"sak": {
12+
"saksnummer": "1DQARL2",
13+
"saksbehandlingsFrist": "2024-03-27",
14+
"fagsakYtelseType": { "kode": "PSB", "kodeverk": "FAGSAK_YTELSE" },
15+
"ytelseType": "PSB",
16+
"behandlinger": [
17+
{
18+
"status": "UNDER_BEHANDLING",
19+
"opprettetTidspunkt": "2024-02-14T11:30:09.000Z",
20+
"avsluttetTidspunkt": null,
21+
"søknader": [
22+
{
23+
"søknadId": "67bc44cb-bd73-4ba7-91b2-c069cf5abe8d",
24+
"søknadstype": "ENDRINGSMELDING",
25+
"k9FormatSøknad": {
26+
"søknadId": "67bc44cb-bd73-4ba7-91b2-c069cf5abe8d",
27+
"versjon": "1.0.0",
28+
"mottattDato": "2024-04-22T14:08:12.567Z",
29+
"søker": { "norskIdentitetsnummer": "26499327918" },
30+
"språk": null,
31+
"ytelse": {
32+
"type": "PLEIEPENGER_SYKT_BARN",
33+
"barn": { "norskIdentitetsnummer": "21522057999", "fødselsdato": "2020-12-21" },
34+
"søknadsperiode": [],
35+
"endringsperiode": [],
36+
"trekkKravPerioder": [],
37+
"opptjeningAktivitet": {},
38+
"dataBruktTilUtledning": {
39+
"harForståttRettigheterOgPlikter": null,
40+
"harBekreftetOpplysninger": null,
41+
"samtidigHjemme": null,
42+
"harMedsøker": null,
43+
"soknadDialogCommitSha": null,
44+
"bekrefterPeriodeOver8Uker": null,
45+
"ukjenteArbeidsforhold": []
46+
},
47+
"annetDataBruktTilUtledning": {
48+
"harForståttRettigheterOgPlikter": null,
49+
"harBekreftetOpplysninger": null,
50+
"soknadDialogCommitSha": null,
51+
"annetData": "{\"valgteEndringer\":{\"arbeidstid\":true,\"lovbestemtFerie\":false}}"
52+
},
53+
"infoFraPunsj": null,
54+
"bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} },
55+
"utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} },
56+
"beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} },
57+
"nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} },
58+
"tilsynsordning": { "perioder": {} },
59+
"lovbestemtFerie": { "perioder": {} },
60+
"arbeidstid": {
61+
"arbeidstakerList": [
62+
{
63+
"norskIdentitetsnummer": null,
64+
"organisasjonsnummer": "967170232",
65+
"organisasjonsnavn": "SNILL TORPEDO",
66+
"arbeidstidInfo": {
67+
"perioder": {
68+
"2024-03-18/2024-03-22": {
69+
"jobberNormaltTimerPerDag": "PT4H",
70+
"faktiskArbeidTimerPerDag": "PT2H"
71+
}
72+
}
73+
}
74+
}
75+
],
76+
"frilanserArbeidstidInfo": null,
77+
"selvstendigNæringsdrivendeArbeidstidInfo": null
78+
},
79+
"uttak": { "perioder": {} },
80+
"omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null }
81+
},
82+
"journalposter": [],
83+
"begrunnelseForInnsending": { "tekst": null },
84+
"kildesystem": "endringsdialog"
85+
},
86+
"dokumenter": [
87+
{
88+
"journalpostId": "637607202",
89+
"dokumentInfoId": "667158670",
90+
"saksnummer": "1DQARL2",
91+
"tittel": "Endringsmelding for pleiepenger sykt barn",
92+
"dokumentType": "PLEIEPENGER_SYKT_BARN_SOKNAD",
93+
"filtype": "PDF",
94+
"harTilgang": true,
95+
"url": "http://sif-innsyn-api/dokument/637607202/667158670/ARKIV",
96+
"relevanteDatoer": [
97+
{ "dato": "2024-04-22T16:08:15", "datotype": "DATO_OPPRETTET" },
98+
{ "dato": "2024-04-22T16:08:15", "datotype": "DATO_DOKUMENT" },
99+
{ "dato": "2024-04-22T16:08:21", "datotype": "DATO_JOURNALFOERT" },
100+
{ "dato": "2024-04-22T16:08:12", "datotype": "DATO_REGISTRERT" }
101+
]
102+
}
103+
],
104+
"arbeidsgivere": [{ "organisasjonsnummer": "967170232", "navn": "SNILL TORPEDO" }]
105+
},
106+
{
107+
"søknadId": "c82e2cfa-e928-49c3-bd6b-cb88f36ce63b",
108+
"søknadstype": "SØKNAD",
109+
"k9FormatSøknad": {
110+
"søknadId": "c82e2cfa-e928-49c3-bd6b-cb88f36ce63b",
111+
"versjon": "1.0.0",
112+
"mottattDato": "2024-02-14T11:17:39.392Z",
113+
"søker": { "norskIdentitetsnummer": "26499327918" },
114+
"språk": "nb",
115+
"ytelse": {
116+
"type": "PLEIEPENGER_SYKT_BARN",
117+
"barn": { "norskIdentitetsnummer": "21522057999", "fødselsdato": null },
118+
"søknadsperiode": ["2024-03-12/2024-03-22"],
119+
"endringsperiode": [],
120+
"trekkKravPerioder": [],
121+
"opptjeningAktivitet": {},
122+
"dataBruktTilUtledning": null,
123+
"annetDataBruktTilUtledning": {
124+
"harForståttRettigheterOgPlikter": true,
125+
"harBekreftetOpplysninger": true,
126+
"soknadDialogCommitSha": null,
127+
"annetData": null
128+
},
129+
"infoFraPunsj": null,
130+
"bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} },
131+
"utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} },
132+
"beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} },
133+
"nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} },
134+
"tilsynsordning": {
135+
"perioder": { "2024-03-12/2024-03-22": { "etablertTilsynTimerPerDag": "PT0S" } }
136+
},
137+
"lovbestemtFerie": { "perioder": {} },
138+
"arbeidstid": {
139+
"arbeidstakerList": [
140+
{
141+
"norskIdentitetsnummer": null,
142+
"organisasjonsnummer": "967170232",
143+
"organisasjonsnavn": "SNILL TORPEDO",
144+
"arbeidstidInfo": {
145+
"perioder": {
146+
"2024-03-12/2024-03-22": {
147+
"jobberNormaltTimerPerDag": "PT4H",
148+
"faktiskArbeidTimerPerDag": "PT0S"
149+
}
150+
}
151+
}
152+
}
153+
],
154+
"frilanserArbeidstidInfo": {
155+
"perioder": {
156+
"2024-03-12/2024-03-22": {
157+
"jobberNormaltTimerPerDag": "PT0S",
158+
"faktiskArbeidTimerPerDag": "PT0S"
159+
}
160+
}
161+
},
162+
"selvstendigNæringsdrivendeArbeidstidInfo": null
163+
},
164+
"uttak": {
165+
"perioder": {
166+
"2024-03-12/2024-03-22": { "timerPleieAvBarnetPerDag": "PT7H30M" }
167+
}
168+
},
169+
"omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null }
170+
},
171+
"journalposter": [],
172+
"begrunnelseForInnsending": { "tekst": null },
173+
"kildesystem": "søknadsdialog"
174+
},
175+
"dokumenter": [
176+
{
177+
"journalpostId": "637581711",
178+
"dokumentInfoId": "667124031",
179+
"saksnummer": "1DQARL2",
180+
"tittel": "Søknad om pleiepenger for sykt barn",
181+
"dokumentType": "PLEIEPENGER_SYKT_BARN_SOKNAD",
182+
"filtype": "PDF",
183+
"harTilgang": true,
184+
"url": "http://sif-innsyn-api/dokument/637581711/667124031/ARKIV",
185+
"relevanteDatoer": [
186+
{ "dato": "2024-02-14T12:17:42", "datotype": "DATO_OPPRETTET" },
187+
{ "dato": "2024-02-14T12:17:42", "datotype": "DATO_DOKUMENT" },
188+
{ "dato": "2024-02-14T12:17:50", "datotype": "DATO_JOURNALFOERT" },
189+
{ "dato": "2024-02-14T12:17:39", "datotype": "DATO_REGISTRERT" }
190+
]
191+
},
192+
{
193+
"journalpostId": "637581711",
194+
"dokumentInfoId": "667124032",
195+
"saksnummer": "1DQARL2",
196+
"tittel": "Cladding_Siding_Tan2.jpg",
197+
"dokumentType": "PLEIEPENGER_SYKT_BARN_SOKNAD",
198+
"filtype": "PDF",
199+
"harTilgang": true,
200+
"url": "http://sif-innsyn-api/dokument/637581711/667124032/ARKIV",
201+
"relevanteDatoer": [
202+
{ "dato": "2024-02-14T12:17:42", "datotype": "DATO_OPPRETTET" },
203+
{ "dato": "2024-02-14T12:17:42", "datotype": "DATO_DOKUMENT" },
204+
{ "dato": "2024-02-14T12:17:50", "datotype": "DATO_JOURNALFOERT" },
205+
{ "dato": "2024-02-14T12:17:39", "datotype": "DATO_REGISTRERT" }
206+
]
207+
}
208+
],
209+
"arbeidsgivere": [{ "organisasjonsnummer": "967170232", "navn": "SNILL TORPEDO" }]
210+
}
211+
],
212+
"aksjonspunkter": [],
213+
"utgåendeDokumenter": []
214+
}
215+
]
216+
}
217+
}
218+
]

apps/dine-pleiepenger/src/utils/__tests__/sakUtils.test.ts

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { ISODateToDate } from '@navikt/sif-common-utils';
22
import { Behandling } from '../../server/api-models/BehandlingSchema';
33
import { Behandlingsstatus } from '../../server/api-models/Behandlingsstatus';
4-
import { getSisteBehandlingISak, sortBehandlingerNyesteFørst } from '../sakUtils';
4+
import { getSisteBehandlingISak, sortBehandlingerNyesteFørst, sortSøknadshendelse } from '../sakUtils';
55
import { Sak } from '../../server/api-models/SakSchema';
6+
import { Søknadshendelse, SøknadshendelseType } from '../../types/Søknadshendelse';
7+
import { Søknadstype } from '../../server/api-models/Søknadstype';
68

79
const behandling1: Behandling = {
810
status: Behandlingsstatus.UNDER_BEHANDLING,
@@ -44,4 +46,35 @@ describe('sakUtils', () => {
4446
expect(sisteBehandling).toEqual(behandling2);
4547
});
4648
});
49+
50+
describe('sortSøknadshendelse', () => {
51+
const hendelse1: Søknadshendelse = {
52+
dato: ISODateToDate('2020-01-01'),
53+
type: SøknadshendelseType.FERDIG_BEHANDLET,
54+
};
55+
const hendelse2: Søknadshendelse = {
56+
dato: ISODateToDate('2020-01-03'),
57+
type: SøknadshendelseType.MOTTATT_SØKNAD,
58+
søknad: {} as any,
59+
};
60+
const hendelse3: Søknadshendelse = {
61+
dato: ISODateToDate('2020-01-03'),
62+
type: SøknadshendelseType.FERDIG_BEHANDLET,
63+
};
64+
65+
const hendelseForventetSvar: Søknadshendelse = {
66+
dato: ISODateToDate('2020-01-02'),
67+
type: SøknadshendelseType.FORVENTET_SVAR,
68+
søknadstyperIBehandling: [Søknadstype.SØKNAD],
69+
};
70+
71+
it('sorterer riktig på hendelser som ikke er FORVENTET_SVAR', () => {
72+
const result = [hendelse1, hendelse2, hendelse3].sort(sortSøknadshendelse);
73+
expect(result).toEqual([hendelse1, hendelse3, hendelse2]);
74+
});
75+
it('sorterer alltid FORVENTET_SVAR sist', () => {
76+
const result = [hendelseForventetSvar, hendelse1, hendelse2, hendelse3].sort(sortSøknadshendelse);
77+
expect(result).toEqual([hendelse1, hendelse3, hendelse2, hendelseForventetSvar]);
78+
});
79+
});
4780
});

apps/dine-pleiepenger/src/utils/sakUtils.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,13 @@ export const sortSøknader = (søknader: Søknad[]): Søknad[] => {
4343
return sortBy(søknader, ({ k9FormatSøknad }: Søknad) => k9FormatSøknad.mottattDato.getTime()).reverse();
4444
};
4545

46-
export const sortSøknadshendelser = (hendelser: Søknadshendelse[]): Søknadshendelse[] => {
47-
return sortBy(hendelser, ({ dato }: Søknadshendelse) => dato?.getTime());
46+
export const sortSøknadshendelse = (h1: Søknadshendelse, h2: Søknadshendelse): number => {
47+
if (h1.type === SøknadshendelseType.FORVENTET_SVAR) {
48+
return 1;
49+
} else if (h2.type === SøknadshendelseType.FORVENTET_SVAR) {
50+
return -1;
51+
}
52+
return (h1.dato?.getTime() || 0) > (h2.dato?.getTime() || 0) ? 1 : -1;
4853
};
4954

5055
export const getBehandlingsstatusISak = (sak: Sak): BehandlingsstatusISak | undefined => {
@@ -112,9 +117,10 @@ export const getSøknadstyperIBehandling = (søknader: Søknad[]): Array<Søknad
112117
};
113118

114119
export const getAlleHendelserISak = (sak: Sak): Søknadshendelse[] => {
115-
return sortSøknadshendelser(
116-
sak.behandlinger.map((b) => getHendelserIBehandling(b, sak.saksbehandlingsFrist)).flat(),
117-
);
120+
const søknadshendelser: Søknadshendelse[] = sak.behandlinger
121+
.map((b) => getHendelserIBehandling(b, sak.saksbehandlingsFrist))
122+
.flat();
123+
return søknadshendelser.sort(sortSøknadshendelse);
118124
};
119125

120126
export const getViktigsteVenteårsakForAksjonspunkter = (aksjonspunkter: Aksjonspunkt[]): Venteårsak => {

0 commit comments

Comments
 (0)