From 870c7399a4c572af02f00ebe34e2cd2b361bdd4b Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 16 Jan 2025 11:25:44 +0100 Subject: [PATCH 01/31] Utvide Arbeidsgiver med ansattPerioder --- .../api/__tests__/fetchInitialData.test.ts | 100 ++++++++++++++---- .../api/endpoints/arbeidsgivereEndpoint.ts | 24 +---- .../ArbeidsaktivitetBlockHeader.tsx | 13 --- .../src/app/i18n/appMessages.ts | 2 - .../src/app/types/Arbeidsgiver.ts | 5 +- .../utils/__tests__/getSakFromK9Sak.test.ts | 41 ++++--- .../src/app/utils/getSakFromK9Sak.ts | 40 +++++-- .../utils/getSakOgArbeidsgivereDebugInfo.ts | 3 +- .../src/app/utils/initialDataUtils.ts | 30 +++++- .../getDataBruktTilUtledning.test.ts" | 4 +- .../app/utils/ukjentArbeidsforholdUtils.ts | 20 ++-- .../arbeidsgiver-mock.ts | 6 ++ .../src/storybook/data/arbeidsgivereMock.ts | 4 +- .../src/storybook/data/sakMock.ts | 8 +- 14 files changed, 204 insertions(+), 96 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts index 95474f10c9..ebf62f0695 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts @@ -1,25 +1,85 @@ -import { ISODateRangeToDateRange, dateToISODate } from '@navikt/sif-common-utils'; -import { getPeriodeForArbeidsgiverOppslag } from '../../utils/initialDataUtils'; +import { ISODateRangeToDateRange, ISODateToDate, dateToISODate } from '@navikt/sif-common-utils'; +import { + getArbeidsgivereFromArbeidsgiverOrganisasjoner, + getPeriodeForArbeidsgiverOppslag, +} from '../../utils/initialDataUtils'; +import { Arbeidsgivere } from '@navikt/sif-common-api'; +import { Arbeidsgiver } from '../../types'; -describe('getPeriodeForArbeidsgiverOppslag', () => { - const endringsperiode = ISODateRangeToDateRange('2022-05-01/2022-10-01'); +describe('initialDataUtils', () => { + describe('getPeriodeForArbeidsgiverOppslag', () => { + const endringsperiode = ISODateRangeToDateRange('2022-05-01/2022-10-01'); - it('returnerer minste dateRange ut fra maks endringsperiode og samletSøknadsperiode', () => { - const samletSøknadsperiode = ISODateRangeToDateRange('2022-06-01/2022-09-01'); - const result = getPeriodeForArbeidsgiverOppslag(samletSøknadsperiode, endringsperiode); - expect(result).toBeDefined(); - if (result) { - expect(dateToISODate(result.from)).toEqual('2022-06-01'); - expect(dateToISODate(result.to)).toEqual('2022-09-01'); - } + it('returnerer minste dateRange ut fra maks endringsperiode og samletSøknadsperiode', () => { + const samletSøknadsperiode = ISODateRangeToDateRange('2022-06-01/2022-09-01'); + const result = getPeriodeForArbeidsgiverOppslag(samletSøknadsperiode, endringsperiode); + expect(result).toBeDefined(); + if (result) { + expect(dateToISODate(result.from)).toEqual('2022-06-01'); + expect(dateToISODate(result.to)).toEqual('2022-09-01'); + } + }); + it('returnerer endringsperiode hvis samletSøknadsperiode går utover endringsperiode', () => { + const samletSøknadsperiode = ISODateRangeToDateRange('2021-01-01/2023-01-01'); + const result = getPeriodeForArbeidsgiverOppslag(samletSøknadsperiode, endringsperiode); + expect(result).toBeDefined(); + if (result) { + expect(dateToISODate(result.from)).toEqual('2022-05-01'); + expect(dateToISODate(result.to)).toEqual('2022-10-01'); + } + }); }); - it('returnerer endringsperiode hvis samletSøknadsperiode går utover endringsperiode', () => { - const samletSøknadsperiode = ISODateRangeToDateRange('2021-01-01/2023-01-01'); - const result = getPeriodeForArbeidsgiverOppslag(samletSøknadsperiode, endringsperiode); - expect(result).toBeDefined(); - if (result) { - expect(dateToISODate(result.from)).toEqual('2022-05-01'); - expect(dateToISODate(result.to)).toEqual('2022-10-01'); - } + + describe('getArbeidsgivereFromArbeidsgiverOrganisasjoner', () => { + it('oppretter ansettelsesperiode riktig når bruker har ett ansettelsesforhold hos én arbeidsgiver', () => { + const respons: Arbeidsgivere = { + organisasjoner: [ + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: ISODateToDate('2022-01-01'), + ansattTom: ISODateToDate('2022-02-01'), + }, + ], + }; + const expectedResult: Arbeidsgiver[] = [ + { + key: 'a_123', + navn: 'a', + organisasjonsnummer: '123', + ansettelsesperioder: [{ from: ISODateToDate('2022-01-01'), to: ISODateToDate('2022-02-01') }], + }, + ]; + expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(respons.organisasjoner)).toEqual(expectedResult); + }); + it('oppretter ansettelsesperioder riktig når bruker har to ansettelsesforhold hos samme arbeidsgiver', () => { + const respons: Arbeidsgivere = { + organisasjoner: [ + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: ISODateToDate('2022-01-01'), + ansattTom: ISODateToDate('2022-02-01'), + }, + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: ISODateToDate('2022-02-15'), + }, + ], + }; + const expectedResult: Arbeidsgiver[] = [ + { + key: 'a_123', + navn: 'a', + organisasjonsnummer: '123', + ansettelsesperioder: [ + { from: ISODateToDate('2022-01-01'), to: ISODateToDate('2022-02-01') }, + { from: ISODateToDate('2022-02-15') }, + ], + }, + ]; + expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(respons.organisasjoner)).toEqual(expectedResult); + }); }); }); diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index 2833c6dc48..3007777318 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -1,16 +1,12 @@ -import { DateRange, dateToISODate, ISODate, ISODateToDate } from '@navikt/sif-common-utils'; +import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; +import { DateRange, dateToISODate } from '@navikt/sif-common-utils'; import { Arbeidsgiver } from '@types'; +import { getArbeidsgivereFromArbeidsgiverOrganisasjoner } from '../../utils/initialDataUtils'; import api from '../api'; import { ApiEndpointPsb } from './'; -import { getArbeidsgiverKey } from '../../utils/arbeidsgiverUtils'; type AAregArbeidsgiver = { - organisasjoner?: Array<{ - organisasjonsnummer: string; - navn: string; - ansattFom?: ISODate; - ansattTom?: ISODate; - }>; + organisasjoner?: ArbeidsgiverOrganisasjon[]; }; export const arbeidsgivereEndpoint = { @@ -21,17 +17,7 @@ export const arbeidsgivereEndpoint = { ApiEndpointPsb.arbeidsgiver, `ytelse=endringsmelding-pleiepenger&fra_og_med=${dateToISODate(from)}&til_og_med=${dateToISODate(to)}`, ); - const aaArbeidsgivere: Arbeidsgiver[] = []; - (data.organisasjoner || []).forEach((a) => { - aaArbeidsgivere.push({ - key: getArbeidsgiverKey(a.organisasjonsnummer), - organisasjonsnummer: a.organisasjonsnummer, - navn: a.navn, - ansattFom: a.ansattFom ? ISODateToDate(a.ansattFom) : undefined, - ansattTom: a.ansattTom ? ISODateToDate(a.ansattTom) : undefined, - }); - }); - return Promise.resolve(aaArbeidsgivere); + return Promise.resolve(getArbeidsgivereFromArbeidsgiverOrganisasjoner(data.organisasjoner || [])); } catch (error) { return Promise.reject(error); } diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx index f1acdf6ead..23877cdc62 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx @@ -2,7 +2,6 @@ import { BodyLong, Heading } from '@navikt/ds-react'; import React from 'react'; import { Office1 } from '@navikt/ds-icons'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { dateFormatter } from '@navikt/sif-common-utils'; import { ArbeidsaktivitetType, Arbeidsgiver } from '@types'; import { AppText } from '../../i18n'; import EndretTag from '../tags/EndretTag'; @@ -44,18 +43,6 @@ const ArbeidsaktivitetBlockHeader: React.FunctionComponent = ({ values={{ orgnr: arbeidsgiver.organisasjonsnummer }} /> - {arbeidsgiver.ansattFom && ( - - )} - {arbeidsgiver.ansattTom && ( - - )} ) : undefined} {(endret || erUkjentAktivitet) && ( diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index cec102af43..ede4dd0293 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -29,8 +29,6 @@ const nb = { 'arbeidsaktivitetBlockHeader.nyttArbeidsforhold': 'Nytt arbeidsforhold', 'arbeidsaktivitetBlockHeader.arbeidsgiver.orgnummer': 'Organisasjonsnummer: {orgnr}', - 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFom': 'Ansatt: {dato}.', - 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattTom': ' Sluttdato: {dato}.', 'ikkeAnsattMelding.tekst': 'Er du feilregistrert eller du har sluttet i dette arbeidsforholdet før perioden du søkte pleiepenger, må du be arbeidsgiveren om å sende en ny A-melding med sluttdato. Dette gjør de enten via eget lønns- og personalsystem, eller via Altinn.', diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts b/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts index 9eb45da42f..6ecbfcd2e1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts @@ -1,7 +1,8 @@ +import { MaybeDateRange } from '@navikt/sif-common-utils'; + export interface Arbeidsgiver { key: string /** orgnummer prefixet med a_ */; organisasjonsnummer: string; navn: string; - ansattFom?: Date; - ansattTom?: Date; + ansettelsesperioder: MaybeDateRange[]; } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 148b9a39c1..aca240e691 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -38,14 +38,14 @@ describe('getSakFromK9Sak', () => { const endringsperiode: DateRange = { from: ISODateToDate(isoFrom), to: ISODateToDate(isoTo) }; it('beholder uendret endringsperiode hvis bruker er fortsatt ansatt', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { - ansattTom: undefined, + ansettelsesperioder: [{ to: undefined }], } as Arbeidsgiver); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoTo); }); it('justerer endringsperiode hvis sluttdato er før endringsperiode sluttdato', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { - ansattTom: ISODateToDate(isoSluttdato), + ansettelsesperioder: [{ to: ISODateToDate(isoSluttdato) }], } as Arbeidsgiver); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoSluttdato); @@ -291,7 +291,7 @@ describe('getSakFromK9Sak', () => { ISODateRangeToDateRange('2020-04-01/2020-05-01'), ]; const arbeidsgiver: Arbeidsgiver = { - ansattFom: ISODateToDate('2019-01-01'), + ansettelsesperioder: [{ from: ISODateToDate('2019-01-01') }], } as Arbeidsgiver; describe('uten ansattTom', () => { @@ -301,7 +301,9 @@ describe('getSakFromK9Sak', () => { it('returnerer true når ansattFom er mellom to søknadsperiode', () => { expect( erArbeidsgiverInnenforSøknadsperioder( - { ansattFom: ISODateToDate('2020-02-03') } as Arbeidsgiver, + { + ansettelsesperioder: [{ from: ISODateToDate('2020-02-03') }], + } as Arbeidsgiver, søknadsperioder, ), ).toBeTruthy(); @@ -309,7 +311,9 @@ describe('getSakFromK9Sak', () => { it('returnerer true når ansattFom er i en søknadsperiode', () => { expect( erArbeidsgiverInnenforSøknadsperioder( - { ansattFom: ISODateToDate('2020-03-02') } as Arbeidsgiver, + { + ansettelsesperioder: [{ from: ISODateToDate('2020-03-02') }], + } as Arbeidsgiver, søknadsperioder, ), ).toBeTruthy(); @@ -317,7 +321,9 @@ describe('getSakFromK9Sak', () => { it('returnerer false når ansattFom er etter søknadsperiode', () => { expect( erArbeidsgiverInnenforSøknadsperioder( - { ansattFom: ISODateToDate('2020-05-02') } as Arbeidsgiver, + { + ansettelsesperioder: [{ from: ISODateToDate('2020-05-02') }], + } as Arbeidsgiver, søknadsperioder, ), ).toBeFalsy(); @@ -328,8 +334,9 @@ describe('getSakFromK9Sak', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { - ansattFom: ISODateToDate('2019-01-01'), - ansattTom: ISODateToDate('2023-01-01'), + ansettelsesperioder: [ + { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2023-01-01') }, + ], } as Arbeidsgiver, søknadsperioder, ), @@ -339,8 +346,9 @@ describe('getSakFromK9Sak', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { - ansattFom: ISODateToDate('2019-01-01'), - ansattTom: ISODateToDate('2020-03-01'), + ansettelsesperioder: [ + { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2020-03-01') }, + ], } as Arbeidsgiver, søknadsperioder, ), @@ -350,8 +358,12 @@ describe('getSakFromK9Sak', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { - ansattFom: ISODateToDate('2019-01-01'), - ansattTom: ISODateToDate('2019-12-31'), + ansettelsesperioder: [ + { + from: ISODateToDate('2019-01-01'), + to: ISODateToDate('2019-12-31'), + }, + ], } as Arbeidsgiver, søknadsperioder, ), @@ -361,8 +373,9 @@ describe('getSakFromK9Sak', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { - ansattFom: ISODateToDate('2020-03-01'), - ansattTom: ISODateToDate('2020-03-02'), + ansettelsesperioder: [ + { from: ISODateToDate('2020-03-01'), to: ISODateToDate('2020-03-02') }, + ], } as Arbeidsgiver, søknadsperioder, ), diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index 575af27f71..f223711e29 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -14,7 +14,9 @@ import { ISODateRangeToDateRange, ISODateToDate, joinAdjacentDateRanges, + MaybeDateRange, numberDurationAsDuration, + sortMaybeDateRange, } from '@navikt/sif-common-utils'; import { Arbeidsaktivitet, @@ -162,9 +164,11 @@ const getEndringsperiodeForArbeidsgiver = ( tillattEndringsperiode: DateRange, arbeidsgiver: Arbeidsgiver, ): DateRange => { + const { ansettelsesperioder } = arbeidsgiver; + const sisteAnsattTom = ansettelsesperioder.sort(sortMaybeDateRange).reverse()[0]?.to; return { ...tillattEndringsperiode, - to: arbeidsgiver.ansattTom || tillattEndringsperiode.to, + to: sisteAnsattTom || tillattEndringsperiode.to, }; }; @@ -395,6 +399,7 @@ const getPerioderMedArbeidstid = ( arbeidstidPeriodeMap: K9SakArbeidstidPeriodeMap, tillattEndringsperiode: DateRange, ): PeriodeMedArbeidstid[] => { + /** TODO - filtrere ut perioder hvor en ikke er ansatt? */ const perioder = trimArbeidstidTilTillattEndringsperiode(arbeidstidPeriodeMap, tillattEndringsperiode); return grupperArbeidstidPerioder(perioder).map((gruppertPeriode) => { @@ -537,24 +542,41 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( }; /** - * Sjekker om ansatt-periode hos arbeidsgiver er innenfor søknadsperioder + * Sjekker om en er ansatt hos arbeidsgiver innenfor søknadsperioder * @param arbeidsgiver * @param søknadsperioder * @returns boolean */ const erArbeidsgiverInnenforSøknadsperioder = (arbeidsgiver: Arbeidsgiver, søknadsperioder: DateRange[]): boolean => { + const { ansettelsesperioder = [] } = arbeidsgiver; + return ansettelsesperioder.some((ansettelsesperiode) => + erAnsattPeriodeInnenforSøknadsperioder(ansettelsesperiode, søknadsperioder), + ); +}; + +/** + * Sjekker om ansatt-periode hos arbeidsgiver er innenfor søknadsperioder + * @param arbeidsgiver + * @param søknadsperioder + * @returns boolean + */ +const erAnsattPeriodeInnenforSøknadsperioder = ( + ansettelsesperiode: MaybeDateRange, + søknadsperioder: DateRange[], +): boolean => { const sisteSøknadsdag = getLastDateInDateRanges(søknadsperioder); - if (!arbeidsgiver.ansattFom || !sisteSøknadsdag) { + + if (!ansettelsesperiode.from || !sisteSøknadsdag) { return false; } - if (!arbeidsgiver.ansattTom) { - return dayjs(arbeidsgiver.ansattFom).isSameOrBefore(sisteSøknadsdag); + if (!ansettelsesperiode.to) { + return dayjs(ansettelsesperiode.from).isSameOrBefore(sisteSøknadsdag); } - const ansattPeriode: DateRange = { - from: arbeidsgiver.ansattFom, - to: arbeidsgiver.ansattTom || sisteSøknadsdag, + const periode: DateRange = { + from: ansettelsesperiode.from, + to: ansettelsesperiode.to || sisteSøknadsdag, }; - return søknadsperioder.some((søknadsperiode) => dateRangesCollide([søknadsperiode, ansattPeriode])); + return søknadsperioder.some((søknadsperiode) => dateRangesCollide([søknadsperiode, periode])); }; /** diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts index b255e616a1..d0749dfccf 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts @@ -41,8 +41,7 @@ const maskSak = (sak: Sak) => { const maskArbeidsgivere = (arbeidsgivere: Arbeidsgiver[]) => { return arbeidsgivere.map((a) => ({ - ansattFom: a.ansattFom, - ansattTom: a.ansattTom, + ansettelsesperioder: a.ansettelsesperioder, a: maskString(a.key), })); }; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts index 7943fbf04f..08fbd560fa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts @@ -1,5 +1,8 @@ -import { DateRange } from '@navikt/sif-common-utils'; +import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; +import { DateRange, MaybeDateRange } from '@navikt/sif-common-utils'; import dayjs from 'dayjs'; +import { Arbeidsgiver } from '../types'; +import { getArbeidsgiverKey } from './arbeidsgiverUtils'; export const getPeriodeForArbeidsgiverOppslag = ( dateRangeAlleSaker: DateRange, @@ -14,3 +17,28 @@ export const getPeriodeForArbeidsgiverOppslag = ( } return dateRange; }; + +export const getArbeidsgivereFromArbeidsgiverOrganisasjoner = ( + organisasjoner: ArbeidsgiverOrganisasjon[], +): Arbeidsgiver[] => { + const aaArbeidsgivereMap = new Map(); + (organisasjoner || []).forEach((a) => { + const ansettelsesperiode: MaybeDateRange = { + from: a.ansattFom ? a.ansattFom : undefined, + to: a.ansattTom ? a.ansattTom : undefined, + }; + + if (aaArbeidsgivereMap.has(a.organisasjonsnummer)) { + aaArbeidsgivereMap.get(a.organisasjonsnummer)!.ansettelsesperioder!.push(ansettelsesperiode); + } else { + aaArbeidsgivereMap.set(a.organisasjonsnummer, { + key: getArbeidsgiverKey(a.organisasjonsnummer), + organisasjonsnummer: a.organisasjonsnummer, + navn: a.navn, + ansettelsesperioder: [ansettelsesperiode], + }); + } + }); + + return Array.from(aaArbeidsgivereMap.values()); +}; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" index de4e266a2d..cbebd99adf 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" @@ -36,7 +36,7 @@ describe('getUkjentArbeidsforholdApiDataFromSøknadsdata', () => { organisasjonsnummer: '123', key: 'a_123', navn: 'Arbeidsgibvernavn', - ansattFom: ISODateToDate('2001-01-01'), + ansettelsesperioder: [{ from: ISODateToDate('2001-01-01') }], }, ]; const arbeidstid: ArbeidstidSøknadsdata = { @@ -62,7 +62,7 @@ describe('mapArbeidsforholdToArbeidsforholdApiData', () => { organisasjonsnummer: '123', key: 'a_123', navn: 'Arbeidsgibvernavn', - ansattFom: ISODateToDate('2001-01-01'), + ansettelsesperioder: [{ from: ISODateToDate('2001-01-01') }], }; it('returnerer riktig hvis en ikke er ansatt i arbeidsforholdet', () => { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index 9e07727350..d25424318b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -30,6 +30,7 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( ansattTom: Date | undefined, ): DateRange[] => { const alleSøknadsperioder: DateRange = getDateRangeFromDateRanges(søknadsperioder); + /** TODO - sjekke denne opp mot flere ansattelsesperioder */ const ansettelsesperiode = { from: ansattFom || alleSøknadsperioder.from, to: ansattTom || alleSøknadsperioder.to, @@ -39,15 +40,22 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - { ansattFom, ansattTom }: Arbeidsgiver, + { ansettelsesperioder }: Arbeidsgiver, normalarbeidstidPerUke: Duration, faktiskArbeidstidPerUke: Duration | undefined, ): PeriodeMedArbeidstid[] => { - const søknadsperioderForArbeidsforhold = getSøknadsperioderForUkjentArbeidsforhold( - søknadsperioder, - ansattFom, - ansattTom, - ); + if (ansettelsesperioder.length === 0) { + return []; + } + /** TODO - håndtere flere ansettelsesperioder */ + const søknadsperioderForArbeidsforhold = + ansettelsesperioder.length === 1 + ? getSøknadsperioderForUkjentArbeidsforhold( + søknadsperioder, + ansettelsesperioder[0].from, + ansettelsesperioder[0].to, + ) + : []; const perioderMedArbeidstid: PeriodeMedArbeidstid[] = []; const arbeidstidPerDag: ArbeidstidPerDag = { diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts index 74e2a56eec..06302bf1db 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts @@ -4,6 +4,12 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2003-01-16', + ansattTom: '2022-12-31', + }, + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2024-02-01', ansattTom: null, }, ], diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts index 5c987052fa..0f248c2032 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts @@ -5,12 +5,12 @@ export const arbeidsgivereMock: Arbeidsgiver[] = [ key: 'a_805824352', navn: 'Dykkert svømmeutstyr', organisasjonsnummer: '805824352', - ansattFom: new Date('2008-10-01'), + ansettelsesperioder: [{ from: new Date('2008-10-01') }], }, { key: 'a_839942907', navn: 'Flaks og fly', organisasjonsnummer: '839942907', - ansattFom: new Date('2008-10-01'), + ansettelsesperioder: [{ from: new Date('2008-10-01') }], }, ]; diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index 1a32ad2d86..037818806f 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -9,13 +9,13 @@ export const sakMock: Sak = { key: 'a_947064642', organisasjonsnummer: '947064642', navn: 'IKKE-I-SAK-AS 1', - ansattFom: new Date('2023-02-01T00:00:00.000Z'), + ansettelsesperioder: [{ from: new Date('2023-02-01T00:00:00.000Z') }], }, { key: 'a_947064643', organisasjonsnummer: '947064643', navn: 'IKKE-I-SAK-AS 2', - ansattFom: new Date('2023-02-01T00:00:00.000Z'), + ansettelsesperioder: [{ from: new Date('2023-02-01T00:00:00.000Z') }], }, ], harArbeidsgivereIkkeISak: false, @@ -49,7 +49,7 @@ export const sakMock: Sak = { key: 'a_839942907', organisasjonsnummer: '839942907', navn: 'HÅRREISENDE FRISØR', - ansattFom: new Date('2002-05-09T00:00:00.000Z'), + ansettelsesperioder: [{ from: new Date('2002-05-09T00:00:00.000Z') }], }, type: ArbeidsaktivitetType.arbeidstaker, navn: 'HÅRREISENDE FRISØR', @@ -1030,7 +1030,7 @@ export const sakMock: Sak = { key: 'a_839942907', organisasjonsnummer: '839942907', navn: 'HÅRREISENDE FRISØR', - ansattFom: new Date('2002-05-09T00:00:00.000Z'), + ansettelsesperioder: [{ from: new Date('2002-05-09T00:00:00.000Z') }], }, type: ArbeidsaktivitetType.arbeidstaker, navn: 'HÅRREISENDE FRISØR', From f86b55f85e2625313d4d3aebec265665be00988e Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 16 Jan 2025 11:28:18 +0100 Subject: [PATCH 02/31] Rename Arbeidsgiver pga strukturendring --- .../api/__tests__/fetchInitialData.test.ts | 6 ++-- .../api/endpoints/arbeidsgivereEndpoint.ts | 4 +-- .../src/app/api/fetchInitialData.ts | 6 ++-- .../ArbeidsaktivitetBlock.tsx | 4 +-- .../ArbeidsaktivitetBlockHeader.tsx | 4 +-- .../app/hooks/useS\303\270knadInitialData.ts" | 4 +-- .../app/hooks/useS\303\270knadsdataStatus.ts" | 8 ++--- .../ArbeidstidArbeidstakerOppsummering.tsx" | 4 +-- .../oppsummering/ArbeidstidOppsummering.tsx" | 4 +-- .../UkjentArbeidsforholdForm.tsx" | 11 +++++-- .../ukjentArbeidsforholdStepUtils.ts" | 8 ++--- ...eidsgiver.ts => ArbeidsgiverForEndring.ts} | 2 +- .../src/app/types/Sak.ts | 6 ++-- .../app/types/S\303\270knadContextState.ts" | 4 +-- .../src/app/types/index.ts | 2 +- .../utils/__tests__/getSakFromK9Sak.test.ts | 29 +++++++++++-------- .../utils/__tests__/tilgangskontroll.test.ts | 8 ++--- .../src/app/utils/getSakFromK9Sak.ts | 17 ++++++----- .../utils/getSakOgArbeidsgivereDebugInfo.ts | 6 ++-- .../src/app/utils/initialDataUtils.ts | 6 ++-- .../src/app/utils/k9SakUtils.ts | 4 +-- .../getDataBruktTilUtledning.test.ts" | 6 ++-- .../getApiDataFromS\303\270knadsdata.ts" | 4 +-- ...rbeidstidApiDataFromS\303\270knadsdata.ts" | 4 +-- .../getDataBruktTilUtledning.ts" | 8 ++--- .../src/app/utils/tilgangskontroll.ts | 4 +-- .../app/utils/ukjentArbeidsforholdUtils.ts | 8 ++--- .../src/storybook/data/arbeidsgivereMock.ts | 4 +-- 28 files changed, 99 insertions(+), 86 deletions(-) rename apps/endringsmelding-pleiepenger/src/app/types/{Arbeidsgiver.ts => ArbeidsgiverForEndring.ts} (83%) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts index ebf62f0695..485015d804 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts @@ -4,7 +4,7 @@ import { getPeriodeForArbeidsgiverOppslag, } from '../../utils/initialDataUtils'; import { Arbeidsgivere } from '@navikt/sif-common-api'; -import { Arbeidsgiver } from '../../types'; +import { ArbeidsgiverForEndring } from '../../types'; describe('initialDataUtils', () => { describe('getPeriodeForArbeidsgiverOppslag', () => { @@ -42,7 +42,7 @@ describe('initialDataUtils', () => { }, ], }; - const expectedResult: Arbeidsgiver[] = [ + const expectedResult: ArbeidsgiverForEndring[] = [ { key: 'a_123', navn: 'a', @@ -68,7 +68,7 @@ describe('initialDataUtils', () => { }, ], }; - const expectedResult: Arbeidsgiver[] = [ + const expectedResult: ArbeidsgiverForEndring[] = [ { key: 'a_123', navn: 'a', diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index 3007777318..4446469b72 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -1,6 +1,6 @@ import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; import { DateRange, dateToISODate } from '@navikt/sif-common-utils'; -import { Arbeidsgiver } from '@types'; +import { ArbeidsgiverForEndring } from '@types'; import { getArbeidsgivereFromArbeidsgiverOrganisasjoner } from '../../utils/initialDataUtils'; import api from '../api'; import { ApiEndpointPsb } from './'; @@ -10,7 +10,7 @@ type AAregArbeidsgiver = { }; export const arbeidsgivereEndpoint = { - fetch: async (periode: DateRange): Promise => { + fetch: async (periode: DateRange): Promise => { try { const { from, to } = periode; const { data } = await api.psb.get( diff --git a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts index cdbf370e65..b9731e31e4 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts @@ -2,7 +2,7 @@ import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/src/util import { getMaybeEnv } from '@navikt/sif-common-env'; import { DateRange, dateRangeUtils } from '@navikt/sif-common-utils'; import { - Arbeidsgiver, + ArbeidsgiverForEndring, IngenTilgangÅrsak, isK9Sak, isUgyldigK9SakFormat, @@ -32,7 +32,7 @@ export const fetchInitialData = async ( søker: Søker; k9saker: K9Sak[]; antallSakerFørEndringsperiode: number; - arbeidsgivere: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; lagretSøknadState?: SøknadStatePersistence; }> => { const [søker, k9sakerResult] = await Promise.all([søkerEndpoint.fetch(), sakerEndpoint.fetch()]); @@ -53,7 +53,7 @@ export const fetchInitialData = async ( try { let k9saker: K9Sak[]; - let arbeidsgivere: Arbeidsgiver[]; + let arbeidsgivere: ArbeidsgiverForEndring[]; const sakerInnenforEndringsperiode = k9sakerResult.k9Saker; const sakerFørEndringsperiode = k9sakerResult.eldreSaker; diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx index bd7888cc93..ab9490e51e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx @@ -1,12 +1,12 @@ import { ExpansionCard, Panel } from '@navikt/ds-react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeidsaktivitetType, Arbeidsgiver } from '@types'; +import { ArbeidsaktivitetType, ArbeidsgiverForEndring } from '@types'; import ArbeidsaktivitetBlockHeader from './ArbeidsaktivitetBlockHeader'; interface Props { navn: string; type: ArbeidsaktivitetType; - arbeidsgiver?: Arbeidsgiver; + arbeidsgiver?: ArbeidsgiverForEndring; endret?: { tekst: string }; erUkjent?: boolean; renderAsExpansionCard?: boolean; diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx index 23877cdc62..a82b1344f6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx @@ -2,7 +2,7 @@ import { BodyLong, Heading } from '@navikt/ds-react'; import React from 'react'; import { Office1 } from '@navikt/ds-icons'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeidsaktivitetType, Arbeidsgiver } from '@types'; +import { ArbeidsaktivitetType, ArbeidsgiverForEndring } from '@types'; import { AppText } from '../../i18n'; import EndretTag from '../tags/EndretTag'; import NyTag from '../tags/NyTag'; @@ -10,7 +10,7 @@ import './arbeidsaktivitetBlockHeader.scss'; interface Props { navn: string; - arbeidsgiver?: Arbeidsgiver; + arbeidsgiver?: ArbeidsgiverForEndring; type: ArbeidsaktivitetType; erUkjentAktivitet?: boolean; endret?: { diff --git "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" index 31b1fc9d06..dd87dbffda 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" @@ -3,7 +3,7 @@ import { getMaybeEnv } from '@navikt/sif-common-env'; import { useEffectOnce } from '@navikt/sif-common-hooks'; import { DateRange } from '@navikt/sif-common-utils'; import { - Arbeidsgiver, + ArbeidsgiverForEndring, IngenTilgangÅrsak, K9Sak, RequestStatus, @@ -47,7 +47,7 @@ const prepInitialData = ( søker: Søker; k9saker: K9Sak[]; antallSakerFørEndringsperiode: number; - arbeidsgivere: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; lagretSøknadState?: SøknadStatePersistence; }, tillattEndringsperiode: DateRange, diff --git "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" index f965424539..b7a391b682 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" @@ -3,7 +3,7 @@ import isEqual from 'react-fast-compare'; import { useSøknadContext } from '@hooks'; import { useEffectOnce } from '@navikt/sif-common-hooks'; import { SoknadStepsConfig } from '@navikt/sif-common-soknad-ds'; -import { Arbeidsgiver, Søknadsdata } from '@types'; +import { ArbeidsgiverForEndring, Søknadsdata } from '@types'; import { StepFormValues } from '../søknad/config/StepFormValues'; import { StepId } from '../søknad/config/StepId'; import { useStepFormValuesContext } from '../søknad/context/StepFormValuesContext'; @@ -18,7 +18,7 @@ const getPrecedingSteps = (currentStepIndex: number, stepConfig: SoknadStepsConf const getStepSøknadsdataFromStepFormValues = ( step: StepId, stepFormValues: StepFormValues, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ) => { const formValues = stepFormValues[step]; if (!formValues) { @@ -39,7 +39,7 @@ const isStepFormValuesAndStepSøknadsdataValid = ( step: StepId, stepFormValues: StepFormValues, søknadsdata: Søknadsdata, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ): boolean => { if (stepFormValues[step]) { const stepSøknadsdata = søknadsdata[step]; @@ -54,7 +54,7 @@ const isStepFormValuesAndStepSøknadsdataValid = ( export const useSøknadsdataStatus = ( stepId: StepId, stepConfig: SoknadStepsConfig, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ) => { const [invalidSteps, setInvalidSteps] = useState([]); diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" index 6bca966541..e22add7330 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" @@ -1,6 +1,6 @@ import { Heading } from '@navikt/ds-react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeiderIPeriodenSvar, Arbeidsgiver, ArbeidstakerApiData } from '@types'; +import { ArbeiderIPeriodenSvar, ArbeidsgiverForEndring, ArbeidstakerApiData } from '@types'; import { AppText } from '../../../i18n'; import ArbeidstidUker from '../../../modules/arbeidstid-uker/ArbeidstidUker'; import { ArbeiderIPeriodenSvarIntlKey } from '../arbeidstid/arbeidsaktivitet-form-part/components/ArbeiderIPeriodenSpørsmål'; @@ -8,7 +8,7 @@ import { oppsummeringStepUtils } from './oppsummeringStepUtils'; type Props = { arbeidstaker: ArbeidstakerApiData; - arbeidsgivere: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; arbeidstidKolonneTittel?: string; }; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" index e52d946d4c..4af25ab5fc 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" @@ -1,7 +1,7 @@ import { Heading } from '@navikt/ds-react'; import React from 'react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { Arbeidsgiver, ArbeidstidApiData } from '@types'; +import { ArbeidsgiverForEndring, ArbeidstidApiData } from '@types'; import ArbeidstidUker from '../../../modules/arbeidstid-uker/ArbeidstidUker'; import ArbeidstidArbeidstakerOppsummering from './ArbeidstidArbeidstakerOppsummering'; import { oppsummeringStepUtils } from './oppsummeringStepUtils'; @@ -9,7 +9,7 @@ import { AppText, useAppIntl } from '../../../i18n'; interface Props { arbeidstid: ArbeidstidApiData; - arbeidsgivere: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; } const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, arbeidsgivere }) => { diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" index 1519ff65d1..f44ba927aa 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" @@ -10,7 +10,12 @@ import { YesOrNo, } from '@navikt/sif-common-formik-ds'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/src/validation/intlFormErrorHandler'; -import { ArbeidsaktivitetType, Arbeidsgiver, SøknadContextState, UkjentArbeidsforholdSøknadsdata } from '@types'; +import { + ArbeidsaktivitetType, + ArbeidsgiverForEndring, + SøknadContextState, + UkjentArbeidsforholdSøknadsdata, +} from '@types'; import ArbeidsaktivitetBlock from '../../../components/arbeidsaktivitet-block/ArbeidsaktivitetBlock'; import IkkeAnsattMelding from '../../../components/ikke-ansatt-melding/IkkeAnsattMelding'; import InfoNormalarbeidstid from '../../../components/info-normalarbeidstid/InfoNormalarbeidstid'; @@ -58,8 +63,8 @@ const { FormikWrapper, Form } = getTypedFormComponents< >(); interface Props { - arbeidsgivere: Arbeidsgiver[]; - arbeidsgivereIkkeISak: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivereIkkeISak: ArbeidsgiverForEndring[]; ukjentArbeidsforholdSøknadsdata?: UkjentArbeidsforholdSøknadsdata; stepId: StepId; goBack?: () => void; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" index 27387a64e8..cfc5ede6b1 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" @@ -1,7 +1,7 @@ import { getNumberFromNumberInputValue, IntlErrorObject, YesOrNo } from '@navikt/sif-common-formik-ds'; import { getNumberValidator, getYesOrNoValidator } from '@navikt/sif-common-formik-ds/src/validation'; import { decimalDurationToDuration, durationToDecimalDuration } from '@navikt/sif-common-utils'; -import { Arbeidsforhold, Arbeidsgiver, UkjentArbeidsforholdSøknadsdata } from '@types'; +import { Arbeidsforhold, ArbeidsgiverForEndring, UkjentArbeidsforholdSøknadsdata } from '@types'; import { UkjentArbeidsforholdFormValues, UkjentArbeidsgiverFormField, @@ -25,7 +25,7 @@ const arbeidsforholdSøknadsdataToFormValues = ( const ukjentArbeidsgiverFormValuesToSøknadsdata = ( formValues: UkjentArbeidsforholdArbeidsgiverFormValues, - arbeidsgiver?: Arbeidsgiver, + arbeidsgiver?: ArbeidsgiverForEndring, ): Arbeidsforhold | undefined => { if (!arbeidsgiver) { return undefined; @@ -54,7 +54,7 @@ const ukjentArbeidsgiverFormValuesToSøknadsdata = ( export const getUkjentArbeidsforholdStepInitialValues = ( ukjentArbeidsforholdSøknadsdata: UkjentArbeidsforholdSøknadsdata | undefined, formValues: UkjentArbeidsforholdFormValues | undefined, - arbeidsgivereIkkeISak: Arbeidsgiver[], + arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], ): UkjentArbeidsforholdFormValues => { if (formValues) { return formValues; @@ -79,7 +79,7 @@ export const getUkjentArbeidsforholdStepInitialValues = ( export const getUkjentArbeidsforholdSøknadsdataFromFormValues = ( values: UkjentArbeidsforholdFormValues, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ): UkjentArbeidsforholdSøknadsdata => { const arbeidsforhold: Arbeidsforhold[] = []; Object.keys(values.arbeidsforhold).forEach((key) => { diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts b/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts similarity index 83% rename from apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts rename to apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts index 6ecbfcd2e1..8bf8e909aa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Arbeidsgiver.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts @@ -1,6 +1,6 @@ import { MaybeDateRange } from '@navikt/sif-common-utils'; -export interface Arbeidsgiver { +export interface ArbeidsgiverForEndring { key: string /** orgnummer prefixet med a_ */; organisasjonsnummer: string; navn: string; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index 4394a04670..6d7b2ed88c 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -1,6 +1,6 @@ import { DateRange, Duration, ISODate, ISODateRangeMap } from '@navikt/sif-common-utils'; import { FeriedagMap } from '../søknad/steps/lovbestemt-ferie/LovbestemtFerieStep'; -import { Arbeidsgiver } from './Arbeidsgiver'; +import { ArbeidsgiverForEndring } from './ArbeidsgiverForEndring'; import { K9SakBarn } from './K9Sak'; export interface Sak { @@ -9,7 +9,7 @@ export interface Sak { /** Settes til true hvis det finnes en arbeidsgiver som ikke har arbeidstid i sak */ harArbeidsgivereIkkeISak: boolean; /** Alle arbeidsgivere som ikke finnes i sak, men som finnes i Aa-reg */ - arbeidsgivereIkkeISak: Arbeidsgiver[]; + arbeidsgivereIkkeISak: ArbeidsgiverForEndring[]; /** Alle aktiviteter som ikke har arbeidsgiver i AA-reg */ arbeidsaktivitetMedUkjentArbeidsgiver: ArbeidsaktivitetUkjentArbeidsgiver[]; /** Alle arbeidsaktiviteter i sak. Arbeidsgivere flates ut og legges sammen med evt. frilans og selvstendig */ @@ -81,7 +81,7 @@ interface ArbeidsaktivitetBase { export interface ArbeidsaktivitetArbeidstaker extends ArbeidsaktivitetBase { type: ArbeidsaktivitetType.arbeidstaker; - arbeidsgiver: Arbeidsgiver; + arbeidsgiver: ArbeidsgiverForEndring; erUkjentArbeidsforhold: boolean; } export interface ArbeidsaktivitetUkjentArbeidsgiver { diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" index 1ea6986245..d605fbfabe 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" @@ -1,7 +1,7 @@ import { DateRange } from '@navikt/sif-common-utils'; import { StepId } from '../søknad/config/StepId'; import { SøknadRoutes } from '../søknad/config/SøknadRoutes'; -import { Arbeidsgiver } from './Arbeidsgiver'; +import { ArbeidsgiverForEndring } from './ArbeidsgiverForEndring'; import { K9Sak } from './K9Sak'; import { Sak } from './Sak'; import { Søker } from './Søker'; @@ -15,7 +15,7 @@ export interface SøknadContextState { k9saker: K9Sak[]; sak: Sak; tillattEndringsperiode: DateRange; - arbeidsgivere: Arbeidsgiver[]; + arbeidsgivere: ArbeidsgiverForEndring[]; søknadsdata: Søknadsdata; søknadRoute?: SøknadRoutes; endringsmeldingSendt?: boolean; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/index.ts b/apps/endringsmelding-pleiepenger/src/app/types/index.ts index 71882538d3..be188ef5d8 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/index.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/index.ts @@ -1,7 +1,7 @@ export * from './ArbeiderIPeriodenSvar'; export * from './Arbeidsforhold'; export * from './ArbeidstidEndring'; -export * from './Arbeidsgiver'; +export * from './ArbeidsgiverForEndring'; export * from './ArbeidsgiverIkkeFunnetError'; export * from './ArbeidstidSøknadsdata'; export * from './EndringType'; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index aca240e691..7595682e22 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -9,7 +9,12 @@ import { ISODuration, ISODurationToDuration, } from '@navikt/sif-common-utils'; -import { Arbeidsgiver, ArbeidstidEnkeltdagMap, FaktiskOgNormalArbeidstid, K9SakArbeidstidPeriodeMap } from '@types'; +import { + ArbeidsgiverForEndring, + ArbeidstidEnkeltdagMap, + FaktiskOgNormalArbeidstid, + K9SakArbeidstidPeriodeMap, +} from '@types'; import { _getSakFromK9Sak } from '../getSakFromK9Sak'; const { @@ -39,14 +44,14 @@ describe('getSakFromK9Sak', () => { it('beholder uendret endringsperiode hvis bruker er fortsatt ansatt', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { ansettelsesperioder: [{ to: undefined }], - } as Arbeidsgiver); + } as ArbeidsgiverForEndring); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoTo); }); it('justerer endringsperiode hvis sluttdato er før endringsperiode sluttdato', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { ansettelsesperioder: [{ to: ISODateToDate(isoSluttdato) }], - } as Arbeidsgiver); + } as ArbeidsgiverForEndring); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoSluttdato); }); @@ -290,9 +295,9 @@ describe('getSakFromK9Sak', () => { ISODateRangeToDateRange('2020-01-01/2020-02-01'), ISODateRangeToDateRange('2020-04-01/2020-05-01'), ]; - const arbeidsgiver: Arbeidsgiver = { + const arbeidsgiver: ArbeidsgiverForEndring = { ansettelsesperioder: [{ from: ISODateToDate('2019-01-01') }], - } as Arbeidsgiver; + } as ArbeidsgiverForEndring; describe('uten ansattTom', () => { it('returnerer true når ansattFom er før søknadsperiode', () => { @@ -303,7 +308,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-02-03') }], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeTruthy(); @@ -313,7 +318,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-03-02') }], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeTruthy(); @@ -323,7 +328,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-05-02') }], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeFalsy(); @@ -337,7 +342,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2023-01-01') }, ], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeTruthy(); @@ -349,7 +354,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2020-03-01') }, ], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeTruthy(); @@ -364,7 +369,7 @@ describe('getSakFromK9Sak', () => { to: ISODateToDate('2019-12-31'), }, ], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeFalsy(); @@ -376,7 +381,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2020-03-01'), to: ISODateToDate('2020-03-02') }, ], - } as Arbeidsgiver, + } as ArbeidsgiverForEndring, søknadsperioder, ), ).toBeFalsy(); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 6f151cf20c..13574c001a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -1,11 +1,11 @@ import { DateRange, ISODateRangeToDateRange, ISODurationToDuration } from '@navikt/sif-common-utils'; -import { Arbeidsgiver, K9SakArbeidstaker, K9SakArbeidstidPeriodeMap } from '@types'; +import { ArbeidsgiverForEndring, K9SakArbeidstaker, K9SakArbeidstidPeriodeMap } from '@types'; import { tilgangskontroll, tilgangskontrollUtils } from '../tilgangskontroll'; import { vi } from 'vitest'; -const arbeidsgiver1: Arbeidsgiver = { key: 'a_1', organisasjonsnummer: '1' } as Arbeidsgiver; -const arbeidsgiver2: Arbeidsgiver = { key: 'a_2', organisasjonsnummer: '2' } as Arbeidsgiver; -const arbeidsgiver3: Arbeidsgiver = { key: 'a_3', organisasjonsnummer: '3' } as Arbeidsgiver; +const arbeidsgiver1: ArbeidsgiverForEndring = { key: 'a_1', organisasjonsnummer: '1' } as ArbeidsgiverForEndring; +const arbeidsgiver2: ArbeidsgiverForEndring = { key: 'a_2', organisasjonsnummer: '2' } as ArbeidsgiverForEndring; +const arbeidsgiver3: ArbeidsgiverForEndring = { key: 'a_3', organisasjonsnummer: '3' } as ArbeidsgiverForEndring; const arbeidstaker1: K9SakArbeidstaker = { organisasjonsnummer: '1' } as K9SakArbeidstaker; const arbeidstaker2: K9SakArbeidstaker = { organisasjonsnummer: '2' } as K9SakArbeidstaker; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index f223711e29..ba9d50d284 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -25,7 +25,7 @@ import { ArbeidsaktivitetFrilanser, ArbeidsaktivitetSelvstendigNæringsdrivende, ArbeidsaktivitetType, - Arbeidsgiver, + ArbeidsgiverForEndring, ArbeidsgiverIkkeFunnetError, ArbeidstidEnkeltdagMap, Arbeidsuke, @@ -64,7 +64,7 @@ interface _PeriodisertK9FormatArbeidstidPerioder { */ export const getSakFromK9Sak = ( k9sak: K9Sak, - alleArbeidsgivere: Arbeidsgiver[], + alleArbeidsgivere: ArbeidsgiverForEndring[], tillattEndringsperiode: DateRange, ): Sak => { const { arbeidstakerList, frilanserArbeidstidInfo, selvstendigNæringsdrivendeArbeidstidInfo } = @@ -137,7 +137,7 @@ export const getSakFromK9Sak = ( /** Henter utk9SakArbeidstakere med arbeidsgiver funnet i AA-reg */ export const getArbeidsaktiviteterMedKjentArbeidsgiver = ( k9SakArbeidstakere: K9SakArbeidstaker[], - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ) => { return k9SakArbeidstakere.filter((a) => arbeidsgivere.some((arbg) => arbg.organisasjonsnummer === a.organisasjonsnummer), @@ -147,7 +147,7 @@ export const getArbeidsaktiviteterMedKjentArbeidsgiver = ( /** Henter utk9SakArbeidstakere hvor arbeidsgiver IKKE er funnet i AA-reg */ export const getArbeidsaktiviteterMedUkjentArbeidsgiver = ( k9SakArbeidstakere: K9SakArbeidstaker[], - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ) => { return k9SakArbeidstakere.filter( (a) => arbeidsgivere.some((arbg) => arbg.organisasjonsnummer === a.organisasjonsnummer) === false, @@ -162,7 +162,7 @@ export const getArbeidsaktiviteterMedUkjentArbeidsgiver = ( */ const getEndringsperiodeForArbeidsgiver = ( tillattEndringsperiode: DateRange, - arbeidsgiver: Arbeidsgiver, + arbeidsgiver: ArbeidsgiverForEndring, ): DateRange => { const { ansettelsesperioder } = arbeidsgiver; const sisteAnsattTom = ansettelsesperioder.sort(sortMaybeDateRange).reverse()[0]?.to; @@ -474,7 +474,7 @@ const getArbeidsaktivitetPerioderPart = ( */ const getArbeidsaktivitetArbeidstaker = ( arbeidstaker: K9SakArbeidstaker, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], endringsperiode: DateRange, ): ArbeidsaktivitetArbeidstaker => { const { @@ -547,7 +547,10 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( * @param søknadsperioder * @returns boolean */ -const erArbeidsgiverInnenforSøknadsperioder = (arbeidsgiver: Arbeidsgiver, søknadsperioder: DateRange[]): boolean => { +const erArbeidsgiverInnenforSøknadsperioder = ( + arbeidsgiver: ArbeidsgiverForEndring, + søknadsperioder: DateRange[], +): boolean => { const { ansettelsesperioder = [] } = arbeidsgiver; return ansettelsesperioder.some((ansettelsesperiode) => erAnsattPeriodeInnenforSøknadsperioder(ansettelsesperiode, søknadsperioder), diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts index d0749dfccf..ffbc751382 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts @@ -1,5 +1,5 @@ import { DateRange } from '@navikt/sif-common-utils'; -import { Arbeidsgiver, K9Sak, K9SakArbeidstaker, Sak } from '@types'; +import { ArbeidsgiverForEndring, K9Sak, K9SakArbeidstaker, Sak } from '@types'; import { maskString } from './maskString'; const maskK9Arbeidstaker = (k9Arbeidstaker: K9SakArbeidstaker) => { @@ -39,7 +39,7 @@ const maskSak = (sak: Sak) => { }; }; -const maskArbeidsgivere = (arbeidsgivere: Arbeidsgiver[]) => { +const maskArbeidsgivere = (arbeidsgivere: ArbeidsgiverForEndring[]) => { return arbeidsgivere.map((a) => ({ ansettelsesperioder: a.ansettelsesperioder, a: maskString(a.key), @@ -49,7 +49,7 @@ const maskArbeidsgivere = (arbeidsgivere: Arbeidsgiver[]) => { export const getSakOgArbeidsgivereDebugInfo = ( k9sak: K9Sak, sak: Sak, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], endringsperiode: DateRange, ) => { return { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts index 08fbd560fa..64ab82b52b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts @@ -1,7 +1,7 @@ import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; import { DateRange, MaybeDateRange } from '@navikt/sif-common-utils'; import dayjs from 'dayjs'; -import { Arbeidsgiver } from '../types'; +import { ArbeidsgiverForEndring } from '../types'; import { getArbeidsgiverKey } from './arbeidsgiverUtils'; export const getPeriodeForArbeidsgiverOppslag = ( @@ -20,8 +20,8 @@ export const getPeriodeForArbeidsgiverOppslag = ( export const getArbeidsgivereFromArbeidsgiverOrganisasjoner = ( organisasjoner: ArbeidsgiverOrganisasjon[], -): Arbeidsgiver[] => { - const aaArbeidsgivereMap = new Map(); +): ArbeidsgiverForEndring[] => { + const aaArbeidsgivereMap = new Map(); (organisasjoner || []).forEach((a) => { const ansettelsesperiode: MaybeDateRange = { from: a.ansattFom ? a.ansattFom : undefined, diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts index 7ca7be4b32..c105f5492f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts @@ -1,5 +1,5 @@ import { DateRange, dateRangeUtils, getDateRangeFromDateRanges } from '@navikt/sif-common-utils'; -import { Arbeidsgiver, K9Sak, K9SakArbeidstaker } from '@types'; +import { ArbeidsgiverForEndring, K9Sak, K9SakArbeidstaker } from '@types'; import dayjs from 'dayjs'; import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'; @@ -15,7 +15,7 @@ export const getSamletDateRangeForK9Saker = (saker: K9Sak[]): DateRange | undefi }; export const finnesArbeidsgiverIK9Sak = ( - arbeidsgiver: Arbeidsgiver, + arbeidsgiver: ArbeidsgiverForEndring, arbeidsgivereISak: K9SakArbeidstaker[], ): boolean => { return arbeidsgivereISak.some( diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" index cbebd99adf..def865c127 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" @@ -2,7 +2,7 @@ import { ISODateToDate } from '@navikt/sif-common-utils'; import { ArbeiderIPeriodenSvar, ArbeidsforholdAktivt, - Arbeidsgiver, + ArbeidsgiverForEndring, ArbeidstidSøknadsdata, TimerEllerProsent, } from '../../../types'; @@ -31,7 +31,7 @@ describe('getDataBruktTilUtledningAnnetData', () => { }); describe('getUkjentArbeidsforholdApiDataFromSøknadsdata', () => { - const arbeidsgivere: Arbeidsgiver[] = [ + const arbeidsgivere: ArbeidsgiverForEndring[] = [ { organisasjonsnummer: '123', key: 'a_123', @@ -58,7 +58,7 @@ describe('getUkjentArbeidsforholdApiDataFromSøknadsdata', () => { }); describe('mapArbeidsforholdToArbeidsforholdApiData', () => { - const arbeidsgiver: Arbeidsgiver = { + const arbeidsgiver: ArbeidsgiverForEndring = { organisasjonsnummer: '123', key: 'a_123', navn: 'Arbeidsgibvernavn', diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index ce5651523a..3afa5e880c 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -1,5 +1,5 @@ import { dateToISODate } from '@navikt/sif-common-utils'; -import { Arbeidsgiver, Sak, SøknadApiData, Søknadsdata, ValgteEndringer } from '@types'; +import { ArbeidsgiverForEndring, Sak, SøknadApiData, Søknadsdata, ValgteEndringer } from '@types'; import { getArbeidstidApiDataFromSøknadsdata } from './getArbeidstidApiDataFromSøknadsdata'; import { getDataBruktTilUtledningAnnetDataApiData, getDataBruktTilUtledningApiData } from './getDataBruktTilUtledning'; import { getLovbestemtFerieApiDataFromSøknadsdata } from './getLovbestemtFerieApiDataFraSøknadsdata'; @@ -9,7 +9,7 @@ export const getApiDataFromSøknadsdata = ( søknadsdata: Søknadsdata, sak: Sak, valgteEndringer: ValgteEndringer, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ): SøknadApiData | undefined => { const { id, arbeidstid, lovbestemtFerie, ukjentArbeidsforhold } = søknadsdata; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" index 1b0f52d18d..8ebee9ad13 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" @@ -13,7 +13,7 @@ import { Arbeidsaktiviteter, ArbeidsaktivitetType, ArbeiderIPeriodenSvar, - Arbeidsgiver, + ArbeidsgiverForEndring, ArbeidstakerApiData, ArbeidstidApiData, ArbeidstidEndring, @@ -98,7 +98,7 @@ export const getArbeidstidApiDataFromSøknadsdata = ( søknadsperioder: DateRange[], arbeidsaktivitetEndring: ArbeidstidArbeidsaktivitetMap, arbeidsaktiviteter: Arbeidsaktiviteter, - arbeidsgivereIkkeISak: Arbeidsgiver[], + arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], ukjentArbeidsforhold?: UkjentArbeidsforholdSøknadsdata, ): ArbeidstidApiData => { const frilansAktivitetEndring = arbeidsaktivitetEndring[ArbeidsaktivitetType.frilanser]?.endringer; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" index 9d89b43b0f..4107f48fa3 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" @@ -2,7 +2,7 @@ import { durationToISODuration } from '@navikt/sif-common-utils'; import { ArbeiderIPeriodenSvar, Arbeidsforhold, - Arbeidsgiver, + ArbeidsgiverForEndring, ArbeidstidSøknadsdata, DataBruktTilUtledningApiData, DataBruktTilUtledningApiDataAnnetData as DataBruktTilUtledningAnnetDataApiData, @@ -15,7 +15,7 @@ import { getOrgNummerFromArbeidsgiverKey } from '../arbeidsgiverUtils'; export const getDataBruktTilUtledningApiData = ( ukjentArbeidsforhold: UkjentArbeidsforholdSøknadsdata | undefined, arbeidstid: ArbeidstidSøknadsdata | undefined, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ): DataBruktTilUtledningApiData => { return { ukjenteArbeidsforhold: getUkjentArbeidsforholdApiDataFromSøknadsdata( @@ -35,7 +35,7 @@ export const getDataBruktTilUtledningAnnetDataApiData = ( export const mapArbeidsforholdToArbeidsforholdApiData = ( arbeidsforhold: Arbeidsforhold, - arbeidsgiver: Arbeidsgiver, + arbeidsgiver: ArbeidsgiverForEndring, arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): UkjentArbeidsforholdApiData => { const organisasjonsnummer = getOrgNummerFromArbeidsgiverKey(arbeidsforhold.arbeidsgiverKey); @@ -63,7 +63,7 @@ export const mapArbeidsforholdToArbeidsforholdApiData = ( export const getUkjentArbeidsforholdApiDataFromSøknadsdata = ( ukjenteArbeidsforhold: Arbeidsforhold[] | undefined, arbeidstid: ArbeidstidSøknadsdata | undefined, - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], ): UkjentArbeidsforholdApiData[] => { if (ukjenteArbeidsforhold === undefined) { return []; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index c6e621285e..59ee6b82bf 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -1,6 +1,6 @@ import { DateRange, durationToDecimalDuration } from '@navikt/sif-common-utils'; import { - Arbeidsgiver, + ArbeidsgiverForEndring, IngenTilgangÅrsak, K9Sak, K9SakArbeidstaker, @@ -92,7 +92,7 @@ const getIngenTilgangMeta = (arbeidstid: K9SakArbeidstid): IngenTilgangMeta => { }; const harArbeidsgiverUtenArbeidsaktivitet = ( - arbeidsgivere: Arbeidsgiver[], + arbeidsgivere: ArbeidsgiverForEndring[], k9SakArbeidstaker: K9SakArbeidstaker[] = [], ): boolean => { return arbeidsgivere.some((arbeidsgiver) => { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index d25424318b..440c3072c1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -13,7 +13,7 @@ import { Arbeidsaktivitet, ArbeidsaktivitetType, ArbeidsforholdAktivt, - Arbeidsgiver, + ArbeidsgiverForEndring, ArbeidstidEnkeltdagMap, ArbeidstidPerDag, ArbeidsukeMap, @@ -40,7 +40,7 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - { ansettelsesperioder }: Arbeidsgiver, + { ansettelsesperioder }: ArbeidsgiverForEndring, normalarbeidstidPerUke: Duration, faktiskArbeidstidPerUke: Duration | undefined, ): PeriodeMedArbeidstid[] => { @@ -97,7 +97,7 @@ export const getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold = ( export const getArbeidsaktivitetForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - arbeidsgiver: Arbeidsgiver, + arbeidsgiver: ArbeidsgiverForEndring, arbeidsforhold: ArbeidsforholdAktivt, arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): Arbeidsaktivitet => { @@ -123,7 +123,7 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( export const getArbeidsaktiviteterForUkjenteArbeidsforhold = ( søknadsperioder: DateRange[], - arbeidsgivereIkkeISak: Arbeidsgiver[], + arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], arbeidsaktivitetFormValues: ArbeidsaktivitetFormValuesMap, ukjentArbeidsforhold?: UkjentArbeidsforholdSøknadsdata, ): Arbeidsaktivitet[] => { diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts index 0f248c2032..1acc5be1af 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts @@ -1,6 +1,6 @@ -import { Arbeidsgiver } from '../../app/types/Arbeidsgiver'; +import { ArbeidsgiverForEndring } from '../../app/types/ArbeidsgiverForEndring'; -export const arbeidsgivereMock: Arbeidsgiver[] = [ +export const arbeidsgivereMock: ArbeidsgiverForEndring[] = [ { key: 'a_805824352', navn: 'Dykkert svømmeutstyr', From 19f30628ce5a20b876619495505dc4e5d1562ff0 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 16 Jan 2025 15:08:02 +0100 Subject: [PATCH 03/31] Vise ansettelsesperioder --- .../api/endpoints/arbeidsgivereEndpoint.ts | 2 +- .../AnsettelsesperioderInfo.tsx | 53 +++++++++++++++++++ .../ArbeidsaktivitetBlockHeader.tsx | 8 +-- .../src/app/i18n/appMessages.ts | 3 ++ 4 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index 4446469b72..094ae49a73 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -15,7 +15,7 @@ export const arbeidsgivereEndpoint = { const { from, to } = periode; const { data } = await api.psb.get( ApiEndpointPsb.arbeidsgiver, - `ytelse=endringsmelding-pleiepenger&fra_og_med=${dateToISODate(from)}&til_og_med=${dateToISODate(to)}`, + `ytelse=endringsmelding-pleiepenger&fra_og_med=${dateToISODate(from)}&til_og_med=${dateToISODate(to)}&inkluder_ansettelsesperioder=true`, ); return Promise.resolve(getArbeidsgivereFromArbeidsgiverOrganisasjoner(data.organisasjoner || [])); } catch (error) { diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx new file mode 100644 index 0000000000..af4a01df44 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx @@ -0,0 +1,53 @@ +import { dateFormatter, MaybeDateRange, sortMaybeDateRange } from '@navikt/sif-common-utils'; +import { AppText, useAppIntl } from '../../i18n'; +import { Box, List } from '@navikt/ds-react'; +import ExpandableInfo from '@navikt/sif-common-core-ds/src/components/expandable-info/ExpandableInfo'; + +interface Props { + ansettelsesperioder: MaybeDateRange[]; +} + +const Ansettelsesperiode = ({ periode }: { periode: MaybeDateRange }) => { + return ( + <> + {periode.from && ( + + )} + {periode.to && ( + + )} + + ); +}; + +const AnsettelsesperioderInfo = ({ ansettelsesperioder }: Props) => { + const { text } = useAppIntl(); + return ansettelsesperioder.length === 1 ? ( + + ) : ( + + + + {ansettelsesperioder + .sort(sortMaybeDateRange) + .reverse() + .map((periode, index) => { + return ( + + + + ); + })} + + + + ); +}; + +export default AnsettelsesperioderInfo; diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx index a82b1344f6..401ed80b31 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx @@ -1,4 +1,4 @@ -import { BodyLong, Heading } from '@navikt/ds-react'; +import { BodyLong, Box, Heading } from '@navikt/ds-react'; import React from 'react'; import { Office1 } from '@navikt/ds-icons'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; @@ -7,6 +7,7 @@ import { AppText } from '../../i18n'; import EndretTag from '../tags/EndretTag'; import NyTag from '../tags/NyTag'; import './arbeidsaktivitetBlockHeader.scss'; +import AnsettelsesperioderInfo from './AnsettelsesperioderInfo'; interface Props { navn: string; @@ -37,12 +38,13 @@ const ArbeidsaktivitetBlockHeader: React.FunctionComponent = ({ {type === ArbeidsaktivitetType.arbeidstaker && arbeidsgiver !== undefined ? ( -
+ -
+ +
) : undefined} {(endret || erUkjentAktivitet) && ( diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index ede4dd0293..76293bc7d1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -29,6 +29,9 @@ const nb = { 'arbeidsaktivitetBlockHeader.nyttArbeidsforhold': 'Nytt arbeidsforhold', 'arbeidsaktivitetBlockHeader.arbeidsgiver.orgnummer': 'Organisasjonsnummer: {orgnr}', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansettelsesperioder': 'Ansettelsesperioder', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFom': 'Ansatt: {dato}.', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattTom': ': Sluttdato: {dato}.', 'ikkeAnsattMelding.tekst': 'Er du feilregistrert eller du har sluttet i dette arbeidsforholdet før perioden du søkte pleiepenger, må du be arbeidsgiveren om å sende en ny A-melding med sluttdato. Dette gjør de enten via eget lønns- og personalsystem, eller via Altinn.', From 9d00d2d062f95767c9245b19efd6aaece7202a97 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 17 Jan 2025 10:20:41 +0100 Subject: [PATCH 04/31] Trim dager til kun ansatt-dager --- .../api/__tests__/fetchInitialData.test.ts | 57 +++++++------ .../api/endpoints/arbeidsgivereEndpoint.ts | 14 +++- .../src/app/utils/getSakFromK9Sak.ts | 80 +++++++++++++++++-- .../src/app/utils/initialDataUtils.ts | 10 +-- .../en-arbeidsgiver-en-periode/sak-mock.ts | 36 +-------- .../arbeidsgiver-mock.ts | 12 +++ 6 files changed, 128 insertions(+), 81 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts index 485015d804..4a6da07973 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts @@ -1,10 +1,10 @@ -import { ISODateRangeToDateRange, ISODateToDate, dateToISODate } from '@navikt/sif-common-utils'; +import { dateToISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; +import { ArbeidsgiverForEndring } from '../../types'; import { getArbeidsgivereFromArbeidsgiverOrganisasjoner, getPeriodeForArbeidsgiverOppslag, } from '../../utils/initialDataUtils'; -import { Arbeidsgivere } from '@navikt/sif-common-api'; -import { ArbeidsgiverForEndring } from '../../types'; +import { AARegArbeidsgiverOrganisasjon } from '../endpoints/arbeidsgivereEndpoint'; describe('initialDataUtils', () => { describe('getPeriodeForArbeidsgiverOppslag', () => { @@ -32,16 +32,15 @@ describe('initialDataUtils', () => { describe('getArbeidsgivereFromArbeidsgiverOrganisasjoner', () => { it('oppretter ansettelsesperiode riktig når bruker har ett ansettelsesforhold hos én arbeidsgiver', () => { - const respons: Arbeidsgivere = { - organisasjoner: [ - { - navn: 'a', - organisasjonsnummer: '123', - ansattFom: ISODateToDate('2022-01-01'), - ansattTom: ISODateToDate('2022-02-01'), - }, - ], - }; + const organisasjoner: AARegArbeidsgiverOrganisasjon[] = [ + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: '2022-01-01', + ansattTom: '2022-02-01', + }, + ]; + const expectedResult: ArbeidsgiverForEndring[] = [ { key: 'a_123', @@ -50,24 +49,22 @@ describe('initialDataUtils', () => { ansettelsesperioder: [{ from: ISODateToDate('2022-01-01'), to: ISODateToDate('2022-02-01') }], }, ]; - expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(respons.organisasjoner)).toEqual(expectedResult); + expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(organisasjoner)).toEqual(expectedResult); }); it('oppretter ansettelsesperioder riktig når bruker har to ansettelsesforhold hos samme arbeidsgiver', () => { - const respons: Arbeidsgivere = { - organisasjoner: [ - { - navn: 'a', - organisasjonsnummer: '123', - ansattFom: ISODateToDate('2022-01-01'), - ansattTom: ISODateToDate('2022-02-01'), - }, - { - navn: 'a', - organisasjonsnummer: '123', - ansattFom: ISODateToDate('2022-02-15'), - }, - ], - }; + const organisasjoner: AARegArbeidsgiverOrganisasjon[] = [ + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: '2022-01-01', + ansattTom: '2022-02-01', + }, + { + navn: 'a', + organisasjonsnummer: '123', + ansattFom: '2022-02-15', + }, + ]; const expectedResult: ArbeidsgiverForEndring[] = [ { key: 'a_123', @@ -79,7 +76,7 @@ describe('initialDataUtils', () => { ], }, ]; - expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(respons.organisasjoner)).toEqual(expectedResult); + expect(getArbeidsgivereFromArbeidsgiverOrganisasjoner(organisasjoner)).toEqual(expectedResult); }); }); }); diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index 094ae49a73..671a16fa14 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -1,12 +1,18 @@ -import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; -import { DateRange, dateToISODate } from '@navikt/sif-common-utils'; +import { DateRange, dateToISODate, ISODate } from '@navikt/sif-common-utils'; import { ArbeidsgiverForEndring } from '@types'; import { getArbeidsgivereFromArbeidsgiverOrganisasjoner } from '../../utils/initialDataUtils'; import api from '../api'; import { ApiEndpointPsb } from './'; -type AAregArbeidsgiver = { - organisasjoner?: ArbeidsgiverOrganisasjon[]; +export type AAregArbeidsgiver = { + organisasjoner?: AARegArbeidsgiverOrganisasjon[]; +}; + +export type AARegArbeidsgiverOrganisasjon = { + organisasjonsnummer: string; + navn: string; + ansattFom?: ISODate; + ansattTom?: ISODate; }; export const arbeidsgivereEndpoint = { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index ba9d50d284..de576bfd80 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -11,6 +11,7 @@ import { getIsoWeekDateRangeForDate, getLastDateInDateRanges, isDateInDateRange, + isDateInDateRanges, ISODateRangeToDateRange, ISODateToDate, joinAdjacentDateRanges, @@ -138,7 +139,7 @@ export const getSakFromK9Sak = ( export const getArbeidsaktiviteterMedKjentArbeidsgiver = ( k9SakArbeidstakere: K9SakArbeidstaker[], arbeidsgivere: ArbeidsgiverForEndring[], -) => { +): K9SakArbeidstaker[] => { return k9SakArbeidstakere.filter((a) => arbeidsgivere.some((arbg) => arbg.organisasjonsnummer === a.organisasjonsnummer), ); @@ -199,6 +200,33 @@ const trimArbeidstidTilTillattEndringsperiode = ( return perioder; }; +// /** +// * Fjerner arbeidstid fra @K9SakArbeidstidPeriodeMap som ikke er en del av ansettelsesperioder +// * @param arbeidstidPeriodeMap +// * @param ansettelsesperioder +// * @returns +// */ +// const trimArbeidstidTilAnsettelsesperioder = ( +// arbeidstidPeriodeMap: K9SakArbeidstidPeriodeMap, +// _ansettelsesperioder: MaybeDateRange[], +// ): K9SakArbeidstidPeriodeMap => { +// const perioder: K9SakArbeidstidPeriodeMap = {}; +// Object.keys(arbeidstidPeriodeMap).forEach(() => { +// // const { from, to } = ISODateRangeToDateRange(key); +// // if (dateRangesCollide([{ from, to }, tillattEndringsperiode], true) === false) { +// // return; // Er ikke innenfor gyldig tidsrom +// // } +// // const førsteDato = tillattEndringsperiode.from; +// // const sisteDato = tillattEndringsperiode.to; +// // const dateRangeToUse: DateRange = { +// // from: dayjs(from).isBefore(førsteDato, 'day') ? førsteDato : from, +// // to: dayjs(to).isAfter(sisteDato, 'day') ? sisteDato : to, +// // }; +// // perioder[dateRangeToISODateRange(dateRangeToUse)] = arbeidstidPeriodeMap[key]; +// }); +// return perioder; +// }; + /** * Finner alle arbeidstidPerioder innenfor et tidsrom * @param dateRange @@ -398,15 +426,22 @@ const getArbeidsukerFromEnkeltdager = (enkeltdager: ArbeidstidEnkeltdagMap): Arb const getPerioderMedArbeidstid = ( arbeidstidPeriodeMap: K9SakArbeidstidPeriodeMap, tillattEndringsperiode: DateRange, + ansettelsesperioder: MaybeDateRange[], ): PeriodeMedArbeidstid[] => { - /** TODO - filtrere ut perioder hvor en ikke er ansatt? */ const perioder = trimArbeidstidTilTillattEndringsperiode(arbeidstidPeriodeMap, tillattEndringsperiode); return grupperArbeidstidPerioder(perioder).map((gruppertPeriode) => { const enkeltdagerIPeriode = getArbeidstidEnkeltdagMapFromPerioder(gruppertPeriode.arbeidstidPerioder); - const arbeidsuker = getArbeidsukerMapFromArbeidsuker(getArbeidsukerFromEnkeltdager(enkeltdagerIPeriode)); + const arbeidsdagerSomKanEndres = getArbeidsdagerInneforEndringsperiodeOgAnsettelsesperioder( + enkeltdagerIPeriode, + tillattEndringsperiode, + ansettelsesperioder, + ); + const uker = getArbeidsukerFromEnkeltdager(arbeidsdagerSomKanEndres); + const periodeSomKanEndres: DateRange = { from: uker[0].periode.from, to: uker[uker.length - 1].periode.to }; + const arbeidsuker = getArbeidsukerMapFromArbeidsuker(uker); const periode: PeriodeMedArbeidstid = { - ...gruppertPeriode.periode, + ...periodeSomKanEndres, arbeidsuker, }; return periode; @@ -454,12 +489,14 @@ const harPerioderEtterEndringsperiode = ( const getArbeidsaktivitetPerioderPart = ( arbeidstidPerioder: K9SakArbeidstidPeriodeMap, endringsperiode: DateRange, + ansettelsesperioder: MaybeDateRange[], ): Pick< Arbeidsaktivitet, 'perioderMedArbeidstid' | 'harPerioderEtterTillattEndringsperiode' | 'harPerioderFørTillattEndringsperiode' > => { + console.log(ansettelsesperioder); return { - perioderMedArbeidstid: getPerioderMedArbeidstid(arbeidstidPerioder, endringsperiode), + perioderMedArbeidstid: getPerioderMedArbeidstid(arbeidstidPerioder, endringsperiode, ansettelsesperioder), harPerioderFørTillattEndringsperiode: harPerioderFørEndringsperiode(arbeidstidPerioder, endringsperiode), harPerioderEtterTillattEndringsperiode: harPerioderEtterEndringsperiode(arbeidstidPerioder, endringsperiode), }; @@ -497,7 +534,11 @@ const getArbeidsaktivitetArbeidstaker = ( type: ArbeidsaktivitetType.arbeidstaker, navn: arbeidsgiver.navn, erUkjentArbeidsforhold: false, - ...getArbeidsaktivitetPerioderPart(perioder, endringsperiodeForArbeidsgiver), + // ansettelsesperioderInnenforEndringsperiode: arbeidsgiver.ansettelsesperioder.map((a) => ({ + // from: a.from || endringsperiode.from, + // to: a.to || endringsperiode.to, + // })), + ...getArbeidsaktivitetPerioderPart(perioder, endringsperiodeForArbeidsgiver, arbeidsgiver.ansettelsesperioder), }; }; @@ -516,7 +557,7 @@ const getArbeidsaktivitetFrilanser = ( key: ArbeidsaktivitetType.frilanser, type: ArbeidsaktivitetType.frilanser, navn: 'Frilanser', - ...getArbeidsaktivitetPerioderPart(frilanserArbeidstidInfo.perioder, endringsperiode), + ...getArbeidsaktivitetPerioderPart(frilanserArbeidstidInfo.perioder, endringsperiode, []), } : undefined; }; @@ -536,7 +577,11 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( key: ArbeidsaktivitetType.selvstendigNæringsdrivende, type: ArbeidsaktivitetType.selvstendigNæringsdrivende, navn: 'Selvstendig næringsdrivende', - ...getArbeidsaktivitetPerioderPart(selvstendigNæringsdrivendeArbeidstidInfo.perioder, endringsperiode), + ...getArbeidsaktivitetPerioderPart( + selvstendigNæringsdrivendeArbeidstidInfo.perioder, + endringsperiode, + [], + ), } : undefined; }; @@ -629,3 +674,22 @@ export const _getSakFromK9Sak = { grupperArbeidstidPerioder, trimArbeidstidTilTillattEndringsperiode, }; + +const getArbeidsdagerInneforEndringsperiodeOgAnsettelsesperioder = ( + arbeidsdager: ArbeidstidEnkeltdagMap, + tillattEndringsperiode: DateRange, + ansettelsesperioder: MaybeDateRange[], +) => { + const arbeidsdagerInnenforPerioder: ArbeidstidEnkeltdagMap = {}; + const ansettelsesperiodeDateRanges = ansettelsesperioder.map((a) => ({ + from: a.from || tillattEndringsperiode.from, + to: a.to || tillattEndringsperiode.to, + })); + for (const [dato, info] of Object.entries(arbeidsdager)) { + const d = ISODateToDate(dato); + if (isDateInDateRange(d, tillattEndringsperiode) && isDateInDateRanges(d, ansettelsesperiodeDateRanges)) { + arbeidsdagerInnenforPerioder[dato] = info; + } + } + return arbeidsdagerInnenforPerioder; +}; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts index 64ab82b52b..a249c3c1f6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts @@ -1,8 +1,8 @@ -import { ArbeidsgiverOrganisasjon } from '@navikt/sif-common-api'; -import { DateRange, MaybeDateRange } from '@navikt/sif-common-utils'; +import { DateRange, ISODateToDate, MaybeDateRange } from '@navikt/sif-common-utils'; import dayjs from 'dayjs'; import { ArbeidsgiverForEndring } from '../types'; import { getArbeidsgiverKey } from './arbeidsgiverUtils'; +import { AARegArbeidsgiverOrganisasjon } from '../api/endpoints/arbeidsgivereEndpoint'; export const getPeriodeForArbeidsgiverOppslag = ( dateRangeAlleSaker: DateRange, @@ -19,13 +19,13 @@ export const getPeriodeForArbeidsgiverOppslag = ( }; export const getArbeidsgivereFromArbeidsgiverOrganisasjoner = ( - organisasjoner: ArbeidsgiverOrganisasjon[], + organisasjoner: AARegArbeidsgiverOrganisasjon[], ): ArbeidsgiverForEndring[] => { const aaArbeidsgivereMap = new Map(); (organisasjoner || []).forEach((a) => { const ansettelsesperiode: MaybeDateRange = { - from: a.ansattFom ? a.ansattFom : undefined, - to: a.ansattTom ? a.ansattTom : undefined, + from: a.ansattFom ? ISODateToDate(a.ansattFom) : undefined, + to: a.ansattTom ? ISODateToDate(a.ansattTom) : undefined, }; if (aaArbeidsgivereMap.has(a.organisasjonsnummer)) { diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts index 8b2cc9fe4d..a869081fc8 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts @@ -56,43 +56,11 @@ export default [ organisasjonsnummer: '947064649', arbeidstidInfo: { perioder: { - '2022-12-01/2022-12-02': { + '2020-12-01/2023-12-31': { jobberNormaltTimerPerDag: 'PT8H', faktiskArbeidTimerPerDag: 'PT4H32M24S', }, - '2022-12-05/2022-12-09': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2022-12-12/2022-12-16': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2022-12-19/2022-12-23': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2022-12-26/2022-12-30': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2023-01-02/2023-01-06': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2023-01-09/2023-01-13': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2023-01-16/2023-01-20': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2023-01-23/2023-01-27': { - jobberNormaltTimerPerDag: 'PT8H', - faktiskArbeidTimerPerDag: 'PT4H32M24S', - }, - '2023-01-30/2024-05-31': { + '2024-02-01/2024-03-01': { jobberNormaltTimerPerDag: 'PT8H', faktiskArbeidTimerPerDag: 'PT4H32M24S', }, diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts index 74e2a56eec..b292f8957d 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts @@ -4,6 +4,18 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2003-01-16', + ansattTom: '2022-11-01', + }, + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2022-12-05', + ansattTom: '2022-12-06', + }, + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2022-12-08', ansattTom: null, }, ], From 4b32b980db1e8bfc1634829e6946e8f0490dc734 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 17 Jan 2025 12:28:56 +0100 Subject: [PATCH 05/31] Melding om at en ikke er ansastt alle dager --- .../ArbeidstidUker.stories.tsx | 18 ++++ .../arbeidstid-uker/ArbeidstidUker.tsx | 12 ++- .../arbeidstid-uker/arbeidstidUker.scss | 2 +- .../components/ArbeidstidUkeListe.tsx | 1 + .../components/ArbeidstidUkeTabell.tsx | 10 +- .../arbeidstid-uker/components/UkeInfo.tsx | 30 ------ .../components/UkeInfoTooltip.tsx | 52 ++++++++++ .../arbeidstid-uker/components/UkeTags.tsx | 11 ++- .../types/ArbeidstidUkerItem.ts | 1 + .../EndreArbeidstidForm.tsx | 6 +- .../steps/arbeidstid/ArbeidstidForm.tsx" | 3 +- .../arbeidsaktivitetUtils.ts" | 3 +- .../components/ArbeidsaktivitetContent.tsx" | 1 + .../ArbeidstidArbeidstakerOppsummering.tsx" | 1 + .../oppsummering/ArbeidstidOppsummering.tsx" | 2 + .../oppsummering/oppsummeringStepUtils.ts" | 1 + .../src/app/types/Sak.ts | 2 + .../src/app/utils/arbeidsukeUtils.ts | 82 ++++++++-------- .../src/app/utils/getSakFromK9Sak.ts | 97 +++++++++++++------ .../getApiDataFromS\303\270knadsdata.ts" | 2 + ...rbeidstidApiDataFromS\303\270knadsdata.ts" | 2 + .../app/utils/ukjentArbeidsforholdUtils.ts | 17 +++- .../src/mocks/data/app/arbeidsukerMockData.ts | 1 + .../src/storybook/data/sakMock.ts | 36 +++++++ .../sif-common-utils/src/dateRangeUtils.ts | 8 ++ 25 files changed, 289 insertions(+), 112 deletions(-) delete mode 100644 apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfo.tsx create mode 100644 apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx index 3f6f9c3e26..3b3ad7ef05 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx @@ -26,6 +26,7 @@ export const Default: Story = { kanEndres: true, kanVelges: false, antallDagerMedArbeidstid: 2, + arbeidsdagerIkkeAnsatt: [], erKortUke: true, harFeriedager: false, harFjernetFeriedager: false, @@ -54,6 +55,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -82,6 +84,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -110,6 +113,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -138,6 +142,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -166,6 +171,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -194,6 +200,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -222,6 +229,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -250,6 +258,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -278,6 +287,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -306,6 +316,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -334,6 +345,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -362,6 +374,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -390,6 +403,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -418,6 +432,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -446,6 +461,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -474,6 +490,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -502,6 +519,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, + arbeidsdagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx index 5c8785768c..66f1a9b7fe 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx @@ -21,6 +21,7 @@ interface Props { paginering?: { antall: number; }; + arbeidsgivernavn: string; arbeidstidKolonneTittel?: string; triggerResetValgCounter?: number; visEndringSomOpprinnelig?: boolean; @@ -35,7 +36,7 @@ const ArbeidstidUker: React.FunctionComponent = ({ arbeidstidKolonneTittel, triggerResetValgCounter, visEndringSomOpprinnelig, - + arbeidsgivernavn, onEndreUker, }) => { const { text, intl } = useAppIntl(); @@ -57,6 +58,9 @@ const ArbeidstidUker: React.FunctionComponent = ({ const renderCompactTable = useMediaQuery({ minWidth: 736 }) === false && renderAsList === false; const korteUker = visibleItems.filter((i) => i.erKortUke).map((uke) => uke.periode); + const ukerMedDagerIkkeAnsatt = visibleItems + .filter((i) => i.arbeidsdagerIkkeAnsatt.length > 0) + .map((uke) => uke.periode); const ukerMedFerie = visibleItems .filter((i) => i.ferie && i.ferie?.dagerMedFerie.length > 0) .map((uke) => uke.periode); @@ -103,7 +107,10 @@ const ArbeidstidUker: React.FunctionComponent = ({ setItemsAreSelectable(checked); }} ukerKanVelges={itemsAreSelectable} - visKorteUkerMelding={itemsAreSelectable && (ukerMedFerie.length > 0 || korteUker.length > 0)} + visKorteUkerMelding={ + itemsAreSelectable && + (ukerMedFerie.length > 0 || korteUker.length > 0 || ukerMedDagerIkkeAnsatt.length > 0) + } /> ) : undefined; @@ -166,6 +173,7 @@ const ArbeidstidUker: React.FunctionComponent = ({ {renderEndreUkerHeader()} = ({ erKortUke={uke.erKortUke} dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} + arbeidsdagerIkkeAnsatt={uke.arbeidsdagerIkkeAnsatt} /> diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx index 18eb0d55f4..0e4b8bcb81 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx @@ -9,11 +9,12 @@ import { SelectableListType } from '../../../hooks/useSelectableList'; import { AppText, useAppIntl } from '../../../i18n'; import { ArbeidstidUkerItem } from '../types/ArbeidstidUkerItem'; import ArbeidstidUkeInfo from './ArbeidstidUkeInfo'; -import UkeInfoIkon from './UkeInfo'; +import UkeInfoTooltip from './UkeInfoTooltip'; import UkeTags from './UkeTags'; import VelgArbeidsukeItem from './VelgArbeidsukeItem'; interface Props { + arbeidsgivernavn: string; uker: ArbeidstidUkerItem[]; selectableList: SelectableListType; visEndringSomOpprinnelig?: boolean; @@ -29,6 +30,7 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ selectableList, arbeidstidKolonneTittel, renderCompactTable, + arbeidsgivernavn, renderEditButton, }) => { const { text, intl } = useAppIntl(); @@ -150,6 +152,7 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} erKortUke={uke.erKortUke} + arbeidsdagerIkkeAnsatt={uke.arbeidsdagerIkkeAnsatt} /> )} @@ -173,12 +176,15 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ )} - {uke.erKortUke && } + {(uke.erKortUke || uke.arbeidsdagerIkkeAnsatt.length > 0) && ( + + )} diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfo.tsx deleted file mode 100644 index 73233391e2..0000000000 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfo.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Tooltip } from '@navikt/ds-react'; -import React from 'react'; -import { InformationColored } from '@navikt/ds-icons'; -import { dateFormatter, DateRange } from '@navikt/sif-common-utils'; -import { ArbeidstidUkerItem } from '../types/ArbeidstidUkerItem'; - -interface Props { - uke: ArbeidstidUkerItem; -} - -const UkeInfoIkon: React.FunctionComponent = ({ uke }) => { - return ( - - - - - - ); -}; - -const getDagerPeriode = ({ from, to }: DateRange, visDato = true): string => { - const fra = visDato ? dateFormatter.dayDateMonthYear(from) : dateFormatter.day(from); - const til = visDato ? dateFormatter.dayDateMonthYear(to) : dateFormatter.day(to); - if (fra === til) { - return fra; - } - return `${fra} til ${til}`; -}; - -export default UkeInfoIkon; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx new file mode 100644 index 0000000000..b7c7b4806c --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx @@ -0,0 +1,52 @@ +import { BodyShort, Box, HelpText, Tooltip, VStack } from '@navikt/ds-react'; +import React from 'react'; +import { InformationColored } from '@navikt/ds-icons'; +import { dateFormatter, DateRange } from '@navikt/sif-common-utils'; +import { ArbeidstidUkerItem } from '../types/ArbeidstidUkerItem'; + +interface Props { + uke: ArbeidstidUkerItem; + arbeidsgivernavn: string; +} + +const UkeInfoTooltip: React.FunctionComponent = ({ uke, arbeidsgivernavn }) => { + const { arbeidsdagerIkkeAnsatt, erKortUke } = uke; + if (erKortUke && arbeidsdagerIkkeAnsatt.length === 0) { + return ( + + + + + + ); + } + if (!erKortUke && arbeidsdagerIkkeAnsatt.length > 0) { + const dager = arbeidsdagerIkkeAnsatt.map((d) => dateFormatter.day(d)); + const info = ( + + + Kort uke - du er ikke registrert som ansatt alle dagene denne uken. Dager du ikke registrert som + ansatt er: {dager.join(',')}. + + + Hvis dette ikke stemmer, må du ta kontakt med arbeidsgiveren din, {arbeidsgivernavn}. + + ); + return ( + + {info} + + ); + } +}; + +const getDagerPeriode = ({ from, to }: DateRange, visDato = true): string => { + const fra = visDato ? dateFormatter.dayDateMonthYear(from) : dateFormatter.day(from); + const til = visDato ? dateFormatter.dayDateMonthYear(to) : dateFormatter.day(to); + if (fra === til) { + return fra; + } + return `${fra} til ${til}`; +}; + +export default UkeInfoTooltip; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx index 1a0c285879..338b050eac 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx @@ -8,12 +8,19 @@ interface Props { erKortUke?: boolean; dagerMedFerie: Date[] | undefined; dagerMedFjernetFerie?: Date[] | undefined; + arbeidsdagerIkkeAnsatt: Date[] | undefined; visDagNavn?: boolean; } -const UkeTags = ({ dagerMedFerie = [], dagerMedFjernetFerie = [], visDagNavn, erKortUke }: Props) => { +const UkeTags = ({ + dagerMedFerie = [], + dagerMedFjernetFerie = [], + visDagNavn, + erKortUke, + arbeidsdagerIkkeAnsatt = [], +}: Props) => { const tags: React.ReactNode[] = []; - if (erKortUke) { + if (erKortUke || arbeidsdagerIkkeAnsatt.length > 0) { tags.push(); } if (dagerMedFerie?.length > 0) { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts index 727f26f4bf..d2f2b7b5a6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts @@ -8,6 +8,7 @@ export interface ArbeidstidUkerItem { periode: DateRange; antallDagerMedArbeidstid: number; erKortUke: boolean; + arbeidsdagerIkkeAnsatt: Date[]; harFeriedager?: boolean; harFjernetFeriedager?: boolean; ferie?: { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index b457e8cc9b..b90d3f02a1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -280,7 +280,11 @@ const getUkerOgÅrBeskrivelse = ( {getArbeidstidSpørsmålDescription(arbeidsuker[0], intl.locale)} {dagerMedFerie.length > 0 && ( - + )} diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" index 72bc7495f5..e46f1543a0 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" @@ -6,7 +6,7 @@ import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; import { getTypedFormComponents, ValidationError } from '@navikt/sif-common-formik-ds'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/src/validation/intlFormErrorHandler'; import { ArbeiderIPeriodenSvar, ArbeidsaktivitetType, ArbeidstidEndringMap, SøknadContextState } from '@types'; -import { getArbeidsaktiviteterForUkjenteArbeidsforhold } from '@utils'; +import { getArbeidsaktiviteterForUkjenteArbeidsforhold, getEndringsdato, getTillattEndringsperiode } from '@utils'; import { AppText } from '../../../i18n'; import { getLenker } from '../../../lenker'; import PersistStepFormValues from '../../../modules/persist-step-form-values/PersistStepFormValues'; @@ -106,6 +106,7 @@ const ArbeidstidForm: React.FunctionComponent = ({ goBack }) => { sak.søknadsperioder, sak.arbeidsgivereIkkeISak, aktiviteterValuesMap, + getTillattEndringsperiode(getEndringsdato()), søknadsdata.ukjentArbeidsforhold, ), ...getAktiviteterSomSkalEndres(sak.arbeidsaktiviteter), diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" index 6ec9652256..a783551b83 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" @@ -37,9 +37,10 @@ const arbeidsukeToArbeidstidUkerItem = ( isoDateRange: arbeidsuke.isoDateRange, periode: arbeidsuke.periode, kanEndres: durationUtils.durationIsGreatherThanZero(arbeidsuke.normalt.uke), - kanVelges: !erKortUke && dagerMedFerie.length === 0, + kanVelges: !erKortUke && dagerMedFerie.length === 0 && arbeidsuke.arbeidsdagerIkkeAnsatt.length === 0, antallDagerMedArbeidstid: arbeidsuke.antallDagerMedArbeidstid, erKortUke, + arbeidsdagerIkkeAnsatt: arbeidsuke.arbeidsdagerIkkeAnsatt || [], harFeriedager: dagerMedFerie && dagerMedFerie.length > 0, harFjernetFeriedager: dagerMedFjernetFerie && dagerMedFjernetFerie.length > 0, ferie: { diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" index 7218d4b50a..3fdfffab33 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" @@ -73,6 +73,7 @@ const ArbeidsaktivitetContent: React.FunctionComponent = ({ )} visEndringSomOpprinnelig={erNyArbeidsgiver} triggerResetValgCounter={resetUkerTabellCounter} + arbeidsgivernavn={arbeidsaktivitet.navn} onEndreUker={(uker: ArbeidstidUkerItem[]) => { setArbeidsukerForEndring(uker.map((uke) => periode.arbeidsuker[uke.isoDateRange])); }} diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" index e22add7330..aa12481821 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" @@ -40,6 +40,7 @@ const ArbeidstidArbeidstakerOppsummering = ({ arbeidsgivere, arbeidstaker, arbei diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" index 4af25ab5fc..3cfc6bc614 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" @@ -47,6 +47,7 @@ const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, ar <> @@ -63,6 +64,7 @@ const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, ar listItems={oppsummeringStepUtils.getArbeidstidUkerItems( selvstendigNæringsdrivendeArbeidstidInfo.perioder, )} + arbeidsgivernavn="Selvstendig næringsdrivende" arbeidstidKolonneTittel={arbeidstidKolonneTittel} /> diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" index 4a0a25cfa1..2d04e93f0e 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" @@ -61,6 +61,7 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( periode, antallDagerMedArbeidstid, erKortUke: erKortArbeidsuke(periode), + arbeidsdagerIkkeAnsatt: [], //TODO opprinnelig: { normalt: getTimerPerUkeFraTimerPerDag( ISODurationToDuration(_opprinneligNormaltPerDag), diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index 6d7b2ed88c..70405d8685 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -62,6 +62,7 @@ export interface Arbeidsuke { faktisk?: ArbeidsukeTimer; normalt: ArbeidsukeTimer; antallDagerMedArbeidstid: number; + arbeidsdagerIkkeAnsatt: Date[]; } export type ArbeidsukeMap = ISODateRangeMap; @@ -77,6 +78,7 @@ interface ArbeidsaktivitetBase { perioderMedArbeidstid: PeriodeMedArbeidstid[]; harPerioderFørTillattEndringsperiode: boolean; harPerioderEtterTillattEndringsperiode: boolean; + ansettelsesperioderInnenforEndringsperiode: DateRange[]; } export interface ArbeidsaktivitetArbeidstaker extends ArbeidsaktivitetBase { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts index c81148c065..60928167e7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts @@ -1,16 +1,12 @@ import { dateFormatter, DateRange, - dateRangeToISODateRange, durationToISODuration, - durationUtils, getDatesInDateRange, ISODate, - numberDurationAsDuration, } from '@navikt/sif-common-utils'; -import { ArbeidstidEnkeltdagMap, Arbeidsuke, ArbeidsukeTimer } from '@types'; +import { ArbeidstidEnkeltdagMap, Arbeidsuke } from '@types'; import dayjs from 'dayjs'; -import { beregnSnittTimerPerDag } from './beregnUtils'; export const sorterArbeidsuker = (a1: Arbeidsuke, a2: Arbeidsuke): number => { return dayjs(a1.periode.from).isBefore(a2.periode.from) ? -1 : 1; @@ -57,42 +53,42 @@ export const getDagerFraEnkeltdagMap = (arbeidstidEnkeltdager: ArbeidstidEnkeltd return Object.keys(arbeidstidEnkeltdager).sort(); }; -/** - * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke - * @param periode DateRange for uken - * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid innenfor uken - * @returns Arbeidsuke - */ -export const getArbeidsukeFromEnkeltdagerIUken = ( - uke: DateRange, - arbeidstidEnkeltdagerIUken: ArbeidstidEnkeltdagMap, -): Arbeidsuke => { - const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); - const antallDagerMedArbeidstid = dagerSøktFor.length; - const normalt = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].normalt); - const normaltSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(normalt)); - const faktiskEnkeltdager = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); - const harFaktiskArbeidstid = faktiskEnkeltdager.some((f) => f !== undefined); - const faktiskSummertHeleUken = harFaktiskArbeidstid - ? numberDurationAsDuration(durationUtils.summarizeDurations(faktiskEnkeltdager)) - : undefined; - const faktisk: ArbeidsukeTimer | undefined = faktiskSummertHeleUken - ? { - uke: faktiskSummertHeleUken, - dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), - } - : undefined; +// /** +// * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke +// * @param periode DateRange for uken +// * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid innenfor uken +// * @returns Arbeidsuke +// */ +// export const getArbeidsukeFromEnkeltdagerIUken = ( +// uke: DateRange, +// arbeidstidEnkeltdagerIUken: ArbeidstidEnkeltdagMap, +// ): Arbeidsuke => { +// const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); +// const antallDagerMedArbeidstid = dagerSøktFor.length; +// const normalt = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].normalt); +// const normaltSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(normalt)); +// const faktiskEnkeltdager = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); +// const harFaktiskArbeidstid = faktiskEnkeltdager.some((f) => f !== undefined); +// const faktiskSummertHeleUken = harFaktiskArbeidstid +// ? numberDurationAsDuration(durationUtils.summarizeDurations(faktiskEnkeltdager)) +// : undefined; +// const faktisk: ArbeidsukeTimer | undefined = faktiskSummertHeleUken +// ? { +// uke: faktiskSummertHeleUken, +// dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), +// } +// : undefined; - const arbeidsuke: Arbeidsuke = { - isoDateRange: dateRangeToISODateRange(uke), - periode: uke, - arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, - faktisk, - normalt: { - uke: normaltSummertHeleUken, - dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerMedArbeidstid), - }, - antallDagerMedArbeidstid: dagerSøktFor.length, - }; - return arbeidsuke; -}; +// const arbeidsuke: Arbeidsuke = { +// isoDateRange: dateRangeToISODateRange(uke), +// periode: uke, +// arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, +// faktisk, +// normalt: { +// uke: normaltSummertHeleUken, +// dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerMedArbeidstid), +// }, +// antallDagerMedArbeidstid: dagerSøktFor.length, +// }; +// return arbeidsuke; +// }; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index de576bfd80..61005b8c75 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -12,6 +12,7 @@ import { getLastDateInDateRanges, isDateInDateRange, isDateInDateRanges, + isDateWeekDay, ISODateRangeToDateRange, ISODateToDate, joinAdjacentDateRanges, @@ -314,15 +315,25 @@ const fjernArbeidstidEnkeltdagerUtenforPeriode = ( return enkeltdagerMap; }; +const getUkedagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: DateRange[]): Date[] => { + if (!ansettelsesperioder) { + return []; + } + return getDatesInDateRange(periode) + .filter(isDateWeekDay) + .filter((d) => !isDateInDateRanges(d, ansettelsesperioder)); +}; + /** * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke * @param periode DateRange for uken * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid * @returns Arbeidsuke */ -const getArbeidsukeFromEnkeltdagerIUken = ( +export const getArbeidsukeFromEnkeltdagerIUken = ( periode: DateRange, arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap, + ansettelsesperioder?: DateRange[], ): Arbeidsuke => { const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(periode, arbeidstidEnkeltdager); const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); @@ -336,6 +347,7 @@ const getArbeidsukeFromEnkeltdagerIUken = ( isoDateRange: dateRangeToISODateRange(periode), periode: periode, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, + arbeidsdagerIkkeAnsatt: getUkedagerIkkeAnsattIPeriode(periode, ansettelsesperioder), faktisk: { uke: faktiskSummertHeleUken, dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), @@ -379,7 +391,10 @@ const setArbeidsukeSluttdatoTilSisteDagSøktFor = (arbeidsuke: Arbeidsuke): Arbe * @param enkeltdager * @returns Array av arbeidsuker */ -const getArbeidsukerFromEnkeltdager = (enkeltdager: ArbeidstidEnkeltdagMap): Arbeidsuke[] => { +const getArbeidsukerFromEnkeltdager = ( + enkeltdager: ArbeidstidEnkeltdagMap, + ansettelsesperioder?: DateRange[], +): Arbeidsuke[] => { const ukerMap: { [key: string]: { dagerMap: ArbeidstidEnkeltdagMap; @@ -408,12 +423,16 @@ const getArbeidsukerFromEnkeltdager = (enkeltdager: ArbeidstidEnkeltdagMap): Arb const arbeidsuker = Object.keys(ukerMap).map((isoDateRange) => { const uke = ISODateRangeToDateRange(isoDateRange); const dager = ukerMap[isoDateRange].dagerMap; - return getArbeidsukeFromEnkeltdagerIUken(uke, dager); + return getArbeidsukeFromEnkeltdagerIUken(uke, dager, ansettelsesperioder); }); /** Juster start og sluttdato til første og siste dag søkt for (dag med arbeidstid) */ - arbeidsuker[0] = setArbeidsukeStartdatoTilFørsteDagSøktFor(arbeidsuker[0]); - arbeidsuker[arbeidsuker.length - 1] = setArbeidsukeSluttdatoTilSisteDagSøktFor(arbeidsuker[arbeidsuker.length - 1]); + if (arbeidsuker.length > 0) { + arbeidsuker[0] = setArbeidsukeStartdatoTilFørsteDagSøktFor(arbeidsuker[0]); + arbeidsuker[arbeidsuker.length - 1] = setArbeidsukeSluttdatoTilSisteDagSøktFor( + arbeidsuker[arbeidsuker.length - 1], + ); + } return arbeidsuker; }; @@ -426,7 +445,7 @@ const getArbeidsukerFromEnkeltdager = (enkeltdager: ArbeidstidEnkeltdagMap): Arb const getPerioderMedArbeidstid = ( arbeidstidPeriodeMap: K9SakArbeidstidPeriodeMap, tillattEndringsperiode: DateRange, - ansettelsesperioder: MaybeDateRange[], + ansettelsesperioderInnenforEndringsperiode: DateRange[], ): PeriodeMedArbeidstid[] => { const perioder = trimArbeidstidTilTillattEndringsperiode(arbeidstidPeriodeMap, tillattEndringsperiode); @@ -435,9 +454,12 @@ const getPerioderMedArbeidstid = ( const arbeidsdagerSomKanEndres = getArbeidsdagerInneforEndringsperiodeOgAnsettelsesperioder( enkeltdagerIPeriode, tillattEndringsperiode, - ansettelsesperioder, + ansettelsesperioderInnenforEndringsperiode, + ); + const uker = getArbeidsukerFromEnkeltdager( + arbeidsdagerSomKanEndres, + ansettelsesperioderInnenforEndringsperiode, ); - const uker = getArbeidsukerFromEnkeltdager(arbeidsdagerSomKanEndres); const periodeSomKanEndres: DateRange = { from: uker[0].periode.from, to: uker[uker.length - 1].periode.to }; const arbeidsuker = getArbeidsukerMapFromArbeidsuker(uker); const periode: PeriodeMedArbeidstid = { @@ -489,14 +511,17 @@ const harPerioderEtterEndringsperiode = ( const getArbeidsaktivitetPerioderPart = ( arbeidstidPerioder: K9SakArbeidstidPeriodeMap, endringsperiode: DateRange, - ansettelsesperioder: MaybeDateRange[], + ansettelsesperioderInnenforEndringsperiode: DateRange[], ): Pick< Arbeidsaktivitet, 'perioderMedArbeidstid' | 'harPerioderEtterTillattEndringsperiode' | 'harPerioderFørTillattEndringsperiode' > => { - console.log(ansettelsesperioder); return { - perioderMedArbeidstid: getPerioderMedArbeidstid(arbeidstidPerioder, endringsperiode, ansettelsesperioder), + perioderMedArbeidstid: getPerioderMedArbeidstid( + arbeidstidPerioder, + endringsperiode, + ansettelsesperioderInnenforEndringsperiode, + ), harPerioderFørTillattEndringsperiode: harPerioderFørEndringsperiode(arbeidstidPerioder, endringsperiode), harPerioderEtterTillattEndringsperiode: harPerioderEtterEndringsperiode(arbeidstidPerioder, endringsperiode), }; @@ -528,20 +553,39 @@ const getArbeidsaktivitetArbeidstaker = ( throw error; } const endringsperiodeForArbeidsgiver = getEndringsperiodeForArbeidsgiver(endringsperiode, arbeidsgiver); + const ansettelsesperioderInnenforEndringsperiode = ensureAnsettelsesperioderIsValidDateRange( + arbeidsgiver.ansettelsesperioder, + endringsperiode, + ); return { key: arbeidsgiver.key, arbeidsgiver, type: ArbeidsaktivitetType.arbeidstaker, navn: arbeidsgiver.navn, erUkjentArbeidsforhold: false, - // ansettelsesperioderInnenforEndringsperiode: arbeidsgiver.ansettelsesperioder.map((a) => ({ - // from: a.from || endringsperiode.from, - // to: a.to || endringsperiode.to, - // })), - ...getArbeidsaktivitetPerioderPart(perioder, endringsperiodeForArbeidsgiver, arbeidsgiver.ansettelsesperioder), + ansettelsesperioderInnenforEndringsperiode, + ...getArbeidsaktivitetPerioderPart( + perioder, + endringsperiodeForArbeidsgiver, + ansettelsesperioderInnenforEndringsperiode, + ), }; }; +/** Går gjennom og endrer ansettelsesperioder til gyldig DateRange + * Bruker tillattEndringsperiode som erstatning hvis ansettelsesperiode mangler daga + */ + +const ensureAnsettelsesperioderIsValidDateRange = ( + ansettelsesperioder: MaybeDateRange[], + endringsperiode: DateRange, +): DateRange[] => { + return ansettelsesperioder.map((a) => ({ + from: a.from || endringsperiode.from, + to: a.to || endringsperiode.to, + })); +}; + /** * * @param frilanserArbeidstidInfo @@ -557,7 +601,8 @@ const getArbeidsaktivitetFrilanser = ( key: ArbeidsaktivitetType.frilanser, type: ArbeidsaktivitetType.frilanser, navn: 'Frilanser', - ...getArbeidsaktivitetPerioderPart(frilanserArbeidstidInfo.perioder, endringsperiode, []), + ansettelsesperioderInnenforEndringsperiode: [endringsperiode], // TODO + ...getArbeidsaktivitetPerioderPart(frilanserArbeidstidInfo.perioder, endringsperiode, [endringsperiode]), } : undefined; }; @@ -577,11 +622,10 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( key: ArbeidsaktivitetType.selvstendigNæringsdrivende, type: ArbeidsaktivitetType.selvstendigNæringsdrivende, navn: 'Selvstendig næringsdrivende', - ...getArbeidsaktivitetPerioderPart( - selvstendigNæringsdrivendeArbeidstidInfo.perioder, + ansettelsesperioderInnenforEndringsperiode: [], // TODO + ...getArbeidsaktivitetPerioderPart(selvstendigNæringsdrivendeArbeidstidInfo.perioder, endringsperiode, [ endringsperiode, - [], - ), + ]), } : undefined; }; @@ -678,16 +722,15 @@ export const _getSakFromK9Sak = { const getArbeidsdagerInneforEndringsperiodeOgAnsettelsesperioder = ( arbeidsdager: ArbeidstidEnkeltdagMap, tillattEndringsperiode: DateRange, - ansettelsesperioder: MaybeDateRange[], + ansettelsesperioderInnenforEndringsperiode: DateRange[], ) => { const arbeidsdagerInnenforPerioder: ArbeidstidEnkeltdagMap = {}; - const ansettelsesperiodeDateRanges = ansettelsesperioder.map((a) => ({ - from: a.from || tillattEndringsperiode.from, - to: a.to || tillattEndringsperiode.to, - })); for (const [dato, info] of Object.entries(arbeidsdager)) { const d = ISODateToDate(dato); - if (isDateInDateRange(d, tillattEndringsperiode) && isDateInDateRanges(d, ansettelsesperiodeDateRanges)) { + if ( + isDateInDateRange(d, tillattEndringsperiode) && + isDateInDateRanges(d, ansettelsesperioderInnenforEndringsperiode) + ) { arbeidsdagerInnenforPerioder[dato] = info; } } diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index 3afa5e880c..4d57233f78 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -3,6 +3,7 @@ import { ArbeidsgiverForEndring, Sak, SøknadApiData, Søknadsdata, ValgteEndrin import { getArbeidstidApiDataFromSøknadsdata } from './getArbeidstidApiDataFromSøknadsdata'; import { getDataBruktTilUtledningAnnetDataApiData, getDataBruktTilUtledningApiData } from './getDataBruktTilUtledning'; import { getLovbestemtFerieApiDataFromSøknadsdata } from './getLovbestemtFerieApiDataFraSøknadsdata'; +import { getEndringsdato, getTillattEndringsperiode } from '../endringsperiode'; export const getApiDataFromSøknadsdata = ( søkerNorskIdent: string, @@ -31,6 +32,7 @@ export const getApiDataFromSøknadsdata = ( lovbestemtFerie: lovbestemtFerie ? getLovbestemtFerieApiDataFromSøknadsdata(lovbestemtFerie) : undefined, arbeidstid: arbeidstid ? getArbeidstidApiDataFromSøknadsdata( + getTillattEndringsperiode(getEndringsdato()), sak.søknadsperioder, arbeidstid.arbeidsaktivitet, sak.arbeidsaktiviteter, diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" index 8ebee9ad13..33ebc86017 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" @@ -95,6 +95,7 @@ const getArbeidsaktivitetArbeidstidInfo = ( }; export const getArbeidstidApiDataFromSøknadsdata = ( + endringsperiode: DateRange, søknadsperioder: DateRange[], arbeidsaktivitetEndring: ArbeidstidArbeidsaktivitetMap, arbeidsaktiviteter: Arbeidsaktiviteter, @@ -148,6 +149,7 @@ export const getArbeidstidApiDataFromSøknadsdata = ( søknadsperioder, arbeidsgiver, arbeidsforhold, + endringsperiode, ); const arbeidsuker = getArbeidsukerIArbeidsaktivitet(arbeidsaktivitet); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index 440c3072c1..d4f55202d1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -3,6 +3,7 @@ import { dateRangeToISODateRange, dateToISODate, Duration, + ensureDateRange, getDateRangeFromDateRanges, getDateRangesWithinDateRange, getDatesInDateRange, @@ -21,8 +22,10 @@ import { UkjentArbeidsforholdSøknadsdata, } from '@types'; import { ArbeidsaktivitetFormValuesMap } from '../søknad/steps/arbeidstid/ArbeidstidForm'; -import { getArbeidsukeFromEnkeltdagerIUken } from './arbeidsukeUtils'; +// import { getArbeidsukeFromEnkeltdagerIUken } from './arbeidsukeUtils'; import { beregnSnittTimerPerDag } from './beregnUtils'; +import { getArbeidsukeFromEnkeltdagerIUken } from './getSakFromK9Sak'; +import { getEndringsdato, getTillattEndringsperiode } from './endringsperiode'; export const getSøknadsperioderForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], @@ -70,7 +73,11 @@ export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( getDatesInDateRange(uke, true).forEach((date) => { enkeldagerMap[dateToISODate(date)] = arbeidstidPerDag; }); - arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken(uke, enkeldagerMap); + arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken( + uke, + enkeldagerMap, + [getTillattEndringsperiode(getEndringsdato())], // TODO - fikses når andre todos i denne er tatt + ); }); perioderMedArbeidstid.push({ arbeidsuker, @@ -99,6 +106,7 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], arbeidsgiver: ArbeidsgiverForEndring, arbeidsforhold: ArbeidsforholdAktivt, + endringsperiode: DateRange, arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): Arbeidsaktivitet => { const faktiskArbeidstid = getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold(arbeidsforhold, arbeiderIPerioden); @@ -111,6 +119,9 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( navn: arbeidsgiver.navn, harPerioderEtterTillattEndringsperiode: false, harPerioderFørTillattEndringsperiode: false, + ansettelsesperioderInnenforEndringsperiode: arbeidsgiver.ansettelsesperioder.map((periode) => + ensureDateRange(periode, endringsperiode), + ), perioderMedArbeidstid: getPerioderMedArbeidstidForUkjentArbeidsforhold( søknadsperioder, arbeidsgiver, @@ -125,6 +136,7 @@ export const getArbeidsaktiviteterForUkjenteArbeidsforhold = ( søknadsperioder: DateRange[], arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], arbeidsaktivitetFormValues: ArbeidsaktivitetFormValuesMap, + endringsperiode: DateRange, ukjentArbeidsforhold?: UkjentArbeidsforholdSøknadsdata, ): Arbeidsaktivitet[] => { const aktiviteter: Arbeidsaktivitet[] = []; @@ -142,6 +154,7 @@ export const getArbeidsaktiviteterForUkjenteArbeidsforhold = ( søknadsperioder, arbeidsgiver, arbeidsforhold, + endringsperiode, arbeiderIPerioden, ), ); diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts index a82e19841e..723c66dc9e 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts @@ -33,6 +33,7 @@ const getMockArbeidsuke = ( isoDateRange, periode, arbeidstidEnkeltdager, + arbeidsdagerIkkeAnsatt: [], normalt: { uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerMedArbeidstid), dag: normaltPerDag, diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index 037818806f..9ec6a8b6b6 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -54,6 +54,9 @@ export const sakMock: Sak = { type: ArbeidsaktivitetType.arbeidstaker, navn: 'HÅRREISENDE FRISØR', erUkjentArbeidsforhold: false, + ansettelsesperioderInnenforEndringsperiode: [ + { from: new Date('2002-05-09T00:00:00.000Z'), to: new Date('2025-05-09T00:00:00.000Z') }, + ], perioderMedArbeidstid: [ { from: new Date('2024-02-26T00:00:00.000Z'), @@ -65,6 +68,7 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -141,6 +145,7 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -221,6 +226,7 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -301,6 +307,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -381,6 +388,7 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -461,6 +469,7 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -541,6 +550,7 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -621,6 +631,7 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -701,6 +712,7 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -781,6 +793,7 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -861,6 +874,7 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -946,6 +960,9 @@ export const sakMock: Sak = { key: 'selvstendigNæringsdrivende', type: ArbeidsaktivitetType.selvstendigNæringsdrivende, navn: 'Selvstendig næringsdrivende', + ansettelsesperioderInnenforEndringsperiode: [ + { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z') }, + ], perioderMedArbeidstid: [ { from: new Date('2024-04-08T00:00:00.000Z'), @@ -957,6 +974,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1035,6 +1053,9 @@ export const sakMock: Sak = { type: ArbeidsaktivitetType.arbeidstaker, navn: 'HÅRREISENDE FRISØR', erUkjentArbeidsforhold: false, + ansettelsesperioderInnenforEndringsperiode: [ + { from: new Date('2002-05-09T00:00:00.000Z'), to: new Date('2025-05-09T00:00:00.000Z') }, + ], perioderMedArbeidstid: [ { from: new Date('2024-02-26T00:00:00.000Z'), @@ -1046,6 +1067,7 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -1122,6 +1144,7 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -1202,6 +1225,7 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -1282,6 +1306,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1362,6 +1387,7 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -1442,6 +1468,7 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -1522,6 +1549,7 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -1602,6 +1630,7 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -1682,6 +1711,7 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -1762,6 +1792,7 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -1842,6 +1873,7 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -1926,6 +1958,9 @@ export const sakMock: Sak = { key: 'selvstendigNæringsdrivende', type: ArbeidsaktivitetType.selvstendigNæringsdrivende, navn: 'Selvstendig næringsdrivende', + ansettelsesperioderInnenforEndringsperiode: [ + { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z') }, + ], perioderMedArbeidstid: [ { from: new Date('2024-04-08T00:00:00.000Z'), @@ -1937,6 +1972,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, + arbeidsdagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { diff --git a/packages/sif-common-utils/src/dateRangeUtils.ts b/packages/sif-common-utils/src/dateRangeUtils.ts index 0a289f4a48..b0cceb3584 100644 --- a/packages/sif-common-utils/src/dateRangeUtils.ts +++ b/packages/sif-common-utils/src/dateRangeUtils.ts @@ -743,6 +743,13 @@ export const getFirstDateInDateRanges = (dateRanges: DateRange[]): Date | undefi return dates[0]; }; +export const ensureDateRange = (maybeDateRange: MaybeDateRange, fallbackDateRange: DateRange): DateRange => { + return { + from: maybeDateRange.from || fallbackDateRange.from, + to: maybeDateRange.to || fallbackDateRange.to, + }; +}; + // const dateRangeDifference = (range1: DateRange[], range2: DateRange[]): DateRange[] { // const difference: DateRange[] = []; // range1.forEach((r1) => { @@ -763,6 +770,7 @@ export const dateRangeUtils = { dateRangeIsAdjacentToDateRange, dateRangesCollide, dateRangeToISODateRange, + ensureDateRange, datesCollideWithDateRanges, getDateRangeFromDates, getDateRangeFromDateRanges, From 8051c862b250164b1733c72c011e5240adb7cb83 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 17 Jan 2025 16:01:07 +0100 Subject: [PATCH 06/31] dagerIkkeAnsatt --- .../ArbeidstidUker.stories.tsx | 36 +++++++------- .../arbeidstid-uker/ArbeidstidUker.tsx | 4 +- .../components/ArbeidstidUkeListe.tsx | 2 +- .../components/ArbeidstidUkeTabell.tsx | 6 +-- .../components/UkeInfoTooltip.tsx | 2 +- .../types/ArbeidstidUkerItem.ts | 2 +- .../EndreArbeidstidForm.tsx | 2 +- .../arbeidsaktivitetUtils.ts" | 4 +- .../oppsummering/oppsummeringStepUtils.ts" | 2 +- .../src/app/types/Sak.ts | 2 +- .../src/app/utils/getSakFromK9Sak.ts | 9 ++-- .../src/mocks/data/app/arbeidsukerMockData.ts | 2 +- .../src/storybook/data/sakMock.ts | 48 +++++++++---------- 13 files changed, 58 insertions(+), 63 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx index 3b3ad7ef05..516151d64a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx @@ -26,7 +26,7 @@ export const Default: Story = { kanEndres: true, kanVelges: false, antallDagerMedArbeidstid: 2, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: true, harFeriedager: false, harFjernetFeriedager: false, @@ -55,7 +55,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -84,7 +84,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -113,7 +113,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -142,7 +142,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -171,7 +171,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -200,7 +200,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -229,7 +229,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -258,7 +258,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -287,7 +287,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -316,7 +316,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -345,7 +345,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -374,7 +374,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -403,7 +403,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -432,7 +432,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -461,7 +461,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -490,7 +490,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -519,7 +519,7 @@ export const Default: Story = { kanEndres: true, kanVelges: true, antallDagerMedArbeidstid: 5, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx index 66f1a9b7fe..2d9abfcf1e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx @@ -58,9 +58,7 @@ const ArbeidstidUker: React.FunctionComponent = ({ const renderCompactTable = useMediaQuery({ minWidth: 736 }) === false && renderAsList === false; const korteUker = visibleItems.filter((i) => i.erKortUke).map((uke) => uke.periode); - const ukerMedDagerIkkeAnsatt = visibleItems - .filter((i) => i.arbeidsdagerIkkeAnsatt.length > 0) - .map((uke) => uke.periode); + const ukerMedDagerIkkeAnsatt = visibleItems.filter((i) => i.dagerIkkeAnsatt.length > 0).map((uke) => uke.periode); const ukerMedFerie = visibleItems .filter((i) => i.ferie && i.ferie?.dagerMedFerie.length > 0) .map((uke) => uke.periode); diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx index 9fddfb86b6..cb3eefcbe5 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx @@ -59,7 +59,7 @@ const ArbeidstidUkeListe: React.FunctionComponent = ({ erKortUke={uke.erKortUke} dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} - arbeidsdagerIkkeAnsatt={uke.arbeidsdagerIkkeAnsatt} + arbeidsdagerIkkeAnsatt={uke.dagerIkkeAnsatt} /> diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx index 0e4b8bcb81..34ebf22bc7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx @@ -152,7 +152,7 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} erKortUke={uke.erKortUke} - arbeidsdagerIkkeAnsatt={uke.arbeidsdagerIkkeAnsatt} + arbeidsdagerIkkeAnsatt={uke.dagerIkkeAnsatt} /> )} @@ -176,13 +176,13 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ )} - {(uke.erKortUke || uke.arbeidsdagerIkkeAnsatt.length > 0) && ( + {(uke.erKortUke || uke.dagerIkkeAnsatt.length > 0) && ( )} diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx index b7c7b4806c..66e50ed6ca 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx @@ -10,7 +10,7 @@ interface Props { } const UkeInfoTooltip: React.FunctionComponent = ({ uke, arbeidsgivernavn }) => { - const { arbeidsdagerIkkeAnsatt, erKortUke } = uke; + const { dagerIkkeAnsatt: arbeidsdagerIkkeAnsatt, erKortUke } = uke; if (erKortUke && arbeidsdagerIkkeAnsatt.length === 0) { return ( diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts index d2f2b7b5a6..0eda26d99c 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts @@ -8,7 +8,7 @@ export interface ArbeidstidUkerItem { periode: DateRange; antallDagerMedArbeidstid: number; erKortUke: boolean; - arbeidsdagerIkkeAnsatt: Date[]; + dagerIkkeAnsatt: Date[]; harFeriedager?: boolean; harFjernetFeriedager?: boolean; ferie?: { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index b90d3f02a1..2e068cde6f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -283,7 +283,7 @@ const getUkerOgÅrBeskrivelse = ( )} diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" index a783551b83..eabd8d7c36 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" @@ -37,10 +37,10 @@ const arbeidsukeToArbeidstidUkerItem = ( isoDateRange: arbeidsuke.isoDateRange, periode: arbeidsuke.periode, kanEndres: durationUtils.durationIsGreatherThanZero(arbeidsuke.normalt.uke), - kanVelges: !erKortUke && dagerMedFerie.length === 0 && arbeidsuke.arbeidsdagerIkkeAnsatt.length === 0, + kanVelges: !erKortUke && dagerMedFerie.length === 0 && arbeidsuke.dagerIkkeAnsatt.length === 0, antallDagerMedArbeidstid: arbeidsuke.antallDagerMedArbeidstid, erKortUke, - arbeidsdagerIkkeAnsatt: arbeidsuke.arbeidsdagerIkkeAnsatt || [], + dagerIkkeAnsatt: arbeidsuke.dagerIkkeAnsatt || [], harFeriedager: dagerMedFerie && dagerMedFerie.length > 0, harFjernetFeriedager: dagerMedFjernetFerie && dagerMedFjernetFerie.length > 0, ferie: { diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" index 2d04e93f0e..cfe2c820e6 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" @@ -61,7 +61,7 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( periode, antallDagerMedArbeidstid, erKortUke: erKortArbeidsuke(periode), - arbeidsdagerIkkeAnsatt: [], //TODO + dagerIkkeAnsatt: [], //TODO opprinnelig: { normalt: getTimerPerUkeFraTimerPerDag( ISODurationToDuration(_opprinneligNormaltPerDag), diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index 70405d8685..88f6ff114a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -62,7 +62,7 @@ export interface Arbeidsuke { faktisk?: ArbeidsukeTimer; normalt: ArbeidsukeTimer; antallDagerMedArbeidstid: number; - arbeidsdagerIkkeAnsatt: Date[]; + dagerIkkeAnsatt: Date[]; } export type ArbeidsukeMap = ISODateRangeMap; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index 61005b8c75..6dcca9096e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -12,7 +12,6 @@ import { getLastDateInDateRanges, isDateInDateRange, isDateInDateRanges, - isDateWeekDay, ISODateRangeToDateRange, ISODateToDate, joinAdjacentDateRanges, @@ -315,13 +314,11 @@ const fjernArbeidstidEnkeltdagerUtenforPeriode = ( return enkeltdagerMap; }; -const getUkedagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: DateRange[]): Date[] => { +const getDagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: DateRange[]): Date[] => { if (!ansettelsesperioder) { return []; } - return getDatesInDateRange(periode) - .filter(isDateWeekDay) - .filter((d) => !isDateInDateRanges(d, ansettelsesperioder)); + return getDatesInDateRange(periode).filter((d) => !isDateInDateRanges(d, ansettelsesperioder)); }; /** @@ -347,7 +344,7 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( isoDateRange: dateRangeToISODateRange(periode), periode: periode, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, - arbeidsdagerIkkeAnsatt: getUkedagerIkkeAnsattIPeriode(periode, ansettelsesperioder), + dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(periode, ansettelsesperioder), faktisk: { uke: faktiskSummertHeleUken, dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts index 723c66dc9e..09afb64e40 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts @@ -33,7 +33,7 @@ const getMockArbeidsuke = ( isoDateRange, periode, arbeidstidEnkeltdager, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], normalt: { uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerMedArbeidstid), dag: normaltPerDag, diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index 9ec6a8b6b6..93db5e06cb 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -68,7 +68,7 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -145,7 +145,7 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -226,7 +226,7 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -307,7 +307,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -388,7 +388,7 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -469,7 +469,7 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -550,7 +550,7 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -631,7 +631,7 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -712,7 +712,7 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -793,7 +793,7 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -874,7 +874,7 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -974,7 +974,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1067,7 +1067,7 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -1144,7 +1144,7 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -1225,7 +1225,7 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -1306,7 +1306,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1387,7 +1387,7 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -1468,7 +1468,7 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -1549,7 +1549,7 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -1630,7 +1630,7 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -1711,7 +1711,7 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -1792,7 +1792,7 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -1873,7 +1873,7 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -1972,7 +1972,7 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, - arbeidsdagerIkkeAnsatt: [], + dagerIkkeAnsatt: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { From 37bd790be72f7555c87b08510f278c3fa0481459 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 17 Jan 2025 16:31:08 +0100 Subject: [PATCH 07/31] Info i EndreArbeidstidForm --- .../components/KortUkeEllerIkkeAnsattInfo.tsx | 64 +++++++++++++++++++ .../components/UkeInfoTooltip.tsx | 7 +- .../EndreArbeidstidForm.tsx | 22 +++---- .../components/ArbeidsaktivitetContent.tsx" | 1 + 4 files changed, 77 insertions(+), 17 deletions(-) create mode 100644 apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx new file mode 100644 index 0000000000..653e24efeb --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx @@ -0,0 +1,64 @@ +import { Alert, Box, VStack } from '@navikt/ds-react'; +import { erKortArbeidsuke, getDagerTekst } from '../../../utils'; +import { Arbeidsuke } from '../../../types'; +import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; +import { AppText } from '../../../i18n'; +import { dateFormatter } from '@navikt/sif-common-utils'; + +interface Props { + arbeidsuke: Arbeidsuke; + arbeidsgivernavn: string; +} + +const KortUkeInfo = ({ arbeidsuke }: { arbeidsuke: Arbeidsuke }) => ( + + + +); + +const IkkeAnsattInfo = ({ arbeidsuke, arbeidsgivernavn }: { arbeidsuke: Arbeidsuke; arbeidsgivernavn: string }) => ( + + + Kort uke - du er ikke registrert som ansatt hos {arbeidsgivernavn} alle dagene denne uken. Dager du ikke er + registrert som ansatt er:{' '} + {arbeidsuke.dagerIkkeAnsatt.map((d) => dateFormatter.dayDateShortMonth(d)).join(',')}. + + Hvis dette ikke stemmer, må du ta kontakt med {arbeidsgivernavn}. + +); + +const KortUkeEllerIkkeAnsattInformasjon = ({ arbeidsuke, arbeidsgivernavn }: Props) => { + const gjelderKortUke = erKortArbeidsuke(arbeidsuke.periode); + + if (gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length === 0) { + return ( + + + + ); + } + if (!gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length > 0) { + return ( + + + + + + ); + } + if (gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length > 0) { + return ( + + + + + + + + + ); + } + return null; +}; + +export default KortUkeEllerIkkeAnsattInformasjon; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx index 66e50ed6ca..34c193e794 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx @@ -25,11 +25,10 @@ const UkeInfoTooltip: React.FunctionComponent = ({ uke, arbeidsgivernavn const info = ( - Kort uke - du er ikke registrert som ansatt alle dagene denne uken. Dager du ikke registrert som - ansatt er: {dager.join(',')}. + Kort uke - du er ikke registrert som ansatt hos {arbeidsgivernavn} alle dagene denne uken. Dager du + ikke registrert som ansatt er: {dager.join(',')}. - - Hvis dette ikke stemmer, må du ta kontakt med arbeidsgiveren din, {arbeidsgivernavn}. + Hvis dette ikke stemmer, må du ta kontakt med {arbeidsgivernavn}. ); return ( diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 2e068cde6f..3578e29c20 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -25,6 +25,7 @@ import UkeTags from '../arbeidstid-uker/components/UkeTags'; import { getArbeidstidSpørsmålDescription, getArbeidsukerPerÅr } from './endreArbeidstidFormUtils'; import { getEndreArbeidstidIntlValues } from './endreArbeidstidIntlValues'; import './endreArbeidstidForm.scss'; +import KortUkeEllerIkkeAnsattInformasjon from '../arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo'; type EndreArbeidstidData = { perioder: DateRange[]; @@ -35,6 +36,7 @@ export interface EndreArbeidstidFormProps { arbeidsuker: Arbeidsuke[]; lovbestemtFerie?: LovbestemtFerieSøknadsdata; endring?: ArbeidstidEndring; + arbeidsgivernavn: string; onSubmit: (data: EndreArbeidstidData) => void; onCancel: () => void; } @@ -61,6 +63,7 @@ const EndreArbeidstidForm: React.FunctionComponent = ( arbeidsuker, lovbestemtFerie, endring, + arbeidsgivernavn, onCancel, onSubmit, }) => { @@ -107,8 +110,6 @@ const EndreArbeidstidForm: React.FunctionComponent = ( ? getFeriedagerIUke(lovbestemtFerie.feriedagerMeta.datoerFjernet, arbeidsuker[0].periode, true) : []; - const gjelderKortUke = arbeidsuker.length === 1 && erKortArbeidsuke(arbeidsuker[0].periode); - const getMaksTimer = () => { const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerMedArbeidstid : 7; return 24 * antallDager; @@ -155,7 +156,6 @@ const EndreArbeidstidForm: React.FunctionComponent = ( - {dagerMedFjernetFerie && dagerMedFjernetFerie.length > 0 && ( @@ -198,16 +198,12 @@ const EndreArbeidstidForm: React.FunctionComponent = ( - {gjelderKortUke && ( - - - - - - )} + {arbeidsuker.length === 1 ? ( + + ) : null} {timerEllerProsent === TimerEllerProsent.PROSENT && ( diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" index 3fdfffab33..da33340e9a 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" @@ -173,6 +173,7 @@ const ArbeidsaktivitetContent: React.FunctionComponent = ({ isVisible={arbeidsukerForEndring !== undefined} onClose={() => setArbeidsukerForEndring(undefined)}> Date: Mon, 20 Jan 2025 08:18:12 +0100 Subject: [PATCH 08/31] Cleanup --- .../src/app/utils/arbeidsukeUtils.ts | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts index 60928167e7..24f2442f21 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/arbeidsukeUtils.ts @@ -52,43 +52,3 @@ export const arbeidsukerHarLikNormaltidPerDag = (arbeidsuker: Arbeidsuke[]): boo export const getDagerFraEnkeltdagMap = (arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap): ISODate[] => { return Object.keys(arbeidstidEnkeltdager).sort(); }; - -// /** -// * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke -// * @param periode DateRange for uken -// * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid innenfor uken -// * @returns Arbeidsuke -// */ -// export const getArbeidsukeFromEnkeltdagerIUken = ( -// uke: DateRange, -// arbeidstidEnkeltdagerIUken: ArbeidstidEnkeltdagMap, -// ): Arbeidsuke => { -// const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); -// const antallDagerMedArbeidstid = dagerSøktFor.length; -// const normalt = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].normalt); -// const normaltSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(normalt)); -// const faktiskEnkeltdager = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); -// const harFaktiskArbeidstid = faktiskEnkeltdager.some((f) => f !== undefined); -// const faktiskSummertHeleUken = harFaktiskArbeidstid -// ? numberDurationAsDuration(durationUtils.summarizeDurations(faktiskEnkeltdager)) -// : undefined; -// const faktisk: ArbeidsukeTimer | undefined = faktiskSummertHeleUken -// ? { -// uke: faktiskSummertHeleUken, -// dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), -// } -// : undefined; - -// const arbeidsuke: Arbeidsuke = { -// isoDateRange: dateRangeToISODateRange(uke), -// periode: uke, -// arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, -// faktisk, -// normalt: { -// uke: normaltSummertHeleUken, -// dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerMedArbeidstid), -// }, -// antallDagerMedArbeidstid: dagerSøktFor.length, -// }; -// return arbeidsuke; -// }; From 3c0e99b02bdf6481491060380fba7df7dc654f09 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Mon, 20 Jan 2025 11:23:23 +0100 Subject: [PATCH 09/31] stash --- .../ArbeidstidUker.stories.tsx | 54 +++++--------- .../components/ArbeidstidUkeInfo.tsx | 2 +- .../components/ArbeidstidUkeInfoListe.tsx | 2 +- .../EndreArbeidstidForm.tsx | 2 +- .../endreArbeidstidFormUtils.ts | 8 +-- .../arbeidsaktivitetUtils.ts" | 6 +- .../steps/arbeidstid/arbeidstidStepUtils.ts" | 2 +- .../oppsummering/oppsummeringStepUtils.ts" | 19 ++--- .../src/app/types/Sak.ts | 3 +- .../utils/__tests__/getSakFromK9Sak.test.ts | 14 ++-- .../src/app/utils/beregnUtils.ts | 10 +-- .../src/app/utils/getSakFromK9Sak.ts | 36 ++-------- ...rbeidstidApiDataFromS\303\270knadsdata.ts" | 20 +++--- .../src/mocks/data/app/arbeidsukerMockData.ts | 13 ++-- .../src/storybook/data/sakMock.ts | 72 ++++++++++++------- 15 files changed, 115 insertions(+), 148 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx index 516151d64a..7b77914b1f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx @@ -25,8 +25,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: false, - antallDagerMedArbeidstid: 2, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 2, erKortUke: true, harFeriedager: false, harFjernetFeriedager: false, @@ -54,8 +53,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -83,8 +81,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -112,8 +109,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -141,8 +137,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -170,8 +165,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -199,8 +193,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -228,8 +221,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -257,8 +249,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -286,8 +277,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -315,8 +305,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -344,8 +333,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -373,8 +361,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -402,8 +389,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -431,8 +417,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -460,8 +445,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -489,8 +473,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -518,8 +501,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerMedArbeidstid: 5, - dagerIkkeAnsatt: [], + antallDagerSøktFor: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx index 65e7c44da2..4b85612c96 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx @@ -44,7 +44,7 @@ const ArbeidstidUkeInfo: React.FunctionComponent = ({ uke, medLabels = fa ); } const { faktisk, endretProsent } = uke.endret; - const erEndringGyldig = erTimerGyldigInnenforAntallDager(faktisk, uke.antallDagerMedArbeidstid); + const erEndringGyldig = erTimerGyldigInnenforAntallDager(faktisk, uke.antallDagerSøktFor); return (
diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx index 356866027b..eb7d576e6e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx @@ -50,7 +50,7 @@ const ArbeidstidUkeInfoListe: React.FunctionComponent = ({ uke, visEndrin const erEndret = erArbeidstidUkeItemEndret(uke); - const erEndringGyldig = erTimerGyldigInnenforAntallDager(uke.endret.faktisk, uke.antallDagerMedArbeidstid); + const erEndringGyldig = erTimerGyldigInnenforAntallDager(uke.endret.faktisk, uke.antallDagerSøktFor); return (

diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 3578e29c20..2932f3a94e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -111,7 +111,7 @@ const EndreArbeidstidForm: React.FunctionComponent = ( : []; const getMaksTimer = () => { - const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerMedArbeidstid : 7; + const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerSøktFor : 7; return 24 * antallDager; }; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts index 69b3825acd..381547c881 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts @@ -50,7 +50,7 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType const sisteUke = arbeidsuker[arbeidsuker.length - 1]; if (arbeidsuker.length === 2) { /** Begge uker er komplette uker */ - if (førsteUke.antallDagerMedArbeidstid + sisteUke.antallDagerMedArbeidstid === 10) { + if (førsteUke.antallDagerSøktFor + sisteUke.antallDagerSøktFor === 10) { return { spørOmSnittUker: true, }; @@ -62,7 +62,7 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType } /** Bare fulle uker */ - const antallIkkeFulleUker = arbeidsuker.filter((uke) => uke.antallDagerMedArbeidstid !== 5).length; + const antallIkkeFulleUker = arbeidsuker.filter((uke) => uke.antallDagerSøktFor !== 5).length; if (antallIkkeFulleUker === 0) { return { spørOmSnittUker: true, @@ -76,8 +76,8 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType }; } - const spørOmFørsteUke = arbeidsuker[0].antallDagerMedArbeidstid < 5; - const spørOmSisteUke = arbeidsuker[arbeidsuker.length - 1].antallDagerMedArbeidstid < 5; + const spørOmFørsteUke = arbeidsuker[0].antallDagerSøktFor < 5; + const spørOmSisteUke = arbeidsuker[arbeidsuker.length - 1].antallDagerSøktFor < 5; return { spørOmSnittUker: true, diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" index eabd8d7c36..578108da54 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" @@ -38,7 +38,7 @@ const arbeidsukeToArbeidstidUkerItem = ( periode: arbeidsuke.periode, kanEndres: durationUtils.durationIsGreatherThanZero(arbeidsuke.normalt.uke), kanVelges: !erKortUke && dagerMedFerie.length === 0 && arbeidsuke.dagerIkkeAnsatt.length === 0, - antallDagerMedArbeidstid: arbeidsuke.antallDagerMedArbeidstid, + antallDagerSøktFor: arbeidsuke.antallDagerSøktFor, erKortUke, dagerIkkeAnsatt: arbeidsuke.dagerIkkeAnsatt || [], harFeriedager: dagerMedFerie && dagerMedFerie.length > 0, @@ -57,9 +57,9 @@ const arbeidsukeToArbeidstidUkerItem = ( beregnEndretFaktiskArbeidstidPerDag( arbeidsuke.normalt.uke, endring, - arbeidsuke.antallDagerMedArbeidstid, + arbeidsuke.antallDagerSøktFor, ), - arbeidsuke.antallDagerMedArbeidstid, + arbeidsuke.antallDagerSøktFor, ), endretProsent: endring.type === TimerEllerProsent.PROSENT ? endring.prosent : undefined, } diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" index 7ed6f778c0..3cbe570281 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" @@ -73,7 +73,7 @@ export const cleanupArbeidsaktivitetEndringer = ( const endretArbeidstid = beregnEndretArbeidstidForUke( endring, opprinnelig.normalt.uke, - opprinnelig.antallDagerMedArbeidstid, + opprinnelig.antallDagerSøktFor, ); if (!durationsAreEqual(endretArbeidstid, opprinnelig.faktisk?.uke)) { cleanedEndringer[key] = endring; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" index cfe2c820e6..5534769440 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" @@ -51,7 +51,7 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( isoDateRange: ISODateRange, ): ArbeidstidUkerItem => { const periode = ISODateRangeToDateRange(isoDateRange); - const antallDagerMedArbeidstid = getDatesInDateRange(periode).length; + const antallDagerSøktFor = getDatesInDateRange(periode).length; const arbeidsuke: ArbeidstidUkerItem = { id: isoDateRange, @@ -59,26 +59,17 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( kanVelges: false, isoDateRange, periode, - antallDagerMedArbeidstid, + antallDagerSøktFor, erKortUke: erKortArbeidsuke(periode), dagerIkkeAnsatt: [], //TODO opprinnelig: { - normalt: getTimerPerUkeFraTimerPerDag( - ISODurationToDuration(_opprinneligNormaltPerDag), - antallDagerMedArbeidstid, - ), + normalt: getTimerPerUkeFraTimerPerDag(ISODurationToDuration(_opprinneligNormaltPerDag), antallDagerSøktFor), faktisk: _opprinneligFaktiskPerDag - ? getTimerPerUkeFraTimerPerDag( - ISODurationToDuration(_opprinneligFaktiskPerDag), - antallDagerMedArbeidstid, - ) + ? getTimerPerUkeFraTimerPerDag(ISODurationToDuration(_opprinneligFaktiskPerDag), antallDagerSøktFor) : undefined, }, endret: { - faktisk: getTimerPerUkeFraTimerPerDag( - ISODurationToDuration(faktiskArbeidTimerPerDag), - antallDagerMedArbeidstid, - ), + faktisk: getTimerPerUkeFraTimerPerDag(ISODurationToDuration(faktiskArbeidTimerPerDag), antallDagerSøktFor), endretProsent: _endretProsent, }, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index 88f6ff114a..ef4cac9d6d 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -61,7 +61,8 @@ export interface Arbeidsuke { arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap; faktisk?: ArbeidsukeTimer; normalt: ArbeidsukeTimer; - antallDagerMedArbeidstid: number; + antallDagerSøktFor: number; + dagerSøktFor: Date[]; dagerIkkeAnsatt: Date[]; } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 7595682e22..ae8e5b5aaa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -222,14 +222,14 @@ describe('getSakFromK9Sak', () => { expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-03'); - expect(uke.antallDagerMedArbeidstid).toEqual(1); + expect(uke.antallDagerSøktFor).toEqual(1); }); it('returnerer riktig for dager som går over én hel uke', () => { const result = getArbeidsukerFromEnkeltdager(helUke); expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-07'); - expect(uke.antallDagerMedArbeidstid).toEqual(5); + expect(uke.antallDagerSøktFor).toEqual(5); }); it('returnerer riktig for dager som går mer enn én uker', () => { const result = getArbeidsukerFromEnkeltdager(flereUker); @@ -238,8 +238,8 @@ describe('getSakFromK9Sak', () => { const uke2 = result[1]; expect(dateRangeToISODateRange(uke1.periode)).toEqual('2022-01-03/2022-01-09'); expect(dateRangeToISODateRange(uke2.periode)).toEqual('2022-01-10/2022-01-11'); - expect(uke1.antallDagerMedArbeidstid).toEqual(5); - expect(uke2.antallDagerMedArbeidstid).toEqual(2); + expect(uke1.antallDagerSøktFor).toEqual(5); + expect(uke2.antallDagerSøktFor).toEqual(2); }); }); @@ -264,7 +264,7 @@ describe('getSakFromK9Sak', () => { it('returnerer riktig for én enkeltdag', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag); - expect(uke.antallDagerMedArbeidstid).toEqual(1); + expect(uke.antallDagerSøktFor).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.normalt.dag)).toEqual(durationToISODuration(arbeidstid.normalt)); @@ -273,7 +273,7 @@ describe('getSakFromK9Sak', () => { it('fjerner dager som ikke er innenfor uken', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke); - expect(uke.antallDagerMedArbeidstid).toEqual(1); + expect(uke.antallDagerSøktFor).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.normalt.dag)).toEqual(durationToISODuration(arbeidstid.normalt)); @@ -282,7 +282,7 @@ describe('getSakFromK9Sak', () => { it('returnerer riktig for én uke', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke); - expect(uke.antallDagerMedArbeidstid).toEqual(5); + expect(uke.antallDagerSøktFor).toEqual(5); expect(uke.isoDateRange).toEqual(dateRangeToISODateRange(periodeHelUke)); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual('PT10H0M'); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts index 66fc437af1..8e037f34d9 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts @@ -4,11 +4,11 @@ import { ArbeidstidEndring, TimerEllerProsent } from '@types'; export const beregnEndretArbeidstidForUke = ( endring: ArbeidstidEndring, normaltidPerUke: Duration, - antallDagerMedArbeidstid: number, + antallDagerSøktFor: number, ): Duration => { return getTimerPerUkeFraTimerPerDag( - beregnEndretFaktiskArbeidstidPerDag(normaltidPerUke, endring, antallDagerMedArbeidstid), - antallDagerMedArbeidstid, + beregnEndretFaktiskArbeidstidPerDag(normaltidPerUke, endring, antallDagerSøktFor), + antallDagerSøktFor, ); }; @@ -37,8 +37,8 @@ export const summerTimerPerDag = (timerPerDag: Duration, antallDager: number): D return decimalDurationToDuration(durationToDecimalDuration(timerPerDag) * antallDager); }; -export const getTimerPerUkeFraTimerPerDag = (tidPerDag: Duration, antallDagerMedArbeidstid: number): Duration => { - return summerTimerPerDag(tidPerDag, antallDagerMedArbeidstid); +export const getTimerPerUkeFraTimerPerDag = (tidPerDag: Duration, antallDagerSøktFor: number): Duration => { + return summerTimerPerDag(tidPerDag, antallDagerSøktFor); }; /** diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index 6dcca9096e..aa1e4b43ea 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -200,33 +200,6 @@ const trimArbeidstidTilTillattEndringsperiode = ( return perioder; }; -// /** -// * Fjerner arbeidstid fra @K9SakArbeidstidPeriodeMap som ikke er en del av ansettelsesperioder -// * @param arbeidstidPeriodeMap -// * @param ansettelsesperioder -// * @returns -// */ -// const trimArbeidstidTilAnsettelsesperioder = ( -// arbeidstidPeriodeMap: K9SakArbeidstidPeriodeMap, -// _ansettelsesperioder: MaybeDateRange[], -// ): K9SakArbeidstidPeriodeMap => { -// const perioder: K9SakArbeidstidPeriodeMap = {}; -// Object.keys(arbeidstidPeriodeMap).forEach(() => { -// // const { from, to } = ISODateRangeToDateRange(key); -// // if (dateRangesCollide([{ from, to }, tillattEndringsperiode], true) === false) { -// // return; // Er ikke innenfor gyldig tidsrom -// // } -// // const førsteDato = tillattEndringsperiode.from; -// // const sisteDato = tillattEndringsperiode.to; -// // const dateRangeToUse: DateRange = { -// // from: dayjs(from).isBefore(førsteDato, 'day') ? førsteDato : from, -// // to: dayjs(to).isAfter(sisteDato, 'day') ? sisteDato : to, -// // }; -// // perioder[dateRangeToISODateRange(dateRangeToUse)] = arbeidstidPeriodeMap[key]; -// }); -// return perioder; -// }; - /** * Finner alle arbeidstidPerioder innenfor et tidsrom * @param dateRange @@ -334,7 +307,7 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( ): Arbeidsuke => { const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(periode, arbeidstidEnkeltdager); const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); - const antallDagerMedArbeidstid = dagerSøktFor.length; + const antallDagerSøktFor = dagerSøktFor.length; const faktisk = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); const normalt = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].normalt); const normaltSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(normalt)); @@ -344,16 +317,17 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( isoDateRange: dateRangeToISODateRange(periode), periode: periode, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, + dagerSøktFor: dagerSøktFor.map(ISODateToDate), dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(periode, ansettelsesperioder), + antallDagerSøktFor: dagerSøktFor.length, faktisk: { uke: faktiskSummertHeleUken, - dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), + dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerSøktFor), }, normalt: { uke: normaltSummertHeleUken, - dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerMedArbeidstid), + dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerSøktFor), }, - antallDagerMedArbeidstid: dagerSøktFor.length, }; return arbeidsuke; }; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" index 33ebc86017..67b6513130 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" @@ -48,20 +48,20 @@ const getEndretArbeidstid = ( ): ArbeidstidPeriodeApiDataMap => { const perioderMedEndretArbeidstid: ArbeidstidPeriodeApiDataMap = {}; - const endringKeys = Object.keys(endringUkeMap).sort(); + const endringUkeKeys = Object.keys(endringUkeMap).sort(); - endringKeys.forEach((isoDateRange) => { + endringUkeKeys.forEach((isoDateRange) => { const endring = endringUkeMap[isoDateRange]; const arbeidsuker = getAlleArbeidsukerIPerioder(arbeidsaktivitet.perioderMedArbeidstid); const arbeidsuke = arbeidsuker[isoDateRange]; const dagerSøktFor = getDagerFraEnkeltdagMap(arbeidsuke.arbeidstidEnkeltdager); - const { antallDagerMedArbeidstid } = arbeidsuke; + const { antallDagerSøktFor } = arbeidsuke; - const jobberNormaltTimerPerDag = beregnSnittTimerPerDag(arbeidsuke.normalt.uke, antallDagerMedArbeidstid); + const jobberNormaltTimerPerDag = beregnSnittTimerPerDag(arbeidsuke.normalt.uke, antallDagerSøktFor); const faktiskArbeidTimerPerDag = beregnEndretFaktiskArbeidstidPerDag( arbeidsuke.normalt.uke, endring, - antallDagerMedArbeidstid, + antallDagerSøktFor, ); /** Splitt opp hvis det er enkeltdager i uken */ @@ -168,7 +168,7 @@ export const getArbeidstidApiDataFromSøknadsdata = ( const jobberNormaltTimerPerDag = beregnSnittTimerPerDag( arbeidsuke.normalt.uke, - arbeidsuke.antallDagerMedArbeidstid, + arbeidsuke.antallDagerSøktFor, ); /** Splitt opp hvis det er enkeltdager i uken */ @@ -216,18 +216,14 @@ export const getArbeidstidApiDataFromSøknadsdata = ( export const getFaktiskArbeidTimerPerDagForUkjentArbeidsforhold = ( arbeiderIPerioden: ArbeiderIPeriodenSvar, - arbeidsuke: Pick, + arbeidsuke: Pick, endring?: ArbeidstidEndring, ): Duration => { if (!endring && arbeiderIPerioden === ArbeiderIPeriodenSvar.redusert) { throw 'Faktisk arbeidstid mangler for redusert arbeidsforhold'; } if (endring) { - return beregnEndretFaktiskArbeidstidPerDag( - arbeidsuke.normalt.uke, - endring, - arbeidsuke.antallDagerMedArbeidstid, - ); + return beregnEndretFaktiskArbeidstidPerDag(arbeidsuke.normalt.uke, endring, arbeidsuke.antallDagerSøktFor); } return arbeiderIPerioden === ArbeiderIPeriodenSvar.heltFravær ? { diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts index 09afb64e40..7a30e42e91 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts @@ -7,6 +7,7 @@ import { getDatesInDateRange, ISODateRange, ISODateRangeToDateRange, + ISODateToDate, } from '@navikt/sif-common-utils'; import { ArbeidstidEnkeltdagMap, Arbeidsuke } from '@types'; @@ -15,10 +16,7 @@ const getMockArbeidsuke = ( normaltPerDag: Duration = { hours: '7', minutes: '30' }, faktiskPerDag: Duration = { hours: '2', minutes: '0' }, ): Arbeidsuke => { - const antallDagerMedArbeidstid = dateRangeUtils.getNumberOfDaysInDateRange( - ISODateRangeToDateRange(isoDateRange), - true, - ); + const antallDagerSøktFor = dateRangeUtils.getNumberOfDaysInDateRange(ISODateRangeToDateRange(isoDateRange), true); const periode = ISODateRangeToDateRange(isoDateRange); const dagerSøktFor = getDatesInDateRange(periode, true).map((d) => dateToISODate(d)); // Alle dager i perioden const arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap = {}; @@ -34,15 +32,16 @@ const getMockArbeidsuke = ( periode, arbeidstidEnkeltdager, dagerIkkeAnsatt: [], + dagerSøktFor: dagerSøktFor.map(ISODateToDate), normalt: { - uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerMedArbeidstid), + uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerSøktFor), dag: normaltPerDag, }, faktisk: { - uke: decimalDurationToDuration(durationToDecimalDuration(faktiskPerDag) * antallDagerMedArbeidstid), + uke: decimalDurationToDuration(durationToDecimalDuration(faktiskPerDag) * antallDagerSøktFor), dag: faktiskPerDag, }, - antallDagerMedArbeidstid, + antallDagerSøktFor, }; }; diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index 93db5e06cb..eb711736ba 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -69,6 +69,7 @@ export const sakMock: Sak = { to: new Date('2024-02-29T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -131,7 +132,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerMedArbeidstid: 4, + antallDagerSøktFor: 4, }, }, }, @@ -146,6 +147,7 @@ export const sakMock: Sak = { to: new Date('2024-03-31T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -218,7 +220,7 @@ export const sakMock: Sak = { minutes: '24', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-01/2024-04-07': { isoDateRange: '2024-04-01/2024-04-07', @@ -227,6 +229,7 @@ export const sakMock: Sak = { to: new Date('2024-04-07T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -299,7 +302,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-08/2024-04-14': { isoDateRange: '2024-04-08/2024-04-14', @@ -308,6 +311,7 @@ export const sakMock: Sak = { to: new Date('2024-04-14T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -380,7 +384,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-15/2024-04-21': { isoDateRange: '2024-04-15/2024-04-21', @@ -389,6 +393,7 @@ export const sakMock: Sak = { to: new Date('2024-04-21T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -461,7 +466,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-22/2024-04-28': { isoDateRange: '2024-04-22/2024-04-28', @@ -470,6 +475,7 @@ export const sakMock: Sak = { to: new Date('2024-04-28T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -542,7 +548,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-29/2024-05-05': { isoDateRange: '2024-04-29/2024-05-05', @@ -551,6 +557,7 @@ export const sakMock: Sak = { to: new Date('2024-05-05T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -623,7 +630,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-06/2024-05-12': { isoDateRange: '2024-05-06/2024-05-12', @@ -632,6 +639,7 @@ export const sakMock: Sak = { to: new Date('2024-05-12T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -704,7 +712,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-13/2024-05-19': { isoDateRange: '2024-05-13/2024-05-19', @@ -713,6 +721,7 @@ export const sakMock: Sak = { to: new Date('2024-05-19T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -785,7 +794,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-20/2024-05-26': { isoDateRange: '2024-05-20/2024-05-26', @@ -794,6 +803,7 @@ export const sakMock: Sak = { to: new Date('2024-05-26T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -866,7 +876,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-27/2024-05-31': { isoDateRange: '2024-05-27/2024-05-31', @@ -875,6 +885,7 @@ export const sakMock: Sak = { to: new Date('2024-05-31T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -947,7 +958,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, }, }, @@ -975,6 +986,7 @@ export const sakMock: Sak = { to: new Date('2024-04-09T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1017,7 +1029,7 @@ export const sakMock: Sak = { minutes: '48', }, }, - antallDagerMedArbeidstid: 2, + antallDagerSøktFor: 2, }, }, }, @@ -1068,6 +1080,7 @@ export const sakMock: Sak = { to: new Date('2024-02-29T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-02-26': { faktisk: { @@ -1130,7 +1143,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerMedArbeidstid: 4, + antallDagerSøktFor: 4, }, }, }, @@ -1145,6 +1158,7 @@ export const sakMock: Sak = { to: new Date('2024-03-31T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-03-25': { faktisk: { @@ -1217,7 +1231,7 @@ export const sakMock: Sak = { minutes: '24', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-01/2024-04-07': { isoDateRange: '2024-04-01/2024-04-07', @@ -1226,6 +1240,7 @@ export const sakMock: Sak = { to: new Date('2024-04-07T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-01': { faktisk: { @@ -1298,7 +1313,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-08/2024-04-14': { isoDateRange: '2024-04-08/2024-04-14', @@ -1307,6 +1322,7 @@ export const sakMock: Sak = { to: new Date('2024-04-14T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -1379,7 +1395,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-15/2024-04-21': { isoDateRange: '2024-04-15/2024-04-21', @@ -1388,6 +1404,7 @@ export const sakMock: Sak = { to: new Date('2024-04-21T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-15': { faktisk: { @@ -1460,7 +1477,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-22/2024-04-28': { isoDateRange: '2024-04-22/2024-04-28', @@ -1469,6 +1486,7 @@ export const sakMock: Sak = { to: new Date('2024-04-28T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-22': { faktisk: { @@ -1541,7 +1559,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-04-29/2024-05-05': { isoDateRange: '2024-04-29/2024-05-05', @@ -1550,6 +1568,7 @@ export const sakMock: Sak = { to: new Date('2024-05-05T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-29': { faktisk: { @@ -1622,7 +1641,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-06/2024-05-12': { isoDateRange: '2024-05-06/2024-05-12', @@ -1631,6 +1650,7 @@ export const sakMock: Sak = { to: new Date('2024-05-12T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-06': { faktisk: { @@ -1703,7 +1723,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-13/2024-05-19': { isoDateRange: '2024-05-13/2024-05-19', @@ -1712,6 +1732,7 @@ export const sakMock: Sak = { to: new Date('2024-05-19T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-13': { faktisk: { @@ -1784,7 +1805,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-20/2024-05-26': { isoDateRange: '2024-05-20/2024-05-26', @@ -1793,6 +1814,7 @@ export const sakMock: Sak = { to: new Date('2024-05-26T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-20': { faktisk: { @@ -1865,7 +1887,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, '2024-05-27/2024-05-31': { isoDateRange: '2024-05-27/2024-05-31', @@ -1874,6 +1896,7 @@ export const sakMock: Sak = { to: new Date('2024-05-31T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-27': { faktisk: { @@ -1946,7 +1969,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerMedArbeidstid: 5, + antallDagerSøktFor: 5, }, }, }, @@ -1973,6 +1996,7 @@ export const sakMock: Sak = { to: new Date('2024-04-09T00:00:00.000Z'), }, dagerIkkeAnsatt: [], + dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { faktisk: { @@ -2015,7 +2039,7 @@ export const sakMock: Sak = { minutes: '48', }, }, - antallDagerMedArbeidstid: 2, + antallDagerSøktFor: 2, }, }, }, From 745e9a0e5ddf660685b4593c00e235822f85c708 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Mon, 20 Jan 2025 11:45:12 +0100 Subject: [PATCH 10/31] =?UTF-8?q?Fjerne=20ikkeAnsatt=20kode=20p=C3=A5=20uk?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arbeidstid-uker/ArbeidstidUker.tsx | 6 +- .../components/ArbeidstidUkeListe.tsx | 1 - .../components/ArbeidstidUkeTabell.tsx | 7 +- .../components/KortUkeEllerIkkeAnsattInfo.tsx | 64 ------------------- .../components/KortUkeInfo.tsx | 16 +++++ .../components/UkeInfoTooltip.tsx | 26 ++------ .../arbeidstid-uker/components/UkeTags.tsx | 12 +--- .../types/ArbeidstidUkerItem.ts | 3 +- .../EndreArbeidstidForm.tsx | 16 ++--- .../arbeidsaktivitetUtils.ts" | 3 +- .../oppsummering/oppsummeringStepUtils.ts" | 1 - 11 files changed, 32 insertions(+), 123 deletions(-) delete mode 100644 apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx create mode 100644 apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeInfo.tsx diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx index 2d9abfcf1e..f8dcbfa1e7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx @@ -58,7 +58,6 @@ const ArbeidstidUker: React.FunctionComponent = ({ const renderCompactTable = useMediaQuery({ minWidth: 736 }) === false && renderAsList === false; const korteUker = visibleItems.filter((i) => i.erKortUke).map((uke) => uke.periode); - const ukerMedDagerIkkeAnsatt = visibleItems.filter((i) => i.dagerIkkeAnsatt.length > 0).map((uke) => uke.periode); const ukerMedFerie = visibleItems .filter((i) => i.ferie && i.ferie?.dagerMedFerie.length > 0) .map((uke) => uke.periode); @@ -105,10 +104,7 @@ const ArbeidstidUker: React.FunctionComponent = ({ setItemsAreSelectable(checked); }} ukerKanVelges={itemsAreSelectable} - visKorteUkerMelding={ - itemsAreSelectable && - (ukerMedFerie.length > 0 || korteUker.length > 0 || ukerMedDagerIkkeAnsatt.length > 0) - } + visKorteUkerMelding={itemsAreSelectable && (ukerMedFerie.length > 0 || korteUker.length > 0)} /> ) : undefined; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx index cb3eefcbe5..28e654f6f7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx @@ -59,7 +59,6 @@ const ArbeidstidUkeListe: React.FunctionComponent = ({ erKortUke={uke.erKortUke} dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} - arbeidsdagerIkkeAnsatt={uke.dagerIkkeAnsatt} /> diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx index 34ebf22bc7..478c20f69b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeTabell.tsx @@ -30,7 +30,6 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ selectableList, arbeidstidKolonneTittel, renderCompactTable, - arbeidsgivernavn, renderEditButton, }) => { const { text, intl } = useAppIntl(); @@ -152,7 +151,6 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ dagerMedFerie={uke.ferie?.dagerMedFerie} dagerMedFjernetFerie={uke.ferie?.dagerMedFjernetFerie} erKortUke={uke.erKortUke} - arbeidsdagerIkkeAnsatt={uke.dagerIkkeAnsatt} /> )} @@ -176,15 +174,12 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ )} - {(uke.erKortUke || uke.dagerIkkeAnsatt.length > 0) && ( - - )} + {uke.erKortUke && }

diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx deleted file mode 100644 index 653e24efeb..0000000000 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { Alert, Box, VStack } from '@navikt/ds-react'; -import { erKortArbeidsuke, getDagerTekst } from '../../../utils'; -import { Arbeidsuke } from '../../../types'; -import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { AppText } from '../../../i18n'; -import { dateFormatter } from '@navikt/sif-common-utils'; - -interface Props { - arbeidsuke: Arbeidsuke; - arbeidsgivernavn: string; -} - -const KortUkeInfo = ({ arbeidsuke }: { arbeidsuke: Arbeidsuke }) => ( - - - -); - -const IkkeAnsattInfo = ({ arbeidsuke, arbeidsgivernavn }: { arbeidsuke: Arbeidsuke; arbeidsgivernavn: string }) => ( - - - Kort uke - du er ikke registrert som ansatt hos {arbeidsgivernavn} alle dagene denne uken. Dager du ikke er - registrert som ansatt er:{' '} - {arbeidsuke.dagerIkkeAnsatt.map((d) => dateFormatter.dayDateShortMonth(d)).join(',')}. - - Hvis dette ikke stemmer, må du ta kontakt med {arbeidsgivernavn}. - -); - -const KortUkeEllerIkkeAnsattInformasjon = ({ arbeidsuke, arbeidsgivernavn }: Props) => { - const gjelderKortUke = erKortArbeidsuke(arbeidsuke.periode); - - if (gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length === 0) { - return ( - - - - ); - } - if (!gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length > 0) { - return ( - - - - - - ); - } - if (gjelderKortUke && arbeidsuke.dagerIkkeAnsatt.length > 0) { - return ( - - - - - - - - - ); - } - return null; -}; - -export default KortUkeEllerIkkeAnsattInformasjon; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeInfo.tsx new file mode 100644 index 0000000000..45da893352 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/KortUkeInfo.tsx @@ -0,0 +1,16 @@ +import { Box } from '@navikt/ds-react'; +import { getDagerTekst } from '../../../utils'; +import { Arbeidsuke } from '../../../types'; +import { AppText } from '../../../i18n'; + +interface Props { + arbeidsuke: Arbeidsuke; +} + +const KortUkeInfo = ({ arbeidsuke }: Props) => ( + + + +); + +export default KortUkeInfo; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx index 34c193e794..07072d1244 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeInfoTooltip.tsx @@ -1,4 +1,4 @@ -import { BodyShort, Box, HelpText, Tooltip, VStack } from '@navikt/ds-react'; +import { Tooltip } from '@navikt/ds-react'; import React from 'react'; import { InformationColored } from '@navikt/ds-icons'; import { dateFormatter, DateRange } from '@navikt/sif-common-utils'; @@ -6,12 +6,11 @@ import { ArbeidstidUkerItem } from '../types/ArbeidstidUkerItem'; interface Props { uke: ArbeidstidUkerItem; - arbeidsgivernavn: string; } -const UkeInfoTooltip: React.FunctionComponent = ({ uke, arbeidsgivernavn }) => { - const { dagerIkkeAnsatt: arbeidsdagerIkkeAnsatt, erKortUke } = uke; - if (erKortUke && arbeidsdagerIkkeAnsatt.length === 0) { +const UkeInfoTooltip: React.FunctionComponent = ({ uke }) => { + const { erKortUke } = uke; + if (erKortUke) { return ( @@ -20,23 +19,6 @@ const UkeInfoTooltip: React.FunctionComponent = ({ uke, arbeidsgivernavn ); } - if (!erKortUke && arbeidsdagerIkkeAnsatt.length > 0) { - const dager = arbeidsdagerIkkeAnsatt.map((d) => dateFormatter.day(d)); - const info = ( - - - Kort uke - du er ikke registrert som ansatt hos {arbeidsgivernavn} alle dagene denne uken. Dager du - ikke registrert som ansatt er: {dager.join(',')}. - - Hvis dette ikke stemmer, må du ta kontakt med {arbeidsgivernavn}. - - ); - return ( - - {info} - - ); - } }; const getDagerPeriode = ({ from, to }: DateRange, visDato = true): string => { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx index 338b050eac..45cc7349f2 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx @@ -8,19 +8,13 @@ interface Props { erKortUke?: boolean; dagerMedFerie: Date[] | undefined; dagerMedFjernetFerie?: Date[] | undefined; - arbeidsdagerIkkeAnsatt: Date[] | undefined; + visDagNavn?: boolean; } -const UkeTags = ({ - dagerMedFerie = [], - dagerMedFjernetFerie = [], - visDagNavn, - erKortUke, - arbeidsdagerIkkeAnsatt = [], -}: Props) => { +const UkeTags = ({ dagerMedFerie = [], dagerMedFjernetFerie = [], visDagNavn, erKortUke }: Props) => { const tags: React.ReactNode[] = []; - if (erKortUke || arbeidsdagerIkkeAnsatt.length > 0) { + if (erKortUke) { tags.push(); } if (dagerMedFerie?.length > 0) { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts index 0eda26d99c..980766084c 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts @@ -6,9 +6,8 @@ export interface ArbeidstidUkerItem { kanVelges: boolean; isoDateRange: ISODateRange; periode: DateRange; - antallDagerMedArbeidstid: number; + antallDagerSøktFor: number; erKortUke: boolean; - dagerIkkeAnsatt: Date[]; harFeriedager?: boolean; harFjernetFeriedager?: boolean; ferie?: { diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 2932f3a94e..0d243e06aa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -25,7 +25,7 @@ import UkeTags from '../arbeidstid-uker/components/UkeTags'; import { getArbeidstidSpørsmålDescription, getArbeidsukerPerÅr } from './endreArbeidstidFormUtils'; import { getEndreArbeidstidIntlValues } from './endreArbeidstidIntlValues'; import './endreArbeidstidForm.scss'; -import KortUkeEllerIkkeAnsattInformasjon from '../arbeidstid-uker/components/KortUkeEllerIkkeAnsattInfo'; +import KortUkeInfo from '../arbeidstid-uker/components/KortUkeInfo'; type EndreArbeidstidData = { perioder: DateRange[]; @@ -63,7 +63,6 @@ const EndreArbeidstidForm: React.FunctionComponent = ( arbeidsuker, lovbestemtFerie, endring, - arbeidsgivernavn, onCancel, onSubmit, }) => { @@ -199,10 +198,9 @@ const EndreArbeidstidForm: React.FunctionComponent = ( {arbeidsuker.length === 1 ? ( - + + + ) : null} @@ -276,11 +274,7 @@ const getUkerOgÅrBeskrivelse = ( {getArbeidstidSpørsmålDescription(arbeidsuker[0], intl.locale)} {dagerMedFerie.length > 0 && ( - + )} diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" index 578108da54..b5385573d2 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" @@ -37,10 +37,9 @@ const arbeidsukeToArbeidstidUkerItem = ( isoDateRange: arbeidsuke.isoDateRange, periode: arbeidsuke.periode, kanEndres: durationUtils.durationIsGreatherThanZero(arbeidsuke.normalt.uke), - kanVelges: !erKortUke && dagerMedFerie.length === 0 && arbeidsuke.dagerIkkeAnsatt.length === 0, + kanVelges: !erKortUke && dagerMedFerie.length === 0, antallDagerSøktFor: arbeidsuke.antallDagerSøktFor, erKortUke, - dagerIkkeAnsatt: arbeidsuke.dagerIkkeAnsatt || [], harFeriedager: dagerMedFerie && dagerMedFerie.length > 0, harFjernetFeriedager: dagerMedFjernetFerie && dagerMedFjernetFerie.length > 0, ferie: { diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" index 5534769440..9f23a23f24 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" @@ -61,7 +61,6 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( periode, antallDagerSøktFor, erKortUke: erKortArbeidsuke(periode), - dagerIkkeAnsatt: [], //TODO opprinnelig: { normalt: getTimerPerUkeFraTimerPerDag(ISODurationToDuration(_opprinneligNormaltPerDag), antallDagerSøktFor), faktisk: _opprinneligFaktiskPerDag From b7eda068d4509985712cb1594c0c980c5e362ae8 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Tue, 21 Jan 2025 08:17:06 +0100 Subject: [PATCH 11/31] Stoppe brukere med 2 ansettelser samme uke --- .../src/app/api/fetchInitialData.ts | 11 +++- .../src/app/i18n/appMessages.ts | 2 + .../components/ArbeidstidUkeInfo.tsx | 6 +- .../components/ArbeidstidUkeInfoListe.tsx | 4 +- .../pages/ingen-tilgang/IngenTilgangPage.tsx | 9 +++ .../app/types/IngenTilgang\303\205rsak.ts" | 1 + .../utils/__tests__/tilgangskontroll.test.ts | 33 ++++++++++- .../src/app/utils/tilgangskontroll.ts | 56 ++++++++++++++++++- 8 files changed, 112 insertions(+), 10 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts index b9731e31e4..eb214ce87e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts @@ -76,7 +76,7 @@ export const fetchInitialData = async ( }) .then((result) => { arbeidsgivere = result; - return kontrollerTilgang(k9saker, tillattEndringsperiode); + return kontrollerTilgang(k9saker, tillattEndringsperiode, arbeidsgivere); }) .then(() => hentOgKontrollerLagretSøknadState(søker, k9saker)) .then((lagretSøknadState) => { @@ -152,8 +152,13 @@ const kontrollerSaker = ( return Promise.resolve({ k9saker, dateRangeAlleSaker }); }; -const kontrollerTilgang = async (k9saker: K9Sak[], tillattEndringsperiode: DateRange): Promise => { - const resultat = tilgangskontroll(k9saker, tillattEndringsperiode); +const kontrollerTilgang = async ( + k9saker: K9Sak[], + tillattEndringsperiode: DateRange, + arbeidsgivere: ArbeidsgiverForEndring[], +): Promise => { + const resultat = tilgangskontroll(k9saker, tillattEndringsperiode, arbeidsgivere); + if (resultat.kanBrukeSøknad) { return Promise.resolve(true); } diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index 76293bc7d1..66f97d79b4 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -100,6 +100,8 @@ const nb = { 'Du kan ikke bruke denne tjenesten fordi siste søknadsperiode gikk ut for mer enn enn {ANTALL_MÅNEDER_TILLATT_FOR_ENDRING} måneder siden. Du kan melde fra om endring i tjenesten {SkrivTilOssLink}, eller sende oss en ny søknad.', 'ingenTilgangPage.utenforEndringsperiode.2': 'Hvis du mener at dette ikke stemmer, er det fint at du sender en melding til oss {SkrivTilOssLink}.', + 'ingenTilgangPage.slutterOgStarterInneforSammeUke': + 'Vi ser at du har to ansettelsesforhold hos samme arbeidsgiver som slutter og starter samme uke. Da kan du desverre ikke bruke denne løsningen for å melde fra om endringer.', 'kvitteringPage.pageTitle': 'Endringsmelding er mottatt', 'kvitteringPage.title': 'Melding om endring er lagt til saken din', diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx index 4b85612c96..bbb4827f39 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx @@ -33,7 +33,11 @@ const ArbeidstidUkeInfo: React.FunctionComponent = ({ uke, medLabels = fa const { endretProsent } = uke.endret; return ( <> - {medLabels && Arbeidstimer:} + {medLabels && ( + + Arbeidstimer: + + )} diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx index eb7d576e6e..d921d77c0a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx @@ -74,12 +74,12 @@ const ArbeidstidUkeInfoListe: React.FunctionComponent = ({ uke, visEndrin )} {erEndret && ( -
+ Endret fra {uke.opprinnelig.faktisk && } -
+ )}

diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx index 1790f82dab..b0066ac953 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx @@ -88,6 +88,15 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

{skrivTilOssGenerell}

); + case IngenTilgangÅrsak.harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke: + return ( + +

+ +

+

{skrivTilOssGenerell}

+
+ ); case IngenTilgangÅrsak.søknadsperioderUtenforTillattEndringsperiode: return ( diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" index dd30569002..ba61aa4f4a 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" @@ -6,4 +6,5 @@ export enum IngenTilgangÅrsak { 'harIngenPerioder' = 'harIngenPerioder', 'harArbeidsgiverUtenArbeidsaktivitet' = 'harArbeidsgiverUtenArbeidsaktivitet', 'harArbeidstidSomSelvstendigNæringsdrivende' = 'harArbeidstidSomSelvstendigNæringsdrivende', + 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke' = 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke', } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 13574c001a..5644177ef7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -29,11 +29,11 @@ describe('tilgangskontroll', () => { const tillattEndringsperiode = ISODateRangeToDateRange('2022-01-01/2023-03-01'); it('stopper ved ingen sak', () => { - const result = tilgangskontroll([], tillattEndringsperiode); + const result = tilgangskontroll([], tillattEndringsperiode, []); expect(result.kanBrukeSøknad).toBeFalsy(); }); it('stopper hvis bruker har flere enn én sak', () => { - const result = tilgangskontroll([true, false] as any, tillattEndringsperiode); + const result = tilgangskontroll([true, false] as any, tillattEndringsperiode, []); expect(result.kanBrukeSøknad).toBeFalsy(); }); }); @@ -146,3 +146,32 @@ describe('ingenTilgangMeta', () => { expect(result.erSN).toBeTruthy(); }); }); + +describe('slutterOgStarterHosArbeidsgiverSammeUke', () => { + const uke2: DateRange = ISODateRangeToDateRange('2025-01-06/2025-01-12'); + const uke4: DateRange = ISODateRangeToDateRange('2025-01-20/2025-01-26'); + const uke3ManOns: DateRange = ISODateRangeToDateRange('2025-01-13/2025-01-15'); + const uke3TorFre: DateRange = ISODateRangeToDateRange('2025-01-16/2025-01-17'); + const uke3FreSøn: DateRange = ISODateRangeToDateRange('2025-01-17/2025-01-19'); + + it('returnerer false hvis det ikke er noen ansettelsesperiode', () => { + expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([])).toBeFalsy(); + }); + it('returnerer false hvis det bare er én ansettelsesperiode', () => { + expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2])).toBeFalsy(); + }); + it('returnerer false hvis det to ansettelsesperiode med én uke mellom', () => { + expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4])).toBeFalsy(); + }); + it('returnerer false hvis det to ansettelsesperiode med er sammenhengende', () => { + expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3TorFre])).toBeFalsy(); + }); + it('returnerer true hvis to perioder slutter og starter innenfor samme uke men med opphold', () => { + expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3FreSøn])).toBeTruthy(); + }); + it('returnerer true hvis to det er mange perioder usortert og noen slutter og starter innenfor samme uke men med opphold', () => { + expect( + tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4, uke3ManOns, uke3FreSøn]), + ).toBeTruthy(); + }); +}); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index 59ee6b82bf..d19dd0e861 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -1,4 +1,4 @@ -import { DateRange, durationToDecimalDuration } from '@navikt/sif-common-utils'; +import { DateRange, durationToDecimalDuration, ensureDateRange, sortDateRange } from '@navikt/sif-common-utils'; import { ArbeidsgiverForEndring, IngenTilgangÅrsak, @@ -26,7 +26,11 @@ type TilgangTillatt = { export type TilgangKontrollResultat = TilgangNektet | TilgangTillatt; -export const tilgangskontroll = (saker: K9Sak[], tillattEndringsperiode: DateRange): TilgangKontrollResultat => { +export const tilgangskontroll = ( + saker: K9Sak[], + tillattEndringsperiode: DateRange, + arbeidsgivere: ArbeidsgiverForEndring[], +): TilgangKontrollResultat => { /** Har ingen saker */ if (saker.length === 0) { return { @@ -57,6 +61,11 @@ export const tilgangskontroll = (saker: K9Sak[], tillattEndringsperiode: DateRan ingenTilgangÅrsak.push(IngenTilgangÅrsak.harArbeidstidSomSelvstendigNæringsdrivende); } + /** Bruker har ansettelsperioder hos samme arbeidsgiver som starter og stopper samme uke, med opphold mellom */ + if (harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold(sak, tillattEndringsperiode, arbeidsgivere)) { + ingenTilgangÅrsak.push(IngenTilgangÅrsak.harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke); + } + if (ingenTilgangÅrsak.length > 0) { return { kanBrukeSøknad: false, @@ -114,8 +123,51 @@ const harSøknadsperiodeInnenforTillattEndringsperiode = ( : false; }; +const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( + sak: K9Sak, + tillatEndringsperiode: DateRange, + arbeidsgivere: ArbeidsgiverForEndring[], +): boolean => { + const orgnrISak = (sak.ytelse.arbeidstid.arbeidstakerList || []).map((a) => a.organisasjonsnummer); + return arbeidsgivere + .filter((a) => orgnrISak.includes(a.organisasjonsnummer)) + .some((arbeidsgiver) => { + const ansettelserInnenforEndringsperiode = arbeidsgiver.ansettelsesperioder.map((d) => + ensureDateRange(d, tillatEndringsperiode), + ); + return perioderSlutterOgStarterSammeUkeMedOpphold(ansettelserInnenforEndringsperiode); + }); +}; + +/** + * Går gjennom array for å se om det er perioder som slutter og starter innenfor samme + * uke, og hvor det er opphold på en dag mellom periodene. + * @param ansettelsesperioder DateRange + * @returns boolean + */ +const perioderSlutterOgStarterSammeUkeMedOpphold = (ansettelsesperioder: DateRange[]) => { + return ansettelsesperioder.sort(sortDateRange).some((periode, index) => { + if (index === 0) { + return false; + } + const forrigePeriode = ansettelsesperioder[index - 1]; + + /** Slutter og starter periodene innenfor samme uke */ + if (!dayjs(periode.from).isSame(dayjs(forrigePeriode.to), 'isoWeek')) { + return false; + } + /** Periodene er sammenhengende */ + if (dayjs(periode.from).diff(forrigePeriode.to, 'day') === 1) { + return false; + } + + return true; + }); +}; + export const tilgangskontrollUtils = { getIngenTilgangMeta, harArbeidsgiverUtenArbeidsaktivitet, harSøknadsperiodeInnenforTillattEndringsperiode, + slutterOgStarterHosArbeidsgiverSammeUke: perioderSlutterOgStarterSammeUkeMedOpphold, }; From 4ed9b5448efe5084e76031d3e7532d2846442033 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Tue, 21 Jan 2025 08:24:23 +0100 Subject: [PATCH 12/31] Revert renaming av prop --- .../src/app/i18n/appMessages.ts | 2 +- .../ArbeidstidUker.stories.tsx | 36 +++++++++---------- .../arbeidstid-uker/arbeidstidUker.scss | 1 - .../components/ArbeidstidUkeInfo.tsx | 2 +- .../components/ArbeidstidUkeInfoListe.tsx | 2 +- .../types/ArbeidstidUkerItem.ts | 2 +- .../EndreArbeidstidForm.tsx | 2 +- .../endreArbeidstidFormUtils.ts | 8 ++--- .../arbeidsaktivitetUtils.ts" | 6 ++-- .../steps/arbeidstid/arbeidstidStepUtils.ts" | 2 +- .../oppsummering/oppsummeringStepUtils.ts" | 19 +++++++--- .../src/app/types/Sak.ts | 2 +- .../utils/__tests__/getSakFromK9Sak.test.ts | 14 ++++---- .../src/app/utils/beregnUtils.ts | 10 +++--- .../src/app/utils/getSakFromK9Sak.ts | 8 ++--- ...rbeidstidApiDataFromS\303\270knadsdata.ts" | 16 +++++---- .../src/mocks/data/app/arbeidsukerMockData.ts | 11 +++--- 17 files changed, 79 insertions(+), 64 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index 66f97d79b4..2c9285914a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -31,7 +31,7 @@ const nb = { 'arbeidsaktivitetBlockHeader.arbeidsgiver.orgnummer': 'Organisasjonsnummer: {orgnr}', 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansettelsesperioder': 'Ansettelsesperioder', 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFom': 'Ansatt: {dato}.', - 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattTom': ': Sluttdato: {dato}.', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattTom': ' Sluttdato: {dato}.', 'ikkeAnsattMelding.tekst': 'Er du feilregistrert eller du har sluttet i dette arbeidsforholdet før perioden du søkte pleiepenger, må du be arbeidsgiveren om å sende en ny A-melding med sluttdato. Dette gjør de enten via eget lønns- og personalsystem, eller via Altinn.', diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx index 7b77914b1f..3f6f9c3e26 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.stories.tsx @@ -25,7 +25,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: false, - antallDagerSøktFor: 2, + antallDagerMedArbeidstid: 2, erKortUke: true, harFeriedager: false, harFjernetFeriedager: false, @@ -53,7 +53,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -81,7 +81,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -109,7 +109,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -137,7 +137,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -165,7 +165,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -193,7 +193,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -221,7 +221,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -249,7 +249,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -277,7 +277,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -305,7 +305,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -333,7 +333,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -361,7 +361,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -389,7 +389,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -417,7 +417,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -445,7 +445,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -473,7 +473,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, @@ -501,7 +501,7 @@ export const Default: Story = { }, kanEndres: true, kanVelges: true, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, erKortUke: false, harFeriedager: false, harFjernetFeriedager: false, diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/arbeidstidUker.scss b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/arbeidstidUker.scss index e381abe256..9512a5dd9a 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/arbeidstidUker.scss +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/arbeidstidUker.scss @@ -21,7 +21,6 @@ } &__info { font-size: 1.4rem; - // white-space: nowrap; svg { margin: 0 0.25rem; } diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx index bbb4827f39..d860efa8dc 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfo.tsx @@ -48,7 +48,7 @@ const ArbeidstidUkeInfo: React.FunctionComponent = ({ uke, medLabels = fa ); } const { faktisk, endretProsent } = uke.endret; - const erEndringGyldig = erTimerGyldigInnenforAntallDager(faktisk, uke.antallDagerSøktFor); + const erEndringGyldig = erTimerGyldigInnenforAntallDager(faktisk, uke.antallDagerMedArbeidstid); return (
diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx index d921d77c0a..4db0e0d012 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeInfoListe.tsx @@ -50,7 +50,7 @@ const ArbeidstidUkeInfoListe: React.FunctionComponent = ({ uke, visEndrin const erEndret = erArbeidstidUkeItemEndret(uke); - const erEndringGyldig = erTimerGyldigInnenforAntallDager(uke.endret.faktisk, uke.antallDagerSøktFor); + const erEndringGyldig = erTimerGyldigInnenforAntallDager(uke.endret.faktisk, uke.antallDagerMedArbeidstid); return (

diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts index 980766084c..727f26f4bf 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/types/ArbeidstidUkerItem.ts @@ -6,7 +6,7 @@ export interface ArbeidstidUkerItem { kanVelges: boolean; isoDateRange: ISODateRange; periode: DateRange; - antallDagerSøktFor: number; + antallDagerMedArbeidstid: number; erKortUke: boolean; harFeriedager?: boolean; harFjernetFeriedager?: boolean; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 0d243e06aa..5f7cb3271d 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -110,7 +110,7 @@ const EndreArbeidstidForm: React.FunctionComponent = ( : []; const getMaksTimer = () => { - const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerSøktFor : 7; + const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerMedArbeidstid : 7; return 24 * antallDager; }; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts index 381547c881..69b3825acd 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/endreArbeidstidFormUtils.ts @@ -50,7 +50,7 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType const sisteUke = arbeidsuker[arbeidsuker.length - 1]; if (arbeidsuker.length === 2) { /** Begge uker er komplette uker */ - if (førsteUke.antallDagerSøktFor + sisteUke.antallDagerSøktFor === 10) { + if (førsteUke.antallDagerMedArbeidstid + sisteUke.antallDagerMedArbeidstid === 10) { return { spørOmSnittUker: true, }; @@ -62,7 +62,7 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType } /** Bare fulle uker */ - const antallIkkeFulleUker = arbeidsuker.filter((uke) => uke.antallDagerSøktFor !== 5).length; + const antallIkkeFulleUker = arbeidsuker.filter((uke) => uke.antallDagerMedArbeidstid !== 5).length; if (antallIkkeFulleUker === 0) { return { spørOmSnittUker: true, @@ -76,8 +76,8 @@ export const getUkerForEndring = (arbeidsuker: Arbeidsuke[]): UkerForEndringType }; } - const spørOmFørsteUke = arbeidsuker[0].antallDagerSøktFor < 5; - const spørOmSisteUke = arbeidsuker[arbeidsuker.length - 1].antallDagerSøktFor < 5; + const spørOmFørsteUke = arbeidsuker[0].antallDagerMedArbeidstid < 5; + const spørOmSisteUke = arbeidsuker[arbeidsuker.length - 1].antallDagerMedArbeidstid < 5; return { spørOmSnittUker: true, diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" index b5385573d2..6ec9652256 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/arbeidsaktivitetUtils.ts" @@ -38,7 +38,7 @@ const arbeidsukeToArbeidstidUkerItem = ( periode: arbeidsuke.periode, kanEndres: durationUtils.durationIsGreatherThanZero(arbeidsuke.normalt.uke), kanVelges: !erKortUke && dagerMedFerie.length === 0, - antallDagerSøktFor: arbeidsuke.antallDagerSøktFor, + antallDagerMedArbeidstid: arbeidsuke.antallDagerMedArbeidstid, erKortUke, harFeriedager: dagerMedFerie && dagerMedFerie.length > 0, harFjernetFeriedager: dagerMedFjernetFerie && dagerMedFjernetFerie.length > 0, @@ -56,9 +56,9 @@ const arbeidsukeToArbeidstidUkerItem = ( beregnEndretFaktiskArbeidstidPerDag( arbeidsuke.normalt.uke, endring, - arbeidsuke.antallDagerSøktFor, + arbeidsuke.antallDagerMedArbeidstid, ), - arbeidsuke.antallDagerSøktFor, + arbeidsuke.antallDagerMedArbeidstid, ), endretProsent: endring.type === TimerEllerProsent.PROSENT ? endring.prosent : undefined, } diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" index 3cbe570281..7ed6f778c0 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidstidStepUtils.ts" @@ -73,7 +73,7 @@ export const cleanupArbeidsaktivitetEndringer = ( const endretArbeidstid = beregnEndretArbeidstidForUke( endring, opprinnelig.normalt.uke, - opprinnelig.antallDagerSøktFor, + opprinnelig.antallDagerMedArbeidstid, ); if (!durationsAreEqual(endretArbeidstid, opprinnelig.faktisk?.uke)) { cleanedEndringer[key] = endring; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" index 9f23a23f24..4a0a25cfa1 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/oppsummeringStepUtils.ts" @@ -51,7 +51,7 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( isoDateRange: ISODateRange, ): ArbeidstidUkerItem => { const periode = ISODateRangeToDateRange(isoDateRange); - const antallDagerSøktFor = getDatesInDateRange(periode).length; + const antallDagerMedArbeidstid = getDatesInDateRange(periode).length; const arbeidsuke: ArbeidstidUkerItem = { id: isoDateRange, @@ -59,16 +59,25 @@ const getArbeidsukeListItemFromArbeidstidPeriodeApiData = ( kanVelges: false, isoDateRange, periode, - antallDagerSøktFor, + antallDagerMedArbeidstid, erKortUke: erKortArbeidsuke(periode), opprinnelig: { - normalt: getTimerPerUkeFraTimerPerDag(ISODurationToDuration(_opprinneligNormaltPerDag), antallDagerSøktFor), + normalt: getTimerPerUkeFraTimerPerDag( + ISODurationToDuration(_opprinneligNormaltPerDag), + antallDagerMedArbeidstid, + ), faktisk: _opprinneligFaktiskPerDag - ? getTimerPerUkeFraTimerPerDag(ISODurationToDuration(_opprinneligFaktiskPerDag), antallDagerSøktFor) + ? getTimerPerUkeFraTimerPerDag( + ISODurationToDuration(_opprinneligFaktiskPerDag), + antallDagerMedArbeidstid, + ) : undefined, }, endret: { - faktisk: getTimerPerUkeFraTimerPerDag(ISODurationToDuration(faktiskArbeidTimerPerDag), antallDagerSøktFor), + faktisk: getTimerPerUkeFraTimerPerDag( + ISODurationToDuration(faktiskArbeidTimerPerDag), + antallDagerMedArbeidstid, + ), endretProsent: _endretProsent, }, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index ef4cac9d6d..3874576ec5 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -61,7 +61,7 @@ export interface Arbeidsuke { arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap; faktisk?: ArbeidsukeTimer; normalt: ArbeidsukeTimer; - antallDagerSøktFor: number; + antallDagerMedArbeidstid: number; dagerSøktFor: Date[]; dagerIkkeAnsatt: Date[]; } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index ae8e5b5aaa..7595682e22 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -222,14 +222,14 @@ describe('getSakFromK9Sak', () => { expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-03'); - expect(uke.antallDagerSøktFor).toEqual(1); + expect(uke.antallDagerMedArbeidstid).toEqual(1); }); it('returnerer riktig for dager som går over én hel uke', () => { const result = getArbeidsukerFromEnkeltdager(helUke); expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-07'); - expect(uke.antallDagerSøktFor).toEqual(5); + expect(uke.antallDagerMedArbeidstid).toEqual(5); }); it('returnerer riktig for dager som går mer enn én uker', () => { const result = getArbeidsukerFromEnkeltdager(flereUker); @@ -238,8 +238,8 @@ describe('getSakFromK9Sak', () => { const uke2 = result[1]; expect(dateRangeToISODateRange(uke1.periode)).toEqual('2022-01-03/2022-01-09'); expect(dateRangeToISODateRange(uke2.periode)).toEqual('2022-01-10/2022-01-11'); - expect(uke1.antallDagerSøktFor).toEqual(5); - expect(uke2.antallDagerSøktFor).toEqual(2); + expect(uke1.antallDagerMedArbeidstid).toEqual(5); + expect(uke2.antallDagerMedArbeidstid).toEqual(2); }); }); @@ -264,7 +264,7 @@ describe('getSakFromK9Sak', () => { it('returnerer riktig for én enkeltdag', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag); - expect(uke.antallDagerSøktFor).toEqual(1); + expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.normalt.dag)).toEqual(durationToISODuration(arbeidstid.normalt)); @@ -273,7 +273,7 @@ describe('getSakFromK9Sak', () => { it('fjerner dager som ikke er innenfor uken', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke); - expect(uke.antallDagerSøktFor).toEqual(1); + expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.normalt.dag)).toEqual(durationToISODuration(arbeidstid.normalt)); @@ -282,7 +282,7 @@ describe('getSakFromK9Sak', () => { it('returnerer riktig for én uke', () => { const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke); - expect(uke.antallDagerSøktFor).toEqual(5); + expect(uke.antallDagerMedArbeidstid).toEqual(5); expect(uke.isoDateRange).toEqual(dateRangeToISODateRange(periodeHelUke)); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual('PT10H0M'); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts index 8e037f34d9..66fc437af1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/beregnUtils.ts @@ -4,11 +4,11 @@ import { ArbeidstidEndring, TimerEllerProsent } from '@types'; export const beregnEndretArbeidstidForUke = ( endring: ArbeidstidEndring, normaltidPerUke: Duration, - antallDagerSøktFor: number, + antallDagerMedArbeidstid: number, ): Duration => { return getTimerPerUkeFraTimerPerDag( - beregnEndretFaktiskArbeidstidPerDag(normaltidPerUke, endring, antallDagerSøktFor), - antallDagerSøktFor, + beregnEndretFaktiskArbeidstidPerDag(normaltidPerUke, endring, antallDagerMedArbeidstid), + antallDagerMedArbeidstid, ); }; @@ -37,8 +37,8 @@ export const summerTimerPerDag = (timerPerDag: Duration, antallDager: number): D return decimalDurationToDuration(durationToDecimalDuration(timerPerDag) * antallDager); }; -export const getTimerPerUkeFraTimerPerDag = (tidPerDag: Duration, antallDagerSøktFor: number): Duration => { - return summerTimerPerDag(tidPerDag, antallDagerSøktFor); +export const getTimerPerUkeFraTimerPerDag = (tidPerDag: Duration, antallDagerMedArbeidstid: number): Duration => { + return summerTimerPerDag(tidPerDag, antallDagerMedArbeidstid); }; /** diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index aa1e4b43ea..fc56c4f770 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -307,7 +307,7 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( ): Arbeidsuke => { const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(periode, arbeidstidEnkeltdager); const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); - const antallDagerSøktFor = dagerSøktFor.length; + const antallDagerMedArbeidstid = dagerSøktFor.length; const faktisk = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); const normalt = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].normalt); const normaltSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(normalt)); @@ -319,14 +319,14 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, dagerSøktFor: dagerSøktFor.map(ISODateToDate), dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(periode, ansettelsesperioder), - antallDagerSøktFor: dagerSøktFor.length, + antallDagerMedArbeidstid: dagerSøktFor.length, faktisk: { uke: faktiskSummertHeleUken, - dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerSøktFor), + dag: beregnSnittTimerPerDag(faktiskSummertHeleUken, antallDagerMedArbeidstid), }, normalt: { uke: normaltSummertHeleUken, - dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerSøktFor), + dag: beregnSnittTimerPerDag(normaltSummertHeleUken, antallDagerMedArbeidstid), }, }; return arbeidsuke; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" index 67b6513130..47168fb4b2 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" @@ -55,13 +55,13 @@ const getEndretArbeidstid = ( const arbeidsuker = getAlleArbeidsukerIPerioder(arbeidsaktivitet.perioderMedArbeidstid); const arbeidsuke = arbeidsuker[isoDateRange]; const dagerSøktFor = getDagerFraEnkeltdagMap(arbeidsuke.arbeidstidEnkeltdager); - const { antallDagerSøktFor } = arbeidsuke; + const { antallDagerMedArbeidstid } = arbeidsuke; - const jobberNormaltTimerPerDag = beregnSnittTimerPerDag(arbeidsuke.normalt.uke, antallDagerSøktFor); + const jobberNormaltTimerPerDag = beregnSnittTimerPerDag(arbeidsuke.normalt.uke, antallDagerMedArbeidstid); const faktiskArbeidTimerPerDag = beregnEndretFaktiskArbeidstidPerDag( arbeidsuke.normalt.uke, endring, - antallDagerSøktFor, + antallDagerMedArbeidstid, ); /** Splitt opp hvis det er enkeltdager i uken */ @@ -168,7 +168,7 @@ export const getArbeidstidApiDataFromSøknadsdata = ( const jobberNormaltTimerPerDag = beregnSnittTimerPerDag( arbeidsuke.normalt.uke, - arbeidsuke.antallDagerSøktFor, + arbeidsuke.antallDagerMedArbeidstid, ); /** Splitt opp hvis det er enkeltdager i uken */ @@ -216,14 +216,18 @@ export const getArbeidstidApiDataFromSøknadsdata = ( export const getFaktiskArbeidTimerPerDagForUkjentArbeidsforhold = ( arbeiderIPerioden: ArbeiderIPeriodenSvar, - arbeidsuke: Pick, + arbeidsuke: Pick, endring?: ArbeidstidEndring, ): Duration => { if (!endring && arbeiderIPerioden === ArbeiderIPeriodenSvar.redusert) { throw 'Faktisk arbeidstid mangler for redusert arbeidsforhold'; } if (endring) { - return beregnEndretFaktiskArbeidstidPerDag(arbeidsuke.normalt.uke, endring, arbeidsuke.antallDagerSøktFor); + return beregnEndretFaktiskArbeidstidPerDag( + arbeidsuke.normalt.uke, + endring, + arbeidsuke.antallDagerMedArbeidstid, + ); } return arbeiderIPerioden === ArbeiderIPeriodenSvar.heltFravær ? { diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts index 7a30e42e91..7bd992fdfe 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts @@ -16,7 +16,10 @@ const getMockArbeidsuke = ( normaltPerDag: Duration = { hours: '7', minutes: '30' }, faktiskPerDag: Duration = { hours: '2', minutes: '0' }, ): Arbeidsuke => { - const antallDagerSøktFor = dateRangeUtils.getNumberOfDaysInDateRange(ISODateRangeToDateRange(isoDateRange), true); + const antallDagerMedArbeidstid = dateRangeUtils.getNumberOfDaysInDateRange( + ISODateRangeToDateRange(isoDateRange), + true, + ); const periode = ISODateRangeToDateRange(isoDateRange); const dagerSøktFor = getDatesInDateRange(periode, true).map((d) => dateToISODate(d)); // Alle dager i perioden const arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap = {}; @@ -34,14 +37,14 @@ const getMockArbeidsuke = ( dagerIkkeAnsatt: [], dagerSøktFor: dagerSøktFor.map(ISODateToDate), normalt: { - uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerSøktFor), + uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerMedArbeidstid), dag: normaltPerDag, }, faktisk: { - uke: decimalDurationToDuration(durationToDecimalDuration(faktiskPerDag) * antallDagerSøktFor), + uke: decimalDurationToDuration(durationToDecimalDuration(faktiskPerDag) * antallDagerMedArbeidstid), dag: faktiskPerDag, }, - antallDagerSøktFor, + antallDagerMedArbeidstid, }; }; From fe0d48477603b95347a2c8c01a266fc7855a83c5 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Tue, 21 Jan 2025 08:28:18 +0100 Subject: [PATCH 13/31] Cleanup --- .../arbeidstid-uker/ArbeidstidUker.tsx | 3 -- .../components/ArbeidstidUkeTabell.tsx | 1 - .../components/ArbeidsaktivitetContent.tsx" | 1 - .../ArbeidstidArbeidstakerOppsummering.tsx" | 1 - .../oppsummering/ArbeidstidOppsummering.tsx" | 2 - .../src/storybook/data/sakMock.ts | 48 +++++++++---------- 6 files changed, 24 insertions(+), 32 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx index f8dcbfa1e7..feec86b2bb 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/ArbeidstidUker.tsx @@ -21,7 +21,6 @@ interface Props { paginering?: { antall: number; }; - arbeidsgivernavn: string; arbeidstidKolonneTittel?: string; triggerResetValgCounter?: number; visEndringSomOpprinnelig?: boolean; @@ -36,7 +35,6 @@ const ArbeidstidUker: React.FunctionComponent = ({ arbeidstidKolonneTittel, triggerResetValgCounter, visEndringSomOpprinnelig, - arbeidsgivernavn, onEndreUker, }) => { const { text, intl } = useAppIntl(); @@ -167,7 +165,6 @@ const ArbeidstidUker: React.FunctionComponent = ({ {renderEndreUkerHeader()} ; visEndringSomOpprinnelig?: boolean; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" index da33340e9a..2b42844513 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" @@ -73,7 +73,6 @@ const ArbeidsaktivitetContent: React.FunctionComponent = ({ )} visEndringSomOpprinnelig={erNyArbeidsgiver} triggerResetValgCounter={resetUkerTabellCounter} - arbeidsgivernavn={arbeidsaktivitet.navn} onEndreUker={(uker: ArbeidstidUkerItem[]) => { setArbeidsukerForEndring(uker.map((uke) => periode.arbeidsuker[uke.isoDateRange])); }} diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" index aa12481821..e22add7330 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" @@ -40,7 +40,6 @@ const ArbeidstidArbeidstakerOppsummering = ({ arbeidsgivere, arbeidstaker, arbei diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" index 3cfc6bc614..4af25ab5fc 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" @@ -47,7 +47,6 @@ const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, ar <> @@ -64,7 +63,6 @@ const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, ar listItems={oppsummeringStepUtils.getArbeidstidUkerItems( selvstendigNæringsdrivendeArbeidstidInfo.perioder, )} - arbeidsgivernavn="Selvstendig næringsdrivende" arbeidstidKolonneTittel={arbeidstidKolonneTittel} /> diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index eb711736ba..c90f3d7db8 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -132,7 +132,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerSøktFor: 4, + antallDagerMedArbeidstid: 4, }, }, }, @@ -220,7 +220,7 @@ export const sakMock: Sak = { minutes: '24', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-01/2024-04-07': { isoDateRange: '2024-04-01/2024-04-07', @@ -302,7 +302,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-08/2024-04-14': { isoDateRange: '2024-04-08/2024-04-14', @@ -384,7 +384,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-15/2024-04-21': { isoDateRange: '2024-04-15/2024-04-21', @@ -466,7 +466,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-22/2024-04-28': { isoDateRange: '2024-04-22/2024-04-28', @@ -548,7 +548,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-29/2024-05-05': { isoDateRange: '2024-04-29/2024-05-05', @@ -630,7 +630,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-06/2024-05-12': { isoDateRange: '2024-05-06/2024-05-12', @@ -712,7 +712,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-13/2024-05-19': { isoDateRange: '2024-05-13/2024-05-19', @@ -794,7 +794,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-20/2024-05-26': { isoDateRange: '2024-05-20/2024-05-26', @@ -876,7 +876,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-27/2024-05-31': { isoDateRange: '2024-05-27/2024-05-31', @@ -958,7 +958,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, }, }, @@ -1029,7 +1029,7 @@ export const sakMock: Sak = { minutes: '48', }, }, - antallDagerSøktFor: 2, + antallDagerMedArbeidstid: 2, }, }, }, @@ -1143,7 +1143,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerSøktFor: 4, + antallDagerMedArbeidstid: 4, }, }, }, @@ -1231,7 +1231,7 @@ export const sakMock: Sak = { minutes: '24', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-01/2024-04-07': { isoDateRange: '2024-04-01/2024-04-07', @@ -1313,7 +1313,7 @@ export const sakMock: Sak = { minutes: '0', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-08/2024-04-14': { isoDateRange: '2024-04-08/2024-04-14', @@ -1395,7 +1395,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-15/2024-04-21': { isoDateRange: '2024-04-15/2024-04-21', @@ -1477,7 +1477,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-22/2024-04-28': { isoDateRange: '2024-04-22/2024-04-28', @@ -1559,7 +1559,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-04-29/2024-05-05': { isoDateRange: '2024-04-29/2024-05-05', @@ -1641,7 +1641,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-06/2024-05-12': { isoDateRange: '2024-05-06/2024-05-12', @@ -1723,7 +1723,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-13/2024-05-19': { isoDateRange: '2024-05-13/2024-05-19', @@ -1805,7 +1805,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-20/2024-05-26': { isoDateRange: '2024-05-20/2024-05-26', @@ -1887,7 +1887,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, '2024-05-27/2024-05-31': { isoDateRange: '2024-05-27/2024-05-31', @@ -1969,7 +1969,7 @@ export const sakMock: Sak = { minutes: '30', }, }, - antallDagerSøktFor: 5, + antallDagerMedArbeidstid: 5, }, }, }, @@ -2039,7 +2039,7 @@ export const sakMock: Sak = { minutes: '48', }, }, - antallDagerSøktFor: 2, + antallDagerMedArbeidstid: 2, }, }, }, From bcb88791f5a3605c6838a2a0e3b4fbb7059a134d Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Tue, 21 Jan 2025 08:29:55 +0100 Subject: [PATCH 14/31] Mer cleanup --- .../src/app/modules/arbeidstid-uker/components/UkeTags.tsx | 1 - .../app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx | 3 +-- .../components/ArbeidsaktivitetContent.tsx" | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx index 45cc7349f2..1a0c285879 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx @@ -8,7 +8,6 @@ interface Props { erKortUke?: boolean; dagerMedFerie: Date[] | undefined; dagerMedFjernetFerie?: Date[] | undefined; - visDagNavn?: boolean; } diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 5f7cb3271d..5180247a8b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -21,11 +21,11 @@ import { import dayjs from 'dayjs'; import { AppIntlShape, AppText, useAppIntl } from '../../i18n'; import actionsCreator from '../../søknad/context/action/actionCreator'; +import KortUkeInfo from '../arbeidstid-uker/components/KortUkeInfo'; import UkeTags from '../arbeidstid-uker/components/UkeTags'; import { getArbeidstidSpørsmålDescription, getArbeidsukerPerÅr } from './endreArbeidstidFormUtils'; import { getEndreArbeidstidIntlValues } from './endreArbeidstidIntlValues'; import './endreArbeidstidForm.scss'; -import KortUkeInfo from '../arbeidstid-uker/components/KortUkeInfo'; type EndreArbeidstidData = { perioder: DateRange[]; @@ -36,7 +36,6 @@ export interface EndreArbeidstidFormProps { arbeidsuker: Arbeidsuke[]; lovbestemtFerie?: LovbestemtFerieSøknadsdata; endring?: ArbeidstidEndring; - arbeidsgivernavn: string; onSubmit: (data: EndreArbeidstidData) => void; onCancel: () => void; } diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" index 2b42844513..7218d4b50a 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetContent.tsx" @@ -172,7 +172,6 @@ const ArbeidsaktivitetContent: React.FunctionComponent = ({ isVisible={arbeidsukerForEndring !== undefined} onClose={() => setArbeidsukerForEndring(undefined)}> Date: Tue, 21 Jan 2025 09:18:44 +0100 Subject: [PATCH 15/31] stash --- .../en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts index b292f8957d..e3e2fe1ecd 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts @@ -10,13 +10,6 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2022-12-05', - ansattTom: '2022-12-06', - }, - { - organisasjonsnummer: '947064649', - navn: 'Norsk bedrift AS', - ansattFom: '2022-12-08', - ansattTom: null, }, ], privateArbeidsgivere: null, From 186e44c6074d3247d82152aec541b1fa26b2758b Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 08:06:40 +0100 Subject: [PATCH 16/31] Test --- .../en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts index 06302bf1db..74e2a56eec 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/arbeidsgiver-mock.ts @@ -4,12 +4,6 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2003-01-16', - ansattTom: '2022-12-31', - }, - { - organisasjonsnummer: '947064649', - navn: 'Norsk bedrift AS', - ansattFom: '2024-02-01', ansattTom: null, }, ], From 99fe8a46e7557a28327eaf44beda0987835450b8 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 08:41:32 +0100 Subject: [PATCH 17/31] Revert endring i mock-data --- .../en-arbeidsgiver-en-periode/sak-mock.ts | 36 +++++++++++++++++-- .../arbeidsgiver-mock.ts | 6 ---- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts index a869081fc8..8b2cc9fe4d 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-en-periode/sak-mock.ts @@ -56,11 +56,43 @@ export default [ organisasjonsnummer: '947064649', arbeidstidInfo: { perioder: { - '2020-12-01/2023-12-31': { + '2022-12-01/2022-12-02': { jobberNormaltTimerPerDag: 'PT8H', faktiskArbeidTimerPerDag: 'PT4H32M24S', }, - '2024-02-01/2024-03-01': { + '2022-12-05/2022-12-09': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-12/2022-12-16': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-19/2022-12-23': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-26/2022-12-30': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-02/2023-01-06': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-09/2023-01-13': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-16/2023-01-20': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-23/2023-01-27': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-30/2024-05-31': { jobberNormaltTimerPerDag: 'PT8H', faktiskArbeidTimerPerDag: 'PT4H32M24S', }, diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts index e3e2fe1ecd..d96164a10d 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-perioder/arbeidsgiver-mock.ts @@ -4,12 +4,6 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2003-01-16', - ansattTom: '2022-11-01', - }, - { - organisasjonsnummer: '947064649', - navn: 'Norsk bedrift AS', - ansattFom: '2022-12-05', }, ], privateArbeidsgivere: null, From f99afc37b6432656359988e26d8e6ef727e034c4 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 08:56:00 +0100 Subject: [PATCH 18/31] Test for nytt scenario --- .../ikke-tilgang/ikke-tilgang-melding.spec.ts | 11 ++ .../src/app/dev/scenarioer.ts | 3 +- .../IngenTilgangPage.stories.tsx | 8 ++ .../pages/ingen-tilgang/IngenTilgangPage.tsx | 4 +- .../app/types/IngenTilgang\303\205rsak.ts" | 2 +- .../src/app/utils/tilgangskontroll.ts | 2 +- ...idsgiverToAnsettelserSammeUkeMedOpphold.ts | 10 ++ .../arbeidsgiver-mock.ts | 18 +++ .../sak-mock.ts | 114 ++++++++++++++++++ .../s\303\270ker-mock.ts" | 9 ++ .../src/mocks/data/scenario/index.ts | 2 + 11 files changed, 178 insertions(+), 5 deletions(-) create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/arbeidsgiver-mock.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/sak-mock.ts create mode 100644 "apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/s\303\270ker-mock.ts" diff --git a/apps/endringsmelding-pleiepenger/e2e/playwright/tests/ikke-tilgang/ikke-tilgang-melding.spec.ts b/apps/endringsmelding-pleiepenger/e2e/playwright/tests/ikke-tilgang/ikke-tilgang-melding.spec.ts index 0fa1f0c999..73dd801c87 100644 --- a/apps/endringsmelding-pleiepenger/e2e/playwright/tests/ikke-tilgang/ikke-tilgang-melding.spec.ts +++ b/apps/endringsmelding-pleiepenger/e2e/playwright/tests/ikke-tilgang/ikke-tilgang-melding.spec.ts @@ -34,3 +34,14 @@ test('Er selvstendig næringsdrivende', async ({ page }) => { await expect(page.getByText('Hei Nora')).toBeVisible(); await expect(page.getByTestId('erSN')).toBeVisible(); }); + +test('Har en arbeidsgiver med to ansettelsesforhold som slutter og starter samme uke med opphold', async ({ page }) => { + await routeUtils.resumeFromRoute( + page, + SøknadRoutes.VELKOMMEN, + 'en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold', + ); + await expect(page).toHaveTitle('Ingen tilgang - Endringsmelding for pleiepenger sykt barn'); + await expect(page.getByText('Hei Nora')).toBeVisible(); + await expect(page.getByTestId('enArbeidsgiverToAnsettelserSammeUkeMedOpphold')).toBeVisible(); +}); diff --git a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts index 4fc96bd1c9..9f2313af7f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts +++ b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts @@ -10,7 +10,8 @@ export type ScenarioType = | 'flere-saker' | 'ingen-sak' | 'arbeidsaktivitet-uten-arbeidsgiver' - | 'ugyldig-k9-format'; + | 'ugyldig-k9-format' + | 'en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold'; export interface Scenario { name: string; diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx index 01f0a2f200..c4eaa5317b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx @@ -52,6 +52,14 @@ export const IngenSak: Story = { }, }; +export const EnArbeidsgiverToAnsettelserSammeUkeMedOpphold: Story = { + name: 'enArbeidsgiverToAnsettelserSammeUkeMedOpphold', + args: { + søker, + årsak: [IngenTilgangÅrsak.enArbeidsgiverToAnsettelserSammeUkeMedOpphold], + }, +}; + export const MerEnnEnSak: Story = { name: 'harMerEnnEnSak', args: { diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx index b0066ac953..fa7042f8f5 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx @@ -88,9 +88,9 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

{skrivTilOssGenerell}

); - case IngenTilgangÅrsak.harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke: + case IngenTilgangÅrsak.enArbeidsgiverToAnsettelserSammeUkeMedOpphold: return ( - +

diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" index ba61aa4f4a..f5b337c825 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" @@ -6,5 +6,5 @@ export enum IngenTilgangÅrsak { 'harIngenPerioder' = 'harIngenPerioder', 'harArbeidsgiverUtenArbeidsaktivitet' = 'harArbeidsgiverUtenArbeidsaktivitet', 'harArbeidstidSomSelvstendigNæringsdrivende' = 'harArbeidstidSomSelvstendigNæringsdrivende', - 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke' = 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke', + 'enArbeidsgiverToAnsettelserSammeUkeMedOpphold' = 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke', } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index d19dd0e861..65bb10a36c 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -63,7 +63,7 @@ export const tilgangskontroll = ( /** Bruker har ansettelsperioder hos samme arbeidsgiver som starter og stopper samme uke, med opphold mellom */ if (harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold(sak, tillattEndringsperiode, arbeidsgivere)) { - ingenTilgangÅrsak.push(IngenTilgangÅrsak.harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke); + ingenTilgangÅrsak.push(IngenTilgangÅrsak.enArbeidsgiverToAnsettelserSammeUkeMedOpphold); } if (ingenTilgangÅrsak.length > 0) { diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold.ts new file mode 100644 index 0000000000..64031f82f0 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold.ts @@ -0,0 +1,10 @@ +import { ScenarioData } from '..'; +import arbeidsgiver from './arbeidsgiver-mock'; +import sak from './sak-mock'; +import søker from './søker-mock'; + +export const EnArbeidsgiverToAnsettelserSammeUkeMedOpphold: ScenarioData = { + sak, + arbeidsgiver, + søker, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/arbeidsgiver-mock.ts new file mode 100644 index 0000000000..a148bdd78a --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/arbeidsgiver-mock.ts @@ -0,0 +1,18 @@ +export default { + organisasjoner: [ + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2003-01-16', + ansattTom: '2022-01-11', + }, + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2022-01-13', + ansattTom: null, + }, + ], + privateArbeidsgivere: null, + frilansoppdrag: null, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/sak-mock.ts new file mode 100644 index 0000000000..8b2cc9fe4d --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/sak-mock.ts @@ -0,0 +1,114 @@ +export default [ + { + barn: { + fødselsdato: '2017-03-03', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'Nordmann', + aktørId: '2559652436225', + identitetsnummer: '03831799748', + }, + søknad: { + søknadId: 'generert', + versjon: '1.0.0.', + mottattDato: '2023-01-18T08:13:37.525Z', + søker: { norskIdentitetsnummer: '00000000000' }, + ytelse: { + type: 'PLEIEPENGER_SYKT_BARN', + barn: { norskIdentitetsnummer: '00000000000', fødselsdato: null }, + søknadsperiode: ['2022-12-01/2024-05-31'], + endringsperiode: [], + trekkKravPerioder: [], + opptjeningAktivitet: {}, + dataBruktTilUtledning: null, + infoFraPunsj: null, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + utenlandsopphold: { + perioder: { + '2018-12-30/2019-10-20': { + land: 'DNK', + årsak: 'barnetInnlagtIHelseinstitusjonForNorskOffentligRegning', + }, + }, + }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + tilsynsordning: { + perioder: { + '2022-12-01/2023-01-31': { etablertTilsynTimerPerDag: 'PT8H' }, + '2023-02-14/2023-03-16': { etablertTilsynTimerPerDag: 'PT8H' }, + }, + }, + lovbestemtFerie: { + perioder: { + '2023-01-01/2023-01-10': { + skalHaFerie: true, + }, + '2023-01-12/2023-01-15': { + skalHaFerie: false, + }, + }, + }, + arbeidstid: { + arbeidstakerList: [ + { + norskIdentitetsnummer: null, + organisasjonsnummer: '947064649', + arbeidstidInfo: { + perioder: { + '2022-12-01/2022-12-02': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-05/2022-12-09': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-12/2022-12-16': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-19/2022-12-23': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-26/2022-12-30': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-02/2023-01-06': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-09/2023-01-13': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-16/2023-01-20': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-23/2023-01-27': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-30/2024-05-31': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + }, + }, + }, + ], + frilanserArbeidstidInfo: {}, + selvstendigNæringsdrivendeArbeidstidInfo: {}, + }, + uttak: { perioder: {} }, + omsorg: { relasjonTilBarnet: null, beskrivelseAvOmsorgsrollen: null }, + }, + språk: 'nb', + journalposter: [], + begrunnelseForInnsending: { tekst: null }, + }, + }, +]; diff --git "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/s\303\270ker-mock.ts" "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/s\303\270ker-mock.ts" new file mode 100644 index 0000000000..b80d44748e --- /dev/null +++ "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/s\303\270ker-mock.ts" @@ -0,0 +1,9 @@ +export default { + aktørId: '2486083225079', + fødselsdato: '1987-10-09', + fødselsnummer: '09908799647', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'Etternavn', + myndig: true, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts index d07e3ca605..e8db73ac11 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts @@ -10,6 +10,7 @@ import { FlereSaker } from './flere-saker/FlereSaker'; import { IngenSak } from './ingen-sak/IngenSak'; import { SelvstendigNæringsdrivende } from './selvstendig-næringsdrivende/SelvstendigNæringsdrivende'; import { UgyldigK9Format } from './ugyldig-k9-format/UgyldigK9Format'; +import { EnArbeidsgiverToAnsettelserSammeUkeMedOpphold } from './en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold'; type ScenarioMap = { [key: string]: ScenarioData; @@ -27,6 +28,7 @@ export const mockData: ScenarioMap = { ['arbeidsgiver-ikke-i-sak']: ArbeidsgiverIkkeISak, ['arbeidsaktivitet-uten-arbeidsgiver']: ArbeidsaktivitetUtenArbeidsgiver, ['ugyldig-k9-format']: UgyldigK9Format, + ['en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold']: EnArbeidsgiverToAnsettelserSammeUkeMedOpphold, }; export interface ScenarioData { From e3ae5ee1e6f9e9b73d109882c50ab6313de9578b Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 18:50:49 +0100 Subject: [PATCH 19/31] rename ArbeidsgiverMedAnsettelseperioder --- .../api/__tests__/fetchInitialData.test.ts | 6 ++--- .../api/endpoints/arbeidsgivereEndpoint.ts | 4 ++-- .../src/app/api/fetchInitialData.ts | 8 +++---- .../ArbeidsaktivitetBlock.tsx | 4 ++-- .../ArbeidsaktivitetBlockHeader.tsx | 4 ++-- .../app/hooks/useS\303\270knadInitialData.ts" | 4 ++-- .../app/hooks/useS\303\270knadsdataStatus.ts" | 8 +++---- .../ArbeidstidArbeidstakerOppsummering.tsx" | 4 ++-- .../oppsummering/ArbeidstidOppsummering.tsx" | 4 ++-- .../UkjentArbeidsforholdForm.tsx" | 6 ++--- .../ukjentArbeidsforholdStepUtils.ts" | 8 +++---- ...s => ArbeidsgiverMedAnsettelseperioder.ts} | 2 +- .../src/app/types/Sak.ts | 6 ++--- .../app/types/S\303\270knadContextState.ts" | 4 ++-- .../src/app/types/index.ts | 2 +- .../utils/__tests__/getSakFromK9Sak.test.ts | 24 +++++++++---------- .../utils/__tests__/tilgangskontroll.test.ts | 17 +++++++++---- .../src/app/utils/getSakFromK9Sak.ts | 14 +++++------ .../utils/getSakOgArbeidsgivereDebugInfo.ts | 6 ++--- .../src/app/utils/initialDataUtils.ts | 6 ++--- .../src/app/utils/k9SakUtils.ts | 4 ++-- .../getDataBruktTilUtledning.test.ts" | 6 ++--- .../getApiDataFromS\303\270knadsdata.ts" | 4 ++-- ...rbeidstidApiDataFromS\303\270knadsdata.ts" | 4 ++-- .../getDataBruktTilUtledning.ts" | 8 +++---- .../src/app/utils/tilgangskontroll.ts | 8 +++---- .../app/utils/ukjentArbeidsforholdUtils.ts | 8 +++---- .../src/storybook/data/arbeidsgivereMock.ts | 4 ++-- 28 files changed, 98 insertions(+), 89 deletions(-) rename apps/endringsmelding-pleiepenger/src/app/types/{ArbeidsgiverForEndring.ts => ArbeidsgiverMedAnsettelseperioder.ts} (79%) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts index 4a6da07973..c01d3c8f47 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/__tests__/fetchInitialData.test.ts @@ -1,5 +1,5 @@ import { dateToISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring } from '../../types'; +import { ArbeidsgiverMedAnsettelseperioder } from '../../types'; import { getArbeidsgivereFromArbeidsgiverOrganisasjoner, getPeriodeForArbeidsgiverOppslag, @@ -41,7 +41,7 @@ describe('initialDataUtils', () => { }, ]; - const expectedResult: ArbeidsgiverForEndring[] = [ + const expectedResult: ArbeidsgiverMedAnsettelseperioder[] = [ { key: 'a_123', navn: 'a', @@ -65,7 +65,7 @@ describe('initialDataUtils', () => { ansattFom: '2022-02-15', }, ]; - const expectedResult: ArbeidsgiverForEndring[] = [ + const expectedResult: ArbeidsgiverMedAnsettelseperioder[] = [ { key: 'a_123', navn: 'a', diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index 671a16fa14..b1364cbf9c 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -1,5 +1,5 @@ import { DateRange, dateToISODate, ISODate } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder } from '@types'; import { getArbeidsgivereFromArbeidsgiverOrganisasjoner } from '../../utils/initialDataUtils'; import api from '../api'; import { ApiEndpointPsb } from './'; @@ -16,7 +16,7 @@ export type AARegArbeidsgiverOrganisasjon = { }; export const arbeidsgivereEndpoint = { - fetch: async (periode: DateRange): Promise => { + fetch: async (periode: DateRange): Promise => { try { const { from, to } = periode; const { data } = await api.psb.get( diff --git a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts index eb214ce87e..acdb60e1e5 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts @@ -2,7 +2,7 @@ import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/src/util import { getMaybeEnv } from '@navikt/sif-common-env'; import { DateRange, dateRangeUtils } from '@navikt/sif-common-utils'; import { - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, IngenTilgangÅrsak, isK9Sak, isUgyldigK9SakFormat, @@ -32,7 +32,7 @@ export const fetchInitialData = async ( søker: Søker; k9saker: K9Sak[]; antallSakerFørEndringsperiode: number; - arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; lagretSøknadState?: SøknadStatePersistence; }> => { const [søker, k9sakerResult] = await Promise.all([søkerEndpoint.fetch(), sakerEndpoint.fetch()]); @@ -53,7 +53,7 @@ export const fetchInitialData = async ( try { let k9saker: K9Sak[]; - let arbeidsgivere: ArbeidsgiverForEndring[]; + let arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; const sakerInnenforEndringsperiode = k9sakerResult.k9Saker; const sakerFørEndringsperiode = k9sakerResult.eldreSaker; @@ -155,7 +155,7 @@ const kontrollerSaker = ( const kontrollerTilgang = async ( k9saker: K9Sak[], tillattEndringsperiode: DateRange, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): Promise => { const resultat = tilgangskontroll(k9saker, tillattEndringsperiode, arbeidsgivere); diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx index ab9490e51e..b9ad6fd155 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlock.tsx @@ -1,12 +1,12 @@ import { ExpansionCard, Panel } from '@navikt/ds-react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeidsaktivitetType, ArbeidsgiverForEndring } from '@types'; +import { ArbeidsaktivitetType, ArbeidsgiverMedAnsettelseperioder } from '@types'; import ArbeidsaktivitetBlockHeader from './ArbeidsaktivitetBlockHeader'; interface Props { navn: string; type: ArbeidsaktivitetType; - arbeidsgiver?: ArbeidsgiverForEndring; + arbeidsgiver?: ArbeidsgiverMedAnsettelseperioder; endret?: { tekst: string }; erUkjent?: boolean; renderAsExpansionCard?: boolean; diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx index 401ed80b31..68e481ecf8 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/ArbeidsaktivitetBlockHeader.tsx @@ -2,7 +2,7 @@ import { BodyLong, Box, Heading } from '@navikt/ds-react'; import React from 'react'; import { Office1 } from '@navikt/ds-icons'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeidsaktivitetType, ArbeidsgiverForEndring } from '@types'; +import { ArbeidsaktivitetType, ArbeidsgiverMedAnsettelseperioder } from '@types'; import { AppText } from '../../i18n'; import EndretTag from '../tags/EndretTag'; import NyTag from '../tags/NyTag'; @@ -11,7 +11,7 @@ import AnsettelsesperioderInfo from './AnsettelsesperioderInfo'; interface Props { navn: string; - arbeidsgiver?: ArbeidsgiverForEndring; + arbeidsgiver?: ArbeidsgiverMedAnsettelseperioder; type: ArbeidsaktivitetType; erUkjentAktivitet?: boolean; endret?: { diff --git "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" index dd87dbffda..aca2acc62c 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadInitialData.ts" @@ -3,7 +3,7 @@ import { getMaybeEnv } from '@navikt/sif-common-env'; import { useEffectOnce } from '@navikt/sif-common-hooks'; import { DateRange } from '@navikt/sif-common-utils'; import { - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, IngenTilgangÅrsak, K9Sak, RequestStatus, @@ -47,7 +47,7 @@ const prepInitialData = ( søker: Søker; k9saker: K9Sak[]; antallSakerFørEndringsperiode: number; - arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; lagretSøknadState?: SøknadStatePersistence; }, tillattEndringsperiode: DateRange, diff --git "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" index b7a391b682..461e6cc7f9 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/hooks/useS\303\270knadsdataStatus.ts" @@ -3,7 +3,7 @@ import isEqual from 'react-fast-compare'; import { useSøknadContext } from '@hooks'; import { useEffectOnce } from '@navikt/sif-common-hooks'; import { SoknadStepsConfig } from '@navikt/sif-common-soknad-ds'; -import { ArbeidsgiverForEndring, Søknadsdata } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, Søknadsdata } from '@types'; import { StepFormValues } from '../søknad/config/StepFormValues'; import { StepId } from '../søknad/config/StepId'; import { useStepFormValuesContext } from '../søknad/context/StepFormValuesContext'; @@ -18,7 +18,7 @@ const getPrecedingSteps = (currentStepIndex: number, stepConfig: SoknadStepsConf const getStepSøknadsdataFromStepFormValues = ( step: StepId, stepFormValues: StepFormValues, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ) => { const formValues = stepFormValues[step]; if (!formValues) { @@ -39,7 +39,7 @@ const isStepFormValuesAndStepSøknadsdataValid = ( step: StepId, stepFormValues: StepFormValues, søknadsdata: Søknadsdata, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): boolean => { if (stepFormValues[step]) { const stepSøknadsdata = søknadsdata[step]; @@ -54,7 +54,7 @@ const isStepFormValuesAndStepSøknadsdataValid = ( export const useSøknadsdataStatus = ( stepId: StepId, stepConfig: SoknadStepsConfig, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ) => { const [invalidSteps, setInvalidSteps] = useState([]); diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" index e22add7330..e6a5ccc18e 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidArbeidstakerOppsummering.tsx" @@ -1,6 +1,6 @@ import { Heading } from '@navikt/ds-react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeiderIPeriodenSvar, ArbeidsgiverForEndring, ArbeidstakerApiData } from '@types'; +import { ArbeiderIPeriodenSvar, ArbeidsgiverMedAnsettelseperioder, ArbeidstakerApiData } from '@types'; import { AppText } from '../../../i18n'; import ArbeidstidUker from '../../../modules/arbeidstid-uker/ArbeidstidUker'; import { ArbeiderIPeriodenSvarIntlKey } from '../arbeidstid/arbeidsaktivitet-form-part/components/ArbeiderIPeriodenSpørsmål'; @@ -8,7 +8,7 @@ import { oppsummeringStepUtils } from './oppsummeringStepUtils'; type Props = { arbeidstaker: ArbeidstakerApiData; - arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; arbeidstidKolonneTittel?: string; }; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" index 4af25ab5fc..a4ae1d6a2c 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/oppsummering/ArbeidstidOppsummering.tsx" @@ -1,7 +1,7 @@ import { Heading } from '@navikt/ds-react'; import React from 'react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { ArbeidsgiverForEndring, ArbeidstidApiData } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, ArbeidstidApiData } from '@types'; import ArbeidstidUker from '../../../modules/arbeidstid-uker/ArbeidstidUker'; import ArbeidstidArbeidstakerOppsummering from './ArbeidstidArbeidstakerOppsummering'; import { oppsummeringStepUtils } from './oppsummeringStepUtils'; @@ -9,7 +9,7 @@ import { AppText, useAppIntl } from '../../../i18n'; interface Props { arbeidstid: ArbeidstidApiData; - arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; } const ArbeidstidOppsummering: React.FunctionComponent = ({ arbeidstid, arbeidsgivere }) => { diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" index f44ba927aa..9df972a9ca 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/UkjentArbeidsforholdForm.tsx" @@ -12,7 +12,7 @@ import { import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/src/validation/intlFormErrorHandler'; import { ArbeidsaktivitetType, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, SøknadContextState, UkjentArbeidsforholdSøknadsdata, } from '@types'; @@ -63,8 +63,8 @@ const { FormikWrapper, Form } = getTypedFormComponents< >(); interface Props { - arbeidsgivere: ArbeidsgiverForEndring[]; - arbeidsgivereIkkeISak: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; + arbeidsgivereIkkeISak: ArbeidsgiverMedAnsettelseperioder[]; ukjentArbeidsforholdSøknadsdata?: UkjentArbeidsforholdSøknadsdata; stepId: StepId; goBack?: () => void; diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" index cfc5ede6b1..38bdb5959c 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/ukjent-arbeidsforhold/ukjentArbeidsforholdStepUtils.ts" @@ -1,7 +1,7 @@ import { getNumberFromNumberInputValue, IntlErrorObject, YesOrNo } from '@navikt/sif-common-formik-ds'; import { getNumberValidator, getYesOrNoValidator } from '@navikt/sif-common-formik-ds/src/validation'; import { decimalDurationToDuration, durationToDecimalDuration } from '@navikt/sif-common-utils'; -import { Arbeidsforhold, ArbeidsgiverForEndring, UkjentArbeidsforholdSøknadsdata } from '@types'; +import { Arbeidsforhold, ArbeidsgiverMedAnsettelseperioder, UkjentArbeidsforholdSøknadsdata } from '@types'; import { UkjentArbeidsforholdFormValues, UkjentArbeidsgiverFormField, @@ -25,7 +25,7 @@ const arbeidsforholdSøknadsdataToFormValues = ( const ukjentArbeidsgiverFormValuesToSøknadsdata = ( formValues: UkjentArbeidsforholdArbeidsgiverFormValues, - arbeidsgiver?: ArbeidsgiverForEndring, + arbeidsgiver?: ArbeidsgiverMedAnsettelseperioder, ): Arbeidsforhold | undefined => { if (!arbeidsgiver) { return undefined; @@ -54,7 +54,7 @@ const ukjentArbeidsgiverFormValuesToSøknadsdata = ( export const getUkjentArbeidsforholdStepInitialValues = ( ukjentArbeidsforholdSøknadsdata: UkjentArbeidsforholdSøknadsdata | undefined, formValues: UkjentArbeidsforholdFormValues | undefined, - arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], + arbeidsgivereIkkeISak: ArbeidsgiverMedAnsettelseperioder[], ): UkjentArbeidsforholdFormValues => { if (formValues) { return formValues; @@ -79,7 +79,7 @@ export const getUkjentArbeidsforholdStepInitialValues = ( export const getUkjentArbeidsforholdSøknadsdataFromFormValues = ( values: UkjentArbeidsforholdFormValues, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): UkjentArbeidsforholdSøknadsdata => { const arbeidsforhold: Arbeidsforhold[] = []; Object.keys(values.arbeidsforhold).forEach((key) => { diff --git a/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts b/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverMedAnsettelseperioder.ts similarity index 79% rename from apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts rename to apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverMedAnsettelseperioder.ts index 8bf8e909aa..4831b5f9ad 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverForEndring.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/ArbeidsgiverMedAnsettelseperioder.ts @@ -1,6 +1,6 @@ import { MaybeDateRange } from '@navikt/sif-common-utils'; -export interface ArbeidsgiverForEndring { +export interface ArbeidsgiverMedAnsettelseperioder { key: string /** orgnummer prefixet med a_ */; organisasjonsnummer: string; navn: string; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index 3874576ec5..bc6beb1a64 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -1,6 +1,6 @@ import { DateRange, Duration, ISODate, ISODateRangeMap } from '@navikt/sif-common-utils'; import { FeriedagMap } from '../søknad/steps/lovbestemt-ferie/LovbestemtFerieStep'; -import { ArbeidsgiverForEndring } from './ArbeidsgiverForEndring'; +import { ArbeidsgiverMedAnsettelseperioder } from './ArbeidsgiverMedAnsettelseperioder'; import { K9SakBarn } from './K9Sak'; export interface Sak { @@ -9,7 +9,7 @@ export interface Sak { /** Settes til true hvis det finnes en arbeidsgiver som ikke har arbeidstid i sak */ harArbeidsgivereIkkeISak: boolean; /** Alle arbeidsgivere som ikke finnes i sak, men som finnes i Aa-reg */ - arbeidsgivereIkkeISak: ArbeidsgiverForEndring[]; + arbeidsgivereIkkeISak: ArbeidsgiverMedAnsettelseperioder[]; /** Alle aktiviteter som ikke har arbeidsgiver i AA-reg */ arbeidsaktivitetMedUkjentArbeidsgiver: ArbeidsaktivitetUkjentArbeidsgiver[]; /** Alle arbeidsaktiviteter i sak. Arbeidsgivere flates ut og legges sammen med evt. frilans og selvstendig */ @@ -84,7 +84,7 @@ interface ArbeidsaktivitetBase { export interface ArbeidsaktivitetArbeidstaker extends ArbeidsaktivitetBase { type: ArbeidsaktivitetType.arbeidstaker; - arbeidsgiver: ArbeidsgiverForEndring; + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder; erUkjentArbeidsforhold: boolean; } export interface ArbeidsaktivitetUkjentArbeidsgiver { diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" index d605fbfabe..963b1588d7 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/S\303\270knadContextState.ts" @@ -1,7 +1,7 @@ import { DateRange } from '@navikt/sif-common-utils'; import { StepId } from '../søknad/config/StepId'; import { SøknadRoutes } from '../søknad/config/SøknadRoutes'; -import { ArbeidsgiverForEndring } from './ArbeidsgiverForEndring'; +import { ArbeidsgiverMedAnsettelseperioder } from './ArbeidsgiverMedAnsettelseperioder'; import { K9Sak } from './K9Sak'; import { Sak } from './Sak'; import { Søker } from './Søker'; @@ -15,7 +15,7 @@ export interface SøknadContextState { k9saker: K9Sak[]; sak: Sak; tillattEndringsperiode: DateRange; - arbeidsgivere: ArbeidsgiverForEndring[]; + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]; søknadsdata: Søknadsdata; søknadRoute?: SøknadRoutes; endringsmeldingSendt?: boolean; diff --git a/apps/endringsmelding-pleiepenger/src/app/types/index.ts b/apps/endringsmelding-pleiepenger/src/app/types/index.ts index be188ef5d8..0c2d8e138f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/index.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/index.ts @@ -1,7 +1,7 @@ export * from './ArbeiderIPeriodenSvar'; export * from './Arbeidsforhold'; export * from './ArbeidstidEndring'; -export * from './ArbeidsgiverForEndring'; +export * from './ArbeidsgiverMedAnsettelseperioder'; export * from './ArbeidsgiverIkkeFunnetError'; export * from './ArbeidstidSøknadsdata'; export * from './EndringType'; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 7595682e22..8f412940a9 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -10,7 +10,7 @@ import { ISODurationToDuration, } from '@navikt/sif-common-utils'; import { - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidstidEnkeltdagMap, FaktiskOgNormalArbeidstid, K9SakArbeidstidPeriodeMap, @@ -44,14 +44,14 @@ describe('getSakFromK9Sak', () => { it('beholder uendret endringsperiode hvis bruker er fortsatt ansatt', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { ansettelsesperioder: [{ to: undefined }], - } as ArbeidsgiverForEndring); + } as ArbeidsgiverMedAnsettelseperioder); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoTo); }); it('justerer endringsperiode hvis sluttdato er før endringsperiode sluttdato', () => { const result = getEndringsperiodeForArbeidsgiver(endringsperiode, { ansettelsesperioder: [{ to: ISODateToDate(isoSluttdato) }], - } as ArbeidsgiverForEndring); + } as ArbeidsgiverMedAnsettelseperioder); expect(dateToISODate(result.from)).toEqual(isoFrom); expect(dateToISODate(result.to)).toEqual(isoSluttdato); }); @@ -295,9 +295,9 @@ describe('getSakFromK9Sak', () => { ISODateRangeToDateRange('2020-01-01/2020-02-01'), ISODateRangeToDateRange('2020-04-01/2020-05-01'), ]; - const arbeidsgiver: ArbeidsgiverForEndring = { + const arbeidsgiver: ArbeidsgiverMedAnsettelseperioder = { ansettelsesperioder: [{ from: ISODateToDate('2019-01-01') }], - } as ArbeidsgiverForEndring; + } as ArbeidsgiverMedAnsettelseperioder; describe('uten ansattTom', () => { it('returnerer true når ansattFom er før søknadsperiode', () => { @@ -308,7 +308,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-02-03') }], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeTruthy(); @@ -318,7 +318,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-03-02') }], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeTruthy(); @@ -328,7 +328,7 @@ describe('getSakFromK9Sak', () => { erArbeidsgiverInnenforSøknadsperioder( { ansettelsesperioder: [{ from: ISODateToDate('2020-05-02') }], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeFalsy(); @@ -342,7 +342,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2023-01-01') }, ], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeTruthy(); @@ -354,7 +354,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2019-01-01'), to: ISODateToDate('2020-03-01') }, ], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeTruthy(); @@ -369,7 +369,7 @@ describe('getSakFromK9Sak', () => { to: ISODateToDate('2019-12-31'), }, ], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeFalsy(); @@ -381,7 +381,7 @@ describe('getSakFromK9Sak', () => { ansettelsesperioder: [ { from: ISODateToDate('2020-03-01'), to: ISODateToDate('2020-03-02') }, ], - } as ArbeidsgiverForEndring, + } as ArbeidsgiverMedAnsettelseperioder, søknadsperioder, ), ).toBeFalsy(); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 5644177ef7..9696ca11e9 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -1,11 +1,20 @@ import { DateRange, ISODateRangeToDateRange, ISODurationToDuration } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring, K9SakArbeidstaker, K9SakArbeidstidPeriodeMap } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, K9SakArbeidstaker, K9SakArbeidstidPeriodeMap } from '@types'; import { tilgangskontroll, tilgangskontrollUtils } from '../tilgangskontroll'; import { vi } from 'vitest'; -const arbeidsgiver1: ArbeidsgiverForEndring = { key: 'a_1', organisasjonsnummer: '1' } as ArbeidsgiverForEndring; -const arbeidsgiver2: ArbeidsgiverForEndring = { key: 'a_2', organisasjonsnummer: '2' } as ArbeidsgiverForEndring; -const arbeidsgiver3: ArbeidsgiverForEndring = { key: 'a_3', organisasjonsnummer: '3' } as ArbeidsgiverForEndring; +const arbeidsgiver1: ArbeidsgiverMedAnsettelseperioder = { + key: 'a_1', + organisasjonsnummer: '1', +} as ArbeidsgiverMedAnsettelseperioder; +const arbeidsgiver2: ArbeidsgiverMedAnsettelseperioder = { + key: 'a_2', + organisasjonsnummer: '2', +} as ArbeidsgiverMedAnsettelseperioder; +const arbeidsgiver3: ArbeidsgiverMedAnsettelseperioder = { + key: 'a_3', + organisasjonsnummer: '3', +} as ArbeidsgiverMedAnsettelseperioder; const arbeidstaker1: K9SakArbeidstaker = { organisasjonsnummer: '1' } as K9SakArbeidstaker; const arbeidstaker2: K9SakArbeidstaker = { organisasjonsnummer: '2' } as K9SakArbeidstaker; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index fc56c4f770..a7c813467f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -26,7 +26,7 @@ import { ArbeidsaktivitetFrilanser, ArbeidsaktivitetSelvstendigNæringsdrivende, ArbeidsaktivitetType, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidsgiverIkkeFunnetError, ArbeidstidEnkeltdagMap, Arbeidsuke, @@ -65,7 +65,7 @@ interface _PeriodisertK9FormatArbeidstidPerioder { */ export const getSakFromK9Sak = ( k9sak: K9Sak, - alleArbeidsgivere: ArbeidsgiverForEndring[], + alleArbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], tillattEndringsperiode: DateRange, ): Sak => { const { arbeidstakerList, frilanserArbeidstidInfo, selvstendigNæringsdrivendeArbeidstidInfo } = @@ -138,7 +138,7 @@ export const getSakFromK9Sak = ( /** Henter utk9SakArbeidstakere med arbeidsgiver funnet i AA-reg */ export const getArbeidsaktiviteterMedKjentArbeidsgiver = ( k9SakArbeidstakere: K9SakArbeidstaker[], - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): K9SakArbeidstaker[] => { return k9SakArbeidstakere.filter((a) => arbeidsgivere.some((arbg) => arbg.organisasjonsnummer === a.organisasjonsnummer), @@ -148,7 +148,7 @@ export const getArbeidsaktiviteterMedKjentArbeidsgiver = ( /** Henter utk9SakArbeidstakere hvor arbeidsgiver IKKE er funnet i AA-reg */ export const getArbeidsaktiviteterMedUkjentArbeidsgiver = ( k9SakArbeidstakere: K9SakArbeidstaker[], - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ) => { return k9SakArbeidstakere.filter( (a) => arbeidsgivere.some((arbg) => arbg.organisasjonsnummer === a.organisasjonsnummer) === false, @@ -163,7 +163,7 @@ export const getArbeidsaktiviteterMedUkjentArbeidsgiver = ( */ const getEndringsperiodeForArbeidsgiver = ( tillattEndringsperiode: DateRange, - arbeidsgiver: ArbeidsgiverForEndring, + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, ): DateRange => { const { ansettelsesperioder } = arbeidsgiver; const sisteAnsattTom = ansettelsesperioder.sort(sortMaybeDateRange).reverse()[0]?.to; @@ -507,7 +507,7 @@ const getArbeidsaktivitetPerioderPart = ( */ const getArbeidsaktivitetArbeidstaker = ( arbeidstaker: K9SakArbeidstaker, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], endringsperiode: DateRange, ): ArbeidsaktivitetArbeidstaker => { const { @@ -608,7 +608,7 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( * @returns boolean */ const erArbeidsgiverInnenforSøknadsperioder = ( - arbeidsgiver: ArbeidsgiverForEndring, + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, søknadsperioder: DateRange[], ): boolean => { const { ansettelsesperioder = [] } = arbeidsgiver; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts index ffbc751382..cd7fc5a92b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakOgArbeidsgivereDebugInfo.ts @@ -1,5 +1,5 @@ import { DateRange } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring, K9Sak, K9SakArbeidstaker, Sak } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, K9Sak, K9SakArbeidstaker, Sak } from '@types'; import { maskString } from './maskString'; const maskK9Arbeidstaker = (k9Arbeidstaker: K9SakArbeidstaker) => { @@ -39,7 +39,7 @@ const maskSak = (sak: Sak) => { }; }; -const maskArbeidsgivere = (arbeidsgivere: ArbeidsgiverForEndring[]) => { +const maskArbeidsgivere = (arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[]) => { return arbeidsgivere.map((a) => ({ ansettelsesperioder: a.ansettelsesperioder, a: maskString(a.key), @@ -49,7 +49,7 @@ const maskArbeidsgivere = (arbeidsgivere: ArbeidsgiverForEndring[]) => { export const getSakOgArbeidsgivereDebugInfo = ( k9sak: K9Sak, sak: Sak, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], endringsperiode: DateRange, ) => { return { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts index a249c3c1f6..fd3034e9fe 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/initialDataUtils.ts @@ -1,6 +1,6 @@ import { DateRange, ISODateToDate, MaybeDateRange } from '@navikt/sif-common-utils'; import dayjs from 'dayjs'; -import { ArbeidsgiverForEndring } from '../types'; +import { ArbeidsgiverMedAnsettelseperioder } from '../types'; import { getArbeidsgiverKey } from './arbeidsgiverUtils'; import { AARegArbeidsgiverOrganisasjon } from '../api/endpoints/arbeidsgivereEndpoint'; @@ -20,8 +20,8 @@ export const getPeriodeForArbeidsgiverOppslag = ( export const getArbeidsgivereFromArbeidsgiverOrganisasjoner = ( organisasjoner: AARegArbeidsgiverOrganisasjon[], -): ArbeidsgiverForEndring[] => { - const aaArbeidsgivereMap = new Map(); +): ArbeidsgiverMedAnsettelseperioder[] => { + const aaArbeidsgivereMap = new Map(); (organisasjoner || []).forEach((a) => { const ansettelsesperiode: MaybeDateRange = { from: a.ansattFom ? ISODateToDate(a.ansattFom) : undefined, diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts index c105f5492f..88ced6093d 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/k9SakUtils.ts @@ -1,5 +1,5 @@ import { DateRange, dateRangeUtils, getDateRangeFromDateRanges } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring, K9Sak, K9SakArbeidstaker } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, K9Sak, K9SakArbeidstaker } from '@types'; import dayjs from 'dayjs'; import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'; @@ -15,7 +15,7 @@ export const getSamletDateRangeForK9Saker = (saker: K9Sak[]): DateRange | undefi }; export const finnesArbeidsgiverIK9Sak = ( - arbeidsgiver: ArbeidsgiverForEndring, + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, arbeidsgivereISak: K9SakArbeidstaker[], ): boolean => { return arbeidsgivereISak.some( diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" index def865c127..4e21bf310f 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" @@ -2,7 +2,7 @@ import { ISODateToDate } from '@navikt/sif-common-utils'; import { ArbeiderIPeriodenSvar, ArbeidsforholdAktivt, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidstidSøknadsdata, TimerEllerProsent, } from '../../../types'; @@ -31,7 +31,7 @@ describe('getDataBruktTilUtledningAnnetData', () => { }); describe('getUkjentArbeidsforholdApiDataFromSøknadsdata', () => { - const arbeidsgivere: ArbeidsgiverForEndring[] = [ + const arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[] = [ { organisasjonsnummer: '123', key: 'a_123', @@ -58,7 +58,7 @@ describe('getUkjentArbeidsforholdApiDataFromSøknadsdata', () => { }); describe('mapArbeidsforholdToArbeidsforholdApiData', () => { - const arbeidsgiver: ArbeidsgiverForEndring = { + const arbeidsgiver: ArbeidsgiverMedAnsettelseperioder = { organisasjonsnummer: '123', key: 'a_123', navn: 'Arbeidsgibvernavn', diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index 4d57233f78..a351d43ce2 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -1,5 +1,5 @@ import { dateToISODate } from '@navikt/sif-common-utils'; -import { ArbeidsgiverForEndring, Sak, SøknadApiData, Søknadsdata, ValgteEndringer } from '@types'; +import { ArbeidsgiverMedAnsettelseperioder, Sak, SøknadApiData, Søknadsdata, ValgteEndringer } from '@types'; import { getArbeidstidApiDataFromSøknadsdata } from './getArbeidstidApiDataFromSøknadsdata'; import { getDataBruktTilUtledningAnnetDataApiData, getDataBruktTilUtledningApiData } from './getDataBruktTilUtledning'; import { getLovbestemtFerieApiDataFromSøknadsdata } from './getLovbestemtFerieApiDataFraSøknadsdata'; @@ -10,7 +10,7 @@ export const getApiDataFromSøknadsdata = ( søknadsdata: Søknadsdata, sak: Sak, valgteEndringer: ValgteEndringer, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): SøknadApiData | undefined => { const { id, arbeidstid, lovbestemtFerie, ukjentArbeidsforhold } = søknadsdata; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" index 47168fb4b2..319fd37e8a 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getArbeidstidApiDataFromS\303\270knadsdata.ts" @@ -13,7 +13,7 @@ import { Arbeidsaktiviteter, ArbeidsaktivitetType, ArbeiderIPeriodenSvar, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidstakerApiData, ArbeidstidApiData, ArbeidstidEndring, @@ -99,7 +99,7 @@ export const getArbeidstidApiDataFromSøknadsdata = ( søknadsperioder: DateRange[], arbeidsaktivitetEndring: ArbeidstidArbeidsaktivitetMap, arbeidsaktiviteter: Arbeidsaktiviteter, - arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], + arbeidsgivereIkkeISak: ArbeidsgiverMedAnsettelseperioder[], ukjentArbeidsforhold?: UkjentArbeidsforholdSøknadsdata, ): ArbeidstidApiData => { const frilansAktivitetEndring = arbeidsaktivitetEndring[ArbeidsaktivitetType.frilanser]?.endringer; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" index 4107f48fa3..e1adc0c196 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/getDataBruktTilUtledning.ts" @@ -2,7 +2,7 @@ import { durationToISODuration } from '@navikt/sif-common-utils'; import { ArbeiderIPeriodenSvar, Arbeidsforhold, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidstidSøknadsdata, DataBruktTilUtledningApiData, DataBruktTilUtledningApiDataAnnetData as DataBruktTilUtledningAnnetDataApiData, @@ -15,7 +15,7 @@ import { getOrgNummerFromArbeidsgiverKey } from '../arbeidsgiverUtils'; export const getDataBruktTilUtledningApiData = ( ukjentArbeidsforhold: UkjentArbeidsforholdSøknadsdata | undefined, arbeidstid: ArbeidstidSøknadsdata | undefined, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): DataBruktTilUtledningApiData => { return { ukjenteArbeidsforhold: getUkjentArbeidsforholdApiDataFromSøknadsdata( @@ -35,7 +35,7 @@ export const getDataBruktTilUtledningAnnetDataApiData = ( export const mapArbeidsforholdToArbeidsforholdApiData = ( arbeidsforhold: Arbeidsforhold, - arbeidsgiver: ArbeidsgiverForEndring, + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): UkjentArbeidsforholdApiData => { const organisasjonsnummer = getOrgNummerFromArbeidsgiverKey(arbeidsforhold.arbeidsgiverKey); @@ -63,7 +63,7 @@ export const mapArbeidsforholdToArbeidsforholdApiData = ( export const getUkjentArbeidsforholdApiDataFromSøknadsdata = ( ukjenteArbeidsforhold: Arbeidsforhold[] | undefined, arbeidstid: ArbeidstidSøknadsdata | undefined, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): UkjentArbeidsforholdApiData[] => { if (ukjenteArbeidsforhold === undefined) { return []; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index 65bb10a36c..17bc1d1291 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -1,6 +1,6 @@ import { DateRange, durationToDecimalDuration, ensureDateRange, sortDateRange } from '@navikt/sif-common-utils'; import { - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, IngenTilgangÅrsak, K9Sak, K9SakArbeidstaker, @@ -29,7 +29,7 @@ export type TilgangKontrollResultat = TilgangNektet | TilgangTillatt; export const tilgangskontroll = ( saker: K9Sak[], tillattEndringsperiode: DateRange, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): TilgangKontrollResultat => { /** Har ingen saker */ if (saker.length === 0) { @@ -101,7 +101,7 @@ const getIngenTilgangMeta = (arbeidstid: K9SakArbeidstid): IngenTilgangMeta => { }; const harArbeidsgiverUtenArbeidsaktivitet = ( - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], k9SakArbeidstaker: K9SakArbeidstaker[] = [], ): boolean => { return arbeidsgivere.some((arbeidsgiver) => { @@ -126,7 +126,7 @@ const harSøknadsperiodeInnenforTillattEndringsperiode = ( const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( sak: K9Sak, tillatEndringsperiode: DateRange, - arbeidsgivere: ArbeidsgiverForEndring[], + arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): boolean => { const orgnrISak = (sak.ytelse.arbeidstid.arbeidstakerList || []).map((a) => a.organisasjonsnummer); return arbeidsgivere diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index d4f55202d1..47256c8b53 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -14,7 +14,7 @@ import { Arbeidsaktivitet, ArbeidsaktivitetType, ArbeidsforholdAktivt, - ArbeidsgiverForEndring, + ArbeidsgiverMedAnsettelseperioder, ArbeidstidEnkeltdagMap, ArbeidstidPerDag, ArbeidsukeMap, @@ -43,7 +43,7 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - { ansettelsesperioder }: ArbeidsgiverForEndring, + { ansettelsesperioder }: ArbeidsgiverMedAnsettelseperioder, normalarbeidstidPerUke: Duration, faktiskArbeidstidPerUke: Duration | undefined, ): PeriodeMedArbeidstid[] => { @@ -104,7 +104,7 @@ export const getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold = ( export const getArbeidsaktivitetForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - arbeidsgiver: ArbeidsgiverForEndring, + arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, arbeidsforhold: ArbeidsforholdAktivt, endringsperiode: DateRange, arbeiderIPerioden?: ArbeiderIPeriodenSvar, @@ -134,7 +134,7 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( export const getArbeidsaktiviteterForUkjenteArbeidsforhold = ( søknadsperioder: DateRange[], - arbeidsgivereIkkeISak: ArbeidsgiverForEndring[], + arbeidsgivereIkkeISak: ArbeidsgiverMedAnsettelseperioder[], arbeidsaktivitetFormValues: ArbeidsaktivitetFormValuesMap, endringsperiode: DateRange, ukjentArbeidsforhold?: UkjentArbeidsforholdSøknadsdata, diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts index 1acc5be1af..d75de02677 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/arbeidsgivereMock.ts @@ -1,6 +1,6 @@ -import { ArbeidsgiverForEndring } from '../../app/types/ArbeidsgiverForEndring'; +import { ArbeidsgiverMedAnsettelseperioder } from '../../app/types/ArbeidsgiverMedAnsettelseperioder'; -export const arbeidsgivereMock: ArbeidsgiverForEndring[] = [ +export const arbeidsgivereMock: ArbeidsgiverMedAnsettelseperioder[] = [ { key: 'a_805824352', navn: 'Dykkert svømmeutstyr', From 8ac09868a1a0cf04a3a72008fe48ac8c50c917e5 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 18:57:12 +0100 Subject: [PATCH 20/31] Revert endring --- .../app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx index 5180247a8b..b3353fac70 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/endre-arbeidstid-form/EndreArbeidstidForm.tsx @@ -108,6 +108,8 @@ const EndreArbeidstidForm: React.FunctionComponent = ( ? getFeriedagerIUke(lovbestemtFerie.feriedagerMeta.datoerFjernet, arbeidsuker[0].periode, true) : []; + const gjelderKortUke = arbeidsuker.length === 1 && erKortArbeidsuke(arbeidsuker[0].periode); + const getMaksTimer = () => { const antallDager = arbeidsuker.length === 1 ? arbeidsuker[0].antallDagerMedArbeidstid : 7; return 24 * antallDager; @@ -196,7 +198,7 @@ const EndreArbeidstidForm: React.FunctionComponent = ( - {arbeidsuker.length === 1 ? ( + {gjelderKortUke ? ( From 55062659321025f414e5c67025b8b19240a748e4 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Wed, 22 Jan 2025 21:16:28 +0100 Subject: [PATCH 21/31] Scenario - flere ansettelser uten opphold --- .../src/app/dev/scenarioer.ts | 13 +- .../src/app/utils/getSakFromK9Sak.ts | 4 +- ...dsgiverToAnsettelserSammeUkeUtenOpphold.ts | 10 ++ .../arbeidsgiver-mock.ts | 18 +++ .../sak-mock.ts | 114 ++++++++++++++++++ .../s\303\270ker-mock.ts" | 9 ++ .../src/mocks/data/scenario/index.ts | 4 +- 7 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/sak-mock.ts create mode 100644 "apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/s\303\270ker-mock.ts" diff --git a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts index 9f2313af7f..0b3dc463b9 100644 --- a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts +++ b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts @@ -11,7 +11,8 @@ export type ScenarioType = | 'ingen-sak' | 'arbeidsaktivitet-uten-arbeidsgiver' | 'ugyldig-k9-format' - | 'en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold'; + | 'en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold' + | 'en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold'; export interface Scenario { name: string; @@ -81,6 +82,16 @@ export const scenarioer: Scenario[] = [ value: 'ugyldig-k9-format', harTilgang: false, }, + { + name: 'Arbeidsgiver med to ansettelser samme uke med opphold', + value: 'en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold', + harTilgang: false, + }, + { + name: 'Arbeidsgiver med to ansettelser samme uke uten opphold', + value: 'en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold', + harTilgang: true, + }, ]; export const defaultScenario = scenarioer[0]; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index a7c813467f..7dbd8156b7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -572,7 +572,7 @@ const getArbeidsaktivitetFrilanser = ( key: ArbeidsaktivitetType.frilanser, type: ArbeidsaktivitetType.frilanser, navn: 'Frilanser', - ansettelsesperioderInnenforEndringsperiode: [endringsperiode], // TODO + ansettelsesperioderInnenforEndringsperiode: [], // Brukes ikke for frilanser ...getArbeidsaktivitetPerioderPart(frilanserArbeidstidInfo.perioder, endringsperiode, [endringsperiode]), } : undefined; @@ -593,7 +593,7 @@ const getArbeidsaktivitetSelvstendigNæringsdrivende = ( key: ArbeidsaktivitetType.selvstendigNæringsdrivende, type: ArbeidsaktivitetType.selvstendigNæringsdrivende, navn: 'Selvstendig næringsdrivende', - ansettelsesperioderInnenforEndringsperiode: [], // TODO + ansettelsesperioderInnenforEndringsperiode: [], // Brukes ikke for SN ...getArbeidsaktivitetPerioderPart(selvstendigNæringsdrivendeArbeidstidInfo.perioder, endringsperiode, [ endringsperiode, ]), diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold.ts new file mode 100644 index 0000000000..579142c282 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold.ts @@ -0,0 +1,10 @@ +import { ScenarioData } from '..'; +import arbeidsgiver from './arbeidsgiver-mock'; +import sak from './sak-mock'; +import søker from './søker-mock'; + +export const EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold: ScenarioData = { + sak, + arbeidsgiver, + søker, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts new file mode 100644 index 0000000000..0406ca9316 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts @@ -0,0 +1,18 @@ +export default { + organisasjoner: [ + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2003-01-16', + ansattTom: '2022-01-11', + }, + { + organisasjonsnummer: '947064649', + navn: 'Norsk bedrift AS', + ansattFom: '2022-01-12', + ansattTom: null, + }, + ], + privateArbeidsgivere: null, + frilansoppdrag: null, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/sak-mock.ts new file mode 100644 index 0000000000..8b2cc9fe4d --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/sak-mock.ts @@ -0,0 +1,114 @@ +export default [ + { + barn: { + fødselsdato: '2017-03-03', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'Nordmann', + aktørId: '2559652436225', + identitetsnummer: '03831799748', + }, + søknad: { + søknadId: 'generert', + versjon: '1.0.0.', + mottattDato: '2023-01-18T08:13:37.525Z', + søker: { norskIdentitetsnummer: '00000000000' }, + ytelse: { + type: 'PLEIEPENGER_SYKT_BARN', + barn: { norskIdentitetsnummer: '00000000000', fødselsdato: null }, + søknadsperiode: ['2022-12-01/2024-05-31'], + endringsperiode: [], + trekkKravPerioder: [], + opptjeningAktivitet: {}, + dataBruktTilUtledning: null, + infoFraPunsj: null, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + utenlandsopphold: { + perioder: { + '2018-12-30/2019-10-20': { + land: 'DNK', + årsak: 'barnetInnlagtIHelseinstitusjonForNorskOffentligRegning', + }, + }, + }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + tilsynsordning: { + perioder: { + '2022-12-01/2023-01-31': { etablertTilsynTimerPerDag: 'PT8H' }, + '2023-02-14/2023-03-16': { etablertTilsynTimerPerDag: 'PT8H' }, + }, + }, + lovbestemtFerie: { + perioder: { + '2023-01-01/2023-01-10': { + skalHaFerie: true, + }, + '2023-01-12/2023-01-15': { + skalHaFerie: false, + }, + }, + }, + arbeidstid: { + arbeidstakerList: [ + { + norskIdentitetsnummer: null, + organisasjonsnummer: '947064649', + arbeidstidInfo: { + perioder: { + '2022-12-01/2022-12-02': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-05/2022-12-09': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-12/2022-12-16': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-19/2022-12-23': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2022-12-26/2022-12-30': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-02/2023-01-06': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-09/2023-01-13': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-16/2023-01-20': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-23/2023-01-27': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + '2023-01-30/2024-05-31': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT4H32M24S', + }, + }, + }, + }, + ], + frilanserArbeidstidInfo: {}, + selvstendigNæringsdrivendeArbeidstidInfo: {}, + }, + uttak: { perioder: {} }, + omsorg: { relasjonTilBarnet: null, beskrivelseAvOmsorgsrollen: null }, + }, + språk: 'nb', + journalposter: [], + begrunnelseForInnsending: { tekst: null }, + }, + }, +]; diff --git "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/s\303\270ker-mock.ts" "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/s\303\270ker-mock.ts" new file mode 100644 index 0000000000..b80d44748e --- /dev/null +++ "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/s\303\270ker-mock.ts" @@ -0,0 +1,9 @@ +export default { + aktørId: '2486083225079', + fødselsdato: '1987-10-09', + fødselsnummer: '09908799647', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'Etternavn', + myndig: true, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts index e8db73ac11..a0677bebd5 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts @@ -5,12 +5,13 @@ import { ArbeidsgiverOgFrilanser } from './arbeidsgiver-og-frilanser/Arbeidsgive import { ArbeidsgivereOgFrilanser } from './arbeidsgivere-og-frilanser/ArbeidsgivereOgFrilanser'; import { Debug } from './debug/Debug'; import { EnArbeidsgiverEnPeriode } from './en-arbeidsgiver-en-periode/EnArbeidsgiverEnPeriode'; +import { EnArbeidsgiverToAnsettelserSammeUkeMedOpphold } from './en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold'; +import { EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold } from './en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold'; import { EnArbeidsgiverToPerioder } from './en-arbeidsgiver-to-perioder/EnArbeidsgiverToPerioder'; import { FlereSaker } from './flere-saker/FlereSaker'; import { IngenSak } from './ingen-sak/IngenSak'; import { SelvstendigNæringsdrivende } from './selvstendig-næringsdrivende/SelvstendigNæringsdrivende'; import { UgyldigK9Format } from './ugyldig-k9-format/UgyldigK9Format'; -import { EnArbeidsgiverToAnsettelserSammeUkeMedOpphold } from './en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold/EnArbeidsgiverToAnsettelserSammeUkeMedOpphold'; type ScenarioMap = { [key: string]: ScenarioData; @@ -29,6 +30,7 @@ export const mockData: ScenarioMap = { ['arbeidsaktivitet-uten-arbeidsgiver']: ArbeidsaktivitetUtenArbeidsgiver, ['ugyldig-k9-format']: UgyldigK9Format, ['en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold']: EnArbeidsgiverToAnsettelserSammeUkeMedOpphold, + ['en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold']: EnArbeidsgiverToAnsettelserSammeUkeUtenOpphold, }; export interface ScenarioData { From e20e9feb97f6082379f79406f89ede8af30e53e3 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 23 Jan 2025 08:18:56 +0100 Subject: [PATCH 22/31] Sperre tilgang for ukjente arbeidsgivere med flere ansettelsesforhold --- .../src/app/i18n/appMessages.ts | 7 ++- .../IngenTilgangPage.stories.tsx | 4 +- .../pages/ingen-tilgang/IngenTilgangPage.tsx | 6 +- .../app/pages/kvittering/KvitteringPage.tsx | 6 +- .../BehandlingAvPersonopplysningerContent.tsx | 2 +- .../src/app/pages/velkommen/VelkommenPage.tsx | 5 +- .../steps/arbeidstid/ArbeidstidForm.tsx" | 4 +- .../app/types/IngenTilgang\303\205rsak.ts" | 2 +- .../utils/__tests__/tilgangskontroll.test.ts | 58 +++++++++++++------ ...ils.ts => ukjentArbeidsgiverUtils.test.ts} | 3 +- .../src/app/utils/tilgangskontroll.ts | 21 +++++-- .../app/utils/ukjentArbeidsforholdUtils.ts | 39 +++++++------ .../arbeidsgiver-mock.ts | 3 +- 13 files changed, 102 insertions(+), 58 deletions(-) rename apps/endringsmelding-pleiepenger/src/app/utils/__tests__/{ukjentArbeidsgiverUtils.ts => ukjentArbeidsgiverUtils.test.ts} (93%) diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index 2c9285914a..8117d9f302 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -88,9 +88,10 @@ const nb = { 'Hvis du har søkt om pleiepenger for en periode frem i tid, eller for barn som ikke er folkeregistrert på deg, kan det ta tid før du kan bruke endringsmeldingen. Du kan foreløpig melde endringer i pleiepengesaken din via {SkrivTilOssLink}.', 'ingenTilgangPage.harIngenSak.3': 'Hvis du ønsker at en av våre veiledere skal undersøke hvorfor du ikke kan bruke endringsmeldingen, kan du kontakte oss på telefon 55 55 33 33.', - 'ingenTilgangPage.harArbeidsgiverUtenArbeidsaktivitet.1': - 'Du kan ikke bruke denne tjenesten. Dette er fordi vi har funnet et arbeidsforhold på deg, som ikke er registrert i pleiepengesaken din. Du må derfor sende en ny søknad, slik at saken og utbetalingene dine blir riktige.', - 'ingenTilgangPage.harArbeidsgiverUtenArbeidsaktivitet.2': + 'ingenTilgangPage.harFlereAnsettelsesforholdHosUkjentArbeidsgiver.1': + 'Du kan ikke bruke denne tjenesten. Dette er fordi vi har funnet arbeidsforhold på deg som ikke er registrert i pleiepengesaken din, og hvor du har flere ansettelsesforhold. Du må derfor sende en ny søknad, slik at saken og utbetalingene dine blir riktige.', + + 'ingenTilgangPage.harFlereAnsettelsesforholdHosUkjentArbeidsgiver.2': 'Hvis du mener at dette ikke stemmer, er det fint at du sender en melding til oss {SkrivTilOssLink}.', 'ingenTilgangPage.harArbeidstidSomSelvstendigNæringsdrivende.1': 'Du kan ikke bruke denne tjenesten per i dag. Dette er fordi tjenesten foreløpig ikke kan ta imot endringer fra selvstendig næringsdrivende. Vi jobber for å få det til, og selvstendig næringsdrivende blir også tilbudt denne tjenesten på et senere tidspunkt.', diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx index c4eaa5317b..97eb66b97b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx @@ -21,10 +21,10 @@ export default meta; type Story = StoryObj; export const Default: Story = { - name: 'harArbeidsgiverUtenArbeidsaktivitet', + name: 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver', args: { søker, - årsak: [IngenTilgangÅrsak.harArbeidsgiverUtenArbeidsaktivitet], + årsak: [IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver], }, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx index fa7042f8f5..7cc7741ae6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx @@ -56,15 +56,15 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

); - case IngenTilgangÅrsak.harArbeidsgiverUtenArbeidsaktivitet: + case IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver: return (

- +

}} />

diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx index 90644d12a3..0ddfaabfe6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx @@ -23,7 +23,11 @@ const KvitteringPage = ({ onUnmount }: Props) => { {children}, + Lenke: (children) => ( + + {children} + + ), }} /> diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx index 4ae61fca85..49c8ecee24 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx @@ -47,7 +47,7 @@ const BehandlingAvPersonopplysningerContent: React.FunctionComponent = () => { id="personopplysninger.5" values={{ Link: (children) => ( - + {children} ), diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx index 02d0a89c13..50225da40e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx @@ -51,7 +51,10 @@ const VelkommenPage = () => { {barnetsNavn}, samletSøknadsperiodeTekst }} + values={{ + barnetsNavn: {barnetsNavn}, + samletSøknadsperiodeTekst, + }} /> diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" index e46f1543a0..d048ebc1e7 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" @@ -120,7 +120,9 @@ const ArbeidstidForm: React.FunctionComponent = ({ goBack }) => { id="arbeidstidStep.ingenArbeidsaktiviteter" values={{ Lenke: (txt: string) => ( - {txt} + + {txt} + ), }} /> diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" index f5b337c825..afeb2b4c75 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" @@ -4,7 +4,7 @@ export enum IngenTilgangÅrsak { 'søknadsperioderUtenforTillattEndringsperiode' = 'søknadsperioderUtenforTillattEndringsperiode', 'harMerEnnEnSak' = 'harMerEnnEnSak', 'harIngenPerioder' = 'harIngenPerioder', - 'harArbeidsgiverUtenArbeidsaktivitet' = 'harArbeidsgiverUtenArbeidsaktivitet', 'harArbeidstidSomSelvstendigNæringsdrivende' = 'harArbeidstidSomSelvstendigNæringsdrivende', 'enArbeidsgiverToAnsettelserSammeUkeMedOpphold' = 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke', + 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver' = 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver', } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 9696ca11e9..85c46f6eb7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -3,17 +3,29 @@ import { ArbeidsgiverMedAnsettelseperioder, K9SakArbeidstaker, K9SakArbeidstidPe import { tilgangskontroll, tilgangskontrollUtils } from '../tilgangskontroll'; import { vi } from 'vitest'; +const ansettelsesperioder: DateRange[] = [ISODateRangeToDateRange('2022-01-01/2023-03-01')]; + const arbeidsgiver1: ArbeidsgiverMedAnsettelseperioder = { key: 'a_1', + navn: 'a_1', + ansettelsesperioder, organisasjonsnummer: '1', -} as ArbeidsgiverMedAnsettelseperioder; +}; const arbeidsgiver2: ArbeidsgiverMedAnsettelseperioder = { key: 'a_2', + navn: 'a_2', + ansettelsesperioder, organisasjonsnummer: '2', -} as ArbeidsgiverMedAnsettelseperioder; -const arbeidsgiver3: ArbeidsgiverMedAnsettelseperioder = { - key: 'a_3', - organisasjonsnummer: '3', +}; + +const arbeidsgiverFlereAnsettelsesperioder: ArbeidsgiverMedAnsettelseperioder = { + key: 'a_4', + navn: 'a_4', + ansettelsesperioder: [ + ISODateRangeToDateRange('2022-01-01/2023-02-01'), + ISODateRangeToDateRange('2023-02-01/2023-03-01'), + ], + organisasjonsnummer: '4', } as ArbeidsgiverMedAnsettelseperioder; const arbeidstaker1: K9SakArbeidstaker = { organisasjonsnummer: '1' } as K9SakArbeidstaker; @@ -47,32 +59,40 @@ describe('tilgangskontroll', () => { }); }); -describe('harArbeidsgiverUtenArbeidstakerK9Sak', () => { - it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak', () => { - const result = tilgangskontrollUtils.harArbeidsgiverUtenArbeidsaktivitet( - [arbeidsgiver3], +describe('harFlereAnsettelsesforholdHosUkjentArbeidsgiver', () => { + /** TODO - oppdatere */ + it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak og har flere ansettelseperioder', () => { + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( + [arbeidsgiverFlereAnsettelsesperioder], [arbeidstaker1, arbeidstaker2], ); expect(result).toBeTruthy(); }); it('returnerer false hvis alle arbeidsgivere har arbeidsaktivitet i sak', () => { - const result = tilgangskontrollUtils.harArbeidsgiverUtenArbeidsaktivitet( + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( [arbeidsgiver1, arbeidsgiver2], [arbeidstaker1, arbeidstaker2], ); expect(result).toBeFalsy(); }); + it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak men har kun én ansettelseperiode', () => { + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( + [arbeidsgiver1], + [arbeidstaker1], + ); + expect(result).toBeFalsy(); + }); }); describe('harSakSøknadsperiodeInnenforTillattEndringsperiode', () => { - const tillatEndringsperiode = ISODateRangeToDateRange('2022-01-02/2022-02-01'); + const tillattEndringsperiode = ISODateRangeToDateRange('2022-01-02/2022-02-01'); const søknadsperiodeUtenfor: DateRange = ISODateRangeToDateRange('2022-01-01/2022-01-01'); const søknadsperiodeInnenfor: DateRange = ISODateRangeToDateRange('2022-01-02/2022-02-01'); it('returnerer true hvis søknadsperioder er innenfor tillatt endringsperiode', () => { const result = tilgangskontrollUtils.harSøknadsperiodeInnenforTillattEndringsperiode( søknadsperiodeInnenfor, - tillatEndringsperiode, + tillattEndringsperiode, ); expect(result).toBeTruthy(); }); @@ -80,7 +100,7 @@ describe('harSakSøknadsperiodeInnenforTillattEndringsperiode', () => { it('returnerer false hvis søknadsperioder er før tillatt endringsperiode', () => { const result = tilgangskontrollUtils.harSøknadsperiodeInnenforTillattEndringsperiode( søknadsperiodeUtenfor, - tillatEndringsperiode, + tillattEndringsperiode, ); expect(result).toBeFalsy(); }); @@ -164,23 +184,23 @@ describe('slutterOgStarterHosArbeidsgiverSammeUke', () => { const uke3FreSøn: DateRange = ISODateRangeToDateRange('2025-01-17/2025-01-19'); it('returnerer false hvis det ikke er noen ansettelsesperiode', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([])).toBeFalsy(); }); it('returnerer false hvis det bare er én ansettelsesperiode', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2])).toBeFalsy(); }); it('returnerer false hvis det to ansettelsesperiode med én uke mellom', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2, uke4])).toBeFalsy(); }); it('returnerer false hvis det to ansettelsesperiode med er sammenhengende', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3TorFre])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke3ManOns, uke3TorFre])).toBeFalsy(); }); it('returnerer true hvis to perioder slutter og starter innenfor samme uke men med opphold', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3FreSøn])).toBeTruthy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke3ManOns, uke3FreSøn])).toBeTruthy(); }); it('returnerer true hvis to det er mange perioder usortert og noen slutter og starter innenfor samme uke men med opphold', () => { expect( - tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4, uke3ManOns, uke3FreSøn]), + tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2, uke4, uke3ManOns, uke3FreSøn]), ).toBeTruthy(); }); }); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts similarity index 93% rename from apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts rename to apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts index 7f4fb3d1ec..e38a0d8c9f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts @@ -1,5 +1,4 @@ -import { DateRange } from '@navikt/sif-common-formik-ds'; -import { dateToISODate, ISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; +import { DateRange, dateToISODate, ISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; import { getSøknadsperioderForUkjentArbeidsforhold } from '../ukjentArbeidsforholdUtils'; describe('ukjentArbeidsforholdUtils', () => { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index 17bc1d1291..68c819c4fa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -66,6 +66,11 @@ export const tilgangskontroll = ( ingenTilgangÅrsak.push(IngenTilgangÅrsak.enArbeidsgiverToAnsettelserSammeUkeMedOpphold); } + /** Bruker har flere ansettelsperioder hos ukjent arbeidsgiver */ + if (harFlereAnsettelsesforholdHosUkjentArbeidsgiver(arbeidsgivere, sak.ytelse.arbeidstid.arbeidstakerList)) { + ingenTilgangÅrsak.push(IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver); + } + if (ingenTilgangÅrsak.length > 0) { return { kanBrukeSøknad: false, @@ -100,12 +105,16 @@ const getIngenTilgangMeta = (arbeidstid: K9SakArbeidstid): IngenTilgangMeta => { }; }; -const harArbeidsgiverUtenArbeidsaktivitet = ( +const harFlereAnsettelsesforholdHosUkjentArbeidsgiver = ( arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], k9SakArbeidstaker: K9SakArbeidstaker[] = [], ): boolean => { return arbeidsgivere.some((arbeidsgiver) => { - return finnesArbeidsgiverIK9Sak(arbeidsgiver, k9SakArbeidstaker) === false; + const erUkjentArbeidsgiver = finnesArbeidsgiverIK9Sak(arbeidsgiver, k9SakArbeidstaker) === false; + if (!erUkjentArbeidsgiver) { + return false; + } + return arbeidsgiver.ansettelsesperioder.length > 1; }); }; @@ -125,7 +134,7 @@ const harSøknadsperiodeInnenforTillattEndringsperiode = ( const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( sak: K9Sak, - tillatEndringsperiode: DateRange, + tillattEndringsperiode: DateRange, arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): boolean => { const orgnrISak = (sak.ytelse.arbeidstid.arbeidstakerList || []).map((a) => a.organisasjonsnummer); @@ -133,7 +142,7 @@ const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( .filter((a) => orgnrISak.includes(a.organisasjonsnummer)) .some((arbeidsgiver) => { const ansettelserInnenforEndringsperiode = arbeidsgiver.ansettelsesperioder.map((d) => - ensureDateRange(d, tillatEndringsperiode), + ensureDateRange(d, tillattEndringsperiode), ); return perioderSlutterOgStarterSammeUkeMedOpphold(ansettelserInnenforEndringsperiode); }); @@ -167,7 +176,7 @@ const perioderSlutterOgStarterSammeUkeMedOpphold = (ansettelsesperioder: DateRan export const tilgangskontrollUtils = { getIngenTilgangMeta, - harArbeidsgiverUtenArbeidsaktivitet, harSøknadsperiodeInnenforTillattEndringsperiode, - slutterOgStarterHosArbeidsgiverSammeUke: perioderSlutterOgStarterSammeUkeMedOpphold, + harFlereAnsettelsesforholdHosUkjentArbeidsgiver, + perioderSlutterOgStarterSammeUkeMedOpphold, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index 47256c8b53..cc839b1414 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -43,22 +43,16 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - { ansettelsesperioder }: ArbeidsgiverMedAnsettelseperioder, + ansettelsesperiode: DateRange, normalarbeidstidPerUke: Duration, faktiskArbeidstidPerUke: Duration | undefined, ): PeriodeMedArbeidstid[] => { - if (ansettelsesperioder.length === 0) { - return []; - } - /** TODO - håndtere flere ansettelsesperioder */ - const søknadsperioderForArbeidsforhold = - ansettelsesperioder.length === 1 - ? getSøknadsperioderForUkjentArbeidsforhold( - søknadsperioder, - ansettelsesperioder[0].from, - ansettelsesperioder[0].to, - ) - : []; + const søknadsperioderForArbeidsforhold = getSøknadsperioderForUkjentArbeidsforhold( + søknadsperioder, + ansettelsesperiode.from, + ansettelsesperiode.to, + ); + const perioderMedArbeidstid: PeriodeMedArbeidstid[] = []; const arbeidstidPerDag: ArbeidstidPerDag = { @@ -102,6 +96,15 @@ export const getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold = ( } }; +/** + * Henter ut Arbeidsaktiviet for ukjent arbeidsforhold + * @param søknadsperioder Alle perioder som er søkt for + * @param arbeidsgiver Arbeidsgiveren det gjelder som ikke er registrert i sak + * @param arbeidsforhold Arbeidsforhold utledet tidligere - holder om en er ansatt eller ikke, og evt. normalarbeidstid. Hentes på eget steg + * @param endringsperiode tidsrommet som en kan gjøre endringer i + * @param arbeiderIPerioden om bruker sier en arbeider, arbeider delvis eller arbeider ikke i perioden + * @returns Arbeidsaktivitet + */ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, @@ -110,6 +113,10 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): Arbeidsaktivitet => { const faktiskArbeidstid = getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold(arbeidsforhold, arbeiderIPerioden); + if (arbeidsgiver.ansettelsesperioder.length !== 1) { + throw 'Ukjent arbeidsforhold kan kun ha en ansettelsesperiode'; + } + const ansettelsesperiode = ensureDateRange(arbeidsgiver.ansettelsesperioder[0], endringsperiode); const aktivitet: Arbeidsaktivitet = { key: arbeidsgiver.key, @@ -119,12 +126,10 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( navn: arbeidsgiver.navn, harPerioderEtterTillattEndringsperiode: false, harPerioderFørTillattEndringsperiode: false, - ansettelsesperioderInnenforEndringsperiode: arbeidsgiver.ansettelsesperioder.map((periode) => - ensureDateRange(periode, endringsperiode), - ), + ansettelsesperioderInnenforEndringsperiode: [ansettelsesperiode], perioderMedArbeidstid: getPerioderMedArbeidstidForUkjentArbeidsforhold( søknadsperioder, - arbeidsgiver, + ansettelsesperiode, arbeidsforhold.normalarbeidstid.timerPerUke, faktiskArbeidstid, ), diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts index d1f2d8394d..f6bd367a8b 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts @@ -2,7 +2,8 @@ export default { organisasjoner: [ { navn: 'Dykkert svømmeutstyr', organisasjonsnummer: '947064649', ansattFom: '2008-10-01' }, { navn: 'Vinge flyfly', organisasjonsnummer: '947064640', ansattFom: '2008-10-01' }, - { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-02-01' }, + { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-02-05', ansattTom: '2023-04-05' }, + { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-04-06' }, { navn: 'IKKE-I-SAK-AS 2', organisasjonsnummer: '947064643', ansattFom: '2023-02-01' }, ], }; From 9a2ca6d17f506ce51712a6394258636edd158e38 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 23 Jan 2025 08:26:53 +0100 Subject: [PATCH 23/31] Sperre tilgang for ukjente arbeidsgivere med flere ansettelsesforhold --- .../src/app/dev/scenarioer.ts | 8 +- .../src/app/i18n/appMessages.ts | 7 +- .../IngenTilgangPage.stories.tsx | 4 +- .../pages/ingen-tilgang/IngenTilgangPage.tsx | 19 +- .../app/pages/kvittering/KvitteringPage.tsx | 6 +- .../BehandlingAvPersonopplysningerContent.tsx | 2 +- .../src/app/pages/velkommen/VelkommenPage.tsx | 5 +- .../steps/arbeidstid/ArbeidstidForm.tsx" | 4 +- .../ArbeidsaktivitetUtenforPeriodeInfo.tsx" | 2 +- .../app/types/IngenTilgang\303\205rsak.ts" | 2 +- .../utils/__tests__/tilgangskontroll.test.ts | 58 ++- ...ils.ts => ukjentArbeidsgiverUtils.test.ts} | 3 +- .../src/app/utils/tilgangskontroll.ts | 21 +- .../app/utils/ukjentArbeidsforholdUtils.ts | 39 +- .../ArbeidsgiverIkkeISakFlereAnsettelser.ts | 10 + .../arbeidsgiver-mock.ts | 8 + .../sak-mock.ts | 343 ++++++++++++++++++ .../s\303\270ker-mock.ts" | 8 + .../arbeidsgiver-mock.ts | 2 +- .../src/mocks/data/scenario/index.ts | 6 +- 20 files changed, 486 insertions(+), 71 deletions(-) rename apps/endringsmelding-pleiepenger/src/app/utils/__tests__/{ukjentArbeidsgiverUtils.ts => ukjentArbeidsgiverUtils.test.ts} (93%) create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/ArbeidsgiverIkkeISakFlereAnsettelser.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/arbeidsgiver-mock.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/sak-mock.ts create mode 100644 "apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/s\303\270ker-mock.ts" diff --git a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts index 0b3dc463b9..6212ec3757 100644 --- a/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts +++ b/apps/endringsmelding-pleiepenger/src/app/dev/scenarioer.ts @@ -4,7 +4,7 @@ export type ScenarioType = | 'arbeidsgiver-og-frilanser' | 'arbeidsgivere-og-frilanser' | 'arbeidsgiver-ikke-i-sak' - | 'flere-saker-kun-en-aktiv' + | 'arbeidsgiver-ikke-i-sak-flere-ansettelser' | 'debug' | 'selvstendig-næringsdrivende' | 'flere-saker' @@ -48,9 +48,9 @@ export const scenarioer: Scenario[] = [ harTilgang: true, }, { - name: 'Flere saker, kun én aktiv', - value: 'flere-saker-kun-en-aktiv', - harTilgang: true, + name: 'Arbeidsgiver som ikke er i sak med flere ansettelser', + value: 'arbeidsgiver-ikke-i-sak-flere-ansettelser', + harTilgang: false, }, { name: 'Selvstendig næringsdrivende', diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index 2c9285914a..8117d9f302 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -88,9 +88,10 @@ const nb = { 'Hvis du har søkt om pleiepenger for en periode frem i tid, eller for barn som ikke er folkeregistrert på deg, kan det ta tid før du kan bruke endringsmeldingen. Du kan foreløpig melde endringer i pleiepengesaken din via {SkrivTilOssLink}.', 'ingenTilgangPage.harIngenSak.3': 'Hvis du ønsker at en av våre veiledere skal undersøke hvorfor du ikke kan bruke endringsmeldingen, kan du kontakte oss på telefon 55 55 33 33.', - 'ingenTilgangPage.harArbeidsgiverUtenArbeidsaktivitet.1': - 'Du kan ikke bruke denne tjenesten. Dette er fordi vi har funnet et arbeidsforhold på deg, som ikke er registrert i pleiepengesaken din. Du må derfor sende en ny søknad, slik at saken og utbetalingene dine blir riktige.', - 'ingenTilgangPage.harArbeidsgiverUtenArbeidsaktivitet.2': + 'ingenTilgangPage.harFlereAnsettelsesforholdHosUkjentArbeidsgiver.1': + 'Du kan ikke bruke denne tjenesten. Dette er fordi vi har funnet arbeidsforhold på deg som ikke er registrert i pleiepengesaken din, og hvor du har flere ansettelsesforhold. Du må derfor sende en ny søknad, slik at saken og utbetalingene dine blir riktige.', + + 'ingenTilgangPage.harFlereAnsettelsesforholdHosUkjentArbeidsgiver.2': 'Hvis du mener at dette ikke stemmer, er det fint at du sender en melding til oss {SkrivTilOssLink}.', 'ingenTilgangPage.harArbeidstidSomSelvstendigNæringsdrivende.1': 'Du kan ikke bruke denne tjenesten per i dag. Dette er fordi tjenesten foreløpig ikke kan ta imot endringer fra selvstendig næringsdrivende. Vi jobber for å få det til, og selvstendig næringsdrivende blir også tilbudt denne tjenesten på et senere tidspunkt.', diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx index c4eaa5317b..97eb66b97b 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.stories.tsx @@ -21,10 +21,10 @@ export default meta; type Story = StoryObj; export const Default: Story = { - name: 'harArbeidsgiverUtenArbeidsaktivitet', + name: 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver', args: { søker, - årsak: [IngenTilgangÅrsak.harArbeidsgiverUtenArbeidsaktivitet], + årsak: [IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver], }, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx index fa7042f8f5..7056a6c826 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/ingen-tilgang/IngenTilgangPage.tsx @@ -23,7 +23,7 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => { , + SkrivTilOssLink: , }} /> ); @@ -48,7 +48,7 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

}} + values={{ SkrivTilOssLink: }} />

@@ -56,16 +56,16 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

); - case IngenTilgangÅrsak.harArbeidsgiverUtenArbeidsaktivitet: + case IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver: return (

- +

}} + id="ingenTilgangPage.harFlereAnsettelsesforholdHosUkjentArbeidsgiver.2" + values={{ SkrivTilOssLink: }} />

@@ -103,13 +103,16 @@ const getÅrsakMelding = (årsak: IngenTilgangÅrsak) => {

}} + values={{ + ANTALL_MÅNEDER_TILLATT_FOR_ENDRING, + SkrivTilOssLink: , + }} />

}} + values={{ SkrivTilOssLink: }} />

diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx index 90644d12a3..0ddfaabfe6 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/kvittering/KvitteringPage.tsx @@ -23,7 +23,11 @@ const KvitteringPage = ({ onUnmount }: Props) => { {children}, + Lenke: (children) => ( + + {children} + + ), }} /> diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx index 4ae61fca85..49c8ecee24 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/BehandlingAvPersonopplysningerContent.tsx @@ -47,7 +47,7 @@ const BehandlingAvPersonopplysningerContent: React.FunctionComponent = () => { id="personopplysninger.5" values={{ Link: (children) => ( - + {children} ), diff --git a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx index 02d0a89c13..50225da40e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/pages/velkommen/VelkommenPage.tsx @@ -51,7 +51,10 @@ const VelkommenPage = () => { {barnetsNavn}, samletSøknadsperiodeTekst }} + values={{ + barnetsNavn: {barnetsNavn}, + samletSøknadsperiodeTekst, + }} /> diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" index e46f1543a0..d048ebc1e7 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/ArbeidstidForm.tsx" @@ -120,7 +120,9 @@ const ArbeidstidForm: React.FunctionComponent = ({ goBack }) => { id="arbeidstidStep.ingenArbeidsaktiviteter" values={{ Lenke: (txt: string) => ( - {txt} + + {txt} + ), }} /> diff --git "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetUtenforPeriodeInfo.tsx" "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetUtenforPeriodeInfo.tsx" index c21923640e..57c4b9e175 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetUtenforPeriodeInfo.tsx" +++ "b/apps/endringsmelding-pleiepenger/src/app/s\303\270knad/steps/arbeidstid/arbeidsaktivitet-form-part/components/ArbeidsaktivitetUtenforPeriodeInfo.tsx" @@ -20,7 +20,7 @@ const ArbeidsaktivitetUtenforPeriodeInfo: React.FunctionComponent = ({ const intlValues = { førDato: dateFormatter.full(tillattEndringsperiode.from), etterDato: dateFormatter.full(tillattEndringsperiode.to), - skrivTilOssLink: , + skrivTilOssLink: , }; return ( diff --git "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" index f5b337c825..afeb2b4c75 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/types/IngenTilgang\303\205rsak.ts" @@ -4,7 +4,7 @@ export enum IngenTilgangÅrsak { 'søknadsperioderUtenforTillattEndringsperiode' = 'søknadsperioderUtenforTillattEndringsperiode', 'harMerEnnEnSak' = 'harMerEnnEnSak', 'harIngenPerioder' = 'harIngenPerioder', - 'harArbeidsgiverUtenArbeidsaktivitet' = 'harArbeidsgiverUtenArbeidsaktivitet', 'harArbeidstidSomSelvstendigNæringsdrivende' = 'harArbeidstidSomSelvstendigNæringsdrivende', 'enArbeidsgiverToAnsettelserSammeUkeMedOpphold' = 'harAnsettelsesforholdSomSlutterOgStarterInneforSammeUke', + 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver' = 'harFlereAnsettelsesforholdHosUkjentArbeidsgiver', } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 9696ca11e9..85c46f6eb7 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -3,17 +3,29 @@ import { ArbeidsgiverMedAnsettelseperioder, K9SakArbeidstaker, K9SakArbeidstidPe import { tilgangskontroll, tilgangskontrollUtils } from '../tilgangskontroll'; import { vi } from 'vitest'; +const ansettelsesperioder: DateRange[] = [ISODateRangeToDateRange('2022-01-01/2023-03-01')]; + const arbeidsgiver1: ArbeidsgiverMedAnsettelseperioder = { key: 'a_1', + navn: 'a_1', + ansettelsesperioder, organisasjonsnummer: '1', -} as ArbeidsgiverMedAnsettelseperioder; +}; const arbeidsgiver2: ArbeidsgiverMedAnsettelseperioder = { key: 'a_2', + navn: 'a_2', + ansettelsesperioder, organisasjonsnummer: '2', -} as ArbeidsgiverMedAnsettelseperioder; -const arbeidsgiver3: ArbeidsgiverMedAnsettelseperioder = { - key: 'a_3', - organisasjonsnummer: '3', +}; + +const arbeidsgiverFlereAnsettelsesperioder: ArbeidsgiverMedAnsettelseperioder = { + key: 'a_4', + navn: 'a_4', + ansettelsesperioder: [ + ISODateRangeToDateRange('2022-01-01/2023-02-01'), + ISODateRangeToDateRange('2023-02-01/2023-03-01'), + ], + organisasjonsnummer: '4', } as ArbeidsgiverMedAnsettelseperioder; const arbeidstaker1: K9SakArbeidstaker = { organisasjonsnummer: '1' } as K9SakArbeidstaker; @@ -47,32 +59,40 @@ describe('tilgangskontroll', () => { }); }); -describe('harArbeidsgiverUtenArbeidstakerK9Sak', () => { - it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak', () => { - const result = tilgangskontrollUtils.harArbeidsgiverUtenArbeidsaktivitet( - [arbeidsgiver3], +describe('harFlereAnsettelsesforholdHosUkjentArbeidsgiver', () => { + /** TODO - oppdatere */ + it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak og har flere ansettelseperioder', () => { + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( + [arbeidsgiverFlereAnsettelsesperioder], [arbeidstaker1, arbeidstaker2], ); expect(result).toBeTruthy(); }); it('returnerer false hvis alle arbeidsgivere har arbeidsaktivitet i sak', () => { - const result = tilgangskontrollUtils.harArbeidsgiverUtenArbeidsaktivitet( + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( [arbeidsgiver1, arbeidsgiver2], [arbeidstaker1, arbeidstaker2], ); expect(result).toBeFalsy(); }); + it('returnerer true hvis arbeidsgiver ikke har arbeidsaktivitet i sak men har kun én ansettelseperiode', () => { + const result = tilgangskontrollUtils.harFlereAnsettelsesforholdHosUkjentArbeidsgiver( + [arbeidsgiver1], + [arbeidstaker1], + ); + expect(result).toBeFalsy(); + }); }); describe('harSakSøknadsperiodeInnenforTillattEndringsperiode', () => { - const tillatEndringsperiode = ISODateRangeToDateRange('2022-01-02/2022-02-01'); + const tillattEndringsperiode = ISODateRangeToDateRange('2022-01-02/2022-02-01'); const søknadsperiodeUtenfor: DateRange = ISODateRangeToDateRange('2022-01-01/2022-01-01'); const søknadsperiodeInnenfor: DateRange = ISODateRangeToDateRange('2022-01-02/2022-02-01'); it('returnerer true hvis søknadsperioder er innenfor tillatt endringsperiode', () => { const result = tilgangskontrollUtils.harSøknadsperiodeInnenforTillattEndringsperiode( søknadsperiodeInnenfor, - tillatEndringsperiode, + tillattEndringsperiode, ); expect(result).toBeTruthy(); }); @@ -80,7 +100,7 @@ describe('harSakSøknadsperiodeInnenforTillattEndringsperiode', () => { it('returnerer false hvis søknadsperioder er før tillatt endringsperiode', () => { const result = tilgangskontrollUtils.harSøknadsperiodeInnenforTillattEndringsperiode( søknadsperiodeUtenfor, - tillatEndringsperiode, + tillattEndringsperiode, ); expect(result).toBeFalsy(); }); @@ -164,23 +184,23 @@ describe('slutterOgStarterHosArbeidsgiverSammeUke', () => { const uke3FreSøn: DateRange = ISODateRangeToDateRange('2025-01-17/2025-01-19'); it('returnerer false hvis det ikke er noen ansettelsesperiode', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([])).toBeFalsy(); }); it('returnerer false hvis det bare er én ansettelsesperiode', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2])).toBeFalsy(); }); it('returnerer false hvis det to ansettelsesperiode med én uke mellom', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2, uke4])).toBeFalsy(); }); it('returnerer false hvis det to ansettelsesperiode med er sammenhengende', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3TorFre])).toBeFalsy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke3ManOns, uke3TorFre])).toBeFalsy(); }); it('returnerer true hvis to perioder slutter og starter innenfor samme uke men med opphold', () => { - expect(tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke3ManOns, uke3FreSøn])).toBeTruthy(); + expect(tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke3ManOns, uke3FreSøn])).toBeTruthy(); }); it('returnerer true hvis to det er mange perioder usortert og noen slutter og starter innenfor samme uke men med opphold', () => { expect( - tilgangskontrollUtils.slutterOgStarterHosArbeidsgiverSammeUke([uke2, uke4, uke3ManOns, uke3FreSøn]), + tilgangskontrollUtils.perioderSlutterOgStarterSammeUkeMedOpphold([uke2, uke4, uke3ManOns, uke3FreSøn]), ).toBeTruthy(); }); }); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts similarity index 93% rename from apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts rename to apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts index 7f4fb3d1ec..e38a0d8c9f 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/ukjentArbeidsgiverUtils.test.ts @@ -1,5 +1,4 @@ -import { DateRange } from '@navikt/sif-common-formik-ds'; -import { dateToISODate, ISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; +import { DateRange, dateToISODate, ISODate, ISODateRangeToDateRange, ISODateToDate } from '@navikt/sif-common-utils'; import { getSøknadsperioderForUkjentArbeidsforhold } from '../ukjentArbeidsforholdUtils'; describe('ukjentArbeidsforholdUtils', () => { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts index 17bc1d1291..68c819c4fa 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/tilgangskontroll.ts @@ -66,6 +66,11 @@ export const tilgangskontroll = ( ingenTilgangÅrsak.push(IngenTilgangÅrsak.enArbeidsgiverToAnsettelserSammeUkeMedOpphold); } + /** Bruker har flere ansettelsperioder hos ukjent arbeidsgiver */ + if (harFlereAnsettelsesforholdHosUkjentArbeidsgiver(arbeidsgivere, sak.ytelse.arbeidstid.arbeidstakerList)) { + ingenTilgangÅrsak.push(IngenTilgangÅrsak.harFlereAnsettelsesforholdHosUkjentArbeidsgiver); + } + if (ingenTilgangÅrsak.length > 0) { return { kanBrukeSøknad: false, @@ -100,12 +105,16 @@ const getIngenTilgangMeta = (arbeidstid: K9SakArbeidstid): IngenTilgangMeta => { }; }; -const harArbeidsgiverUtenArbeidsaktivitet = ( +const harFlereAnsettelsesforholdHosUkjentArbeidsgiver = ( arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], k9SakArbeidstaker: K9SakArbeidstaker[] = [], ): boolean => { return arbeidsgivere.some((arbeidsgiver) => { - return finnesArbeidsgiverIK9Sak(arbeidsgiver, k9SakArbeidstaker) === false; + const erUkjentArbeidsgiver = finnesArbeidsgiverIK9Sak(arbeidsgiver, k9SakArbeidstaker) === false; + if (!erUkjentArbeidsgiver) { + return false; + } + return arbeidsgiver.ansettelsesperioder.length > 1; }); }; @@ -125,7 +134,7 @@ const harSøknadsperiodeInnenforTillattEndringsperiode = ( const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( sak: K9Sak, - tillatEndringsperiode: DateRange, + tillattEndringsperiode: DateRange, arbeidsgivere: ArbeidsgiverMedAnsettelseperioder[], ): boolean => { const orgnrISak = (sak.ytelse.arbeidstid.arbeidstakerList || []).map((a) => a.organisasjonsnummer); @@ -133,7 +142,7 @@ const harAnsettelsesforholdSomStarterOgSlutterSammeUkeMedOpphold = ( .filter((a) => orgnrISak.includes(a.organisasjonsnummer)) .some((arbeidsgiver) => { const ansettelserInnenforEndringsperiode = arbeidsgiver.ansettelsesperioder.map((d) => - ensureDateRange(d, tillatEndringsperiode), + ensureDateRange(d, tillattEndringsperiode), ); return perioderSlutterOgStarterSammeUkeMedOpphold(ansettelserInnenforEndringsperiode); }); @@ -167,7 +176,7 @@ const perioderSlutterOgStarterSammeUkeMedOpphold = (ansettelsesperioder: DateRan export const tilgangskontrollUtils = { getIngenTilgangMeta, - harArbeidsgiverUtenArbeidsaktivitet, harSøknadsperiodeInnenforTillattEndringsperiode, - slutterOgStarterHosArbeidsgiverSammeUke: perioderSlutterOgStarterSammeUkeMedOpphold, + harFlereAnsettelsesforholdHosUkjentArbeidsgiver, + perioderSlutterOgStarterSammeUkeMedOpphold, }; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index 47256c8b53..cc839b1414 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -43,22 +43,16 @@ export const getSøknadsperioderForUkjentArbeidsforhold = ( export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], - { ansettelsesperioder }: ArbeidsgiverMedAnsettelseperioder, + ansettelsesperiode: DateRange, normalarbeidstidPerUke: Duration, faktiskArbeidstidPerUke: Duration | undefined, ): PeriodeMedArbeidstid[] => { - if (ansettelsesperioder.length === 0) { - return []; - } - /** TODO - håndtere flere ansettelsesperioder */ - const søknadsperioderForArbeidsforhold = - ansettelsesperioder.length === 1 - ? getSøknadsperioderForUkjentArbeidsforhold( - søknadsperioder, - ansettelsesperioder[0].from, - ansettelsesperioder[0].to, - ) - : []; + const søknadsperioderForArbeidsforhold = getSøknadsperioderForUkjentArbeidsforhold( + søknadsperioder, + ansettelsesperiode.from, + ansettelsesperiode.to, + ); + const perioderMedArbeidstid: PeriodeMedArbeidstid[] = []; const arbeidstidPerDag: ArbeidstidPerDag = { @@ -102,6 +96,15 @@ export const getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold = ( } }; +/** + * Henter ut Arbeidsaktiviet for ukjent arbeidsforhold + * @param søknadsperioder Alle perioder som er søkt for + * @param arbeidsgiver Arbeidsgiveren det gjelder som ikke er registrert i sak + * @param arbeidsforhold Arbeidsforhold utledet tidligere - holder om en er ansatt eller ikke, og evt. normalarbeidstid. Hentes på eget steg + * @param endringsperiode tidsrommet som en kan gjøre endringer i + * @param arbeiderIPerioden om bruker sier en arbeider, arbeider delvis eller arbeider ikke i perioden + * @returns Arbeidsaktivitet + */ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], arbeidsgiver: ArbeidsgiverMedAnsettelseperioder, @@ -110,6 +113,10 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( arbeiderIPerioden?: ArbeiderIPeriodenSvar, ): Arbeidsaktivitet => { const faktiskArbeidstid = getFaktiskArbeidstidPerUkeForUkjentArbeidsforhold(arbeidsforhold, arbeiderIPerioden); + if (arbeidsgiver.ansettelsesperioder.length !== 1) { + throw 'Ukjent arbeidsforhold kan kun ha en ansettelsesperiode'; + } + const ansettelsesperiode = ensureDateRange(arbeidsgiver.ansettelsesperioder[0], endringsperiode); const aktivitet: Arbeidsaktivitet = { key: arbeidsgiver.key, @@ -119,12 +126,10 @@ export const getArbeidsaktivitetForUkjentArbeidsforhold = ( navn: arbeidsgiver.navn, harPerioderEtterTillattEndringsperiode: false, harPerioderFørTillattEndringsperiode: false, - ansettelsesperioderInnenforEndringsperiode: arbeidsgiver.ansettelsesperioder.map((periode) => - ensureDateRange(periode, endringsperiode), - ), + ansettelsesperioderInnenforEndringsperiode: [ansettelsesperiode], perioderMedArbeidstid: getPerioderMedArbeidstidForUkjentArbeidsforhold( søknadsperioder, - arbeidsgiver, + ansettelsesperiode, arbeidsforhold.normalarbeidstid.timerPerUke, faktiskArbeidstid, ), diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/ArbeidsgiverIkkeISakFlereAnsettelser.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/ArbeidsgiverIkkeISakFlereAnsettelser.ts new file mode 100644 index 0000000000..acb4dd2797 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/ArbeidsgiverIkkeISakFlereAnsettelser.ts @@ -0,0 +1,10 @@ +import { ScenarioData } from '..'; +import arbeidsgiver from './arbeidsgiver-mock'; +import sak from './sak-mock'; +import søker from './søker-mock'; + +export const ArbeidsgiverIkkeISakFlereAnsettelser: ScenarioData = { + sak, + arbeidsgiver, + søker, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/arbeidsgiver-mock.ts new file mode 100644 index 0000000000..a45b295c82 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/arbeidsgiver-mock.ts @@ -0,0 +1,8 @@ +export default { + organisasjoner: [ + { navn: 'Dykkert svømmeutstyr', organisasjonsnummer: '947064649', ansattFom: '2008-10-01' }, + { navn: 'Vinge flyfly', organisasjonsnummer: '947064640', ansattFom: '2008-10-01' }, + { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-02-05', ansattTom: '2023-04-05' }, + { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-04-06' }, + ], +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/sak-mock.ts new file mode 100644 index 0000000000..5f9c1a3f8f --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/sak-mock.ts @@ -0,0 +1,343 @@ +export default [ + { + barn: { + fødselsdato: '2017-03-03', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'Nordmann', + aktørId: '2559652436225', + identitetsnummer: '03831799748', + }, + søknad: { + søknadId: 'generert', + versjon: '1.0.0.', + mottattDato: '2023-01-18T08:13:37.525Z', + søker: { norskIdentitetsnummer: '00000000000' }, + ytelse: { + type: 'PLEIEPENGER_SYKT_BARN', + barn: { norskIdentitetsnummer: '00000000000', fødselsdato: null }, + søknadsperiode: ['2022-01-01/2024-09-31'], + endringsperiode: [], + trekkKravPerioder: [], + opptjeningAktivitet: {}, + dataBruktTilUtledning: null, + infoFraPunsj: null, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + tilsynsordning: { + perioder: { + '2022-12-01/2023-01-31': { etablertTilsynTimerPerDag: 'PT8H' }, + '2023-02-14/2023-03-16': { etablertTilsynTimerPerDag: 'PT8H' }, + }, + }, + lovbestemtFerie: { + perioder: { + '2023-01-12/2023-01-15': { + skalHaFerie: false, + }, + }, + }, + arbeidstid: { + arbeidstakerList: [ + { + norskIdentitetsnummer: null, + organisasjonsnummer: '947064649', + arbeidstidInfo: { + perioder: { + '2022-01-01/2022-03-25': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-03-28/2022-04-01': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-04-04/2022-04-08': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-04-11/2022-04-15': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-04-18/2022-04-22': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-04-25/2022-04-29': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-05-02/2022-05-06': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-05-09/2022-05-13': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-05-16/2022-05-20': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-05-23/2022-05-27': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-05-30/2022-06-03': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-06-06/2022-06-10': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-06-13/2022-06-17': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-06-20/2022-06-24': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-06-27/2022-06-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-07-01/2022-07-01': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-07-04/2022-07-07': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-07-08/2022-07-08': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-07-11/2022-07-14': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-07-15/2022-07-15': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-07-18/2022-07-21': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-07-22/2022-07-22': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-07-25/2022-07-28': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-07-29/2022-07-29': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-08-01/2022-08-04': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-08-05/2022-08-05': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-08-08/2022-08-11': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-08-12/2022-08-12': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-08-15/2022-08-18': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-08-19/2022-08-19': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-08-22/2022-08-25': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-08-26/2022-08-26': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-08-29/2022-08-31': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-01/2022-09-01': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2022-09-02/2022-09-02': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT4H30M', + }, + '2022-09-05/2022-09-05': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-06/2022-09-06': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT2H30M', + }, + '2022-09-07/2022-09-08': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-09/2022-09-09': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT5H', + }, + '2022-09-12/2022-09-13': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-14/2022-09-14': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT4H', + }, + '2022-09-15/2022-09-15': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT3H30M', + }, + '2022-09-16/2022-09-16': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-09-19/2022-09-22': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-23/2022-09-23': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-09-26/2022-09-29': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2022-09-30/2022-09-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT7H30M', + }, + '2022-10-03/2024-12-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + }, + }, + }, + { + norskIdentitetsnummer: null, + organisasjonsnummer: '947064640', + arbeidstidInfo: { + perioder: { + '2022-09-01/2022-09-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2022-10-03/2022-12-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2023-01-01/2023-01-15': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + '2023-01-16/2023-03-12': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT4H30M', + }, + '2023-03-13/2023-09-31': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT1H30M', + }, + }, + }, + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-06-25/2022-12-31': { + jobberNormaltTimerPerDag: 'PT0S', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2023-01-02/2023-01-06': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2023-01-09/2023-01-13': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2023-01-16/2023-01-20': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-01-23/2023-01-27': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-01-30/2023-02-03': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-02-06/2023-02-10': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-02-13/2023-02-17': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-02-20/2023-02-24': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-02-27/2023-03-03': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-03-06/2023-03-10': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT3H', + }, + '2023-03-13/2023-03-17': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2023-03-20/2023-03-24': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2023-03-27/2023-09-31': { + jobberNormaltTimerPerDag: 'PT3H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + }, + }, + selvstendigNæringsdrivendeArbeidstidInfo: {}, + }, + uttak: { perioder: {} }, + omsorg: { relasjonTilBarnet: null, beskrivelseAvOmsorgsrollen: null }, + }, + språk: 'nb', + journalposter: [], + begrunnelseForInnsending: { tekst: null }, + }, + }, +]; diff --git "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/s\303\270ker-mock.ts" "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/s\303\270ker-mock.ts" new file mode 100644 index 0000000000..2dd3e1c484 --- /dev/null +++ "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak-flere-ansettelser/s\303\270ker-mock.ts" @@ -0,0 +1,8 @@ +export default { + aktørId: '234', + fødselsnummer: '30086421581', + fødselsdato: '2001-02-01', + fornavn: 'NORA', + mellomnavn: null, + etternavn: 'KRONJUVEL', +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts index d1f2d8394d..767079758f 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/arbeidsgiver-ikke-i-sak/arbeidsgiver-mock.ts @@ -2,7 +2,7 @@ export default { organisasjoner: [ { navn: 'Dykkert svømmeutstyr', organisasjonsnummer: '947064649', ansattFom: '2008-10-01' }, { navn: 'Vinge flyfly', organisasjonsnummer: '947064640', ansattFom: '2008-10-01' }, - { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-02-01' }, + { navn: 'IKKE-I-SAK-AS 1', organisasjonsnummer: '947064642', ansattFom: '2023-02-05' }, { navn: 'IKKE-I-SAK-AS 2', organisasjonsnummer: '947064643', ansattFom: '2023-02-01' }, ], }; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts index a0677bebd5..834fc633e5 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/index.ts @@ -1,5 +1,6 @@ import { ScenarioType } from '../../../app/dev/scenarioer'; import { ArbeidsaktivitetUtenArbeidsgiver } from './arbeidsaktivitet-uten-arbeidsgiver/ArbeidsaktivitetUtenArbeidsgiver'; +import { ArbeidsgiverIkkeISakFlereAnsettelser } from './arbeidsgiver-ikke-i-sak-flere-ansettelser/ArbeidsgiverIkkeISakFlereAnsettelser'; import { ArbeidsgiverIkkeISak } from './arbeidsgiver-ikke-i-sak/ArbeidsgiverIkkeISak'; import { ArbeidsgiverOgFrilanser } from './arbeidsgiver-og-frilanser/ArbeidsgiverOgFrilanser'; import { ArbeidsgivereOgFrilanser } from './arbeidsgivere-og-frilanser/ArbeidsgivereOgFrilanser'; @@ -13,9 +14,7 @@ import { IngenSak } from './ingen-sak/IngenSak'; import { SelvstendigNæringsdrivende } from './selvstendig-næringsdrivende/SelvstendigNæringsdrivende'; import { UgyldigK9Format } from './ugyldig-k9-format/UgyldigK9Format'; -type ScenarioMap = { - [key: string]: ScenarioData; -}; +type ScenarioMap = Record; export const mockData: ScenarioMap = { ['en-arbeidsgiver-en-periode']: EnArbeidsgiverEnPeriode, @@ -27,6 +26,7 @@ export const mockData: ScenarioMap = { ['ingen-sak']: IngenSak, ['debug']: Debug, ['arbeidsgiver-ikke-i-sak']: ArbeidsgiverIkkeISak, + ['arbeidsgiver-ikke-i-sak-flere-ansettelser']: ArbeidsgiverIkkeISakFlereAnsettelser, ['arbeidsaktivitet-uten-arbeidsgiver']: ArbeidsaktivitetUtenArbeidsgiver, ['ugyldig-k9-format']: UgyldigK9Format, ['en-arbeidsgiver-to-ansettelser-samme-uke-med-opphold']: EnArbeidsgiverToAnsettelserSammeUkeMedOpphold, From 34438a826e5555e249501ed70c90009e9d949a75 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 23 Jan 2025 11:57:29 +0100 Subject: [PATCH 24/31] =?UTF-8?q?Beholde=20s=C3=B8ndag=20trimArbeidsukePer?= =?UTF-8?q?iodeTilDagerS=C3=B8ktFor=20for=20uker=20midt=20i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/utils/getSakFromK9Sak.ts | 46 +++++++++---------- .../arbeidsgiver-mock.ts | 4 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index 7dbd8156b7..1a67205da9 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -296,16 +296,17 @@ const getDagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: Da /** * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke - * @param periode DateRange for uken + * @param uke DateRange for uken * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid * @returns Arbeidsuke */ export const getArbeidsukeFromEnkeltdagerIUken = ( - periode: DateRange, + uke: DateRange, arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap, ansettelsesperioder?: DateRange[], ): Arbeidsuke => { - const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(periode, arbeidstidEnkeltdager); + /** Forsikre seg om at ingen enkeltdager er utenfor uken */ + const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(uke, arbeidstidEnkeltdager); const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); const antallDagerMedArbeidstid = dagerSøktFor.length; const faktisk = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); @@ -314,11 +315,11 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( const faktiskSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(faktisk)); const arbeidsuke: Arbeidsuke = { - isoDateRange: dateRangeToISODateRange(periode), - periode: periode, + isoDateRange: dateRangeToISODateRange(uke), + periode: uke, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, dagerSøktFor: dagerSøktFor.map(ISODateToDate), - dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(periode, ansettelsesperioder), + dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(uke, ansettelsesperioder), antallDagerMedArbeidstid: dagerSøktFor.length, faktisk: { uke: faktiskSummertHeleUken, @@ -332,28 +333,26 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( return arbeidsuke; }; -const setArbeidsukeStartdatoTilFørsteDagSøktFor = (arbeidsuke: Arbeidsuke): Arbeidsuke => { - const dagerSøktFor = getDagerFraEnkeltdagMap(arbeidsuke.arbeidstidEnkeltdager); - const periode: DateRange = { ...arbeidsuke.periode, from: ISODateToDate(dagerSøktFor[0]) }; - return { - ...arbeidsuke, - periode, - isoDateRange: dateRangeToISODateRange(periode), - }; -}; - -const setArbeidsukeSluttdatoTilSisteDagSøktFor = (arbeidsuke: Arbeidsuke): Arbeidsuke => { +/** Fjerner dager det ikke er søkt for i en arbeidsuke. Men inkluderer lørdag og søndag */ +const trimArbeidsukePeriodeTilDagerSøktForEllerHelUke = ( + arbeidsuke: Arbeidsuke, + erSisteUkeIPeriode: boolean, +): Arbeidsuke => { const dagerSøktFor = getDagerFraEnkeltdagMap(arbeidsuke.arbeidstidEnkeltdager); const periode: DateRange = { - ...arbeidsuke.periode, + from: ISODateToDate(dagerSøktFor[0]), to: ISODateToDate(dagerSøktFor[dagerSøktFor.length - 1]), }; + if (!erSisteUkeIPeriode && dayjs(periode.to).isoWeekday() === 5) { + periode.to = dayjs(periode.to).endOf('isoWeek').toDate(); + } return { ...arbeidsuke, periode, isoDateRange: dateRangeToISODateRange(periode), }; }; + /** * Grupperer arbeidsdager inn i uker * Hver uke er hele uker, inklusiv helg, med unntak av første og siste uke som @@ -398,11 +397,12 @@ const getArbeidsukerFromEnkeltdager = ( }); /** Juster start og sluttdato til første og siste dag søkt for (dag med arbeidstid) */ - if (arbeidsuker.length > 0) { - arbeidsuker[0] = setArbeidsukeStartdatoTilFørsteDagSøktFor(arbeidsuker[0]); - arbeidsuker[arbeidsuker.length - 1] = setArbeidsukeSluttdatoTilSisteDagSøktFor( - arbeidsuker[arbeidsuker.length - 1], - ); + const antallUker = arbeidsuker.length; + if (antallUker > 0) { + arbeidsuker.forEach((arbeidsuke, index) => { + const erSisteUke = index === antallUker - 1; + arbeidsuker[index] = trimArbeidsukePeriodeTilDagerSøktForEllerHelUke(arbeidsuke, erSisteUke); + }); } return arbeidsuker; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts index 0406ca9316..049ad63a0c 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/en-arbeidsgiver-to-ansettelser-samme-uke-uten-opphold/arbeidsgiver-mock.ts @@ -4,12 +4,12 @@ export default { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', ansattFom: '2003-01-16', - ansattTom: '2022-01-11', + ansattTom: '2022-12-05', }, { organisasjonsnummer: '947064649', navn: 'Norsk bedrift AS', - ansattFom: '2022-01-12', + ansattFom: '2023-01-01', ansattTom: null, }, ], From c82f499a3e4270de4443b673e67f0fcb0a31e8d8 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 23 Jan 2025 14:53:47 +0100 Subject: [PATCH 25/31] Fjerne tomme uker for ukjent arbeidsforhold --- .../tests/utfylling/ny-arbeidsgiver.spec.ts | 3 ++- .../src/app/utils/ukjentArbeidsforholdUtils.ts | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/e2e/playwright/tests/utfylling/ny-arbeidsgiver.spec.ts b/apps/endringsmelding-pleiepenger/e2e/playwright/tests/utfylling/ny-arbeidsgiver.spec.ts index 616dbe610f..2f677d5fcd 100644 --- a/apps/endringsmelding-pleiepenger/e2e/playwright/tests/utfylling/ny-arbeidsgiver.spec.ts +++ b/apps/endringsmelding-pleiepenger/e2e/playwright/tests/utfylling/ny-arbeidsgiver.spec.ts @@ -40,7 +40,8 @@ test('test', async ({ page }) => { await page.getByTestId('timer-verdi').click(); await page.getByTestId('timer-verdi').fill('5'); await page.getByRole('button', { name: 'Ok' }).click(); - await page.getByLabel('Endre uke 5 (01.02.2023 - 05.').click(); + await page.getByLabel('Endre uke 6 (06.02').first().click(); + await page.getByTestId('toggle-timer').click(); await page.getByTestId('timer-verdi').click(); await page.getByTestId('timer-verdi').fill('5'); await page.getByRole('button', { name: 'Ok' }).click(); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index cc839b1414..278559dc87 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -67,11 +67,13 @@ export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( getDatesInDateRange(uke, true).forEach((date) => { enkeldagerMap[dateToISODate(date)] = arbeidstidPerDag; }); - arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken( - uke, - enkeldagerMap, - [getTillattEndringsperiode(getEndringsdato())], // TODO - fikses når andre todos i denne er tatt - ); + if (Object.keys(enkeldagerMap).length > 0) { + arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken( + uke, + enkeldagerMap, + [getTillattEndringsperiode(getEndringsdato())], // TODO - fikses når andre todos i denne er tatt + ); + } }); perioderMedArbeidstid.push({ arbeidsuker, From e7ef8a49955ab0f60a89f403668ae8ac9aeeef6e Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Thu, 23 Jan 2025 21:30:38 +0100 Subject: [PATCH 26/31] =?UTF-8?q?Sette=20p=C3=A5=20param=20for=20=C3=A5=20?= =?UTF-8?q?hente=20alle=20ansettelser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/api/endpoints/arbeidsgivereEndpoint.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts index b1364cbf9c..2b3cb39dbb 100644 --- a/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts +++ b/apps/endringsmelding-pleiepenger/src/app/api/endpoints/arbeidsgivereEndpoint.ts @@ -21,7 +21,7 @@ export const arbeidsgivereEndpoint = { const { from, to } = periode; const { data } = await api.psb.get( ApiEndpointPsb.arbeidsgiver, - `ytelse=endringsmelding-pleiepenger&fra_og_med=${dateToISODate(from)}&til_og_med=${dateToISODate(to)}&inkluder_ansettelsesperioder=true`, + `ytelse=endringsmelding-pleiepenger&fra_og_med=${dateToISODate(from)}&til_og_med=${dateToISODate(to)}&inkluderAlleAnsettelsesperioder=true`, ); return Promise.resolve(getArbeidsgivereFromArbeidsgiverOrganisasjoner(data.organisasjoner || [])); } catch (error) { From 70dbdcfac19a8c37e691b4fa6d9c753e83bdd616 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 24 Jan 2025 09:04:14 +0100 Subject: [PATCH 27/31] debug-scenario --- .../data/scenario/debug/arbeidsgiver-mock.ts | 9 +- .../src/mocks/data/scenario/debug/sak-mock.ts | 46 +++++--- .../data/scenario/debug/s\303\270ker-mock.ts" | 11 +- .../IkkeAnsattMandagMidt.ts | 10 ++ .../arbeidsgiver-mock.ts | 9 ++ .../ikke-ansatt-mandag-midt-i/sak-mock.ts | 104 ++++++++++++++++++ .../s\303\270ker-mock.ts" | 8 ++ 7 files changed, 172 insertions(+), 25 deletions(-) create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/IkkeAnsattMandagMidt.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/arbeidsgiver-mock.ts create mode 100644 apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/sak-mock.ts create mode 100644 "apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/s\303\270ker-mock.ts" diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts index a5c1abb86b..fa57994070 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts @@ -1,5 +1,8 @@ export default { - organisasjoner: [], - privateArbeidsgivere: null, - frilansoppdrag: null, + frilansoppdrag: [], + organisasjoner: [ + { ansattFom: '2005-01-09', ansattTom: '2024-11-30', navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + { ansattFom: '2024-12-03', ansattTom: null, navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + ], + privateArbeidsgivere: [], }; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/sak-mock.ts index b341db01ac..23b0466153 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/sak-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/sak-mock.ts @@ -1,28 +1,28 @@ export default [ { barn: { - fødselsdato: '2008-07-27', - fornavn: 'RAVGUL', + fødselsdato: '2023-01-24', + fornavn: 'GEOMETRISK', mellomnavn: null, - etternavn: 'LØVETANN', - aktørId: '2175638020356', - identitetsnummer: '27870899799', + etternavn: 'RIST', + aktørId: '2487158514882', + identitetsnummer: '24412358038', }, søknad: { søknadId: 'generert', versjon: '1.0.0', - mottattDato: '2024-12-10T08:47:11.929Z', + mottattDato: '2025-01-24T07:51:23.794Z', søker: { norskIdentitetsnummer: '00000000000', }, - språk: null, + språk: 'nb', ytelse: { type: 'PLEIEPENGER_SYKT_BARN', barn: { norskIdentitetsnummer: '00000000000', fødselsdato: null, }, - søknadsperiode: ['2024-12-03/2024-12-05'], + søknadsperiode: ['2024-11-01/2025-02-28'], endringsperiode: [], trekkKravPerioder: [], opptjeningAktivitet: {}, @@ -47,23 +47,37 @@ export default [ }, tilsynsordning: { perioder: { - '2024-12-03/2024-12-05': { + '2024-11-01/2025-02-28': { etablertTilsynTimerPerDag: 'PT0S', }, }, }, lovbestemtFerie: { - perioder: { - '2024-12-04/2024-12-05': { - skalHaFerie: false, - }, - }, + perioder: {}, }, arbeidstid: { - arbeidstakerList: [], + arbeidstakerList: [ + { + norskIdentitetsnummer: null, + organisasjonsnummer: '896929119', + organisasjonsnavn: null, + arbeidstidInfo: { + perioder: { + '2024-11-01/2024-11-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2024-12-01/2025-02-28': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + }, + }, + }, + ], frilanserArbeidstidInfo: { perioder: { - '2024-12-03/2024-12-05': { + '2024-11-01/2025-02-28': { jobberNormaltTimerPerDag: 'PT0S', faktiskArbeidTimerPerDag: 'PT0S', }, diff --git "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/s\303\270ker-mock.ts" "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/s\303\270ker-mock.ts" index b80d44748e..0921da2df9 100644 --- "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/s\303\270ker-mock.ts" +++ "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/s\303\270ker-mock.ts" @@ -1,9 +1,8 @@ export default { - aktørId: '2486083225079', - fødselsdato: '1987-10-09', - fødselsnummer: '09908799647', - fornavn: 'NORA', + aktørId: '2912771641580', + etternavn: 'FJORD', + fornavn: 'TØFF', + fødselsdato: '1983-05-26', + fødselsnummer: '26458341337', mellomnavn: null, - etternavn: 'Etternavn', - myndig: true, }; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/IkkeAnsattMandagMidt.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/IkkeAnsattMandagMidt.ts new file mode 100644 index 0000000000..01172f41fa --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/IkkeAnsattMandagMidt.ts @@ -0,0 +1,10 @@ +import { ScenarioData } from '../../'; +import arbeidsgiver from './arbeidsgiver-mock'; +import sak from './sak-mock'; +import søker from './søker-mock'; + +export const IkkeAnsattMandagMidtI: ScenarioData = { + sak, + arbeidsgiver, + søker, +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/arbeidsgiver-mock.ts new file mode 100644 index 0000000000..ec99dc2658 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/arbeidsgiver-mock.ts @@ -0,0 +1,9 @@ +/** Første periode viser tom søndag 3.11, selv om en slutter før 1.11 */ +export default { + frilansoppdrag: [], + organisasjoner: [ + { ansattFom: '2005-01-09', ansattTom: '2024-11-01', navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + { ansattFom: '2024-12-05', ansattTom: null, navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + ], + privateArbeidsgivere: [], +}; diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/sak-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/sak-mock.ts new file mode 100644 index 0000000000..23b0466153 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/sak-mock.ts @@ -0,0 +1,104 @@ +export default [ + { + barn: { + fødselsdato: '2023-01-24', + fornavn: 'GEOMETRISK', + mellomnavn: null, + etternavn: 'RIST', + aktørId: '2487158514882', + identitetsnummer: '24412358038', + }, + søknad: { + søknadId: 'generert', + versjon: '1.0.0', + mottattDato: '2025-01-24T07:51:23.794Z', + søker: { + norskIdentitetsnummer: '00000000000', + }, + språk: 'nb', + ytelse: { + type: 'PLEIEPENGER_SYKT_BARN', + barn: { + norskIdentitetsnummer: '00000000000', + fødselsdato: null, + }, + søknadsperiode: ['2024-11-01/2025-02-28'], + endringsperiode: [], + trekkKravPerioder: [], + opptjeningAktivitet: {}, + dataBruktTilUtledning: null, + annetDataBruktTilUtledning: null, + infoFraPunsj: null, + bosteder: { + perioder: {}, + perioderSomSkalSlettes: {}, + }, + utenlandsopphold: { + perioder: {}, + perioderSomSkalSlettes: {}, + }, + beredskap: { + perioder: {}, + perioderSomSkalSlettes: {}, + }, + nattevåk: { + perioder: {}, + perioderSomSkalSlettes: {}, + }, + tilsynsordning: { + perioder: { + '2024-11-01/2025-02-28': { + etablertTilsynTimerPerDag: 'PT0S', + }, + }, + }, + lovbestemtFerie: { + perioder: {}, + }, + arbeidstid: { + arbeidstakerList: [ + { + norskIdentitetsnummer: null, + organisasjonsnummer: '896929119', + organisasjonsnavn: null, + arbeidstidInfo: { + perioder: { + '2024-11-01/2024-11-30': { + jobberNormaltTimerPerDag: 'PT7H30M', + faktiskArbeidTimerPerDag: 'PT0S', + }, + '2024-12-01/2025-02-28': { + jobberNormaltTimerPerDag: 'PT8H', + faktiskArbeidTimerPerDag: 'PT0S', + }, + }, + }, + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2024-11-01/2025-02-28': { + jobberNormaltTimerPerDag: 'PT0S', + faktiskArbeidTimerPerDag: 'PT0S', + }, + }, + }, + selvstendigNæringsdrivendeArbeidstidInfo: null, + }, + uttak: { + perioder: {}, + }, + omsorg: { + relasjonTilBarnet: null, + beskrivelseAvOmsorgsrollen: null, + }, + erSammenMedBarnet: null, + }, + journalposter: [], + begrunnelseForInnsending: { + tekst: null, + }, + kildesystem: null, + }, + }, +]; diff --git "a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/s\303\270ker-mock.ts" "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/s\303\270ker-mock.ts" new file mode 100644 index 0000000000..0921da2df9 --- /dev/null +++ "b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/opphold/ikke-ansatt-mandag-midt-i/s\303\270ker-mock.ts" @@ -0,0 +1,8 @@ +export default { + aktørId: '2912771641580', + etternavn: 'FJORD', + fornavn: 'TØFF', + fødselsdato: '1983-05-26', + fødselsnummer: '26458341337', + mellomnavn: null, +}; From 5e2cf8e427457ea08ce80f01749ac14b89ae7d23 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 24 Jan 2025 09:56:35 +0100 Subject: [PATCH 28/31] Bugfix - korte ned uker til dager en er ansatt --- .../utils/__tests__/getSakFromK9Sak.test.ts | 18 +++++--- .../src/app/utils/getSakFromK9Sak.ts | 45 ++++++++++++++----- .../data/scenario/debug/arbeidsgiver-mock.ts | 4 +- 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 8f412940a9..792a45e0b1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -193,6 +193,9 @@ describe('getSakFromK9Sak', () => { }); describe('getArbeidsukerFromEnkeltdager', () => { + const ansettelsesperioder: DateRange[] = [ + { from: ISODateToDate('2022-01-01'), to: ISODateToDate('2023-01-31') }, + ]; const arbeidstid: FaktiskOgNormalArbeidstid = { faktisk: faktiskArbeidTimerPerDag, normalt: jobberNormaltTimerPerDag, @@ -218,21 +221,21 @@ describe('getSakFromK9Sak', () => { }; it('returnerer riktig for én enkeltdag', () => { - const result = getArbeidsukerFromEnkeltdager(enkeltdag); + const result = getArbeidsukerFromEnkeltdager(enkeltdag, ansettelsesperioder); expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-03'); expect(uke.antallDagerMedArbeidstid).toEqual(1); }); it('returnerer riktig for dager som går over én hel uke', () => { - const result = getArbeidsukerFromEnkeltdager(helUke); + const result = getArbeidsukerFromEnkeltdager(helUke, ansettelsesperioder); expect(result.length).toEqual(1); const uke = result[0]; expect(dateRangeToISODateRange(uke.periode)).toEqual('2022-01-03/2022-01-07'); expect(uke.antallDagerMedArbeidstid).toEqual(5); }); it('returnerer riktig for dager som går mer enn én uker', () => { - const result = getArbeidsukerFromEnkeltdager(flereUker); + const result = getArbeidsukerFromEnkeltdager(flereUker, ansettelsesperioder); expect(result.length).toEqual(2); const uke1 = result[0]; const uke2 = result[1]; @@ -244,6 +247,9 @@ describe('getSakFromK9Sak', () => { }); describe('getArbeidsukeFromEnkeltdagerIUken', () => { + const ansettelsesperioder: DateRange[] = [ + { from: ISODateToDate('2022-01-01'), to: ISODateToDate('2023-01-31') }, + ]; const periodeEnDag: DateRange = ISODateRangeToDateRange('2022-01-03/2022-01-03'); const periodeHelUke: DateRange = ISODateRangeToDateRange('2022-01-03/2022-01-07'); @@ -263,7 +269,7 @@ describe('getSakFromK9Sak', () => { }; it('returnerer riktig for én enkeltdag', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag, ansettelsesperioder); expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); @@ -272,7 +278,7 @@ describe('getSakFromK9Sak', () => { }); it('fjerner dager som ikke er innenfor uken', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke, ansettelsesperioder); expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); @@ -281,7 +287,7 @@ describe('getSakFromK9Sak', () => { }); it('returnerer riktig for én uke', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke, ansettelsesperioder); expect(uke.antallDagerMedArbeidstid).toEqual(5); expect(uke.isoDateRange).toEqual(dateRangeToISODateRange(periodeHelUke)); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index 1a67205da9..aa930f5ace 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -296,17 +296,17 @@ const getDagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: Da /** * Mapper periode og enkeltdager med arbeid om til Arbeidsuke. Summerer tid per dag om til timer per uke - * @param uke DateRange for uken + * @param ansattUke DateRange for uken, justert ned til perioden en er ansatt * @param arbeidstidEnkeltdagerIUken Enkeltdager med arbeidstid * @returns Arbeidsuke */ export const getArbeidsukeFromEnkeltdagerIUken = ( - uke: DateRange, + ansattUke: DateRange, arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap, - ansettelsesperioder?: DateRange[], + ansettelsesperioder: DateRange[], ): Arbeidsuke => { /** Forsikre seg om at ingen enkeltdager er utenfor uken */ - const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(uke, arbeidstidEnkeltdager); + const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(ansattUke, arbeidstidEnkeltdager); const dagerSøktFor = Object.keys(arbeidstidEnkeltdagerIUken); const antallDagerMedArbeidstid = dagerSøktFor.length; const faktisk = dagerSøktFor.map((key) => arbeidstidEnkeltdagerIUken[key].faktisk); @@ -315,11 +315,11 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( const faktiskSummertHeleUken = numberDurationAsDuration(durationUtils.summarizeDurations(faktisk)); const arbeidsuke: Arbeidsuke = { - isoDateRange: dateRangeToISODateRange(uke), - periode: uke, + isoDateRange: dateRangeToISODateRange(ansattUke), + periode: ansattUke, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, dagerSøktFor: dagerSøktFor.map(ISODateToDate), - dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(uke, ansettelsesperioder), + dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(ansattUke, ansettelsesperioder), antallDagerMedArbeidstid: dagerSøktFor.length, faktisk: { uke: faktiskSummertHeleUken, @@ -337,6 +337,7 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( const trimArbeidsukePeriodeTilDagerSøktForEllerHelUke = ( arbeidsuke: Arbeidsuke, erSisteUkeIPeriode: boolean, + ansettelsesperioder: DateRange[], ): Arbeidsuke => { const dagerSøktFor = getDagerFraEnkeltdagMap(arbeidsuke.arbeidstidEnkeltdager); const periode: DateRange = { @@ -344,7 +345,15 @@ const trimArbeidsukePeriodeTilDagerSøktForEllerHelUke = ( to: ISODateToDate(dagerSøktFor[dagerSøktFor.length - 1]), }; if (!erSisteUkeIPeriode && dayjs(periode.to).isoWeekday() === 5) { - periode.to = dayjs(periode.to).endOf('isoWeek').toDate(); + const søndag = dayjs(periode.to).add(2, 'day').toDate(); + const lørdag = dayjs(periode.to).add(1, 'day').toDate(); + if (isDateInDateRanges(søndag, ansettelsesperioder)) { + // Kontroller om en er ansatt søndag + periode.to = søndag; + } else if (isDateInDateRanges(lørdag, ansettelsesperioder)) { + // Kontroller om en er ansatt lørdag + periode.to = lørdag; + } } return { ...arbeidsuke, @@ -363,7 +372,7 @@ const trimArbeidsukePeriodeTilDagerSøktForEllerHelUke = ( */ const getArbeidsukerFromEnkeltdager = ( enkeltdager: ArbeidstidEnkeltdagMap, - ansettelsesperioder?: DateRange[], + ansettelsesperioder: DateRange[], ): Arbeidsuke[] => { const ukerMap: { [key: string]: { @@ -377,7 +386,17 @@ const getArbeidsukerFromEnkeltdager = ( const { faktisk, normalt } = enkeltdager[isoDate]; /** Midlertidig nøkkel som tar hele uken */ - const isoDateRange = dateRangeToISODateRange(getIsoWeekDateRangeForDate(date)); + const uke = getIsoWeekDateRangeForDate(date); + /** Litt tungvindt måte å fjerne dager på, men virker frem til hele løsningen tar bedre høyde for ansettelsesperioder */ + const dagerAnsattIUken = getDatesInDateRange(uke).filter((d) => isDateInDateRanges(d, ansettelsesperioder)); + if (dagerAnsattIUken.length === 0) { + throw new Error('Dag utenfor ansettelsesperiode'); + } + const ansattUke: DateRange = { + from: dagerAnsattIUken[0], + to: dagerAnsattIUken[dagerAnsattIUken.length - 1], + }; + const isoDateRange = dateRangeToISODateRange(ansattUke); if (ukerMap[isoDateRange] === undefined) { ukerMap[isoDateRange] = { dagerMap: {}, @@ -401,7 +420,11 @@ const getArbeidsukerFromEnkeltdager = ( if (antallUker > 0) { arbeidsuker.forEach((arbeidsuke, index) => { const erSisteUke = index === antallUker - 1; - arbeidsuker[index] = trimArbeidsukePeriodeTilDagerSøktForEllerHelUke(arbeidsuke, erSisteUke); + arbeidsuker[index] = trimArbeidsukePeriodeTilDagerSøktForEllerHelUke( + arbeidsuke, + erSisteUke, + ansettelsesperioder, + ); }); } diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts index fa57994070..f1f6838bf5 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/scenario/debug/arbeidsgiver-mock.ts @@ -1,8 +1,8 @@ export default { frilansoppdrag: [], organisasjoner: [ - { ansattFom: '2005-01-09', ansattTom: '2024-11-30', navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, - { ansattFom: '2024-12-03', ansattTom: null, navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + { ansattFom: '2005-01-09', ansattTom: '2024-11-01', navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, + { ansattFom: '2024-12-12', ansattTom: null, navn: 'SAUEFABRIKK', organisasjonsnummer: '896929119' }, ], privateArbeidsgivere: [], }; From 8b8fe8ee05a8dd6adbfd3e112aade0d89b7893ca Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 24 Jan 2025 10:09:11 +0100 Subject: [PATCH 29/31] Fjerne ubrukt dagerIkkeAnsatt --- .../src/app/types/Sak.ts | 1 - .../utils/__tests__/getSakFromK9Sak.test.ts | 9 +++---- .../src/app/utils/getSakFromK9Sak.ts | 5 ++-- .../app/utils/ukjentArbeidsforholdUtils.ts | 7 +----- .../src/mocks/data/app/arbeidsukerMockData.ts | 1 - .../src/storybook/data/sakMock.ts | 24 ------------------- 6 files changed, 6 insertions(+), 41 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts index bc6beb1a64..a46f6d7073 100644 --- a/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/types/Sak.ts @@ -63,7 +63,6 @@ export interface Arbeidsuke { normalt: ArbeidsukeTimer; antallDagerMedArbeidstid: number; dagerSøktFor: Date[]; - dagerIkkeAnsatt: Date[]; } export type ArbeidsukeMap = ISODateRangeMap; diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 792a45e0b1..c1b771f634 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -247,9 +247,6 @@ describe('getSakFromK9Sak', () => { }); describe('getArbeidsukeFromEnkeltdagerIUken', () => { - const ansettelsesperioder: DateRange[] = [ - { from: ISODateToDate('2022-01-01'), to: ISODateToDate('2023-01-31') }, - ]; const periodeEnDag: DateRange = ISODateRangeToDateRange('2022-01-03/2022-01-03'); const periodeHelUke: DateRange = ISODateRangeToDateRange('2022-01-03/2022-01-07'); @@ -269,7 +266,7 @@ describe('getSakFromK9Sak', () => { }; it('returnerer riktig for én enkeltdag', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag, ansettelsesperioder); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, enkeltdag); expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); @@ -278,7 +275,7 @@ describe('getSakFromK9Sak', () => { }); it('fjerner dager som ikke er innenfor uken', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke, ansettelsesperioder); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeEnDag, helUke); expect(uke.antallDagerMedArbeidstid).toEqual(1); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); expect(durationToISODuration(uke.faktisk!.uke)).toEqual(durationToISODuration(arbeidstid.faktisk)); @@ -287,7 +284,7 @@ describe('getSakFromK9Sak', () => { }); it('returnerer riktig for én uke', () => { - const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke, ansettelsesperioder); + const uke = getArbeidsukeFromEnkeltdagerIUken(periodeHelUke, helUke); expect(uke.antallDagerMedArbeidstid).toEqual(5); expect(uke.isoDateRange).toEqual(dateRangeToISODateRange(periodeHelUke)); expect(durationToISODuration(uke.faktisk!.dag)).toEqual(durationToISODuration(arbeidstid.faktisk)); diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts index aa930f5ace..7ea66bbf6e 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/getSakFromK9Sak.ts @@ -303,7 +303,6 @@ const getDagerIkkeAnsattIPeriode = (periode: DateRange, ansettelsesperioder?: Da export const getArbeidsukeFromEnkeltdagerIUken = ( ansattUke: DateRange, arbeidstidEnkeltdager: ArbeidstidEnkeltdagMap, - ansettelsesperioder: DateRange[], ): Arbeidsuke => { /** Forsikre seg om at ingen enkeltdager er utenfor uken */ const arbeidstidEnkeltdagerIUken = fjernArbeidstidEnkeltdagerUtenforPeriode(ansattUke, arbeidstidEnkeltdager); @@ -319,7 +318,6 @@ export const getArbeidsukeFromEnkeltdagerIUken = ( periode: ansattUke, arbeidstidEnkeltdager: arbeidstidEnkeltdagerIUken, dagerSøktFor: dagerSøktFor.map(ISODateToDate), - dagerIkkeAnsatt: getDagerIkkeAnsattIPeriode(ansattUke, ansettelsesperioder), antallDagerMedArbeidstid: dagerSøktFor.length, faktisk: { uke: faktiskSummertHeleUken, @@ -412,7 +410,7 @@ const getArbeidsukerFromEnkeltdager = ( const arbeidsuker = Object.keys(ukerMap).map((isoDateRange) => { const uke = ISODateRangeToDateRange(isoDateRange); const dager = ukerMap[isoDateRange].dagerMap; - return getArbeidsukeFromEnkeltdagerIUken(uke, dager, ansettelsesperioder); + return getArbeidsukeFromEnkeltdagerIUken(uke, dager); }); /** Juster start og sluttdato til første og siste dag søkt for (dag med arbeidstid) */ @@ -711,6 +709,7 @@ export const _getSakFromK9Sak = { getArbeidsukeFromEnkeltdagerIUken, grupperArbeidstidPerioder, trimArbeidstidTilTillattEndringsperiode, + getDagerIkkeAnsattIPeriode, }; const getArbeidsdagerInneforEndringsperiodeOgAnsettelsesperioder = ( diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts index 278559dc87..c34c7c5399 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/ukjentArbeidsforholdUtils.ts @@ -25,7 +25,6 @@ import { ArbeidsaktivitetFormValuesMap } from '../søknad/steps/arbeidstid/Arbei // import { getArbeidsukeFromEnkeltdagerIUken } from './arbeidsukeUtils'; import { beregnSnittTimerPerDag } from './beregnUtils'; import { getArbeidsukeFromEnkeltdagerIUken } from './getSakFromK9Sak'; -import { getEndringsdato, getTillattEndringsperiode } from './endringsperiode'; export const getSøknadsperioderForUkjentArbeidsforhold = ( søknadsperioder: DateRange[], @@ -68,11 +67,7 @@ export const getPerioderMedArbeidstidForUkjentArbeidsforhold = ( enkeldagerMap[dateToISODate(date)] = arbeidstidPerDag; }); if (Object.keys(enkeldagerMap).length > 0) { - arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken( - uke, - enkeldagerMap, - [getTillattEndringsperiode(getEndringsdato())], // TODO - fikses når andre todos i denne er tatt - ); + arbeidsuker[dateRangeToISODateRange(uke)] = getArbeidsukeFromEnkeltdagerIUken(uke, enkeldagerMap); } }); perioderMedArbeidstid.push({ diff --git a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts index 7bd992fdfe..2891baf704 100644 --- a/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts +++ b/apps/endringsmelding-pleiepenger/src/mocks/data/app/arbeidsukerMockData.ts @@ -34,7 +34,6 @@ const getMockArbeidsuke = ( isoDateRange, periode, arbeidstidEnkeltdager, - dagerIkkeAnsatt: [], dagerSøktFor: dagerSøktFor.map(ISODateToDate), normalt: { uke: decimalDurationToDuration(durationToDecimalDuration(normaltPerDag) * antallDagerMedArbeidstid), diff --git a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts index c90f3d7db8..f781c87b5f 100644 --- a/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts +++ b/apps/endringsmelding-pleiepenger/src/storybook/data/sakMock.ts @@ -68,7 +68,6 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-02-26': { @@ -146,7 +145,6 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-03-25': { @@ -228,7 +226,6 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-01': { @@ -310,7 +307,6 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { @@ -392,7 +388,6 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-15': { @@ -474,7 +469,6 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-22': { @@ -556,7 +550,6 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-29': { @@ -638,7 +631,6 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-06': { @@ -720,7 +712,6 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-13': { @@ -802,7 +793,6 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-20': { @@ -884,7 +874,6 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-27': { @@ -985,7 +974,6 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { @@ -1079,7 +1067,6 @@ export const sakMock: Sak = { from: new Date('2024-02-26T00:00:00.000Z'), to: new Date('2024-02-29T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-02-26': { @@ -1157,7 +1144,6 @@ export const sakMock: Sak = { from: new Date('2024-03-25T00:00:00.000Z'), to: new Date('2024-03-31T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-03-25': { @@ -1239,7 +1225,6 @@ export const sakMock: Sak = { from: new Date('2024-04-01T00:00:00.000Z'), to: new Date('2024-04-07T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-01': { @@ -1321,7 +1306,6 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-14T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { @@ -1403,7 +1387,6 @@ export const sakMock: Sak = { from: new Date('2024-04-15T00:00:00.000Z'), to: new Date('2024-04-21T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-15': { @@ -1485,7 +1468,6 @@ export const sakMock: Sak = { from: new Date('2024-04-22T00:00:00.000Z'), to: new Date('2024-04-28T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-22': { @@ -1567,7 +1549,6 @@ export const sakMock: Sak = { from: new Date('2024-04-29T00:00:00.000Z'), to: new Date('2024-05-05T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-29': { @@ -1649,7 +1630,6 @@ export const sakMock: Sak = { from: new Date('2024-05-06T00:00:00.000Z'), to: new Date('2024-05-12T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-06': { @@ -1731,7 +1711,6 @@ export const sakMock: Sak = { from: new Date('2024-05-13T00:00:00.000Z'), to: new Date('2024-05-19T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-13': { @@ -1813,7 +1792,6 @@ export const sakMock: Sak = { from: new Date('2024-05-20T00:00:00.000Z'), to: new Date('2024-05-26T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-20': { @@ -1895,7 +1873,6 @@ export const sakMock: Sak = { from: new Date('2024-05-27T00:00:00.000Z'), to: new Date('2024-05-31T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-05-27': { @@ -1995,7 +1972,6 @@ export const sakMock: Sak = { from: new Date('2024-04-08T00:00:00.000Z'), to: new Date('2024-04-09T00:00:00.000Z'), }, - dagerIkkeAnsatt: [], dagerSøktFor: [], arbeidstidEnkeltdager: { '2024-04-08': { From 6b80f894bddd6cba8e44d4f821a370c8753038c2 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 24 Jan 2025 10:21:45 +0100 Subject: [PATCH 30/31] Korrigere ansettelseperioder tekst --- .../AnsettelsesperioderInfo.tsx | 44 ++++++++++++------- .../src/app/i18n/appMessages.ts | 3 +- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx index af4a01df44..2b93bb2288 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/arbeidsaktivitet-block/AnsettelsesperioderInfo.tsx @@ -8,22 +8,34 @@ interface Props { } const Ansettelsesperiode = ({ periode }: { periode: MaybeDateRange }) => { - return ( - <> - {periode.from && ( - - )} - {periode.to && ( - - )} - - ); + if (periode.from === undefined && periode.to === undefined) { + return null; + } + if (periode.from && periode.to) { + return ( + + ); + } + if (periode.from) { + return ( + + ); + } + if (periode.to) { + return ( + + ); + } + return null; }; const AnsettelsesperioderInfo = ({ ansettelsesperioder }: Props) => { diff --git a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts index 8117d9f302..167b03f514 100644 --- a/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts +++ b/apps/endringsmelding-pleiepenger/src/app/i18n/appMessages.ts @@ -30,7 +30,8 @@ const nb = { 'arbeidsaktivitetBlockHeader.nyttArbeidsforhold': 'Nytt arbeidsforhold', 'arbeidsaktivitetBlockHeader.arbeidsgiver.orgnummer': 'Organisasjonsnummer: {orgnr}', 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansettelsesperioder': 'Ansettelsesperioder', - 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFom': 'Ansatt: {dato}.', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFomTom': 'Ansatt: {fom} - {tom}.', + 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattFom': 'Ansatt: {dato} - pågående', 'arbeidsaktivitetBlockHeader.arbeidsgiver.ansattTom': ' Sluttdato: {dato}.', 'ikkeAnsattMelding.tekst': From b28b3847669f6201a0a52e8a067201705bee5b86 Mon Sep 17 00:00:00 2001 From: frodehansen2 Date: Fri, 24 Jan 2025 13:02:59 +0100 Subject: [PATCH 31/31] =?UTF-8?q?Tooltip=20p=C3=A5=20KortUke=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/components/tags/KortUkeTag.tsx | 15 ++++++++++++--- .../components/ArbeidstidUkeListe.tsx | 13 +++++++++---- .../components/ArbeidstidUkeTabell.tsx | 10 ++++------ .../arbeidstid-uker/components/UkeInfoTooltip.tsx | 4 +++- .../arbeidstid-uker/components/UkeTags.tsx | 7 ++++--- 5 files changed, 32 insertions(+), 17 deletions(-) diff --git a/apps/endringsmelding-pleiepenger/src/app/components/tags/KortUkeTag.tsx b/apps/endringsmelding-pleiepenger/src/app/components/tags/KortUkeTag.tsx index 5da7782372..d41e34b2fc 100644 --- a/apps/endringsmelding-pleiepenger/src/app/components/tags/KortUkeTag.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/components/tags/KortUkeTag.tsx @@ -1,18 +1,27 @@ -import { Tag, TagProps } from '@navikt/ds-react'; +import { Tag, TagProps, Tooltip } from '@navikt/ds-react'; import React from 'react'; import { useAppIntl } from '../../i18n'; interface Props extends Omit { children?: React.ReactNode; + tooltip?: string; } -const KortUkeTag: React.FunctionComponent = ({ children, ...rest }) => { +const KortUkeTag: React.FunctionComponent = ({ children, tooltip, ...rest }) => { const { text } = useAppIntl(); - return ( + + const tag = ( {children || text('tags.kortUke')} ); + return tooltip ? ( + <> + {tag} + + ) : ( + tag + ); }; export default KortUkeTag; diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx index 28e654f6f7..c2fa3e32d8 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/ArbeidstidUkeListe.tsx @@ -1,7 +1,7 @@ -import { BodyShort, Heading } from '@navikt/ds-react'; +import { BodyShort, Box, Heading, HStack } from '@navikt/ds-react'; import React, { ReactElement } from 'react'; import Block from '@navikt/sif-common-core-ds/src/atoms/block/Block'; -import { dateFormatter } from '@navikt/sif-common-utils'; +import { getDateRangeText } from '@navikt/sif-common-utils'; import dayjs from 'dayjs'; import { SelectableListType } from '../../../hooks/useSelectableList'; import { AppText } from '../../../i18n'; @@ -9,6 +9,8 @@ import { ArbeidstidUkerItem } from '../types/ArbeidstidUkerItem'; import ArbeidstidUkeInfoListe from './ArbeidstidUkeInfoListe'; import UkeTags from './UkeTags'; import VelgArbeidsukeItem from './VelgArbeidsukeItem'; +import { useIntl } from 'react-intl'; +import { getKortUkeTooltipText } from './UkeInfoTooltip'; interface Props { uker: ArbeidstidUkerItem[]; @@ -23,6 +25,7 @@ const ArbeidstidUkeListe: React.FunctionComponent = ({ selectableList, renderEditButton, }) => { + const intl = useIntl(); const { isItemSelected, setItemSelected, @@ -52,10 +55,12 @@ const ArbeidstidUkeListe: React.FunctionComponent = ({ - {dateFormatter.compact(uke.periode.from)} - {` `} - {dateFormatter.compact(uke.periode.to)} + + {getDateRangeText(uke.periode, intl.locale)} + = ({
-
- {dateFormatter.compact(uke.periode.from)} - {` `} - {dateFormatter.compact(uke.periode.to)} -
+
{getDateRangeText(uke.periode, intl.locale)}
@@ -147,6 +144,7 @@ const ArbeidstidUkeTabell: React.FunctionComponent = ({ {(uke.harFeriedager || uke.harFjernetFeriedager || uke.erKortUke) && ( `Kort uke - ${getDagerPeriode(periode, false)}`; + const UkeInfoTooltip: React.FunctionComponent = ({ uke }) => { const { erKortUke } = uke; if (erKortUke) { return ( - + diff --git a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx index 1a0c285879..a88ea04ee1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx +++ b/apps/endringsmelding-pleiepenger/src/app/modules/arbeidstid-uker/components/UkeTags.tsx @@ -5,16 +5,17 @@ import KortUkeTag from '../../../components/tags/KortUkeTag'; import TagsContainer from '../../../components/tags/tags-container/TagsContainer'; interface Props { + kortUkeTooltip?: string; erKortUke?: boolean; dagerMedFerie: Date[] | undefined; dagerMedFjernetFerie?: Date[] | undefined; visDagNavn?: boolean; } -const UkeTags = ({ dagerMedFerie = [], dagerMedFjernetFerie = [], visDagNavn, erKortUke }: Props) => { +const UkeTags = ({ dagerMedFerie = [], dagerMedFjernetFerie = [], visDagNavn, erKortUke, kortUkeTooltip }: Props) => { const tags: React.ReactNode[] = []; if (erKortUke) { - tags.push(); + tags.push(); } if (dagerMedFerie?.length > 0) { tags.push( @@ -39,7 +40,7 @@ const UkeTags = ({ dagerMedFerie = [], dagerMedFjernetFerie = [], visDagNavn, er return ( <> - {erKortUke && } + {erKortUke && } {dagerMedFerie?.length > 0 && ( {visDagNavn