diff --git a/_mocks/featureToggles.ts b/_mocks/featureToggles.ts index 17f1174641..4354aab249 100644 --- a/_mocks/featureToggles.ts +++ b/_mocks/featureToggles.ts @@ -69,10 +69,6 @@ export const featureTogglesFactory = () => [ key: 'NYE_NOKKELTALL', value: process.env.VITE_NYE_NOKKELTALL, }, - { - key: 'PROSESS_VILKAR_SOKNADSFRIST', - value: process.env.VITE_PROSESS_VILKAR_SOKNADSFRIST, - }, { key: 'UTVIDET_VARSELFELT', value: process.env.VITE_UTVIDET_VARSELFELT, diff --git a/deploy/dev-fss-k9saksbehandling.yml b/deploy/dev-fss-k9saksbehandling.yml index 947bcc8d27..efd0d04955 100644 --- a/deploy/dev-fss-k9saksbehandling.yml +++ b/deploy/dev-fss-k9saksbehandling.yml @@ -103,8 +103,6 @@ spec: value: "true" - name: NYE_NOKKELTALL value: "true" - - name: PROSESS_VILKAR_SOKNADSFRIST - value: "true" - name: UTVIDET_VARSELFELT value: "true" - name: SKILL_UT_PRIVATPERSON diff --git a/deploy/prod-fss-k9saksbehandling.yml b/deploy/prod-fss-k9saksbehandling.yml index c6c7d233ed..5dbfb6f5b7 100644 --- a/deploy/prod-fss-k9saksbehandling.yml +++ b/deploy/prod-fss-k9saksbehandling.yml @@ -100,8 +100,6 @@ spec: value: "true" - name: NYE_NOKKELTALL value: "false" - - name: PROSESS_VILKAR_SOKNADSFRIST - value: "false" - name: UTVIDET_VARSELFELT value: "true" - name: SKILL_UT_PRIVATPERSON diff --git a/feature-toggles.json b/feature-toggles.json index 0921384f83..e78ba0c5af 100644 --- a/feature-toggles.json +++ b/feature-toggles.json @@ -75,10 +75,6 @@ "key": "NYE_NOKKELTALL", "value": "${NYE_NOKKELTALL}" }, - { - "key": "PROSESS_VILKAR_SOKNADSFRIST", - "value": "${PROSESS_VILKAR_SOKNADSFRIST}" - }, { "key": "UTVIDET_VARSELFELT", "value": "${UTVIDET_VARSELFELT}" diff --git a/packages/behandling-omsorgspenger/package.json b/packages/behandling-omsorgspenger/package.json index a89a85f36c..d74408ae90 100644 --- a/packages/behandling-omsorgspenger/package.json +++ b/packages/behandling-omsorgspenger/package.json @@ -23,9 +23,9 @@ "@k9-sak-web/fakta-barn-oms": "1.0.0", "@k9-sak-web/fakta-inntektsmelding": "1.0.0", "@k9-sak-web/fakta-omsorgen-for": "1.0.0", + "@k9-sak-web/gui": "1.0.0", "@k9-sak-web/konstanter": "1.0.0", "@k9-sak-web/prosess-aarskvantum-oms": "1.0.0", - "@k9-sak-web/prosess-vilkar-soknadsfrist": "1.0.0", "@k9-sak-web/rest-api": "1.0.0", "@k9-sak-web/rest-api-hooks": "1.0.0", "@k9-sak-web/types": "1.0.0", diff --git a/packages/behandling-omsorgspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx b/packages/behandling-omsorgspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx index b342b7f918..4ffbe73b8a 100644 --- a/packages/behandling-omsorgspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx +++ b/packages/behandling-omsorgspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx @@ -3,9 +3,8 @@ import behandlingStatus from '@fpsak-frontend/kodeverk/src/behandlingStatus'; import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper'; import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; import { ProsessStegPanelDef } from '@k9-sak-web/behandling-felles'; -import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; +import SoknadsfristVilkarProsessIndex from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js'; -import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2'; import { OmsorgspengerBehandlingApiKeys } from '../../../data/omsorgspengerBehandlingApi'; class SoknadsfristPanelDef extends ProsessStegPanelDef { @@ -16,9 +15,6 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef { getKomponent = props => { const deepCopyProps = JSON.parse(JSON.stringify(props)); konverterKodeverkTilKode(deepCopyProps, false); - if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) { - return ; - } return ; }; diff --git a/packages/behandling-opplaeringspenger/package.json b/packages/behandling-opplaeringspenger/package.json index d0997cb772..8f5bc414a3 100644 --- a/packages/behandling-opplaeringspenger/package.json +++ b/packages/behandling-opplaeringspenger/package.json @@ -25,9 +25,9 @@ "@k9-sak-web/fakta-medisinsk-vilkar": "1.0.0", "@k9-sak-web/fakta-om-barnet": "1.0.0", "@k9-sak-web/fakta-omsorgen-for": "1.0.0", + "@k9-sak-web/gui": "1.0.0", "@k9-sak-web/konstanter": "1.0.0", "@k9-sak-web/prosess-uttak": "1.0.0", - "@k9-sak-web/prosess-vilkar-soknadsfrist": "1.0.0", "@k9-sak-web/prosess-vilkar-sykdom": "1.0.0", "@k9-sak-web/rest-api": "1.0.0", "@k9-sak-web/rest-api-hooks": "1.0.0", diff --git a/packages/behandling-opplaeringspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx b/packages/behandling-opplaeringspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx index cc4d2f3ff7..cb068ebc6a 100644 --- a/packages/behandling-opplaeringspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx +++ b/packages/behandling-opplaeringspenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx @@ -3,9 +3,8 @@ import behandlingStatus from '@fpsak-frontend/kodeverk/src/behandlingStatus'; import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper'; import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; import { ProsessStegPanelDef } from '@k9-sak-web/behandling-felles'; -import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; +import SoknadsfristVilkarProsessIndex from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js'; -import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2'; import { OpplaeringspengerBehandlingApiKeys } from '../../../data/opplaeringspengerBehandlingApi'; class SoknadsfristPanelDef extends ProsessStegPanelDef { @@ -16,9 +15,7 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef { getKomponent = props => { const deepCopyProps = JSON.parse(JSON.stringify(props)); konverterKodeverkTilKode(deepCopyProps, false); - if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) { - return ; - } + return ; }; diff --git a/packages/behandling-pleiepenger-sluttfase/package.json b/packages/behandling-pleiepenger-sluttfase/package.json index 794139582b..8df53cbdaa 100644 --- a/packages/behandling-pleiepenger-sluttfase/package.json +++ b/packages/behandling-pleiepenger-sluttfase/package.json @@ -21,9 +21,9 @@ "@k9-sak-web/fakta-inntektsmelding": "1.0.0", "@k9-sak-web/fakta-medisinsk-vilkar": "1.0.0", "@k9-sak-web/fakta-utenlandsopphold": "1.0.0", + "@k9-sak-web/gui": "1.0.0", "@k9-sak-web/konstanter": "1.0.0", "@k9-sak-web/prosess-uttak": "1.0.0", - "@k9-sak-web/prosess-vilkar-soknadsfrist": "1.0.0", "@k9-sak-web/prosess-vilkar-sykdom": "1.0.0", "@k9-sak-web/rest-api": "1.0.0", "@k9-sak-web/rest-api-hooks": "1.0.0", diff --git a/packages/behandling-pleiepenger-sluttfase/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx b/packages/behandling-pleiepenger-sluttfase/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx index 08cd60380b..d934cadbae 100644 --- a/packages/behandling-pleiepenger-sluttfase/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx +++ b/packages/behandling-pleiepenger-sluttfase/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx @@ -3,9 +3,8 @@ import behandlingStatus from '@fpsak-frontend/kodeverk/src/behandlingStatus'; import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper'; import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; import { ProsessStegPanelDef } from '@k9-sak-web/behandling-felles'; -import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; +import SoknadsfristVilkarProsessIndex from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js'; -import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2'; import { PleiepengerSluttfaseBehandlingApiKeys } from '../../../data/pleiepengerSluttfaseBehandlingApi'; class SoknadsfristPanelDef extends ProsessStegPanelDef { @@ -16,9 +15,6 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef { getKomponent = props => { const deepCopyProps = JSON.parse(JSON.stringify(props)); konverterKodeverkTilKode(deepCopyProps, false); - if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) { - return ; - } return ; }; diff --git a/packages/behandling-pleiepenger/package.json b/packages/behandling-pleiepenger/package.json index 532028befb..bf050c8f50 100644 --- a/packages/behandling-pleiepenger/package.json +++ b/packages/behandling-pleiepenger/package.json @@ -25,9 +25,9 @@ "@k9-sak-web/fakta-om-barnet": "1.0.0", "@k9-sak-web/fakta-omsorgen-for": "1.0.0", "@k9-sak-web/fakta-utenlandsopphold": "1.0.0", + "@k9-sak-web/gui": "1.0.0", "@k9-sak-web/konstanter": "1.0.0", "@k9-sak-web/prosess-uttak": "1.0.0", - "@k9-sak-web/prosess-vilkar-soknadsfrist": "1.0.0", "@k9-sak-web/prosess-vilkar-sykdom": "1.0.0", "@k9-sak-web/rest-api": "1.0.0", "@k9-sak-web/rest-api-hooks": "1.0.0", diff --git a/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx b/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx index 860637a99c..64e9dd76a3 100644 --- a/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx +++ b/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/inngangsvilkarPaneler/SoknadsfristPanelDef.tsx @@ -3,9 +3,8 @@ import behandlingStatus from '@fpsak-frontend/kodeverk/src/behandlingStatus'; import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper'; import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; import { ProsessStegPanelDef } from '@k9-sak-web/behandling-felles'; -import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; +import SoknadsfristVilkarProsessIndex from '@k9-sak-web/gui/prosess/vilkar-soknadsfrist/SoknadsfristVilkarProsessIndex.js'; import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js'; -import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2'; import { PleiepengerBehandlingApiKeys } from '../../../data/pleiepengerBehandlingApi'; class SoknadsfristPanelDef extends ProsessStegPanelDef { @@ -16,9 +15,6 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef { getKomponent = props => { const deepCopyProps = JSON.parse(JSON.stringify(props)); konverterKodeverkTilKode(deepCopyProps, false); - if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) { - return ; - } return ; }; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/index.ts b/packages/prosess-vilkar-soknadsfrist-v2/index.ts deleted file mode 100644 index 24912aadac..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './src/SoknadsfristVilkarProsessIndex'; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/package.json b/packages/prosess-vilkar-soknadsfrist-v2/package.json deleted file mode 100644 index d6271cd3cc..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@k9-sak-web/prosess-vilkar-soknadsfrist-v2", - "version": "1.0.0", - "module": "index.ts", - "license": "MIT", - "private": true, - "dependencies": { - "@fpsak-frontend/assets": "1.0.0", - "@fpsak-frontend/form": "1.0.0", - "@fpsak-frontend/kodeverk": "1.0.0", - "@fpsak-frontend/shared-components": "1.0.0", - "@fpsak-frontend/utils": "1.0.0", - "@k9-sak-web/sak-app": "1.0.0", - "@k9-sak-web/types": "1.0.0", - "@navikt/ft-form-hooks": "5.2.8", - "@navikt/ft-form-validators": "2.5.6", - "@navikt/ft-plattform-komponenter": "5.1.5", - "classnames": "2.5.1", - "dayjs": "1.11.13", - "object-hash": "3.0.0", - "react": "18.3.1", - "react-hook-form": "7.53.2", - "react-intl": "7.0.1" - }, - "devDependencies": { - "@fpsak-frontend/utils-test": "1.0.0" - } -} diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.module.css b/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.module.css deleted file mode 100644 index 077ad1e46f..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.contentContainer { - flex: 1; -} - -.sideMenuContainer { - margin: 0 32px 0 0; -} - -.sideMenuContainer > div { - height: auto; -} - -.mainContainer--withSideMenu { - display: flex; - margin-left: -32px; -} - -.warningIcon { - margin-left: 1rem; -} diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.stories.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.stories.tsx deleted file mode 100644 index e3dc31f21d..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.stories.tsx +++ /dev/null @@ -1,630 +0,0 @@ -import React from 'react'; - -import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { behandlingType } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/BehandlingType.js'; -import { BehandlingDto, KravDokumentStatus, VilkårMedPerioderDto } from '@navikt/k9-sak-typescript-client'; -import { action } from '@storybook/addon-actions'; -import { Meta, StoryObj } from '@storybook/react'; -import { expect, fn, userEvent, waitFor, within } from '@storybook/test'; -import SoknadsfristVilkarProsessIndex from './SoknadsfristVilkarProsessIndex'; - -const vilkarSoknadsfrist = [ - { - vilkarType: vilkarType.SOKNADSFRISTVILKARET, // kodeverk: 'test' - overstyrbar: true, - perioder: [ - { - vilkarStatus: vilkarUtfallType.IKKE_OPPFYLT, // kodeverk: 'test' - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-20', - tom: '2020-02-25', - }, - }, - { - vilkarStatus: vilkarUtfallType.IKKE_OPPFYLT, // kodeverk: 'test' - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-26', - tom: '2020-02-27', - }, - }, - { - vilkarStatus: vilkarUtfallType.OPPFYLT, // kodeverk: 'test' - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-28', - tom: '2020-02-29', - }, - }, - ], - } as VilkårMedPerioderDto, -]; - -const soknadsStatus = { - dokumentStatus: [ - { - type: 'SOKNAD', // kodeverk: 'test' - status: [ - { - periode: { fom: '2020-02-20', tom: '2020-02-25' }, - status: vilkarUtfallType.IKKE_OPPFYLT, // kodeverk: 'test' - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '12345', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', // kodeverk: 'test' - status: [ - { - periode: { fom: '2020-02-26', tom: '2020-02-27' }, - status: vilkarUtfallType.IKKE_OPPFYLT, // kodeverk: 'test' - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '23456', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ] as KravDokumentStatus[], -}; - -const meta: Meta = { - title: 'prosess/prosess-vilkar-soknadsfrist-v2', - component: SoknadsfristVilkarProsessIndex, -}; - -type Story = StoryObj; - -const behandling = { - id: 1, - versjon: 1, - type: behandlingType.FØRSTEGANGSSØKNAD, // kodeverk: 'BEHANDLING_TYPE' -} as BehandlingDto; - -export const visOverstyringspanelForSoknadsfrist: Story = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - employeeHasAccess: true, - isEnabled: true, - }, - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={soknadsStatus} - panelTittelKode="Søknadsfrist" - vilkar={vilkarSoknadsfrist} - kanEndrePåSøknadsopplysninger - {...props} - /> - ); - }, -}; - -export const visOverstyringspanelForSoknadsfristUtenDokumenter: Story = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - employeeHasAccess: true, - isEnabled: true, - }, - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ dokumentStatus: [] }} - panelTittelKode="Søknadsfrist" - vilkar={vilkarSoknadsfrist} - kanEndrePåSøknadsopplysninger - {...props} - /> - ); - }, -}; - -export const VisSoknadsfristAksjonspunkt5077: Story = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - employeeHasAccess: true, - isEnabled: true, - }, - submitCallback: fn(), - }, - - play: async ({ canvasElement, step, args }) => { - const canvas = within(canvasElement); - await step('skal formatere data ved innsending ved oppfylt vilkår', async () => { - await userEvent.click(canvas.getByText('28.04.2021 - 30.04.2021')); - await userEvent.click(canvas.getByText('Vilkåret er oppfylt for hele perioden')); - await userEvent.type( - canvas.getByLabelText('Vurder om det har vært fristavbrytende kontakt'), - 'Dette er en begrunnelse', - ); - await waitFor(() => expect(canvas.getByText('Bekreft og gå videre')).toBeEnabled()); - await userEvent.click(canvas.getByText('Bekreft og gå videre')); - await waitFor(() => expect(args.submitCallback).toHaveBeenCalledTimes(1)); - expect(args.submitCallback).toHaveBeenNthCalledWith(1, [ - { - avklarteKrav: [ - { - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: true, - fraDato: '2021-04-27', - godkjent: true, - journalpostId: '510536417', - }, - ], - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: true, - kode: '5077', - periode: { - fom: '2021-04-28', - tom: '2021-04-30', - }, - }, - ]); - }); - - await step('skal formatere data ved innsending ved delvis oppfylt vilkår', async () => { - await userEvent.click(canvas.getByText('28.04.2021 - 30.04.2021')); - await userEvent.click(canvas.getByText('Vilkåret er oppfylt for deler av perioden')); - await userEvent.type(canvas.getByLabelText('Oppgi dato søknadsfristvilkåret er oppfylt fra'), '03.05.2021'); - await waitFor(() => expect(canvas.getByText('Bekreft og gå videre')).toBeEnabled()); - await userEvent.click(canvas.getByText('Bekreft og gå videre')); - await waitFor(() => expect(args.submitCallback).toHaveBeenCalledTimes(2)); - expect(args.submitCallback).toHaveBeenNthCalledWith(2, [ - { - avklarteKrav: [ - { - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: true, - fraDato: '2021-05-02', - godkjent: true, - journalpostId: '510536417', - }, - ], - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: true, - kode: '5077', - periode: { - fom: '2021-04-28', - tom: '2021-04-30', - }, - }, - ]); - }); - - await step('skal formatere data ved innsending ved ikke oppfylt vilkår', async () => { - await userEvent.click(canvas.getByText('28.04.2021 - 30.04.2021')); - await userEvent.click(canvas.getByLabelText('ikke', { exact: false })); - await waitFor(() => expect(canvas.getByText('Bekreft og gå videre')).toBeEnabled()); - await userEvent.click(canvas.getByText('Bekreft og gå videre')); - await waitFor(() => expect(args.submitCallback).toHaveBeenCalledTimes(3)); - expect(args.submitCallback).toHaveBeenNthCalledWith(3, [ - { - avklarteKrav: [ - { - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: false, - fraDato: '2021-04-30', - godkjent: false, - journalpostId: '510536417', - }, - ], - begrunnelse: 'Dette er en begrunnelse', - erVilkarOk: false, - kode: '5077', - periode: { - fom: '2021-04-28', - tom: '2021-04-30', - }, - }, - ]); - }); - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - status: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - { - periode: { fom: '2021-05-01', tom: '2021-05-05' }, - status: 'OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - ], - innsendingstidspunkt: '2021-08-19T11:50:21.894', - journalpostId: '510536417', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Søknadsfrist" - vilkar={[ - { - vilkarType: 'FP_VK_3', // kodeverk: 'VILKAR_TYPE' - lovReferanse: null, - overstyrbar: true, - perioder: [ - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { fom: '2021-05-01', tom: '2021-05-05' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - ], - }, - ]} - kanEndrePåSøknadsopplysninger - {...props} - /> - ); - }, -}; - -export const visSoknadsfristAksjonspunkt5077Delvis: Story = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - employeeHasAccess: true, - isEnabled: true, - }, - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2021-04-26', tom: '2021-04-27' }, - status: 'IKKE_OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - { - periode: { fom: '2021-04-28', tom: '2021-05-06' }, - status: 'OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - ], - innsendingstidspunkt: '2021-08-26T16:17:16.538', - journalpostId: '510540058', - avklarteOpplysninger: { - godkjent: true, - fraDato: '2021-04-27', - begrunnelse: [ - 'jsdfsdf ljksdlkfj sldjf lsdkjf lsjdf\n\n\n', - 'sdsdfs øjjølksdjfølkjsd fjsd s fløskjdflsjd f\n\n\n', - 'sdklfjsøl jølsdjfø lsjdfljsldøjf sdjf slødjf sld\n\n\n', - 'sldfj sljfølsjd fløsdlfj øsldjf lsøjdfølsdjfløsjd lsdfs', - ].join(''), - opprettetAv: 'saksbeh', - opprettetTidspunkt: '2021-08-26T16:17:16.538', - }, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Søknadsfrist" - vilkar={[ - { - vilkarType: 'FP_VK_3', // kodeverk: 'VILKAR_TYPE' - lovReferanse: null, - overstyrbar: true, - perioder: [ - { - avslagKode: '1007', - merknadParametere: {}, - vilkarStatus: 'IKKE_OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { fom: '2021-04-26', tom: '2021-04-27' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'OPPFYLT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { fom: '2021-05-01', tom: '2021-05-06' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - ], - }, - ]} - kanEndrePåSøknadsopplysninger - {...props} - /> - ); - }, -}; - -export const VisSoknadsfristAksjonspunkt5077FlereSøknader: Story = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - employeeHasAccess: true, - isEnabled: true, - }, - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', // kodeverk: 'dokumentStatus' - status: [ - { - periode: { - fom: '2024-03-25', - tom: '2024-03-29', - }, - status: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - ], - innsendingstidspunkt: '2024-09-05T13:01:56.322', - journalpostId: '671129216', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', // kodeverk: 'dokumentStatus' - status: [ - { - periode: { - fom: '2024-03-04', - tom: '2024-03-08', - }, - status: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - ], - innsendingstidspunkt: '2024-09-05T13:00:44.446', - journalpostId: '671129199', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', - status: [ - { - periode: { - fom: '2024-04-15', - tom: '2024-04-19', - }, - status: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - }, - ], - innsendingstidspunkt: '2024-09-05T13:03:07.003', - journalpostId: '671129200', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Søknadsfrist" - vilkar={[ - { - vilkarType: 'FP_VK_3', // kodeverk: 'VILKAR_TYPE' - lovReferanse: '§ 22-13 tredje ledd', - overstyrbar: true, - perioder: [ - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { - fom: '2024-03-04', - tom: '2024-03-08', - }, - begrunnelse: null, - vurderesIBehandlingen: true, - vurdersIBehandlingen: true, - merknad: '-', // kodeverk: 'VILKAR_UTFALL_MERKNAD' - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: 'IKKE_VURDERT', // kodeverk: 'VILKAR_UTFALL_TYPE' - periode: { - fom: '2024-03-25', - tom: '2024-03-29', - }, - begrunnelse: null, - vurderesIBehandlingen: true, - vurdersIBehandlingen: true, - merknad: '-', // kodeverk: 'VILKAR_UTFALL_MERKNAD' - }, - ], - }, - ]} - kanEndrePåSøknadsopplysninger - {...props} - /> - ); - }, -}; - -export default meta; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.tsx deleted file mode 100644 index 7b864c2cdf..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/SoknadsfristVilkarProsessIndex.tsx +++ /dev/null @@ -1,213 +0,0 @@ -import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; -import { aksjonspunktStatus } from '@k9-sak-web/backend/k9sak/kodeverk/AksjonspunktStatus.js'; -import { vilkårStatus } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/VilkårStatus.js'; -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import { SubmitCallback } from '@k9-sak-web/types'; -import { ExclamationmarkTriangleFillIcon } from '@navikt/aksel-icons'; -import { SideMenu } from '@navikt/ft-plattform-komponenter'; -import type { AksjonspunktDto, SøknadsfristTilstandDto, VilkårMedPerioderDto } from '@navikt/k9-sak-typescript-client'; -import { BehandlingDto } from '@navikt/k9-sak-typescript-client'; -import classNames from 'classnames/bind'; -import { Dayjs } from 'dayjs'; -import { SetStateAction, useEffect, useState } from 'react'; -import { RawIntlProvider, createIntl, createIntlCache } from 'react-intl'; - -import SoknadsfristVilkarForm from './components/SoknadsfristVilkarForm'; -import SoknadsfristVilkarHeader from './components/SoknadsfristVilkarHeader'; -import styles from './SoknadsfristVilkarProsessIndex.module.css'; -import { formatDate, hentAktivePerioderFraVilkar, utledInnsendtSoknadsfrist } from './utils'; - -const cx = classNames.bind(styles); - -const cache = createIntlCache(); - -const intl = createIntl( - { - locale: 'nb-NO', - }, - cache, -); - -const lovReferanse = '§ 22-13'; - -interface SoknadsfristVilkarProsessIndexProps { - behandling: BehandlingDto; - aksjonspunkter: AksjonspunktDto[]; - submitCallback: (props: SubmitCallback[]) => void; - overrideReadOnly: boolean; - kanOverstyreAccess: { - employeeHasAccess: boolean; - isEnabled: boolean; - }; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; - erOverstyrt: boolean; - panelTittelKode: string; - vilkar: VilkårMedPerioderDto[]; - visAllePerioder: boolean; - soknadsfristStatus: SøknadsfristTilstandDto; - kanEndrePåSøknadsopplysninger: boolean; -} - -// Finner ut om Statusperiode gjelder for vilkårsperiode -const erRelevantForPeriode = ( - vilkårPeriodeFom: Dayjs, - vilkårPeriodeTom: Dayjs, - statusPeriodeFom: Dayjs, - statusPeriodeTom: Dayjs, - innsendtDato: string, -) => { - // er starten av vilkårsperioden før opprinnelig søkndasfrist - const erAktuellForPerioden = utledInnsendtSoknadsfrist(innsendtDato, false) > vilkårPeriodeFom; - // overlapper vilkårsperioden med statusperioden fra dokumentet - const overlapperPerioder = vilkårPeriodeFom <= statusPeriodeTom && vilkårPeriodeTom >= statusPeriodeFom; - return erAktuellForPerioden && overlapperPerioder; -}; - -const SoknadsfristVilkarProsessIndex = ({ - behandling, - aksjonspunkter, - submitCallback, - overrideReadOnly, - kanOverstyreAccess, - toggleOverstyring, - erOverstyrt, - panelTittelKode, - vilkar, - visAllePerioder, - soknadsfristStatus, - kanEndrePåSøknadsopplysninger, -}: SoknadsfristVilkarProsessIndexProps) => { - const [activeTab, setActiveTab] = useState(0); - const [activeVilkår] = vilkar; - const perioder = hentAktivePerioderFraVilkar(vilkar, visAllePerioder); - useEffect(() => { - if (!visAllePerioder && activeTab >= perioder.length) { - setActiveTab(0); - } - }, [activeTab, visAllePerioder]); - - if (perioder.length === 0) { - return null; - } - - useEffect(() => { - if (perioder.length > 1) { - const førsteIkkeVurdertPeriodeIndex = perioder.findIndex( - periode => periode.vurderesIBehandlingen && periode.vilkarStatus === vilkårStatus.IKKE_VURDERT, - ); - if (førsteIkkeVurdertPeriodeIndex > 0) { - setActiveTab(førsteIkkeVurdertPeriodeIndex); - } - } - }, []); - - const activePeriode = perioder.length === 1 ? perioder[0] : perioder[activeTab]; - - const harÅpentUløstAksjonspunkt = aksjonspunkter.some( - ap => - ap.definisjon === aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST && - ap.status === aksjonspunktStatus.OPPRETTET && - ap.kanLoses, - ); - - const dokumenterSomSkalVurderes = Array.isArray(soknadsfristStatus?.dokumentStatus) - ? soknadsfristStatus.dokumentStatus.filter(dok => - dok.status.some(status => { - const erOppfyllt = status.status === vilkårStatus.OPPFYLT; - const avklartEllerOverstyrt = dok.overstyrteOpplysninger || dok.avklarteOpplysninger; - - if (erOppfyllt && !avklartEllerOverstyrt) { - return false; - } - - const statusPeriodeFom = initializeDate(status.periode.fom); - const statusPeriodeTom = initializeDate(status.periode.tom); - - return perioder.some(vilkårPeriode => { - const vilkårPeriodeFom = initializeDate(vilkårPeriode.periode.fom); - const vilkårPeriodeTom = initializeDate(vilkårPeriode.periode.tom); - return erRelevantForPeriode( - vilkårPeriodeFom, - vilkårPeriodeTom, - statusPeriodeFom, - statusPeriodeTom, - dok.innsendingstidspunkt, - ); - }); - }), - ) - : []; - - const activePeriodeFom = initializeDate(activePeriode.periode.fom); - const activePeriodeTom = initializeDate(activePeriode.periode.tom); - - const dokumenterIAktivPeriode = dokumenterSomSkalVurderes.filter(dok => - dok.status.some(status => { - const statusPeriodeFom = initializeDate(status.periode.fom); - const statusPeriodeTom = initializeDate(status.periode.tom); - return erRelevantForPeriode( - activePeriodeFom, - activePeriodeTom, - statusPeriodeFom, - statusPeriodeTom, - dok.innsendingstidspunkt, - ); - }), - ); - - return ( - -
-
- ({ - active: activeTab === index, - label: `${formatDate(periode.fom)} - ${formatDate(periode.tom)}`, - icon: - (erOverstyrt || harÅpentUløstAksjonspunkt) && vilkarStatus === vilkårStatus.IKKE_VURDERT ? ( - - ) : null, - }))} - onClick={setActiveTab} - theme="arrow" - heading="Perioder" - /> -
-
- - -
-
-
- ); -}; - -export default SoknadsfristVilkarProsessIndex; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/FormState.ts b/packages/prosess-vilkar-soknadsfrist-v2/src/components/FormState.ts deleted file mode 100644 index 777e6b0f23..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/FormState.ts +++ /dev/null @@ -1,11 +0,0 @@ -interface AvklarteKrav { - erVilkarOk: string | boolean; - begrunnelse: string; - journalpostId: string; - fraDato: string; -} - -export interface FormState { - isOverstyrt: boolean; - avklarteKrav: AvklarteKrav[]; -} diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.module.css b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.module.css deleted file mode 100644 index c3c57d1029..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.container { - padding-right: 15px; -} - -.image { - height: 16px; - margin-top: -2px; - width: 16px; -} - -.fullBreddeIE { - width: 100%; -} - -.editButton { - :global(.navds-label) { - font-size: 0.875rem; - text-decoration: underline; - } -} diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.tsx deleted file mode 100644 index 18ae4f1098..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarDokument.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import { RadioGroupPanelRHF } from '@fpsak-frontend/form'; -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import { CheckmarkIcon, XMarkOctagonIcon } from '@navikt/aksel-icons'; -import { BodyShort, Button } from '@navikt/ds-react'; -import { Datepicker, TextAreaField } from '@navikt/ft-form-hooks'; -import { - dateAfterOrEqual, - dateBeforeOrEqual, - hasValidDate, - hasValidText, - maxLength, - minLength, - required, -} from '@navikt/ft-form-validators'; -import { AssessedBy } from '@navikt/ft-plattform-komponenter'; -import React, { useCallback, useMemo } from 'react'; - -import { KravDokumentStatus, VilkårPeriodeDto } from '@navikt/k9-sak-typescript-client'; -import { formatDate } from '../utils'; -import styles from './SoknadsfristVilkarDokument.module.css'; - -const minLength3 = minLength(3); -const maxLength1500 = maxLength(1500); -interface SoknadsfristVilkarDokumentProps { - readOnly: boolean; - skalViseBegrunnelse?: boolean; - dokument: KravDokumentStatus; - dokumentIndex: number; - erAktivtDokument: boolean; - toggleEditForm: React.Dispatch>; - erOverstyrt?: boolean; - redigerVurdering?: boolean; - dokumentErVurdert: boolean; - periode?: VilkårPeriodeDto; - kanEndrePåSøknadsopplysninger: boolean; -} - -export const DELVIS_OPPFYLT = 'DELVIS_OPPFYLT'; - -/** - * SoknadsfristVilkarDokument - * - * Presentasjonskomponent. Viser resultat av søknadsfristvilkåret når det ikke finnes tilknyttede aksjonspunkter. - * Resultatet kan overstyres av Nav-ansatt med overstyr-rettighet. - */ -export const SoknadsfristVilkarDokument = ({ - readOnly, - skalViseBegrunnelse = true, - dokument, - erAktivtDokument, - dokumentIndex, - toggleEditForm, - erOverstyrt, - redigerVurdering, - dokumentErVurdert, - periode, - kanEndrePåSøknadsopplysninger, -}: SoknadsfristVilkarDokumentProps) => { - const erVilkarOk = readOnly && dokumentErVurdert && periode.vilkarStatus === 'OPPFYLT'; - const opprettetTidspunkt = dokument?.avklarteOpplysninger?.opprettetTidspunkt; - const minDate = useMemo( - () => - dokument.status.reduce( - (acc, curr) => (!acc || initializeDate(curr.periode.fom) < initializeDate(acc) ? curr.periode.fom : acc), - '', - ), - [dokument.journalpostId], - ); - const maxDate = useMemo( - () => - dokument.status.reduce( - (acc, curr) => (!acc || initializeDate(curr.periode.tom) > initializeDate(acc) ? curr.periode.tom : acc), - '', - ), - [dokument.innsendingstidspunkt, dokument.journalpostId], - ); - - const isAtleastDate = useCallback(v => dateAfterOrEqual(minDate)(v), [minDate]); - const isAtmostDate = useCallback(v => dateBeforeOrEqual(maxDate)(v), [maxDate]); - return ( -
-

- {dokument.type} innsendt {formatDate(dokument.innsendingstidspunkt)}{' '} - (journalpostId: {dokument.journalpostId}) -

- {skalViseBegrunnelse && ( - <> -
-
-
- - -
-
- - )} -
- {readOnly && erVilkarOk !== undefined && ( - <> -
-
- {erVilkarOk ? ( - - ) : ( - - )} -
-
- {erVilkarOk && Vilkåret er oppfylt for hele perioden} - {!erVilkarOk && ( - - Vilkåret er ikke oppfylt for denne perioden - - )} -
-
-
- - )} - {(!readOnly || erVilkarOk === undefined) && ( - - -
- ), - }, - { - value: 'false', - label: ( - <> - Vilkåret er ikke oppfylt for denne perioden - - ), - }, - ]} - /> - )} - {!erOverstyrt && dokumentErVurdert && !redigerVurdering && kanEndrePåSøknadsopplysninger && ( -
-
- -
- )} -
-
- ); -}; - -export default SoknadsfristVilkarDokument; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.module.css b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.module.css deleted file mode 100644 index 5101ab7816..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.module.css +++ /dev/null @@ -1,24 +0,0 @@ -.status { - height: 20px; - width: 20px; -} - -.key { - cursor: pointer; - height: 20px; - width: 20px; -} - -.keyWithoutCursor { - height: 20px; - width: 20px; -} - -.vilkar:global(.navds-detail) { - margin-top: 3px; -} - -.aksjonspunktMargin { - margin-left: -20px; - min-width: 400px; -} diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.spec.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.spec.tsx deleted file mode 100644 index 91f365a0e4..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.spec.tsx +++ /dev/null @@ -1,80 +0,0 @@ -// import behandlingType from '@fpsak-frontend/kodeverk/src/behandlingType'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { K9sakApiKeys, requestApi } from '@k9-sak-web/sak-app/src/data/k9sakApi'; -import { KravDokumentStatus, VilkårPeriodeDto } from '@navikt/k9-sak-typescript-client'; -import { render, screen } from '@testing-library/react'; -import { SoknadsfristVilkarForm } from './SoknadsfristVilkarForm'; - -const periode = { - vilkarStatus: 'IKKE_OPPFYLT', // kodeverk: 'test' - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-20', - tom: '2020-02-25', - }, -} as VilkårPeriodeDto; - -const dokumenter = [ - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2020-02-20', tom: '2020-02-25' }, - status: 'IKKE_OPPFYLT', // kodeverk: 'test' - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '12345', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2020-02-26', tom: '2020-02-27' }, - status: 'IKKE_OPPFYLT', // kodeverk: 'test' - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '23456', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, -] as KravDokumentStatus[]; - -describe('', () => { - it('skal rendre form med knapp når vilkåret er overstyrt', () => { - requestApi.mock(K9sakApiKeys.FEATURE_TOGGLE, []); - render( - undefined} - aksjonspunkter={[]} - status={vilkarUtfallType.IKKE_OPPFYLT} - submitCallback={() => undefined} - dokumenterIAktivPeriode={dokumenter} - alleDokumenter={dokumenter} - periode={periode} - kanEndrePåSøknadsopplysninger - />, - ); - - expect( - screen.getAllByText( - (_, element) => element.textContent === 'SØKNAD innsendt 01.06.2020 (journalpostId: 12345)', - )[0], - ).toBeInTheDocument(); - expect( - screen.getAllByText( - (_, element) => element.textContent === 'SØKNAD innsendt 01.06.2020 (journalpostId: 23456)', - )[0], - ).toBeInTheDocument(); - expect(screen.getAllByText('Vilkåret er oppfylt for hele perioden').length).toBe(2); - expect(screen.getByRole('button', { name: 'Bekreft overstyring' })).toBeInTheDocument(); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.tsx deleted file mode 100644 index 8060c4599e..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarForm.tsx +++ /dev/null @@ -1,316 +0,0 @@ -import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; -import { AksjonspunktBox, AksjonspunktHelpText } from '@fpsak-frontend/shared-components'; -import { decodeHtmlEntity } from '@fpsak-frontend/utils'; -import { vilkårStatus } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/VilkårStatus.js'; -import { Periode, SubmitCallback } from '@k9-sak-web/types'; -import { ExclamationmarkTriangleFillIcon } from '@navikt/aksel-icons'; -import { Button, HStack, Label } from '@navikt/ds-react'; -import { Form } from '@navikt/ft-form-hooks'; -import { AksjonspunktDto, KravDokumentStatus } from '@navikt/k9-sak-typescript-client'; -import { Dayjs } from 'dayjs'; -import hash from 'object-hash'; -import { SetStateAction, useState } from 'react'; -import { useForm } from 'react-hook-form'; - -import aksjonspunktType from '@fpsak-frontend/kodeverk/src/aksjonspunktType'; -import { aksjonspunktStatus } from '@k9-sak-web/backend/k9sak/kodeverk/AksjonspunktStatus.js'; -import OverstyrBekreftKnappPanel from '@k9-sak-web/gui/shared/overstyrBekreftKnappPanel/OverstyrBekreftKnappPanel.js'; -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import { VilkårPeriodeDto } from '@navikt/k9-sak-typescript-client'; -import { utledInnsendtSoknadsfrist } from '../utils'; -import { FormState } from './FormState'; -import SoknadsfristVilkarDokument, { DELVIS_OPPFYLT } from './SoknadsfristVilkarDokument'; -import styles from './SoknadsfristVilkarForm.module.css'; - -/** - * Temporær fiks for saksbehandlere som setter dato og forventer at - * backend skal telle fra og meg datoen de setter. - * - * Backend teller fra dagen etter.. - */ -const minusEnDag = (dato: string | Dayjs) => initializeDate(dato).subtract(1, 'days').format('YYYY-MM-DD'); -const plusEnDag = (dato: string | Dayjs) => initializeDate(dato).add(1, 'days').format('YYYY-MM-DD'); - -const buildInitialValues = ( - aksjonspunkter: AksjonspunktDto[], - alleDokumenter: KravDokumentStatus[], - status: string, -): FormState => { - const overstyrtAksjonspunkt = aksjonspunkter.find( - ap => ap.definisjon === aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR, - ); - - return { - isOverstyrt: overstyrtAksjonspunkt !== undefined, - avklarteKrav: alleDokumenter.map(dokument => { - const fraDato = dokument.overstyrteOpplysninger?.fraDato || dokument.avklarteOpplysninger?.fraDato; - const innsendtSoknadsfrist = utledInnsendtSoknadsfrist(dokument.innsendingstidspunkt); - - const erAvklartEllerOverstyrt = !!fraDato; - - const erDelvisOppfylt = status !== vilkårStatus.OPPFYLT && fraDato && plusEnDag(fraDato) !== innsendtSoknadsfrist; - const erVilkarOk = erDelvisOppfylt ? DELVIS_OPPFYLT : status === vilkårStatus.OPPFYLT ? 'true' : 'false'; - return { - erVilkarOk: erAvklartEllerOverstyrt ? erVilkarOk : null, - begrunnelse: decodeHtmlEntity( - dokument.overstyrteOpplysninger?.begrunnelse || dokument.avklarteOpplysninger?.begrunnelse || '', - ), - journalpostId: dokument.journalpostId, - fraDato: fraDato ? plusEnDag(fraDato) : '', - }; - }), - }; -}; - -const transformValues = ( - values: FormState, - alleDokumenter: KravDokumentStatus[], - apKode: string, - periodeFom: string, - periodeTom: string, -): { - kode: string; - begrunnelse: string; - avklarteKrav: FormState['avklarteKrav']; - erVilkarOk: boolean; - periode?: Periode; -} => ({ - kode: apKode, - begrunnelse: values.avklarteKrav.map(krav => krav.begrunnelse).join('\n'), - avklarteKrav: values.avklarteKrav.map(krav => { - const dokumentStatus = alleDokumenter.find(d => d.journalpostId === krav.journalpostId); - const erVilkarOk = `${krav.erVilkarOk}` === 'true' || krav.erVilkarOk === DELVIS_OPPFYLT; - - const fraDato = (() => { - switch (krav.erVilkarOk) { - case 'true': - return dokumentStatus.status.reduce( - (acc, curr) => - !acc || initializeDate(curr.periode.fom).isBefore(initializeDate(acc)) ? curr.periode.fom : acc, - dokumentStatus.status[0].periode.fom, - ); - - case DELVIS_OPPFYLT: - return krav.fraDato; - - default: - return utledInnsendtSoknadsfrist(dokumentStatus.innsendingstidspunkt); - } - })(); - return { - ...krav, - erVilkarOk, - godkjent: erVilkarOk, - // fjern 'minusEnDag' hvis backend oppdateres.. - fraDato: minusEnDag(fraDato), - }; - }), - erVilkarOk: !values.avklarteKrav.some(krav => !krav.erVilkarOk || krav.erVilkarOk === 'false'), - periode: periodeFom && periodeTom ? { fom: periodeFom, tom: periodeTom } : undefined, -}); - -interface SoknadsfristVilkarFormProps { - aksjonspunkter: AksjonspunktDto[]; - behandlingId: number; - behandlingVersjon: number; - submitCallback: (props: SubmitCallback[]) => void; - periode?: VilkårPeriodeDto; - erOverstyrt?: boolean; - harÅpentAksjonspunkt: boolean; - overrideReadOnly: boolean; - status: string; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; - alleDokumenter?: KravDokumentStatus[]; - dokumenterIAktivPeriode?: KravDokumentStatus[]; - kanEndrePåSøknadsopplysninger: boolean; -} - -/** - * VilkarresultatForm - * - * Presentasjonskomponent. Viser resultat av vilkårskjøring når det ikke finnes tilknyttede aksjonspunkter. - * Resultatet kan overstyres av Nav-ansatt med overstyr-rettighet. - */ -export const SoknadsfristVilkarForm = ({ - erOverstyrt, - harÅpentAksjonspunkt, - overrideReadOnly, - toggleOverstyring, - alleDokumenter, - dokumenterIAktivPeriode, - aksjonspunkter, - periode, - status, - submitCallback, - kanEndrePåSøknadsopplysninger, -}: SoknadsfristVilkarFormProps) => { - const formMethods = useForm({ defaultValues: buildInitialValues(aksjonspunkter, alleDokumenter, status) }); - const [editForm, setEditForm] = useState(false); - - const toggleEditForm = (shouldEdit: boolean) => { - setEditForm(shouldEdit); - if (!shouldEdit) { - formMethods.reset(buildInitialValues(aksjonspunkter, alleDokumenter, status)); - } - }; - const aksjonspunkt = erOverstyrt - ? aksjonspunkter.find(ap => ap.definisjon === aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR) - : aksjonspunkter.find(ap => ap.definisjon === aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST); - - const harAksjonspunkt = aksjonspunkt !== undefined; - const periodeFom = periode?.periode?.fom; - const periodeTom = periode?.periode?.tom; - const aksjonspunktCode = - erOverstyrt || !harAksjonspunkt - ? aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR - : aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST; - - const harLøstManueltAksjonspunkt = aksjonspunkter.some( - ap => - ap.definisjon === aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST && - ap.aksjonspunktType === aksjonspunktType.MANUELL && - ap.status === aksjonspunktStatus.UTFORT, - ); - - const isSolvable = - erOverstyrt || - (harÅpentAksjonspunkt || harLøstManueltAksjonspunkt || aksjonspunkt !== undefined - ? !(aksjonspunkt.status === aksjonspunktStatus.OPPRETTET && !aksjonspunkt.kanLoses) - : false); - - const isReadOnly = overrideReadOnly || !periode?.vurderesIBehandlingen; - - const toggleAv = () => { - formMethods.reset(); - toggleOverstyring(oldArray => oldArray.filter(code => code !== aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR)); - }; - - const handleSubmit = (values: FormState) => { - submitCallback([transformValues(values, alleDokumenter, aksjonspunktCode, periodeFom, periodeTom)]); - }; - - const AksjonspunktText = () => { - if (harLøstManueltAksjonspunkt && !editForm) { - return ( - - ); - } - if (!isReadOnly) { - if (harÅpentAksjonspunkt || editForm) { - return ( -
- Vurder om søknadsfristvilkåret er oppfylt -
- ); - } - if (erOverstyrt) { - return ( - - ); - } - } - return undefined; - }; - - return ( -
- {dokumenterIAktivPeriode.length > 0 && ( - - {(erOverstyrt || harÅpentAksjonspunkt || editForm) && } - {Array.isArray(alleDokumenter) && alleDokumenter.length > 0 - ? alleDokumenter.map((field, index) => { - const dokument = alleDokumenter.find(dok => dok.journalpostId === field.journalpostId); - const documentHash = hash(dokument); - return ( - hash(d) === documentHash) > -1} - skalViseBegrunnelse={erOverstyrt || harAksjonspunkt || editForm} - readOnly={(isReadOnly || (!erOverstyrt && !harÅpentAksjonspunkt)) && !editForm} - dokumentIndex={index} - dokument={dokument} - toggleEditForm={toggleEditForm} - erOverstyrt={erOverstyrt} - redigerVurdering={editForm} - dokumentErVurdert={status !== vilkårStatus.IKKE_VURDERT} - periode={periode} - kanEndrePåSøknadsopplysninger={kanEndrePåSøknadsopplysninger} - /> - ); - }) - : 'Det finnes ingen dokumenter knyttet til denne behandlingen'} -
- - {erOverstyrt && ( - <> -
- - -
-
- - - - - - )} - {(harÅpentAksjonspunkt || editForm) && !erOverstyrt && ( - - - {editForm && ( - - )} - - )} - - )} - - ); -}; - -export default SoknadsfristVilkarForm; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.spec.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.spec.tsx deleted file mode 100644 index 22502c817a..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.spec.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import SoknadsfristVilkarHeader from './SoknadsfristVilkarHeader'; - -describe('', () => { - it('skal rendre header', () => { - render( - undefined} - panelTittelKode="Søknadsfrist" - erOverstyrt - aksjonspunkter={[]} - />, - ); - - expect(screen.getByRole('heading', { name: 'Søknadsfrist' })).toBeInTheDocument(); - expect(screen.getByText('§')).toBeInTheDocument(); - expect(screen.getByText('23')).toBeInTheDocument(); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.tsx b/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.tsx deleted file mode 100644 index 470df42579..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/components/SoknadsfristVilkarHeader.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { vilkårStatus } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/VilkårStatus.js'; -import { Lovreferanse } from '@k9-sak-web/gui/shared/lovreferanse/Lovreferanse.js'; -import { CheckmarkCircleFillIcon, KeyHorizontalIcon, XMarkOctagonFillIcon } from '@navikt/aksel-icons'; -import { Button, Detail, Heading, HStack, Label } from '@navikt/ds-react'; -import { AksjonspunktDto } from '@navikt/k9-sak-typescript-client'; -import { SetStateAction } from 'react'; -import styles from './SoknadsfristVilkarForm.module.css'; - -const isOverridden = (aksjonspunktCodes: string[], aksjonspunktCode: string) => - aksjonspunktCodes.some(code => code === aksjonspunktCode); -const isHidden = (kanOverstyre: boolean, aksjonspunktCodes: string[], aksjonspunktCode: string) => - !isOverridden(aksjonspunktCodes, aksjonspunktCode) && !kanOverstyre; - -const VilkarOkMessage = ({ originalErVilkarOk }: { originalErVilkarOk: boolean }) => { - let message = 'Ikke behandlet'; - if (originalErVilkarOk) { - message = 'Vilkåret er oppfylt for hele perioden'; - } else if (originalErVilkarOk === false) { - message = 'Vilkåret er avslått'; - } - - return ( - - ); -}; - -interface SoknadsfristVilkarHeaderProps { - aksjonspunkter: AksjonspunktDto[]; - erOverstyrt?: boolean; - kanOverstyreAccess?: { - employeeHasAccess: boolean; - isEnabled: boolean; - }; - lovReferanse?: string; - overrideReadOnly: boolean; - overstyringApKode: string; - panelTittelKode: string; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; - status: string; -} - -const SoknadsfristVilkarHeader = ({ - panelTittelKode, - erOverstyrt, - overstyringApKode, - lovReferanse, - overrideReadOnly, - kanOverstyreAccess, - aksjonspunkter, - status, - toggleOverstyring, -}: Partial) => { - const aksjonspunktCodes = aksjonspunkter.map(a => a.definisjon); - const erOppfylt = vilkårStatus.OPPFYLT === status; - const originalErVilkarOk = vilkårStatus.IKKE_VURDERT !== status ? erOppfylt : undefined; - const togglePa = () => { - toggleOverstyring(oldArray => [...oldArray, overstyringApKode]); - }; - return ( - <> - <> - - {!erOverstyrt && originalErVilkarOk !== undefined && ( - <> - {originalErVilkarOk ? ( - - ) : ( - - )} - - )} - - {panelTittelKode} - - {lovReferanse && ( - - {lovReferanse} - - )} - -
-
-
- -
- {originalErVilkarOk !== undefined && - kanOverstyreAccess.employeeHasAccess && - !isHidden(kanOverstyreAccess.isEnabled, aksjonspunktCodes, overstyringApKode) && ( - <> - {!erOverstyrt && !overrideReadOnly && ( -
-
- )} - {(erOverstyrt || overrideReadOnly) && ( -
-
- -
- )} - - )} -
- -
- - ); -}; - -export default SoknadsfristVilkarHeader; diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/utils.spec.ts b/packages/prosess-vilkar-soknadsfrist-v2/src/utils.spec.ts deleted file mode 100644 index 12967d0c08..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/utils.spec.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import type { VilkårMedPerioderDto } from '@navikt/k9-sak-typescript-client'; -import { formatDate, hentAktivePerioderFraVilkar, utledInnsendtSoknadsfrist } from './utils'; - -describe('formatDate', () => { - it('should format a valid date string correctly', () => { - const result = formatDate('2023-01-01'); - expect(result).toBe('01.01.2023'); - }); - - it('should handle an invalid date string', () => { - const result = formatDate('invalid-date'); - expect(result).toBe('Invalid Date'); - }); - - it('should handle an empty date string', () => { - const result = formatDate(''); - expect(result).toBe('Invalid Date'); - }); -}); - -describe('utledInnsendtSoknadsfrist', () => { - it('should return formatted date string for a valid date input', () => { - const result = utledInnsendtSoknadsfrist('2023-01-01'); - expect(result).toBe('2022-10-01'); - }); - - it('should return date object for a valid date input without formatting', () => { - const result = utledInnsendtSoknadsfrist('2023-01-01', false); - expect(result).toStrictEqual(initializeDate('2022-10-01')); - }); - - it('should handle an invalid date string', () => { - const result = utledInnsendtSoknadsfrist('invalid-date'); - expect(result).toBe('Invalid Date'); - }); -}); - -describe('hentAktivePerioderFraVilkar', () => { - it('should return an empty array if there are no periods in vilkar', () => { - const vilkar = [{ perioder: [] }]; - const result = hentAktivePerioderFraVilkar(vilkar as VilkårMedPerioderDto[], true); - expect(result).toEqual([]); - }); - - it('should return filtered and sorted periods when visAllePerioder is true', () => { - const vilkar = [ - { - perioder: [ - { periode: { fom: '2023-01-01' }, vurderesIBehandlingen: false }, - { periode: { fom: '2023-02-01' }, vurderesIBehandlingen: true }, - ], - }, - ]; - - const result = hentAktivePerioderFraVilkar(vilkar as VilkårMedPerioderDto[], true); - expect(result).toEqual([{ periode: { fom: '2023-01-01' }, vurderesIBehandlingen: false }]); - }); - - it('should return filtered and sorted periods when visAllePerioder is false', () => { - const vilkar = [ - { - perioder: [ - { periode: { fom: '2023-01-01' }, vurderesIBehandlingen: false }, - { periode: { fom: '2023-02-01' }, vurderesIBehandlingen: true }, - ], - }, - ]; - - const result = hentAktivePerioderFraVilkar(vilkar as VilkårMedPerioderDto[], false); - expect(result).toEqual([{ periode: { fom: '2023-02-01' }, vurderesIBehandlingen: true }]); - }); - - it('should return sorted periods in reverse order', () => { - const vilkar = [ - { - perioder: [ - { periode: { fom: '2023-01-01' }, vurderesIBehandlingen: false }, - { periode: { fom: '2023-02-01' }, vurderesIBehandlingen: false }, - ], - }, - ]; - - const result = hentAktivePerioderFraVilkar(vilkar as VilkårMedPerioderDto[], true); - expect(result).toEqual([ - { periode: { fom: '2023-02-01' }, vurderesIBehandlingen: false }, - { periode: { fom: '2023-01-01' }, vurderesIBehandlingen: false }, - ]); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist-v2/src/utils.ts b/packages/prosess-vilkar-soknadsfrist-v2/src/utils.ts deleted file mode 100644 index fdb2503027..0000000000 --- a/packages/prosess-vilkar-soknadsfrist-v2/src/utils.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { DDMMYYYY_DATE_FORMAT } from '@k9-sak-web/lib/dateUtils/formats.js'; -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import type { VilkårMedPerioderDto } from '@navikt/k9-sak-typescript-client'; -import { Dayjs } from 'dayjs'; - -export const formatDate = (dato: string) => initializeDate(dato).format(DDMMYYYY_DATE_FORMAT); - -export const utledInnsendtSoknadsfrist = (innsendtDato: string, formatDate: boolean = true) => { - const dt = initializeDate(innsendtDato).startOf('month').subtract(3, 'months'); - - if (formatDate) { - return dt.format('YYYY-MM-DD'); - } - - return dt; -}; - -export const dateSorter = (date1: Dayjs, date2: Dayjs) => { - if (date1.isBefore(date2)) { - return -1; - } - if (date2.isBefore(date1)) { - return 1; - } - return 0; -}; - -export const dateStringSorter = (date1: string, date2: string) => { - const date1AsDayjs = initializeDate(date1); - const date2AsDayjs = initializeDate(date2); - return dateSorter(date1AsDayjs, date2AsDayjs); -}; - -export const hentAktivePerioderFraVilkar = (vilkar: VilkårMedPerioderDto[], visAllePerioder: boolean) => { - const [activeVilkår] = vilkar; - - if (!activeVilkår?.perioder) { - return []; - } - - return activeVilkår.perioder - .filter( - periode => - (visAllePerioder && !periode.vurderesIBehandlingen) || (periode.vurderesIBehandlingen && !visAllePerioder), - ) - .sort((a, b) => dateStringSorter(a.periode.fom, b.periode.fom)) - .reverse(); -}; diff --git a/packages/prosess-vilkar-soknadsfrist/i18n/nb_NO.json b/packages/prosess-vilkar-soknadsfrist/i18n/nb_NO.json deleted file mode 100644 index 28261db43a..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/i18n/nb_NO.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "SoknadsfristVilkarForm.ErOppfylt": "Vilkåret er oppfylt for hele perioden", - "SoknadsfristVilkarForm.ErIkkeOppfylt": "Vilkåret er avslått", - "SoknadsfristVilkarForm.ErDelvisOppfylt": "Vilkåret er oppfylt for deler av perioden", - "SoknadsfristVilkarForm.IkkeBehandlet": "Ikke behandlet", - "SoknadsfristVilkarForm.Endret": "Endret av saksbehandler", - "SoknadsfristVilkarForm.AutomatiskVurdering": "Manuell overstyring av automatisk vurdering", - "SoknadsfristVilkarForm.AvklarVurdering": "Vurder om søknadsfristvilkåret er oppfylt", - "SoknadsfristVilkarForm.Avbryt": "Avbryt", - "SoknadsfristVilkarForm.Unntakstilfeller": "Overstyring skal kun gjøres i unntakstilfeller", - "SoknadsfristVilkarForm.VilkarIkkeOppfylt": "Vilkåret er ikke oppfylt for denne perioden", - "SoknadsfristVilkarForm.IngenDokumenter": "Det finnes ingen dokumenter knyttet til denne behandlingen", - - "SoknadsfristVilkarForm.Dato": "Oppgi dato søknadsfristvilkåret er oppfylt fra", - "SoknadsfristVilkarForm.ConfirmInformation": "Bekreft og gå videre", - - "OverstyrVurderingVelger.OverstyrBeregning": "Overstyr beregning", - "OverstyrVurderingVelger.OverstyrtBeregning": "Overstyrt beregning", - "OverstyrVurderingVelger.OverstyrAutomatiskVurdering": "Overstyr automatisk vurdering", - "OverstyrVurderingVelger.OverstyrtAutomatiskVurdering": "Overstyrt automatisk vurdering", - "OverstyrBekreftKnappPanel.ConfirmInformation": "Bekreft overstyring", - "VilkarBegrunnelse.Vilkar": "Vurder om det har vært fristavbrytende kontakt", - "VilkarResultPicker.Arsak": "Avslagsårsak", - "VilkarResultPicker.SelectArsak": "Velg årsak", - "VilkarResultPicker.VilkarOppfylt": "Vilkåret er oppfylt", - "VilkarResultPicker.VilkarIkkeOppfylt": "Vilkåret er ikke oppfylt", - "VilkarResultPanel.VilkarOppfylt": "Vilkåret er oppfylt", - "VilkarResultPanel.VilkarIkkeOppfylt": "Vilkåret er ikke oppfylt", - "VilkarResultPicker.VilkarOppfyltRevurderingFom": "Vilkåret er oppfylt f.o.m. {fom}", - "VilkarResultPicker.VilkarIkkeOppfyltRevurderingFom": "Vilkåret er ikke oppfylt f.o.m. {fom}", - - "Inngangsvilkar.Soknadsfrist": "Søknadsfrist", - - "VilkarBegrunnelse.BegrunnVurdering": "Begrunn vurderingen din", - "VilkarResultPicker.VilkarDato": "Dato", - "ValidationMessage.NotEmpty": "Feltet må fylles ut", - "ValidationMessage.MinLength": "Du må skrive minst {length} tegn", - "ValidationMessage.MaxLength": "Du kan skrive maksimalt {length} tegn", - "ValidationMessage.MinValue": "Feltet må være større eller lik {length}", - "ValidationMessage.MaxValue": "Feltet må være mindre eller lik {length}", - "ValidationMessage.InvalidDate": "Dato må skrives slik : dd.mm.åååå", - "ValidationMessage.DateNotBeforeOrEqual": "Dato må være før eller lik {limit}", - "ValidationMessage.DateNotAfterOrEqual": "Dato må være etter eller lik {limit}", - "ValidationMessage.DateRangesOverlapping": "Perioder kan ikke overlappe i tid", - "ValidationMessage.DateRangesOverlappingPeriodTypes": "Perioder kan ikke overlappe i tid (uttak, utsettelse, gradering, overforing, opphold)", - "ValidationMessage.DatesNotEqual": "Dato må være lik {value}", - "ValidationMessage.InvalidInteger": "Tallet kan ikke ha desimaler", - "ValidationMessage.InvalidDecimal": "Tallet kan ikke inneholde mer enn to desimaler", - "ValidationMessage.InvalidDatesInPeriod": "Periode må skrives slik : dd.mm.åååå - dd.mm.åååå", - "ValidationMessage.InvalidPeriod": "Startdato må være før eller lik sluttdato", - "ValidationMessage.InvalidPeriodRange": "Periode er utenfor opptjeningsperioden", - "ValidationMessage.InvalidNumber": "Feltet kan kun inneholde tall", - "ValidationMessage.utbetalingsgradErMerSamtidigUttaksprosent": "Feltet kan ikke være høyere enn samtidig uttaksprosent", - "ValidationMessage.maxLengthOrFodselsnr": "Du kan skrive maksimalt {length} tegn eller et fødselsnummer (11 siffer)", - "ValidationMessage.Registrering.TerminEllerFoedselMessage": "Fyll ut informasjon om termindato eller fødselsdato", - "ValidationMessage.InvalidFodselsnummerFormat": "Feltet må være et fødselsnummer (11 siffer)", - "ValidationMessage.InvalidFodselsnummer": "Ugyldig fødselsnummer", - "ValidationMessage.SammeFodselsnummerSomSoker": "Fødselsnummer til den andre forelderen kan ikke være det samme som søker.", - "ValidationMessage.InvalidText": "Feltet inneholder ugyldige tegn: {text}", - "ValidationMessage.InvalidValue": "Feltet inneholder en ugyldig verdi: {value}", - "ValidationMessage.ArrayMinLength": "Listen må ha lengde større enn: {length}", - "ValidationMessage.InvalidSaksnummerOrFodselsnummerFormat": "Ugyldig saksnummer eller fødselsnummer", - "ValidationMessage.InvalidTrekkAntallDagerUttakForm": "Antall dager i {periode} kan ikke være høyere enn {maxDays}", - "ValidationMessage.InvalidTrekkDagerFlerbarnsdager": "Antall dager med flerbarnsdager kan ikke være høyere enn {maxDays}", - "ValidationMessage.NegativeSaldo": "Antall dager kan ikke overstige dagene som gjenstår på {periode}. Det er oppgitt {days} dager for mye.", - "ValidationMessage.InvalidStonadskonto": "Stønadskonto {konto} er ikke tilgjengelig", - "ValidationMessage.MinstEnPeriodeRequired": "Minst en av følgende perioder må være utfylt: fullt uttak, overføring av kvote, utsettelse eller gradering", - "ValidationMessage.trekkdagerErMerEnnNullUtsettelse": "Ingen trekkdager for utsettelse", - "ValidationMessage.utbetalingMerEnnNullUtsettelse": "Ingen utbetalingsgrad for utsettelse", - "ValidationMessage.ukerOgDagerVidNullUtbetalningsgradMessage": "Trekk minst en dag når utbetalingsgraden er høyre enn 0%", - "ValidationMessage.UtsettelseUtenFullArbeid": "Søker har ikke 100% stilling, vurder om perioden kan utsettes.", - "ValidationMessage.MerEn100Prosent": "Samlet utbetalingsgrad og andel i arbeid bør ikke overskride 100%.", - "ValidationMessage.MerEn100ProsentOgOgyldigUtsettlse": "Samlet utbetalingsgrad og andel i arbeid bør ikke overskride 100%. Søker har ikke 100% stilling, vurder om perioden kan utsettes.", - "ValidationMessage.InvalidOrganisasjonsnummer": "Ugyldig organisasjonsnummer.", - "Calendar.Day.0": "søndag", - "Calendar.Day.1": "mandag", - "Calendar.Day.2": "tirsdag", - "Calendar.Day.3": "onsdag", - "Calendar.Day.4": "torsdag", - "Calendar.Day.5": "fredag", - "Calendar.Day.6": "lørdag", - "Calendar.Day.Short.0": "søn", - "Calendar.Day.Short.1": "man", - "Calendar.Day.Short.2": "tir", - "Calendar.Day.Short.3": "ons", - "Calendar.Day.Short.4": "tor", - "Calendar.Day.Short.5": "fre", - "Calendar.Day.Short.6": "lør", - "Calendar.Month.0": "Januar", - "Calendar.Month.1": "Februar", - "Calendar.Month.2": "Mars", - "Calendar.Month.3": "April", - "Calendar.Month.4": "Mai", - "Calendar.Month.5": "Juni", - "Calendar.Month.6": "Juli", - "Calendar.Month.7": "August", - "Calendar.Month.8": "September", - "Calendar.Month.9": "Oktober", - "Calendar.Month.10": "November", - "Calendar.Month.11": "Desember", - "Behandling.EditedField": "Saksbehandler har endret feltets verdi", - - "Sidemeny.Perioder": "Perioder", - - "HelpText.Aksjonspunkt": "Aksjonspunkt" -} diff --git a/packages/prosess-vilkar-soknadsfrist/index.ts b/packages/prosess-vilkar-soknadsfrist/index.ts deleted file mode 100644 index 24912aadac..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './src/SoknadsfristVilkarProsessIndex'; diff --git a/packages/prosess-vilkar-soknadsfrist/package.json b/packages/prosess-vilkar-soknadsfrist/package.json deleted file mode 100644 index e439ce7f22..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@k9-sak-web/prosess-vilkar-soknadsfrist", - "version": "1.0.0", - "module": "index.ts", - "license": "MIT", - "private": true, - "dependencies": { - "@fpsak-frontend/assets": "1.0.0", - "@fpsak-frontend/form": "1.0.0", - "@fpsak-frontend/kodeverk": "1.0.0", - "@fpsak-frontend/shared-components": "1.0.0", - "@fpsak-frontend/utils": "1.0.0", - "@k9-sak-web/sak-app": "1.0.0", - "@k9-sak-web/types": "1.0.0", - "@navikt/ft-plattform-komponenter": "5.1.5", - "classnames": "2.5.1", - "moment": "2.30.1", - "object-hash": "3.0.0", - "react": "18.3.1", - "react-intl": "7.0.1", - "react-redux": "9.2.0", - "redux": "5.0.1", - "redux-form": "8.3.10", - "reselect": "5.1.1" - }, - "devDependencies": { - "@fpsak-frontend/utils-test": "1.0.0" - } -} diff --git a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.module.css b/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.module.css deleted file mode 100644 index 077ad1e46f..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.module.css +++ /dev/null @@ -1,20 +0,0 @@ -.contentContainer { - flex: 1; -} - -.sideMenuContainer { - margin: 0 32px 0 0; -} - -.sideMenuContainer > div { - height: auto; -} - -.mainContainer--withSideMenu { - display: flex; - margin-left: -32px; -} - -.warningIcon { - margin-left: 1rem; -} diff --git a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.spec.tsx b/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.spec.tsx deleted file mode 100644 index 0ddf40e649..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.spec.tsx +++ /dev/null @@ -1,175 +0,0 @@ -import { renderWithIntlAndReduxForm } from '@fpsak-frontend/utils-test/test-utils'; -import { Behandling } from '@k9-sak-web/types'; -import { screen } from '@testing-library/react'; -import React from 'react'; -import SoknadsfristVilkarProsessIndex from './SoknadsfristVilkarProsessIndex'; -import messages from '../i18n/nb_NO.json'; - -const soknadsfristStatus = { - dokumentStatus: [], -}; - -describe('', () => { - it('skal rendre tabs dersom bare en periode', () => { - renderWithIntlAndReduxForm( - , - { messages }, - ); - expect(screen.getByText('Perioder')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: '01.03.2020 - 01.04.2020' })).toBeInTheDocument(); - }); - - it('skal rendre tabs med aksjonspunkt dersom bare en periode og statusperiode er inneholdt i vilkårsperiode', () => { - renderWithIntlAndReduxForm( - , - { messages }, - ); - expect(screen.getByText('Perioder')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: '01.02.2023 - 01.04.2024 Aksjonspunkt' })).toBeInTheDocument(); - expect(screen.getByRole('radio', { name: 'Vilkåret er oppfylt for hele perioden' })).toBeInTheDocument(); - expect(screen.getByRole('radio', { name: 'Vilkåret er oppfylt for deler av perioden' })).toBeInTheDocument(); - expect(screen.getByRole('radio', { name: 'Vilkåret er ikke oppfylt for denne perioden' })).toBeInTheDocument(); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.stories.tsx b/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.stories.tsx deleted file mode 100644 index 50ce488251..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.stories.tsx +++ /dev/null @@ -1,605 +0,0 @@ -import React from 'react'; - -import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { behandlingType } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/BehandlingType.js'; -import { Behandling, DokumentStatus, Vilkar } from '@k9-sak-web/types'; -import { action } from '@storybook/addon-actions'; -import SoknadsfristVilkarProsessIndex from './SoknadsfristVilkarProsessIndex'; - -const vilkarSoknadsfrist = [ - { - vilkarType: { kode: vilkarType.SOKNADSFRISTVILKARET, kodeverk: 'test' }, - overstyrbar: true, - perioder: [ - { - vilkarStatus: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-20', - tom: '2020-02-25', - }, - }, - { - vilkarStatus: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-26', - tom: '2020-02-27', - }, - }, - { - vilkarStatus: { kode: vilkarUtfallType.OPPFYLT, kodeverk: 'test' }, - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-28', - tom: '2020-02-29', - }, - }, - ], - } as Vilkar, -]; - -const soknadsStatus = { - dokumentStatus: [ - { - type: 'SOKNAD', - status: [ - { - periode: { fom: '2020-02-20', tom: '2020-02-25' }, - status: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '12345', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SOKNAD', - status: [ - { - periode: { fom: '2020-02-26', tom: '2020-02-27' }, - status: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '23456', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ] as DokumentStatus[], -}; - -export default { - title: 'prosess/prosess-vilkar-soknadsfrist', - component: SoknadsfristVilkarProsessIndex, -}; -const behandling = { - id: 1, - versjon: 1, - type: { kode: behandlingType.FØRSTEGANGSSØKNAD, kodeverk: 'BEHANDLING_TYPE' }, -} as Behandling; - -export const visOverstyringspanelForSoknadsfrist = props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={soknadsStatus} - panelTittelKode="Inngangsvilkar.Soknadsfrist" - vilkar={vilkarSoknadsfrist} - visAllePerioder - {...props} - /> - ); -}; - -visOverstyringspanelForSoknadsfrist.args = { - overrideReadOnly: false, - kanOverstyreAccess: { - isEnabled: true, - }, -}; - -export const visOverstyringspanelForSoknadsfristUtenDokumenter = props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ dokumentStatus: [] }} - panelTittelKode="Inngangsvilkar.Soknadsfrist" - vilkar={vilkarSoknadsfrist} - visAllePerioder - {...props} - /> - ); -}; - -visOverstyringspanelForSoknadsfristUtenDokumenter.args = { - overrideReadOnly: false, - kanOverstyreAccess: { - isEnabled: true, - }, -}; - -export const visSoknadsfristAksjonspunkt5077 = props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - status: { kode: 'IKKE_VURDERT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - }, - { - periode: { fom: '2021-05-01', tom: '2021-05-05' }, - status: { kode: 'OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - }, - ], - innsendingstidspunkt: '2021-08-19T11:50:21.894', - journalpostId: '510536417', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Inngangsvilkar.Soknadsfrist" - vilkar={[ - { - vilkarType: { kode: 'FP_VK_3', kodeverk: 'VILKAR_TYPE' }, - lovReferanse: null, - overstyrbar: true, - perioder: [ - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { kode: 'IKKE_VURDERT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { kode: 'OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - periode: { fom: '2021-05-01', tom: '2021-05-05' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - ], - }, - ]} - visAllePerioder={false} - {...props} - /> - ); -}; - -visSoknadsfristAksjonspunkt5077.args = { - overrideReadOnly: false, - kanOverstyreAccess: { - isEnabled: true, - }, -}; - -export const visSoknadsfristAksjonspunkt5077Delvis = props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', - status: [ - { - periode: { fom: '2021-04-26', tom: '2021-04-27' }, - status: { kode: 'IKKE_OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - }, - { - periode: { fom: '2021-04-28', tom: '2021-05-06' }, - status: { kode: 'OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - }, - ], - innsendingstidspunkt: '2021-08-26T16:17:16.538', - journalpostId: '510540058', - avklarteOpplysninger: { - godkjent: true, - fraDato: '2021-04-27', - begrunnelse: [ - 'jsdfsdf ljksdlkfj sldjf lsdkjf lsjdf\n\n\n', - 'sdsdfs øjjølksdjfølkjsd fjsd s fløskjdflsjd f\n\n\n', - 'sdklfjsøl jølsdjfø lsjdfljsldøjf sdjf slødjf sld\n\n\n', - 'sldfj sljfølsjd fløsdlfj øsldjf lsøjdfølsdjfløsjd lsdfs', - ].join(''), - opprettetAv: 'saksbeh', - opprettetTidspunkt: '2021-08-26T16:17:16.538', - }, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Inngangsvilkar.Soknadsfrist" - vilkar={[ - { - vilkarType: { kode: 'FP_VK_3', kodeverk: 'VILKAR_TYPE' }, - lovReferanse: null, - overstyrbar: true, - perioder: [ - { - avslagKode: '1007', - merknadParametere: {}, - vilkarStatus: { kode: 'IKKE_OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - periode: { fom: '2021-04-26', tom: '2021-04-27' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { kode: 'OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - periode: { fom: '2021-04-28', tom: '2021-04-30' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { kode: 'OPPFYLT', kodeverk: 'VILKAR_UTFALL_TYPE' }, - periode: { fom: '2021-05-01', tom: '2021-05-06' }, - begrunnelse: null, - vurderesIBehandlingen: true, - }, - ], - }, - ]} - visAllePerioder - {...props} - /> - ); -}; - -visSoknadsfristAksjonspunkt5077Delvis.args = { - overrideReadOnly: false, - kanOverstyreAccess: { - isEnabled: true, - }, -}; - -export const VisSoknadsfristAksjonspunkt5077FlereSøknader = { - args: { - overrideReadOnly: false, - kanOverstyreAccess: { - isEnabled: true, - }, - }, - render: props => { - const [erOverstyrt, toggleOverstyring] = React.useState(false); - return ( - toggleOverstyring(!erOverstyrt)} - erOverstyrt={erOverstyrt} - soknadsfristStatus={{ - dokumentStatus: [ - { - type: 'SØKNAD', - status: [ - { - periode: { - fom: '2024-03-25', - tom: '2024-03-29', - }, - status: { - kode: 'IKKE_VURDERT', - kodeverk: 'VILKAR_UTFALL_TYPE', - }, - }, - ], - innsendingstidspunkt: '2024-09-05T13:01:56.322', - journalpostId: '671129216', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', - status: [ - { - periode: { - fom: '2024-03-04', - tom: '2024-03-08', - }, - status: { - kode: 'IKKE_VURDERT', - kodeverk: 'VILKAR_UTFALL_TYPE', - }, - }, - ], - innsendingstidspunkt: '2024-09-05T13:00:44.446', - journalpostId: '671129199', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SØKNAD', - status: [ - { - periode: { - fom: '2024-04-15', - tom: '2024-04-19', - }, - status: { - kode: 'IKKE_VURDERT', - kodeverk: 'VILKAR_UTFALL_TYPE', - }, - }, - ], - innsendingstidspunkt: '2024-09-05T13:03:07.003', - journalpostId: '671129200', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - ], - }} - panelTittelKode="Søknadsfrist" - vilkar={[ - { - vilkarType: { - kode: 'FP_VK_3', - kodeverk: 'VILKAR_TYPE', - }, - lovReferanse: '§ 22-13 tredje ledd', - overstyrbar: true, - perioder: [ - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { - kode: 'IKKE_VURDERT', - kodeverk: 'VILKAR_UTFALL_TYPE', - }, - periode: { - fom: '2024-03-04', - tom: '2024-03-08', - }, - begrunnelse: null, - vurderesIBehandlingen: true, - vurdersIBehandlingen: true, - merknad: { - kode: '-', - kodeverk: 'VILKAR_UTFALL_MERKNAD', - }, - }, - { - avslagKode: null, - merknadParametere: {}, - vilkarStatus: { - kode: 'IKKE_VURDERT', - kodeverk: 'VILKAR_UTFALL_TYPE', - }, - periode: { - fom: '2024-03-25', - tom: '2024-03-29', - }, - begrunnelse: null, - vurderesIBehandlingen: true, - vurdersIBehandlingen: true, - merknad: { - kode: '-', - kodeverk: 'VILKAR_UTFALL_MERKNAD', - }, - }, - ], - }, - ]} - {...props} - /> - ); - }, -}; diff --git a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.tsx b/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.tsx deleted file mode 100644 index 35fd048e3a..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/SoknadsfristVilkarProsessIndex.tsx +++ /dev/null @@ -1,213 +0,0 @@ -import classNames from 'classnames/bind'; -import { Dayjs } from 'dayjs'; -import { SetStateAction, useEffect, useState } from 'react'; -import { RawIntlProvider, createIntl, createIntlCache } from 'react-intl'; - -import advarselIcon from '@fpsak-frontend/assets/images/advarsel.svg'; -import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; -import aksjonspunktStatus from '@fpsak-frontend/kodeverk/src/aksjonspunktStatus'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { Image } from '@fpsak-frontend/shared-components'; -import { Aksjonspunkt, Behandling, DokumentStatus, SubmitCallback, Vilkar } from '@k9-sak-web/types'; -import { SideMenu } from '@navikt/ft-plattform-komponenter'; - -import hentAktivePerioderFraVilkar from '@fpsak-frontend/utils/src/hentAktivePerioderFraVilkar'; -import { utledInnsendtSoknadsfrist } from './utils'; - -import { formatDate } from '@k9-sak-web/lib/dateUtils/dateUtils.js'; -import { initializeDate } from '@k9-sak-web/lib/dateUtils/initializeDate.js'; -import messages from '../i18n/nb_NO.json'; -import styles from './SoknadsfristVilkarProsessIndex.module.css'; -import SoknadsfristVilkarFormV1 from './components/SoknadsfristVilkarForm'; -import SoknadsfristVilkarHeaderV1 from './components/SoknadsfristVilkarHeader'; - -const cx = classNames.bind(styles); - -const cache = createIntlCache(); - -const intl = createIntl( - { - locale: 'nb-NO', - messages, - }, - cache, -); - -const lovReferanse = '§ 22-13'; - -interface SoknadsfristVilkarProsessIndexProps { - behandling: Behandling; - aksjonspunkter: Aksjonspunkt[]; - submitCallback: (props: SubmitCallback[]) => void; - overrideReadOnly: boolean; - kanOverstyreAccess: { - isEnabled: boolean; - }; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; - erOverstyrt: boolean; - panelTittelKode: string; - vilkar: Vilkar[]; - visAllePerioder: boolean; - soknadsfristStatus: { dokumentStatus: DokumentStatus[] }; -} - -// Finner ut om Statusperiode gjelder for vilkårsperiode -const erRelevantForPeriode = ( - vilkårPeriodeFom: Dayjs, - vilkårPeriodeTom: Dayjs, - statusPeriodeFom: Dayjs, - statusPeriodeTom: Dayjs, - innsendtDato: string, -) => { - // er starten av vilkårsperioden før opprinnelig søkndasfrist - const erAktuellForPerioden = utledInnsendtSoknadsfrist(innsendtDato, false) > vilkårPeriodeFom; - // overlapper vilkårsperioden med statusperioden fra dokumentet - const overlapperPerioder = vilkårPeriodeFom <= statusPeriodeTom && vilkårPeriodeTom >= statusPeriodeFom; - return erAktuellForPerioden && overlapperPerioder; -}; - -const SoknadsfristVilkarProsessIndex = ({ - behandling, - aksjonspunkter, - submitCallback, - overrideReadOnly, - kanOverstyreAccess, - toggleOverstyring, - erOverstyrt, - panelTittelKode, - vilkar, - visAllePerioder, - soknadsfristStatus, -}: SoknadsfristVilkarProsessIndexProps) => { - const [activeTab, setActiveTab] = useState(0); - const [activeVilkår] = vilkar; - const perioder = hentAktivePerioderFraVilkar(vilkar, visAllePerioder); - useEffect(() => { - if (!visAllePerioder && activeTab >= perioder.length) { - setActiveTab(0); - } - }, [activeTab, visAllePerioder]); - - if (perioder.length === 0) { - return null; - } - - useEffect(() => { - if (perioder.length > 1) { - const førsteIkkeVurdertPeriodeIndex = perioder.findIndex( - periode => periode.vurderesIBehandlingen && periode.vilkarStatus.kode === vilkarUtfallType.IKKE_VURDERT, - ); - if (førsteIkkeVurdertPeriodeIndex > 0) { - setActiveTab(førsteIkkeVurdertPeriodeIndex); - } - } - }, []); - - const activePeriode = perioder.length === 1 ? perioder[0] : perioder[activeTab]; - - const harÅpentAksjonspunkt = aksjonspunkter.some( - ap => - ap.definisjon.kode === aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST && - ap.status.kode === aksjonspunktStatus.OPPRETTET && - ap.kanLoses, - ); - - const dokumenterSomSkalVurderes = Array.isArray(soknadsfristStatus?.dokumentStatus) - ? soknadsfristStatus.dokumentStatus.filter(dok => - dok.status.some(status => { - const erOppfyllt = status.status.kode === vilkarUtfallType.OPPFYLT; - const avklartEllerOverstyrt = dok.overstyrteOpplysninger || dok.avklarteOpplysninger; - - if (erOppfyllt && !avklartEllerOverstyrt) { - return false; - } - - const statusPeriodeFom = initializeDate(status.periode.fom); - const statusPeriodeTom = initializeDate(status.periode.tom); - - return perioder.some(vilkårPeriode => { - const vilkårPeriodeFom = initializeDate(vilkårPeriode.periode.fom); - const vilkårPeriodeTom = initializeDate(vilkårPeriode.periode.tom); - return erRelevantForPeriode( - vilkårPeriodeFom, - vilkårPeriodeTom, - statusPeriodeFom, - statusPeriodeTom, - dok.innsendingstidspunkt, - ); - }); - }), - ) - : []; - - const activePeriodeFom = initializeDate(activePeriode.periode.fom); - const activePeriodeTom = initializeDate(activePeriode.periode.tom); - - const dokumenterIAktivPeriode = dokumenterSomSkalVurderes.filter(dok => - dok.status.some(status => { - const statusPeriodeFom = initializeDate(status.periode.fom); - const statusPeriodeTom = initializeDate(status.periode.tom); - return erRelevantForPeriode( - activePeriodeFom, - activePeriodeTom, - statusPeriodeFom, - statusPeriodeTom, - dok.innsendingstidspunkt, - ); - }), - ); - - return ( - -
-
- ({ - active: activeTab === index, - label: `${formatDate(periode.fom)} - ${formatDate(periode.tom)}`, - icon: - (erOverstyrt || harÅpentAksjonspunkt) && vilkarStatus.kode !== vilkarUtfallType.OPPFYLT ? ( - Aksjonspunkt - ) : null, - }))} - onClick={setActiveTab} - theme="arrow" - heading="Perioder" - /> -
-
- - -
-
-
- ); -}; - -export default SoknadsfristVilkarProsessIndex; diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.module.css b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.module.css deleted file mode 100644 index ea0d1198a9..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.module.css +++ /dev/null @@ -1,13 +0,0 @@ -.container { - padding-right: 15px; -} - -.image { - height: 16px; - margin-top: -2px; - width: 16px; -} - -.fullBreddeIE { - width: 100%; -} diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.tsx b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.tsx deleted file mode 100644 index d90d0fe3af..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarDokument.tsx +++ /dev/null @@ -1,174 +0,0 @@ -import avslattImage from '@fpsak-frontend/assets/images/avslaatt.svg'; -import innvilgetImage from '@fpsak-frontend/assets/images/check.svg'; -import { DatepickerField, RadioGroupField, TextAreaField } from '@fpsak-frontend/form'; -import { FlexColumn, FlexContainer, FlexRow, Image, VerticalSpacer } from '@fpsak-frontend/shared-components'; -import { - dateAfterOrEqual, - dateBeforeOrEqual, - hasValidDate, - hasValidText, - maxLength, - minLength, - required, - requiredIfNotPristine, -} from '@fpsak-frontend/utils'; -import { DokumentStatus } from '@k9-sak-web/types'; -import { BodyShort } from '@navikt/ds-react'; -import { AssessedBy } from '@navikt/ft-plattform-komponenter'; -import moment from 'moment'; -import { useCallback, useMemo } from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; - -import { formatDate } from '../utils'; - -import styles from './SoknadsfristVilkarDokument.module.css'; - -const minLength3 = minLength(3); -const maxLength1500 = maxLength(1500); -interface SoknadsfristVilkarDokumentProps { - erVilkarOk?: boolean | string; - readOnly: boolean; - skalViseBegrunnelse?: boolean; - dokument: DokumentStatus; - dokumentIndex: number; - erAktivtDokument: boolean; -} - -export const DELVIS_OPPFYLT = 'DELVIS_OPPFYLT'; - -/** - * SoknadsfristVilkarDokument - * - * Presentasjonskomponent. Viser resultat av søknadsfristvilkåret når det ikke finnes tilknyttede aksjonspunkter. - * Resultatet kan overstyres av Nav-ansatt med overstyr-rettighet. - */ -export const SoknadsfristVilkarDokument = ({ - erVilkarOk, - readOnly, - skalViseBegrunnelse = true, - dokument, - erAktivtDokument, - dokumentIndex, -}: SoknadsfristVilkarDokumentProps) => { - const intl = useIntl(); - const opprettetTidspunkt = dokument?.avklarteOpplysninger?.opprettetTidspunkt; - const minDate = useMemo( - () => - dokument.status.reduce( - (acc, curr) => (!acc || moment(curr.periode.fom) < moment(acc) ? curr.periode.fom : acc), - '', - ), - [dokument.journalpostId], - ); - const maxDate = useMemo( - () => - dokument.status.reduce( - (acc, curr) => (!acc || moment(curr.periode.tom) > moment(acc) ? curr.periode.tom : acc), - '', - ), - [dokument.innsendingstidspunkt, dokument.journalpostId], - ); - - const isAtleastDate = useCallback(v => dateAfterOrEqual(minDate)(v), [minDate]); - const isAtmostDate = useCallback(v => dateBeforeOrEqual(maxDate)(v), [maxDate]); - return ( -
-

- {dokument.type} innsendt {formatDate(dokument.innsendingstidspunkt)}{' '} - (journalpostId: {dokument.journalpostId}) -

- {skalViseBegrunnelse && ( - <> - - - - - )} - - {readOnly && erVilkarOk !== undefined && ( - - - - - - - {erVilkarOk && ( - - {chunks} }} /> - - )} - {!erVilkarOk && ( - - {chunks} }} - /> - - )} - - - - - )} - {(!readOnly || erVilkarOk === undefined) && ( - {chunks} }} /> - ), - }, - { - value: DELVIS_OPPFYLT, - label: ( - {chunks} }} - /> - ), - element: ( -
- -
- ), - }, - { - value: false, - label: ( - {chunks} }} - /> - ), - }, - ]} - /> - )} - -
- ); -}; - -export default SoknadsfristVilkarDokument; diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.module.css b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.module.css deleted file mode 100644 index 5101ab7816..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.module.css +++ /dev/null @@ -1,24 +0,0 @@ -.status { - height: 20px; - width: 20px; -} - -.key { - cursor: pointer; - height: 20px; - width: 20px; -} - -.keyWithoutCursor { - height: 20px; - width: 20px; -} - -.vilkar:global(.navds-detail) { - margin-top: 3px; -} - -.aksjonspunktMargin { - margin-left: -20px; - min-width: 400px; -} diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.spec.tsx b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.spec.tsx deleted file mode 100644 index 4921a7266b..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.spec.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import React from 'react'; -// import behandlingType from '@fpsak-frontend/kodeverk/src/behandlingType'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { renderWithIntlAndReduxForm } from '@fpsak-frontend/utils-test/test-utils'; -import { reduxFormPropsMock } from '@fpsak-frontend/utils-test/redux-form-test-helper'; -import { K9sakApiKeys, requestApi } from '@k9-sak-web/sak-app/src/data/k9sakApi'; -import { DokumentStatus } from '@k9-sak-web/types'; -import Vilkarperiode from '@k9-sak-web/types/src/vilkarperiode'; -import { screen } from '@testing-library/react'; -import messages from '../../i18n/nb_NO.json'; -import { SoknadsfristVilkarForm } from './SoknadsfristVilkarForm'; - -const periode = { - vilkarStatus: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - vurderesIBehandlingen: true, - periode: { - fom: '2020-02-20', - tom: '2020-02-25', - }, -} as Vilkarperiode; - -const dokumenter = [ - { - type: 'SOKNAD', - status: [ - { - periode: { fom: '2020-02-20', tom: '2020-02-25' }, - status: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '12345', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, - { - type: 'SOKNAD', - status: [ - { - periode: { fom: '2020-02-26', tom: '2020-02-27' }, - status: { kode: vilkarUtfallType.IKKE_OPPFYLT, kodeverk: 'test' }, - }, - ], - innsendingstidspunkt: '2020-06-01', - journalpostId: '23456', - avklarteOpplysninger: null, - overstyrteOpplysninger: null, - }, -] as DokumentStatus[]; - -describe('', () => { - it('skal rendre form med knapp når vilkåret er overstyrt', () => { - requestApi.mock(K9sakApiKeys.FEATURE_TOGGLE, []); - renderWithIntlAndReduxForm( - undefined} - aksjonspunkter={[]} - status={vilkarUtfallType.IKKE_OPPFYLT} - submitCallback={() => undefined} - dokumenterIAktivPeriode={dokumenter} - alleDokumenter={dokumenter} - periode={periode} - isSolvable - />, - { messages }, - ); - - expect( - screen.getAllByText( - (_, element) => element.textContent === 'SOKNAD innsendt 01.06.2020 (journalpostId: 12345)', - )[0], - ).toBeInTheDocument(); - expect( - screen.getAllByText( - (_, element) => element.textContent === 'SOKNAD innsendt 01.06.2020 (journalpostId: 23456)', - )[0], - ).toBeInTheDocument(); - expect(screen.getAllByText('Vilkåret er oppfylt for hele perioden').length).toBe(2); - expect(screen.getByRole('button', { name: 'Bekreft overstyring' })).toBeInTheDocument(); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.tsx b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.tsx deleted file mode 100644 index 8c26589a99..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarForm.tsx +++ /dev/null @@ -1,339 +0,0 @@ -import advarselIkonUrl from '@fpsak-frontend/assets/images/advarsel_ny.svg'; -import { behandlingForm, behandlingFormValueSelector } from '@fpsak-frontend/form'; -import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; -import aksjonspunktStatus from '@fpsak-frontend/kodeverk/src/aksjonspunktStatus'; -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { - AksjonspunktBox, - AksjonspunktHelpText, - EditedIcon, - FlexColumn, - FlexContainer, - FlexRow, - Image, - VerticalSpacer, -} from '@fpsak-frontend/shared-components'; -import { decodeHtmlEntity } from '@fpsak-frontend/utils'; -import OverstyrBekreftKnappPanel from '@k9-sak-web/gui/shared/overstyrBekreftKnappPanel/OverstyrBekreftKnappPanel.js'; -import { Aksjonspunkt, DokumentStatus, SubmitCallback } from '@k9-sak-web/types'; -import Vilkarperiode from '@k9-sak-web/types/src/vilkarperiode'; -import { BodyShort, Button, Label } from '@navikt/ds-react'; -import moment from 'moment'; -import hash from 'object-hash'; -import { SetStateAction } from 'react'; -import { FormattedMessage } from 'react-intl'; -import { connect } from 'react-redux'; -import { InjectedFormProps } from 'redux-form'; -import { createSelector } from 'reselect'; -import { utledInnsendtSoknadsfrist } from '../utils'; -import SoknadsfristVilkarDokument, { DELVIS_OPPFYLT } from './SoknadsfristVilkarDokument'; -import styles from './SoknadsfristVilkarForm.module.css'; - -const formName = 'SøknadsfristVilkårOverstyringForm'; - -interface SoknadsfristVilkarFormProps { - /* eslint-disable react/no-unused-prop-types */ - aksjonspunkter: Aksjonspunkt[]; - behandlingId: number; - behandlingVersjon: number; - submitCallback: (props: SubmitCallback[]) => void; - periode?: Vilkarperiode; - erOverstyrt?: boolean; - erVilkarOk?: boolean; - harAksjonspunkt: boolean; - harÅpentAksjonspunkt: boolean; - isReadOnly: boolean; - overrideReadOnly: boolean; - status: string; - invalid: boolean; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; - alleDokumenter?: DokumentStatus[]; - dokumenterIAktivPeriode?: DokumentStatus[]; -} - -interface StateProps { - isSolvable: boolean; -} - -/** - * VilkarresultatForm - * - * Presentasjonskomponent. Viser resultat av vilkårskjøring når det ikke finnes tilknyttede aksjonspunkter. - * Resultatet kan overstyres av Nav-ansatt med overstyr-rettighet. - */ -export const SoknadsfristVilkarForm = ({ - erOverstyrt, - harÅpentAksjonspunkt, - isReadOnly, - isSolvable, - erVilkarOk, - harAksjonspunkt, - overrideReadOnly, - toggleOverstyring, - reset, - handleSubmit, - submitting, - pristine, - invalid, - alleDokumenter, - dokumenterIAktivPeriode, -}: SoknadsfristVilkarFormProps & StateProps & InjectedFormProps) => { - const toggleAv = () => { - reset(); - toggleOverstyring(oldArray => oldArray.filter(code => code !== aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR)); - }; - - if (!erOverstyrt && !harAksjonspunkt && dokumenterIAktivPeriode.length > 0) { - return ( -
- {Array.isArray(alleDokumenter) && - alleDokumenter.length > 0 && - alleDokumenter.map((dokument, index) => { - const documentHash = hash(dokument); - return ( - hash(d) === documentHash) > -1} - skalViseBegrunnelse - readOnly - erVilkarOk={erVilkarOk} - dokumentIndex={index} - dokument={dokument} - /> - ); - })} -
- ); - } - - return ( -
- {(erOverstyrt || harAksjonspunkt) && dokumenterIAktivPeriode.length > 0 && ( - - {!isReadOnly && - (harÅpentAksjonspunkt ? ( - - {[]} - - ) : ( - - ))} - - {Array.isArray(alleDokumenter) && alleDokumenter.length > 0 ? ( - alleDokumenter.map((dokument, index) => { - const documentHash = hash(dokument); - return ( - hash(d) === documentHash) > -1} - skalViseBegrunnelse={erOverstyrt || harAksjonspunkt} - readOnly={isReadOnly || (!erOverstyrt && !harÅpentAksjonspunkt)} - erVilkarOk={erVilkarOk} - dokumentIndex={index} - dokument={dokument} - /> - ); - }) - ) : ( - - )} - - {!erOverstyrt && erVilkarOk !== undefined && ( - <> - - - - - - - - - - - - - )} - {erOverstyrt && ( - - - - - - - - - - - - - - - - - - - - )} - {harÅpentAksjonspunkt && !erOverstyrt && ( - - )} - - )} -
- ); -}; - -/** - * Temporær fiks for saksbehandlere som setter dato og forventer at - * backend skal telle fra og meg datoen de setter. - * - * Backend teller fra dagen etter.. - */ -const minusEnDag = dato => moment(dato).subtract(1, 'days').format('YYYY-MM-DD'); -const plusEnDag = dato => moment(dato).add(1, 'days').format('YYYY-MM-DD'); - -const buildInitialValues = createSelector( - [ - (ownProps: SoknadsfristVilkarFormProps) => ownProps.aksjonspunkter, - (ownProps: SoknadsfristVilkarFormProps) => ownProps.alleDokumenter, - (ownProps: SoknadsfristVilkarFormProps) => ownProps.status, - ], - (aksjonspunkter, alleDokumenter, status) => { - const overstyrtAksjonspunkt = aksjonspunkter.find( - ap => ap.definisjon.kode === aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR, - ); - - return { - isOverstyrt: overstyrtAksjonspunkt !== undefined, - avklarteKrav: alleDokumenter.map(dokument => { - const fraDato = dokument.overstyrteOpplysninger?.fraDato || dokument.avklarteOpplysninger?.fraDato; - const innsendtSoknadsfrist = utledInnsendtSoknadsfrist(dokument.innsendingstidspunkt); - - const erAvklartEllerOverstyrt = !!fraDato; - - const erDelvisOppfylt = - status !== vilkarUtfallType.OPPFYLT && fraDato && plusEnDag(fraDato) !== innsendtSoknadsfrist; - const erVilkarOk = erDelvisOppfylt ? DELVIS_OPPFYLT : status === vilkarUtfallType.OPPFYLT; - - return { - erVilkarOk: erAvklartEllerOverstyrt ? erVilkarOk : null, - begrunnelse: decodeHtmlEntity( - dokument.overstyrteOpplysninger?.begrunnelse || dokument.avklarteOpplysninger?.begrunnelse || '', - ), - journalpostId: dokument.journalpostId, - fraDato: fraDato ? plusEnDag(fraDato) : '', - }; - }), - }; - }, -); - -const transformValues = (values, alleDokumenter, apKode, periodeFom, periodeTom) => ({ - kode: apKode, - begrunnelse: values.avklarteKrav.map(krav => krav.begrunnelse).join('\n'), - avklarteKrav: values.avklarteKrav.map(krav => { - const dokumentStatus = alleDokumenter.find(d => d.journalpostId === krav.journalpostId); - const erVilkarOk = krav.erVilkarOk === true || krav.erVilkarOk === DELVIS_OPPFYLT; - - const fraDato = (() => { - switch (krav.erVilkarOk) { - case true: - return dokumentStatus.status.reduce( - (acc, curr) => (!acc || moment(curr.periode.fom).isBefore(moment(acc)) ? curr.periode.fom : acc), - dokumentStatus.status[0].periode.fom, - ); - - case DELVIS_OPPFYLT: - return krav.fraDato; - - default: - return utledInnsendtSoknadsfrist(dokumentStatus.innsendingstidspunkt); - } - })(); - return { - ...krav, - erVilkarOk, - godkjent: erVilkarOk, - // fjern 'minusEnDag' hvis backend oppdateres.. - fraDato: minusEnDag(fraDato), - }; - }), - erVilkarOk: !values.avklarteKrav.some(krav => !krav.erVilkarOk), - periode: periodeFom && periodeTom ? { fom: periodeFom, tom: periodeTom } : undefined, -}); - -const mapStateToPropsFactory = (_initialState, initialOwnProps: SoknadsfristVilkarFormProps) => { - const { submitCallback, alleDokumenter, periode } = initialOwnProps; - const periodeFom = periode?.periode?.fom; - const periodeTom = periode?.periode?.tom; - - return (state, ownProps) => { - const { behandlingId, behandlingVersjon, aksjonspunkter, harÅpentAksjonspunkt, erOverstyrt, overrideReadOnly } = - ownProps; - - const aksjonspunkt = harÅpentAksjonspunkt - ? aksjonspunkter.find(ap => ap.definisjon.kode === aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST) - : aksjonspunkter.find(ap => ap.definisjon.kode === aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR); - - const isSolvable = - harÅpentAksjonspunkt || aksjonspunkt !== undefined - ? !(aksjonspunkt.status.kode === aksjonspunktStatus.OPPRETTET && !aksjonspunkt.kanLoses) - : false; - - const aksjonspunktCode = harÅpentAksjonspunkt - ? aksjonspunktCodes.KONTROLLER_OPPLYSNINGER_OM_SØKNADSFRIST - : aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR; - - const onSubmit = values => - submitCallback([transformValues(values, alleDokumenter, aksjonspunktCode, periodeFom, periodeTom)]); - - const initialValues = buildInitialValues(ownProps); - - return { - onSubmit, - initialValues, - harÅpentAksjonspunkt, - harAksjonspunkt: aksjonspunkt !== undefined, - isSolvable: erOverstyrt || isSolvable, - isReadOnly: overrideReadOnly || !periode?.vurderesIBehandlingen, - ...behandlingFormValueSelector(formName, behandlingId, behandlingVersjon)( - state, - 'isOverstyrt', - 'erVilkarOk', - 'avklarteKrav', - ), - }; - }; -}; - -const form = behandlingForm({ - form: formName, - enableReinitialize: true, - destroyOnUnmount: false, - forceUnregisterOnUnmount: true, -})(SoknadsfristVilkarForm); - -export default connect(mapStateToPropsFactory)(form); diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.spec.tsx b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.spec.tsx deleted file mode 100644 index d3c3c4d8a9..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.spec.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import React from 'react'; -import { IntlProvider } from 'react-intl'; -import { Provider } from 'react-redux'; -import { combineReducers, createStore } from 'redux'; -import { reducer } from 'redux-form'; -import messages from '../../i18n/nb_NO.json'; -import SoknadsfristVilkarHeader from './SoknadsfristVilkarHeader'; - -describe('', () => { - it('skal rendre header', () => { - render( - - - undefined} - panelTittelKode="Inngangsvilkar.Soknadsfrist" - erOverstyrt - aksjonspunkter={[]} - /> - - , - ); - - expect(screen.getByRole('heading', { name: 'Søknadsfrist' })).toBeInTheDocument(); - expect(screen.getByText('9-2')).toBeInTheDocument(); - }); -}); diff --git a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.tsx b/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.tsx deleted file mode 100644 index 55fb70f267..0000000000 --- a/packages/prosess-vilkar-soknadsfrist/src/components/SoknadsfristVilkarHeader.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import vilkarUtfallType from '@fpsak-frontend/kodeverk/src/vilkarUtfallType'; -import { FlexColumn, FlexContainer, FlexRow, VerticalSpacer } from '@fpsak-frontend/shared-components'; -import { Lovreferanse } from '@k9-sak-web/gui/shared/lovreferanse/Lovreferanse.js'; -import { Aksjonspunkt } from '@k9-sak-web/types'; -import { CheckmarkCircleFillIcon, KeyHorizontalIcon, XMarkOctagonFillIcon } from '@navikt/aksel-icons'; -import { Button, Detail, Heading, HStack, Label } from '@navikt/ds-react'; -import { SetStateAction } from 'react'; -import { FormattedMessage } from 'react-intl'; -import { connect } from 'react-redux'; -import styles from './SoknadsfristVilkarForm.module.css'; - -const isOverridden = (aksjonspunktCodes: string[], aksjonspunktCode: string) => - aksjonspunktCodes.some(code => code === aksjonspunktCode); -const isHidden = (kanOverstyre: boolean, aksjonspunktCodes: string[], aksjonspunktCode: string) => - !isOverridden(aksjonspunktCodes, aksjonspunktCode) && !kanOverstyre; - -const getVilkarOkMessage = originalErVilkarOk => { - let messageId = 'SoknadsfristVilkarForm.IkkeBehandlet'; - if (originalErVilkarOk) { - messageId = 'SoknadsfristVilkarForm.ErOppfylt'; - } else if (originalErVilkarOk === false) { - messageId = 'SoknadsfristVilkarForm.ErIkkeOppfylt'; - } - - return ( - - ); -}; - -interface SoknadsfristVilkarHeaderProps { - aksjonspunktCodes: string[]; - aksjonspunkter: Aksjonspunkt[]; - erOverstyrt?: boolean; - kanOverstyreAccess?: { - isEnabled: boolean; - }; - lovReferanse?: string; - originalErVilkarOk?: boolean; - overrideReadOnly: boolean; - overstyringApKode: string; - panelTittelKode: string; - toggleOverstyring: (overstyrtPanel: SetStateAction) => void; -} - -const SoknadsfristVilkarHeader = ({ - panelTittelKode, - erOverstyrt, - overstyringApKode, - lovReferanse, - originalErVilkarOk, - overrideReadOnly, - kanOverstyreAccess, - aksjonspunktCodes, - toggleOverstyring, -}: Partial) => { - const togglePa = () => { - toggleOverstyring(oldArray => [...oldArray, overstyringApKode]); - }; - return ( - <> - - - {!erOverstyrt && originalErVilkarOk !== undefined && ( - <> - {originalErVilkarOk ? ( - - ) : ( - - )} - - )} - - - - {lovReferanse && ( - - {lovReferanse} - - )} - - - - - {getVilkarOkMessage(originalErVilkarOk)} - - {originalErVilkarOk !== undefined && - !isHidden(kanOverstyreAccess.isEnabled, aksjonspunktCodes, overstyringApKode) && ( - <> - {!erOverstyrt && !overrideReadOnly && ( - - -