Skip to content

Commit

Permalink
Prosess soknadsfrist 633 (#6507)
Browse files Browse the repository at this point in the history
* Revert "Revert "TSFF-633 - fikser typing og skriver bort redux-form i prosess-søknadsfrist (#6349)""

This reverts commit 22ff107.

* Flytter refaktorert kode i egen mappe

* Feature toggle for å bruke gammel prosess søknadsfrist i prod og ny i Q

* La inn manglende intl-prop

* Fikser bugs i radioknapper og datovelger

* Søknadsfrist v2 i egen pakke

* Fjern import

* Rydding og tester

* Bruker færrest mulig komponenter fra shared-components

* Lager litt typer og konstanter av aksjonspunkttype og vilkårstatus

* Kan tydeligvis ikke bruke den nye typen over alt ennå

* Flytter test inn i stories

* Fikser story test

* Prøver å fikse ts-feil

* Bruker bare endepunkt for overstyring dersom panelet er overstyrt
Feature toggles for alle ytelser
Lar bare brukere med skriverettighet redigere vurderingen

* Fiks test

* Et par rettinger

* fiks pakkeversjoner

* Sender ned featuretoggles til flere prosesspaneler

* Rydder

* Legger til stories med flere søknader

* Bruker kodeverk som strings
Bruker genererte typer fra v2

* Setter riktig type
  • Loading branch information
hallvardastark authored Sep 16, 2024
1 parent 75d7a39 commit 6314438
Show file tree
Hide file tree
Showing 48 changed files with 2,568 additions and 256 deletions.
10 changes: 7 additions & 3 deletions _mocks/featureToggles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ export const featureTogglesFactory = () => [
value: process.env.VITE_AKSJONSPUNKT_9015,
},
{
key: "ALDERSVILKAR_KRONISK_SYK",
value: process.env.VITE_ALDERSVILKAR_KRONISK_SYK
key: 'ALDERSVILKAR_KRONISK_SYK',
value: process.env.VITE_ALDERSVILKAR_KRONISK_SYK,
},
{
key: 'FRITEKST_REDIGERING',
Expand Down Expand Up @@ -77,6 +77,10 @@ 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,
Expand All @@ -88,5 +92,5 @@ export const featureTogglesFactory = () => [
{
key: 'NYTT_SKJEMA_FOR_9003',
value: process.env.VITE_NYTT_SKJEMA_FOR_9003,
}
},
];
2 changes: 2 additions & 0 deletions deploy/dev-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ spec:
value: "true"
- name: NYE_NOKKELTALL
value: "true"
- name: PROSESS_VILKAR_SOKNADSFRIST
value: "true"
- name: UTVIDET_VARSELFELT
value: "true"
- name: SKILL_UT_PRIVATPERSON
Expand Down
2 changes: 2 additions & 0 deletions deploy/prod-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ spec:
value: "true"
- name: NYE_NOKKELTALL
value: "false"
- name: PROSESS_VILKAR_SOKNADSFRIST
value: "false"
- name: UTVIDET_VARSELFELT
value: "true"
- name: SKILL_UT_PRIVATPERSON
Expand Down
1 change: 1 addition & 0 deletions envDir/.env.development
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ VITE_FIX_SOKNADSFRIST_KALENDER_OG_READONLY=true
VITE_INKLUDER_KALENDER_PILS=true
VITE_OVERSTYRING_UTTAK=true
VITE_NYE_NOKKELTALL=true
VITE_PROSESS_VILKAR_SOKNADSFRIST=true
VITE_SKILL_UT_PRIVATPERSON=true
VITE_NYTT_SKJEMA_FOR_9003=true
4 changes: 4 additions & 0 deletions feature-toggles.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@
"key": "NYE_NOKKELTALL",
"value": "${NYE_NOKKELTALL}"
},
{
"key": "PROSESS_VILKAR_SOKNADSFRIST",
"value": "${PROSESS_VILKAR_SOKNADSFRIST}"
},
{
"key": "UTVIDET_VARSELFELT",
"value": "${UTVIDET_VARSELFELT}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
FeatureToggles,
KodeverkMedNavn,
} from '@k9-sak-web/types';
import React, { useCallback, useMemo, useState } from 'react';
import { useCallback, useMemo, useState } from 'react';

import { bestemAvsenderApp, forhandsvis, getForhandsvisCallback } from '@fpsak-frontend/utils/src/formidlingUtils';
import { OmsorgspengerBehandlingApiKeys, restApiOmsorgHooks } from '../data/omsorgspengerBehandlingApi';
Expand All @@ -45,83 +45,85 @@ interface OwnProps {
featureToggles: FeatureToggles;
}

const getForhandsvisTilbakeCallback = (
forhandsvisTilbakekrevingMelding: (data: any) => Promise<any>,
fagsak: Fagsak,
behandling: Behandling,
) => (mottaker: string, brevmalkode: string, fritekst: string, saksnummer: string) => {
const data = {
behandlingUuid: behandling.uuid,
fagsakYtelseType: fagsak.sakstype,
varseltekst: fritekst || '',
mottaker,
brevmalkode,
saksnummer,
const getForhandsvisTilbakeCallback =
(forhandsvisTilbakekrevingMelding: (data: any) => Promise<any>, fagsak: Fagsak, behandling: Behandling) =>
(mottaker: string, brevmalkode: string, fritekst: string, saksnummer: string) => {
const data = {
behandlingUuid: behandling.uuid,
fagsakYtelseType: fagsak.sakstype,
varseltekst: fritekst || '',
mottaker,
brevmalkode,
saksnummer,
};
return forhandsvisTilbakekrevingMelding(data).then(response => forhandsvis(response));
};
return forhandsvisTilbakekrevingMelding(data).then(response => forhandsvis(response));
};

const getHentFritekstbrevHtmlCallback = (
hentFriteksbrevHtml: (data: any) => Promise<any>,
behandling: Behandling,
fagsak: Fagsak,
fagsakPerson: FagsakPerson,
) => (parameters: any) =>
hentFriteksbrevHtml({
...parameters,
eksternReferanse: behandling.uuid,
ytelseType: fagsak.sakstype,
saksnummer: fagsak.saksnummer,
aktørId: fagsakPerson.aktørId,
avsenderApplikasjon: bestemAvsenderApp(behandling.type.kode),
});
const getHentFritekstbrevHtmlCallback =
(
hentFriteksbrevHtml: (data: any) => Promise<any>,
behandling: Behandling,
fagsak: Fagsak,
fagsakPerson: FagsakPerson,
) =>
(parameters: any) =>
hentFriteksbrevHtml({
...parameters,
eksternReferanse: behandling.uuid,
ytelseType: fagsak.sakstype,
saksnummer: fagsak.saksnummer,
aktørId: fagsakPerson.aktørId,
avsenderApplikasjon: bestemAvsenderApp(behandling.type.kode),
});

const getLagringSideeffekter = (
toggleIverksetterVedtakModal,
toggleFatterVedtakModal,
toggleOppdatereFagsakContext,
oppdaterProsessStegOgFaktaPanelIUrl,
opneSokeside,
lagreDokumentdata,
) => async aksjonspunktModels => {
const erRevurderingsaksjonspunkt = aksjonspunktModels.some(
apModel =>
(apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_MANUELL ||
apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_ETTERKONTROLL) &&
apModel.sendVarsel,
);
const visIverksetterVedtakModal =
aksjonspunktModels[0].isVedtakSubmission &&
[
aksjonspunktCodes.VEDTAK_UTEN_TOTRINNSKONTROLL,
aksjonspunktCodes.FATTER_VEDTAK,
aksjonspunktCodes.FORESLA_VEDTAK_MANUELT,
].includes(aksjonspunktModels[0].kode);
const visFatterVedtakModal =
aksjonspunktModels[0].isVedtakSubmission && aksjonspunktModels[0].kode === aksjonspunktCodes.FORESLA_VEDTAK;

if (erRevurderingsaksjonspunkt) {
toggleOppdatereFagsakContext(false);
}
const getLagringSideeffekter =
(
toggleIverksetterVedtakModal,
toggleFatterVedtakModal,
toggleOppdatereFagsakContext,
oppdaterProsessStegOgFaktaPanelIUrl,
opneSokeside,
lagreDokumentdata,
) =>
async aksjonspunktModels => {
const erRevurderingsaksjonspunkt = aksjonspunktModels.some(
apModel =>
(apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_MANUELL ||
apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_ETTERKONTROLL) &&
apModel.sendVarsel,
);
const visIverksetterVedtakModal =
aksjonspunktModels[0].isVedtakSubmission &&
[
aksjonspunktCodes.VEDTAK_UTEN_TOTRINNSKONTROLL,
aksjonspunktCodes.FATTER_VEDTAK,
aksjonspunktCodes.FORESLA_VEDTAK_MANUELT,
].includes(aksjonspunktModels[0].kode);
const visFatterVedtakModal =
aksjonspunktModels[0].isVedtakSubmission && aksjonspunktModels[0].kode === aksjonspunktCodes.FORESLA_VEDTAK;

if (aksjonspunktModels[0].isVedtakSubmission) {
const dokumentdata = lagDokumentdata(aksjonspunktModels[0]);
if (dokumentdata) await lagreDokumentdata(dokumentdata);
}
if (erRevurderingsaksjonspunkt) {
toggleOppdatereFagsakContext(false);
}

// Returner funksjon som blir kjørt etter lagring av aksjonspunkt(er)
return () => {
if (visFatterVedtakModal) {
toggleFatterVedtakModal(true);
} else if (visIverksetterVedtakModal) {
toggleIverksetterVedtakModal(true);
} else if (erRevurderingsaksjonspunkt) {
opneSokeside();
} else {
oppdaterProsessStegOgFaktaPanelIUrl('default', 'default');
if (aksjonspunktModels[0].isVedtakSubmission) {
const dokumentdata = lagDokumentdata(aksjonspunktModels[0]);
if (dokumentdata) await lagreDokumentdata(dokumentdata);
}

// Returner funksjon som blir kjørt etter lagring av aksjonspunkt(er)
return () => {
if (visFatterVedtakModal) {
toggleFatterVedtakModal(true);
} else if (visIverksetterVedtakModal) {
toggleIverksetterVedtakModal(true);
} else if (erRevurderingsaksjonspunkt) {
opneSokeside();
} else {
oppdaterProsessStegOgFaktaPanelIUrl('default', 'default');
}
};
};
};

const OmsorgspengerProsess = ({
data,
Expand Down Expand Up @@ -149,10 +151,8 @@ const OmsorgspengerProsess = ({
const { startRequest: lagreAksjonspunkter, data: apBehandlingRes } = restApiOmsorgHooks.useRestApiRunner<Behandling>(
OmsorgspengerBehandlingApiKeys.SAVE_AKSJONSPUNKT,
);
const {
startRequest: lagreOverstyrteAksjonspunkter,
data: apOverstyrtBehandlingRes,
} = restApiOmsorgHooks.useRestApiRunner<Behandling>(OmsorgspengerBehandlingApiKeys.SAVE_OVERSTYRT_AKSJONSPUNKT);
const { startRequest: lagreOverstyrteAksjonspunkter, data: apOverstyrtBehandlingRes } =
restApiOmsorgHooks.useRestApiRunner<Behandling>(OmsorgspengerBehandlingApiKeys.SAVE_OVERSTYRT_AKSJONSPUNKT);
const { startRequest: forhandsvisMelding } = restApiOmsorgHooks.useRestApiRunner(
OmsorgspengerBehandlingApiKeys.PREVIEW_MESSAGE,
);
Expand Down Expand Up @@ -182,6 +182,7 @@ const OmsorgspengerProsess = ({
[behandling.versjon],
),
alleKodeverk,
featureToggles,
arbeidsgiverOpplysningerPerId,
lagreDokumentdata,
...data,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
import React from 'react';

import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType';
import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper';
import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes';
import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist';
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 { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js';
import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist';
import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2';
import { OmsorgspengerBehandlingApiKeys } from '../../../data/omsorgspengerBehandlingApi';

class SoknadsfristPanelDef extends ProsessStegPanelDef {
getId = () => 'SOKNADSFRIST';

getTekstKode = () => 'Inngangsvilkar.Soknadsfrist';
getTekstKode = () => 'Søknadsfrist';

getKomponent = props => <SoknadsfristVilkarProsessIndex {...props} />;
getKomponent = props => {
if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) {
const deepCopyProps = JSON.parse(JSON.stringify(props));
konverterKodeverkTilKode(deepCopyProps, false);
return <SoknadsfristVilkarProsessIndexV2 {...props} {...deepCopyProps} />;
}
return <SoknadsfristVilkarProsessIndex {...props} />;
};

getAksjonspunktKoder = () => [
aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR,
Expand All @@ -33,15 +41,25 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef {
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
}): any => ({
avslagsarsaker: alleKodeverk[kodeverkTyper.AVSLAGSARSAK][vilkarForSteg[0].vilkarType.kode],
erOverstyrt: overstyrteAksjonspunktKoder.some(o => this.getAksjonspunktKoder().some(a => a === o)),
panelTittelKode: this.getTekstKode() ? this.getTekstKode() : prosessStegTekstKode,
lovReferanse: vilkarForSteg.length > 0 ? vilkarForSteg[0].lovReferanse : undefined,
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
});
behandling,
rettigheter,
featureToggles,
}): any => {
const behandlingenErAvsluttet = behandlingStatus.AVSLUTTET === behandling.status.kode;
const kanEndrePåSøknadsopplysninger = rettigheter.writeAccess.isEnabled && !behandlingenErAvsluttet;

return {
avslagsarsaker: alleKodeverk[kodeverkTyper.AVSLAGSARSAK][vilkarForSteg[0].vilkarType.kode],
erOverstyrt: overstyrteAksjonspunktKoder.some(o => this.getAksjonspunktKoder().some(a => a === o)),
panelTittelKode: this.getTekstKode() ? this.getTekstKode() : prosessStegTekstKode,
lovReferanse: vilkarForSteg.length > 0 ? vilkarForSteg[0].lovReferanse : undefined,
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
kanEndrePåSøknadsopplysninger,
featureToggles,
};
};
}

export default SoknadsfristPanelDef;
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
import React from 'react';

import vilkarType from '@fpsak-frontend/kodeverk/src/vilkarType';
import kodeverkTyper from '@fpsak-frontend/kodeverk/src/kodeverkTyper';
import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes';
import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist';
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 { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js';
import SoknadsfristVilkarProsessIndex from '@k9-sak-web/prosess-vilkar-soknadsfrist';
import SoknadsfristVilkarProsessIndexV2 from '@k9-sak-web/prosess-vilkar-soknadsfrist-v2';
import { OpplaeringspengerBehandlingApiKeys } from '../../../data/opplaeringspengerBehandlingApi';

class SoknadsfristPanelDef extends ProsessStegPanelDef {
getId = () => 'SOKNADSFRIST';

getTekstKode = () => 'Inngangsvilkar.Soknadsfrist';
getTekstKode = () => 'Søknadsfrist';

getKomponent = props => <SoknadsfristVilkarProsessIndex {...props} />;
getKomponent = props => {
if (props.featureToggles?.PROSESS_VILKAR_SOKNADSFRIST) {
const deepCopyProps = JSON.parse(JSON.stringify(props));
konverterKodeverkTilKode(deepCopyProps, false);
return <SoknadsfristVilkarProsessIndexV2 {...props} {...deepCopyProps} />;
}
return <SoknadsfristVilkarProsessIndex {...props} />;
};

getAksjonspunktKoder = () => [
aksjonspunktCodes.OVERSTYR_SOKNADSFRISTVILKAR,
Expand All @@ -33,15 +41,25 @@ class SoknadsfristPanelDef extends ProsessStegPanelDef {
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
}): any => ({
avslagsarsaker: alleKodeverk[kodeverkTyper.AVSLAGSARSAK][vilkarForSteg[0].vilkarType.kode],
erOverstyrt: overstyrteAksjonspunktKoder.some(o => this.getAksjonspunktKoder().some(a => a === o)),
panelTittelKode: this.getTekstKode() ? this.getTekstKode() : prosessStegTekstKode,
lovReferanse: vilkarForSteg.length > 0 ? vilkarForSteg[0].lovReferanse : undefined,
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
});
behandling,
rettigheter,
featureToggles,
}): any => {
const behandlingenErAvsluttet = behandlingStatus.AVSLUTTET === behandling.status.kode;
const kanEndrePåSøknadsopplysninger = rettigheter.writeAccess.isEnabled && !behandlingenErAvsluttet;

return {
avslagsarsaker: alleKodeverk[kodeverkTyper.AVSLAGSARSAK][vilkarForSteg[0].vilkarType.kode],
erOverstyrt: overstyrteAksjonspunktKoder.some(o => this.getAksjonspunktKoder().some(a => a === o)),
panelTittelKode: this.getTekstKode() ? this.getTekstKode() : prosessStegTekstKode,
lovReferanse: vilkarForSteg.length > 0 ? vilkarForSteg[0].lovReferanse : undefined,
overrideReadOnly,
kanOverstyreAccess,
toggleOverstyring,
kanEndrePåSøknadsopplysninger,
featureToggles,
};
};
}

export default SoknadsfristPanelDef;
Loading

0 comments on commit 6314438

Please sign in to comment.