diff --git a/apps/fp-frontend/src/behandling/fellesPaneler/fakta/MedlemskapsvilkaretFaktaInitPanel.tsx b/apps/fp-frontend/src/behandling/fellesPaneler/fakta/MedlemskapsvilkaretFaktaInitPanel.tsx
index 3366834764a..c7d215e8e5d 100644
--- a/apps/fp-frontend/src/behandling/fellesPaneler/fakta/MedlemskapsvilkaretFaktaInitPanel.tsx
+++ b/apps/fp-frontend/src/behandling/fellesPaneler/fakta/MedlemskapsvilkaretFaktaInitPanel.tsx
@@ -15,6 +15,13 @@ import { useStandardFaktaPanelProps } from '../../felles/fakta/useStandardFaktaP
const AKSJONSPUNKT_KODER: AksjonspunktKode[] = [
AksjonspunktKode.VURDER_MEDLEMSKAPSVILKÅRET,
AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR,
+
+ AksjonspunktKode.UTGÅTT_5019,
+ AksjonspunktKode.UTGÅTT_5020,
+ AksjonspunktKode.UTGÅTT_5021,
+ AksjonspunktKode.UTGÅTT_5023,
+ AksjonspunktKode.UTGÅTT_5053,
+ AksjonspunktKode.UTGÅTT_6012,
];
export const MedlemskapsvilkaretFaktaInitPanel = () => {
diff --git a/knip.ts b/knip.ts
index e978dedf4db..e9aefb6e944 100644
--- a/knip.ts
+++ b/knip.ts
@@ -3,7 +3,7 @@ import type { KnipConfig } from 'knip';
const config: KnipConfig = {
ignore: ['.storybook/**', 'server/**', 'openapi-ts.config.ts', 'packages/types/src/apiDtoGenerert.ts'],
ignoreBinaries: ['docker-compose'],
- ignoreDependencies: ['glob', '@hey-api/openapi-ts'],
+ ignoreDependencies: ['glob'],
};
export default config;
diff --git a/packages/fakta/medlemskap/i18n/nb_NO.json b/packages/fakta/medlemskap/i18n/nb_NO.json
index e3cae9accb3..6d58c497548 100644
--- a/packages/fakta/medlemskap/i18n/nb_NO.json
+++ b/packages/fakta/medlemskap/i18n/nb_NO.json
@@ -1,50 +1,4 @@
{
- "MedlemskapInfoPanel.ErSokerBosattINorge": "Vurder om søker er bosatt i Norge",
- "MedlemskapInfoPanel.GyldigMedlemFolketrygden": "Vurder om søker har gyldig medlemskap i perioden",
- "MedlemskapInfoPanel.EOSBorgerMedOppholdsrett": "Vurder om søker er EØS-borger med oppholdsrett",
- "MedlemskapInfoPanel.IkkeEOSBorgerMedLovligOpphold": "Avklar om søker har lovlig opphold",
- "MedlemskapInfoPanel.HarFortsattMedlemskap": "Vurder om søker fortsatt har gyldig medlemskap i perioden",
-
- "MedlemskapInfoPanel.ManglerPersonopplysninger": "Saken har på dette tidspunktet ikke hentet inn personopplysninger fra register",
-
- "StartdatoForForeldrepengerperiodenForm.StartdatoFør2019": "Startdato kan ikke være før 01.01.2019",
- "StartdatoForForeldrepengerperiodenForm.StartdatoForPerioden": "Startdato for foreldrepengeperioden",
- "StartdatoForForeldrepengerperiodenForm.Vurdering": "Vurdering",
- "StartdatoForForeldrepengerperiodenForm.Startdato": "Startdato som skal benyttes (fra søknad eller fødsel)",
- "StartdatoForForeldrepengerperiodenForm.Oppdater": "Oppdater",
-
- "OppholdINorgeOgAdresserFaktaPanel.BosattAdresser": "Bostedsadresse fra folkeregisteret",
- "OppholdINorgeOgAdresserFaktaPanel.Parent": "Den andre forelderen",
- "OppholdINorgeOgAdresserFaktaPanel.ResidingInNorway": "Søker er bosatt i Norge",
- "OppholdINorgeOgAdresserFaktaPanel.NotResidingInNorway": "Søker er ikke bosatt i Norge",
- "OppholdINorgeOgAdresserFaktaPanel.OppholdINorge": "Opplysninger oppgitt i søknaden",
- "OppholdINorgeOgAdresserFaktaPanel.StayingInNorway": "Opphold i Norge nå",
- "OppholdINorgeOgAdresserFaktaPanel.StayingInNorwayLast12": "Opphold i Norge de siste 12 månedene",
- "OppholdINorgeOgAdresserFaktaPanel.StayingInNorwayNext12": "Opphold i Norge de neste 12 månedene",
- "OppholdINorgeOgAdresserFaktaPanel.Opphold": "Har opphold",
- "OppholdINorgeOgAdresserFaktaPanel.IkkeOpphold": "Har ikke opphold",
- "OppholdINorgeOgAdresserFaktaPanel.Yes": "Ja",
- "OppholdINorgeOgAdresserFaktaPanel.No": "Nei",
-
- "PerioderMedMedlemskapFaktaPanel.ApplicationInformation": "Perioder med medlemskap",
- "PerioderMedMedlemskapFaktaPanel.Period": "Periode",
- "PerioderMedMedlemskapFaktaPanel.Coverage": "Dekning",
- "PerioderMedMedlemskapFaktaPanel.Status": "Status",
- "PerioderMedMedlemskapFaktaPanel.Date": "Beslutningsdato",
- "PerioderMedMedlemskapFaktaPanel.Fodselsdato": "Fødselsdato: {dato}",
- "PerioderMedMedlemskapFaktaPanel.Termindato": "Termindato: {dato}",
- "PerioderMedMedlemskapFaktaPanel.Omsorgsovertakelse": "Dato for omsorgsovertakelse: {dato}",
- "PerioderMedMedlemskapFaktaPanel.NoInformation": "Ingen registrerte opplysninger om medlemskap",
-
- "OppholdInntektOgPerioder.Bekreft": "Bekreft og fortsett",
- "OppholdInntektOgPerioder.Overskrift": "Fakta om medlemskap",
- "OppholdInntektOgPeriode.Oppdater": "Oppdater",
- "OppholdInntektOgPeriode.Avbryt": "Avbryt",
-
- "MedlemskapEndringerTabell.GjeldeneFom": "Gjeldende f.o.m",
- "MedlemskapEndringerTabell.Opplysning": "Opplysning",
-
- "StatusForBorgerFaktaPanel.ApplicationInformation": "Status for søker",
"StatusForBorgerFaktaPanel.CitizenEEA": "EØS borger",
"StatusForBorgerFaktaPanel.CitizenOutsideEEA": "Utenlandsk borger utenfor EØS",
"StatusForBorgerFaktaPanel.Oppholdsrett": "Oppholdsrett",
@@ -54,23 +8,6 @@
"StatusForBorgerFaktaPanel.HarLovligOpphold": "Søker har lovlig opphold",
"StatusForBorgerFaktaPanel.HarIkkeLovligOpphold": "Søker har ikke lovlig opphold",
- "OppholdstillatelseTabell.Overskrift": "Oppholdstillatelser",
- "OppholdstillatelseTabell.Periode": "Periode",
- "OppholdstillatelseTabell.Type": "Type",
- "OppholdstillatelseTabell.Ukjent": "UKJENT",
-
- "OppholdInntektOgPeriodeForm.Periode": "Periode - {dato}",
-
- "BostedSokerView.ForeignAddresse": "Utenlandsadresse",
- "BostedSokerView.Region": "Region",
-
- "BostedSokerFaktaIndex.Soker": "Søker",
-
- "Personstatus.Hjelpetekst": "Personstatus",
- "Personstatus.Ukjent": "Ukjent",
-
- "MedlemskapInfoPanel.Submit": "Bekreft",
-
"AksjonspunktHelpText.Bosatt": "Det er usikkert om søker er bosatt i Norge. ",
"AksjonspunktHelpText.Oppholdsrett": "Det er usikkert om søkeren har en gyldig oppholdstillatelse. ",
"AksjonspunktHelpText.MedlPerioder": "Søker har en periode i medlemskapsregisteret. ",
@@ -113,23 +50,11 @@
"OpplysningerOmUtenlandsopphold.BoNeste12.HvilkeLand": "Hvilke land og hvor lenge skal du bo der?",
"OpplysningerOmUtenlandsopphold.iLand": "i {land}",
- "OpplysningerOmAdresser.Soker": "Søker, {navn}",
- "OpplysningerOmAdresser.Soker.Beskrivelse": "Adresser for søker registrert i folkeregisteret gyldige for de siste 12 månedene",
- "OpplysningerOmAdresser.Annenpart": "Annen part{navn, select, none {} other {, {navn}}}",
- "OpplysningerOmAdresser.Annenpart.Beskrivelse": "Adresser for annen part registrert i folkeregisteret gyldige på skjæringstidspunktet",
-
- "OpplysningerOmAdresser.Tabell.IngenAdresse": "Ingen adresser funnet for {erAnnenpart, select, true {den andre forelderen} other {søker} }.",
- "OpplysningerOmAdresser.Tabell.SammeAdresse": "Den andre forelderen har samme adresse som søker på skjæringstidspunktet",
- "OpplysningerOmAdresser.PeriodeLabel": "Periode",
- "OpplysningerOmAdresser.AdresseLabel": "Adresse",
- "OpplysningerOmAdresser.TypeLabel": "Type",
-
"OpplysningerOmPersonstatus.Soker": "Søker, {navn}",
"OpplysningerOmPersonstatus.Annenpart": "Annen part{navn, select, none {} other {, {navn}}}",
"OpplysningerOmPersonstatus.RegionLabel": "Region for statsborgerskap",
"OpplysningerOmPersonstatus.PersonstatusLabel": "Personstatus",
- "OpplysningerOmPersonstatus.UtvandretLabel": "Utflyttingsdato",
"OpplysningerOmPersonstatus.PersonstatusIngen": "Ingen personstatus funnet for {erAnnenpart, select, true {den andre forelderen} other {søker} }.",
"OpplysningerOmPersonstatus.RegionIngen": "Ingen region funnet for {erAnnenpart, select, true {den andre forelderen} other {søker} }.",
"OpplysningerOmPersonstatus.Fom": "Fra og med",
@@ -167,15 +92,13 @@
"MedlemskapLegacy.MedlemskapManuell.Label": "Har søker gyldig medlemskap i perioden?",
"MedlemskapLegacy.ErSokerEOS.Label": "Er søker EØS borger?",
- "VurderMedlemsskapAksjonspunktForm.VurderingLabel.Ordinaert": "Er medlemskapsvilkåret oppfylt?",
- "VurderMedlemsskapAksjonspunktForm.VurderingLabel.Forutgaaende": "Har bruker vært medlem i 12 måneder før termin/omsorgsovertakelse?",
- "VurderMedlemsskapAksjonspunktForm.VurderingLabel.ReadOnly": "Vurdering av medlemskapsvilkåret",
+ "VurderMedlemsskapAksjonspunktForm.Tittel.Ordinært": "Vurdering av medlemskapsvilkåret",
+ "VurderMedlemsskapAksjonspunktForm.Tittel.Forutgående": "Vurdering av forutgående medlemskapsvilkåret",
- "VurderMedlemsskapAksjonspunktForm.AvslagsarsakLabel": "Velg en avslagsårsak",
- "VurderMedlemsskapAksjonspunktForm.AvslagsarsakLabel.ReadOnly": "Avslagsårsak",
- "VurderMedlemsskapAksjonspunktForm.OpphorFomLabel": "Når opphører medlemskapet?",
- "VurderMedlemsskapAksjonspunktForm.OpphorFomLabel.ReadOnly": "Opphørsdato",
+ "MedlemskapVurderinger.VurderingLabel.Ordinært": "Er medlemskapsvilkåret oppfylt?",
+ "MedlemskapVurderinger.VurderingLabel.Forutgående": "Har bruker vært medlem i 12 måneder før termin/omsorgsovertakelse?",
- "VurderMedlemsskapAksjonspunktForm.MedlemFomLabel": "Innflyttingsdato",
- "VurderMedlemsskapAksjonspunktForm.MedlemFomLabel.ReadOnly": "Innflyttet dato"
+ "MedlemskapVurderinger.AvslagsarsakLabel": "Avslagsårsak",
+ "MedlemskapVurderinger.OpphorFomLabel": "Opphørsdato",
+ "MedlemskapVurderinger.MedlemFomLabel": "Innflyttingsdato"
}
diff --git a/packages/fakta/medlemskap/index.ts b/packages/fakta/medlemskap/index.ts
index 277ea770921..5708b90cbac 100644
--- a/packages/fakta/medlemskap/index.ts
+++ b/packages/fakta/medlemskap/index.ts
@@ -1,6 +1,5 @@
export { MedlemskapFaktaIndex } from './src/MedlemskapFaktaIndex';
export { MedlemskapVurderinger } from './src/components/aksjonspunkt/MedlemskapVurderinger';
-export { createMedlemskapInitialValues } from './src/components/aksjonspunkt/VurderMedlemskapAksjonspunktForm';
export { MedlemskapVurdering } from './src/types/vurderingMedlemskapForm';
diff --git a/packages/fakta/medlemskap/package.json b/packages/fakta/medlemskap/package.json
index 0a3210cdc2f..53b13479574 100644
--- a/packages/fakta/medlemskap/package.json
+++ b/packages/fakta/medlemskap/package.json
@@ -25,6 +25,7 @@
"@navikt/fp-kodeverk": "workspace:*",
"@navikt/fp-types": "workspace:*",
"@navikt/fp-types-avklar-aksjonspunkter": "workspace:*",
+ "@navikt/fp-ui-komponenter": "workspace:*",
"@navikt/fp-utils": "workspace:*",
"@navikt/ft-form-hooks": "10.0.2",
"@navikt/ft-form-validators": "4.2.13",
diff --git a/packages/fakta/medlemskap/src/MedlemskapFaktaIndex.spec.tsx b/packages/fakta/medlemskap/src/MedlemskapFaktaIndex.spec.tsx
index e70247109f4..b42186d23fa 100644
--- a/packages/fakta/medlemskap/src/MedlemskapFaktaIndex.spec.tsx
+++ b/packages/fakta/medlemskap/src/MedlemskapFaktaIndex.spec.tsx
@@ -185,6 +185,6 @@ describe('MedlemskapFaktaIndex', () => {
expect(oppholdstillatelser.getByText('Permanent oppholdstillatelse')).toBeInTheDocument();
expect(screen.getByText('Begrunn endringene')).toBeInTheDocument();
- expect(screen.getByText('Bekreft')).toBeInTheDocument();
+ expect(screen.getByText('Bekreft og fortsett')).toBeInTheDocument();
});
});
diff --git a/packages/fakta/medlemskap/src/components/MedlemskapInfoPanel.tsx b/packages/fakta/medlemskap/src/components/MedlemskapInfoPanel.tsx
index 0c6c9d31a6d..441a594f35a 100644
--- a/packages/fakta/medlemskap/src/components/MedlemskapInfoPanel.tsx
+++ b/packages/fakta/medlemskap/src/components/MedlemskapInfoPanel.tsx
@@ -1,7 +1,8 @@
import { VStack } from '@navikt/ds-react';
+import { AksjonspunktKode } from '@navikt/fp-kodeverk';
import type { Medlemskap } from '@navikt/fp-types';
-import { usePanelDataContext } from '@navikt/fp-utils';
+import { harAksjonspunkt, usePanelDataContext } from '@navikt/fp-utils';
import { VurderMedlemskapAksjonspunktForm } from './aksjonspunkt/VurderMedlemskapAksjonspunktForm';
import { VurderMedlemsskapLegacyAksjonspunktVisning } from './aksjonspunkt/VurderMedlemskapLegacyAksjonspunktVisning';
@@ -23,20 +24,15 @@ interface Props {
* Har ansvar for å vise faktapanelene for medlemskap.
*/
export const MedlemskapInfoPanel = ({ medlemskap }: Props) => {
- const { aksjonspunkterForPanel, alleKodeverk, fagsak, isReadOnly } = usePanelDataContext();
+ const { aksjonspunkterForPanel, alleKodeverk, fagsak, harÅpentAksjonspunkt } = usePanelDataContext();
- const aksjonspunkt = aksjonspunkterForPanel.find(ap => ap.status === 'OPPR' || ap.status === 'UTFO');
- const harAksjonspunkt = !!aksjonspunkt;
+ const harVilkårAP =
+ harAksjonspunkt(AksjonspunktKode.VURDER_MEDLEMSKAPSVILKÅRET, aksjonspunkterForPanel) ||
+ harAksjonspunkt(AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR, aksjonspunkterForPanel);
return (
-
- {medlemskap.manuellBehandlingResultat && isReadOnly && aksjonspunkt && (
-
- )}
+ {harÅpentAksjonspunkt && }
{medlemskap.legacyManuellBehandling && !medlemskap.manuellBehandlingResultat && (
{
-
+
{
brukerNavn={fagsak.bruker.navn}
annenpartNavn={fagsak.annenPart?.navn}
alleKodeverk={alleKodeverk}
- skalViseAvvik={harAksjonspunkt}
+ skalViseAvvik={harVilkårAP}
/>
- {!isReadOnly && aksjonspunkt && (
-
+
+ {harVilkårAP && (
+
)}
);
diff --git a/packages/fakta/medlemskap/src/components/aksjonspunkt/MedlemskapVurderinger.tsx b/packages/fakta/medlemskap/src/components/aksjonspunkt/MedlemskapVurderinger.tsx
index 73e8b029c0c..44a78ba076a 100644
--- a/packages/fakta/medlemskap/src/components/aksjonspunkt/MedlemskapVurderinger.tsx
+++ b/packages/fakta/medlemskap/src/components/aksjonspunkt/MedlemskapVurderinger.tsx
@@ -6,20 +6,23 @@ import { RhfDatepicker, RhfRadioGroup, RhfSelect } from '@navikt/ft-form-hooks';
import { hasValidDate, required } from '@navikt/ft-form-validators';
import { createIntl } from '@navikt/ft-utils';
-import type { AlleKodeverk, Vilkar } from '@navikt/fp-types';
+import type { AlleKodeverk, ManuellBehandlingResultat, Vilkar } from '@navikt/fp-types';
import { usePanelDataContext } from '@navikt/fp-utils';
-import {
- MedlemskapVurdering,
- SØKER_INNFLYTTET_FOR_SENT_KODE,
- type VurderMedlemskapFormValues,
-} from '../../types/vurderingMedlemskapForm';
+import { MedlemskapVurdering, SØKER_INNFLYTTET_FOR_SENT_KODE } from '../../types/vurderingMedlemskapForm';
import { lagVurderingsAlternativer } from './lagVurderingsAlternativer';
import messages from '../../../i18n/nb_NO.json';
const intl = createIntl(messages);
+export type MedlemskapVurderingerFormValues = {
+ vurdering?: MedlemskapVurdering;
+ opphørFom?: string;
+ medlemFom?: string;
+ avslagskode?: string;
+};
+
interface Props {
vilkår: Vilkar;
readOnly: boolean;
@@ -29,17 +32,13 @@ interface Props {
}
export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgående, erRevurdering }: Props) => {
- const { watch, control } = useFormContext();
+ const { watch, control } = useFormContext();
const vurdering = watch('vurdering');
const avslagskode = watch('avslagskode');
const { alleKodeverk } = usePanelDataContext();
const avslagsårsakerOptions = getAvslagsårsakerOptions(alleKodeverk, vilkår);
- const label = erForutgående
- ? intl.formatMessage({ id: 'VurderMedlemsskapAksjonspunktForm.VurderingLabel.Forutgaaende' })
- : intl.formatMessage({ id: 'VurderMedlemsskapAksjonspunktForm.VurderingLabel.Ordinaert' });
-
return (
@@ -47,7 +46,9 @@ export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgåend
name="vurdering"
control={control}
legend={
- readOnly ? intl.formatMessage({ id: 'VurderMedlemsskapAksjonspunktForm.VurderingLabel.ReadOnly' }) : label
+ erForutgående
+ ? intl.formatMessage({ id: 'MedlemskapVurderinger.VurderingLabel.Forutgående' })
+ : intl.formatMessage({ id: 'MedlemskapVurderinger.VurderingLabel.Ordinært' })
}
validate={[required]}
readOnly={readOnly}
@@ -58,16 +59,12 @@ export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgåend
))}
- {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- [JOHANNES] vurder senere */}
+
{vurdering && [MedlemskapVurdering.DELVIS_OPPFYLT, MedlemskapVurdering.IKKE_OPPFYLT].includes(vurdering) && (
)}
{erForutgående &&
- /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- [JOHANNES] vurder senere */
vurdering &&
[MedlemskapVurdering.IKKE_OPPFYLT].includes(vurdering) &&
avslagskode === SØKER_INNFLYTTET_FOR_SENT_KODE && (
@@ -118,3 +106,26 @@ const getAvslagsårsakerOptions = (alleKodeverk: AlleKodeverk, vilkår: Vilkar)
));
};
+
+MedlemskapVurderinger.initialValues = (
+ resultat: ManuellBehandlingResultat | undefined,
+): MedlemskapVurderingerFormValues => {
+ if (resultat) {
+ const { opphørFom, avslagskode, medlemFom } = resultat;
+ if (!avslagskode) {
+ return { vurdering: MedlemskapVurdering.OPPFYLT };
+ } else if (opphørFom) {
+ return { vurdering: MedlemskapVurdering.DELVIS_OPPFYLT, opphørFom, avslagskode };
+ } else if (medlemFom) {
+ return { vurdering: MedlemskapVurdering.IKKE_OPPFYLT, medlemFom, avslagskode };
+ }
+ return { vurdering: MedlemskapVurdering.IKKE_OPPFYLT, avslagskode };
+ }
+ return {};
+};
+
+MedlemskapVurderinger.transformValues = (values: MedlemskapVurderingerFormValues) => ({
+ avslagskode: values.vurdering === MedlemskapVurdering.OPPFYLT ? undefined : values.avslagskode,
+ opphørFom: values.vurdering === MedlemskapVurdering.DELVIS_OPPFYLT ? values.opphørFom : undefined,
+ medlemFom: values.avslagskode === SØKER_INNFLYTTET_FOR_SENT_KODE ? values.medlemFom : undefined,
+});
diff --git a/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapAksjonspunktForm.tsx b/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapAksjonspunktForm.tsx
index 3edbee7468d..b1a80fe9f24 100644
--- a/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapAksjonspunktForm.tsx
+++ b/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapAksjonspunktForm.tsx
@@ -1,89 +1,60 @@
-import { type PropsWithChildren, useState } from 'react';
import { useForm } from 'react-hook-form';
-import { FormattedMessage } from 'react-intl';
+import { useIntl } from 'react-intl';
-import { Button, VStack } from '@navikt/ds-react';
+import { VStack } from '@navikt/ds-react';
import { RhfForm } from '@navikt/ft-form-hooks';
-import { FaktaBegrunnelseTextField } from '@navikt/fp-fakta-felles';
+import { type FaktaBegrunnelseFormValues, FaktaBegrunnelseTextField, FaktaSubmitButton } from '@navikt/fp-fakta-felles';
import { AksjonspunktKode } from '@navikt/fp-kodeverk';
import type { Aksjonspunkt, ManuellBehandlingResultat } from '@navikt/fp-types';
import type { VurderForutgaendeMedlemskapAp, VurderMedlemskapAp } from '@navikt/fp-types-avklar-aksjonspunkter';
-import { useMellomlagretFormData, usePanelDataContext } from '@navikt/fp-utils';
+import { FaktaKort } from '@navikt/fp-ui-komponenter';
+import { harAksjonspunkt, useMellomlagretFormData, usePanelDataContext } from '@navikt/fp-utils';
-import {
- MedlemskapVurdering,
- SØKER_INNFLYTTET_FOR_SENT_KODE,
- type VurderMedlemskapFormValues,
-} from '../../types/vurderingMedlemskapForm';
-import { InfoBox } from '../InfoBox';
-import { MedlemskapVurderinger } from './MedlemskapVurderinger';
+import { MedlemskapVurderinger, type MedlemskapVurderingerFormValues } from './MedlemskapVurderinger';
+
+type FormValues = MedlemskapVurderingerFormValues & FaktaBegrunnelseFormValues;
interface Props {
- aksjonspunkt: Aksjonspunkt;
manuellBehandlingResultat: ManuellBehandlingResultat | undefined;
}
-export const createMedlemskapInitialValues = (
- aksjonspunkt: Aksjonspunkt,
- resultat: ManuellBehandlingResultat | undefined,
-): Partial => {
- const begrunnelse = aksjonspunkt.begrunnelse ?? '';
-
- if (resultat) {
- const { opphørFom, avslagskode, medlemFom } = resultat;
- if (!avslagskode) {
- return { vurdering: MedlemskapVurdering.OPPFYLT, begrunnelse };
- } else if (opphørFom) {
- return { vurdering: MedlemskapVurdering.DELVIS_OPPFYLT, opphørFom, avslagskode, begrunnelse };
- } else if (medlemFom) {
- return { vurdering: MedlemskapVurdering.IKKE_OPPFYLT, medlemFom, avslagskode, begrunnelse };
- }
- return { vurdering: MedlemskapVurdering.IKKE_OPPFYLT, avslagskode, begrunnelse };
- }
- return { begrunnelse };
-};
-
-const ConditionalWrapper = ({ isReadOnly, children }: PropsWithChildren<{ isReadOnly: boolean }>) =>
- isReadOnly ? {children} : <>{children}>;
/**
* MedlemskapInfoPanel
*
* Har ansvar for å vise faktapanelene for medlemskap.
*/
-export const VurderMedlemskapAksjonspunktForm = ({ aksjonspunkt, manuellBehandlingResultat }: Props) => {
- const { fagsak, behandling, vilkårForPanel, submitCallback, isReadOnly, isSubmittable } =
+export const VurderMedlemskapAksjonspunktForm = ({ manuellBehandlingResultat }: Props) => {
+ const intl = useIntl();
+ const { fagsak, behandling, aksjonspunkterForPanel, vilkårForPanel, submitCallback, isReadOnly, isSubmittable } =
usePanelDataContext();
- const { mellomlagretFormData, setMellomlagretFormData } = useMellomlagretFormData();
- const [submitting, setSubmitting] = useState(false);
+ const { mellomlagretFormData, setMellomlagretFormData } = useMellomlagretFormData();
- const formMethods = useForm({
- defaultValues: mellomlagretFormData ?? createMedlemskapInitialValues(aksjonspunkt, manuellBehandlingResultat),
+ const formMethods = useForm({
+ defaultValues: mellomlagretFormData ?? createInitialValues(aksjonspunkterForPanel, manuellBehandlingResultat),
});
const begrunnelseVerdi = formMethods.watch('begrunnelse');
- const erForutgåendeAksjonspunkt = aksjonspunkt.definisjon === AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR;
- const bekreft = ({ vurdering, avslagskode, medlemFom, opphørFom, begrunnelse }: VurderMedlemskapFormValues) => {
- setSubmitting(true);
- return submitCallback({
- kode: erForutgåendeAksjonspunkt
- ? AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR
- : AksjonspunktKode.VURDER_MEDLEMSKAPSVILKÅRET,
- begrunnelse,
- avslagskode: vurdering === MedlemskapVurdering.OPPFYLT ? undefined : avslagskode,
- opphørFom: vurdering === MedlemskapVurdering.DELVIS_OPPFYLT ? opphørFom : undefined,
- medlemFom: avslagskode === SØKER_INNFLYTTET_FOR_SENT_KODE ? medlemFom : undefined,
- });
- };
+ const erForutgående = harAksjonspunkt(AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR, aksjonspunkterForPanel);
return (
-
-
+
+ submitCallback(transformValues(values, erForutgående))}
+ setDataOnUnmount={setMellomlagretFormData}
+ >
{!isReadOnly && (
-
-
-
+
)}
-
+
);
};
+
+const createInitialValues = (
+ aksjonspunkterForPanel: Aksjonspunkt[],
+ resultat: ManuellBehandlingResultat | undefined,
+): FormValues => {
+ return {
+ ...MedlemskapVurderinger.initialValues(resultat),
+ ...FaktaBegrunnelseTextField.initialValues(aksjonspunkterForPanel),
+ };
+};
+
+const transformValues = (
+ values: FormValues,
+ erForutgåendeAksjonspunkt: boolean,
+): VurderMedlemskapAp | VurderForutgaendeMedlemskapAp => ({
+ kode: erForutgåendeAksjonspunkt
+ ? AksjonspunktKode.VURDER_FORUTGÅENDE_MEDLEMSKAPSVILKÅR
+ : AksjonspunktKode.VURDER_MEDLEMSKAPSVILKÅRET,
+ ...MedlemskapVurderinger.transformValues(values),
+ ...FaktaBegrunnelseTextField.transformValues(values),
+});
diff --git a/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapLegacyAksjonspunktVisning.tsx b/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapLegacyAksjonspunktVisning.tsx
index 3ede732850c..4ceafd64a8d 100644
--- a/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapLegacyAksjonspunktVisning.tsx
+++ b/packages/fakta/medlemskap/src/components/aksjonspunkt/VurderMedlemskapLegacyAksjonspunktVisning.tsx
@@ -1,11 +1,12 @@
import React from 'react';
-import { FormattedMessage } from 'react-intl';
+import { FormattedMessage, useIntl } from 'react-intl';
-import { BodyShort, Box, Heading, HStack, Label, VStack } from '@navikt/ds-react';
+import { BodyShort, HStack, Label, VStack } from '@navikt/ds-react';
import { AvsnittSkiller, DateLabel } from '@navikt/ft-ui-komponenter';
import { BTag } from '@navikt/ft-utils';
import type { AlleKodeverk, LegacyManuellMedlemskapsBehandling, LegacyMedlemPeriode } from '@navikt/fp-types';
+import { FaktaKort } from '@navikt/fp-ui-komponenter';
interface Props {
alleKodeverk: AlleKodeverk;
@@ -37,13 +38,11 @@ const MedlemskapPeriodeVisning = ({ medlemsperiode, alleKodeverk, skalViseDato }
-
+ {medlemsperiode.erEosBorger ? (
+
+ ) : (
+
+ )}
)}
@@ -118,13 +117,11 @@ const MedlemskapPeriodeVisning = ({ medlemsperiode, alleKodeverk, skalViseDato }
export const VurderMedlemsskapLegacyAksjonspunktVisning = ({ legacyManuellBehandling, alleKodeverk }: Props) => {
const skalViseDato = legacyManuellBehandling.perioder.length !== 1;
+ const intl = useIntl();
return (
-
+
-
-
-
{legacyManuellBehandling.perioder.map((p, index) => (
@@ -132,6 +129,6 @@ export const VurderMedlemsskapLegacyAksjonspunktVisning = ({ legacyManuellBehand
))}
-
+
);
};
diff --git a/packages/fakta/medlemskap/src/types/vurderingMedlemskapForm.ts b/packages/fakta/medlemskap/src/types/vurderingMedlemskapForm.ts
index 49ea0dedef9..488c6aee7b1 100644
--- a/packages/fakta/medlemskap/src/types/vurderingMedlemskapForm.ts
+++ b/packages/fakta/medlemskap/src/types/vurderingMedlemskapForm.ts
@@ -4,12 +4,4 @@ export enum MedlemskapVurdering {
IKKE_OPPFYLT = 'IKKE_OPPFYLT',
}
-export type VurderMedlemskapFormValues = {
- begrunnelse: string;
- vurdering: MedlemskapVurdering;
- opphørFom?: string;
- medlemFom?: string;
- avslagskode?: string;
-};
-
export const SØKER_INNFLYTTET_FOR_SENT_KODE = '1052';
diff --git a/packages/prosess/vilkar-overstyring/src/VilkarresultatMedOverstyringProsessIndex.spec.tsx b/packages/prosess/vilkar-overstyring/src/VilkarresultatMedOverstyringProsessIndex.spec.tsx
index a2f322e26a0..6737815b787 100644
--- a/packages/prosess/vilkar-overstyring/src/VilkarresultatMedOverstyringProsessIndex.spec.tsx
+++ b/packages/prosess/vilkar-overstyring/src/VilkarresultatMedOverstyringProsessIndex.spec.tsx
@@ -70,17 +70,17 @@ describe('VilkarresultatMedOverstyringProsessIndex', () => {
expect(await screen.findByText('Manuell overstyring av automatisk vurdering')).toBeInTheDocument();
expect(screen.getByText('Er medlemskapsvilkåret oppfylt?')).toBeInTheDocument();
- expect(screen.queryByText('Velg en avslagsårsak')).not.toBeInTheDocument();
- expect(screen.queryByText('Når opphører medlemskapet?')).not.toBeInTheDocument();
+ expect(screen.queryByText('Avslagsårsak')).not.toBeInTheDocument();
+ expect(screen.queryByText('Opphørsdato')).not.toBeInTheDocument();
await userEvent.click(screen.getByText('Delvis oppfylt'));
- expect(screen.getByText('Velg en avslagsårsak')).toBeInTheDocument();
- expect(screen.getByText('Når opphører medlemskapet?')).toBeInTheDocument();
+ expect(screen.getByText('Avslagsårsak')).toBeInTheDocument();
+ expect(screen.getByText('Opphørsdato')).toBeInTheDocument();
- await userEvent.selectOptions(screen.getByLabelText('Velg en avslagsårsak'), 'Søker er utflyttet');
+ await userEvent.selectOptions(screen.getByLabelText('Avslagsårsak'), 'Søker er utflyttet');
- const opphørDatoInput = screen.getByLabelText('Når opphører medlemskapet?');
+ const opphørDatoInput = screen.getByLabelText('Opphørsdato');
await userEvent.type(opphørDatoInput, '20.12.2021');
fireEvent.blur(opphørDatoInput);
diff --git a/packages/prosess/vilkar-overstyring/src/components/VilkarresultatMedOverstyringForm.tsx b/packages/prosess/vilkar-overstyring/src/components/VilkarresultatMedOverstyringForm.tsx
index b51746c2e11..d150b799a88 100644
--- a/packages/prosess/vilkar-overstyring/src/components/VilkarresultatMedOverstyringForm.tsx
+++ b/packages/prosess/vilkar-overstyring/src/components/VilkarresultatMedOverstyringForm.tsx
@@ -7,7 +7,7 @@ import { RhfForm } from '@navikt/ft-form-hooks';
import { OverstyringKnapp } from '@navikt/ft-ui-komponenter';
import { BTag, decodeHtmlEntity } from '@navikt/ft-utils';
-import { createMedlemskapInitialValues, MedlemskapVurdering, MedlemskapVurderinger } from '@navikt/fp-fakta-medlemskap';
+import { MedlemskapVurdering, MedlemskapVurderinger } from '@navikt/fp-fakta-medlemskap';
import { AksjonspunktKode, type VilkårOverstyringAksjonspunkter } from '@navikt/fp-kodeverk';
import { OverstyringPanel, VilkarResultPicker } from '@navikt/fp-prosess-felles';
import type { Aksjonspunkt, BehandlingFpSak, ManuellBehandlingResultat, Vilkar } from '@navikt/fp-types';
@@ -63,14 +63,12 @@ const createInitialValues = (
};
if (erOverstyringAvMedlemskap(overstyringApKode)) {
- if (aksjonspunkt) {
- return {
- ...felles,
- ...createMedlemskapInitialValues(aksjonspunkt, medlemskapManuellBehandlingResultat),
- };
- } else {
- return felles;
- }
+ return aksjonspunkt
+ ? {
+ ...felles,
+ ...MedlemskapVurderinger.initialValues(medlemskapManuellBehandlingResultat),
+ }
+ : felles;
}
return {
...felles,
@@ -85,25 +83,17 @@ type OverstyringVilkår =
| OverstyringMedlemskapvilkaretForutgaendeAp;
const transformValues = (values: FormValues, overstyringApKode: VilkårOverstyringAksjonspunkter): OverstyringVilkår => {
- const { vurdering, avslagskode, begrunnelse, medlemFom, opphørFom } = values;
-
const felles = {
kode: overstyringApKode,
- begrunnelse: begrunnelse,
+ begrunnelse: values.begrunnelse,
};
switch (overstyringApKode) {
case AksjonspunktKode.OVERSTYRING_AV_MEDLEMSKAPSVILKÅRET:
- return {
- ...felles,
- avslagskode: vurdering === MedlemskapVurdering.OPPFYLT ? undefined : avslagskode,
- opphørFom: vurdering === MedlemskapVurdering.DELVIS_OPPFYLT ? opphørFom : undefined,
- };
case AksjonspunktKode.OVERSTYRING_AV_FORUTGÅENDE_MEDLEMSKAPSVILKÅR:
return {
...felles,
- avslagskode: vurdering === MedlemskapVurdering.OPPFYLT ? undefined : avslagskode,
- medlemFom: vurdering === MedlemskapVurdering.IKKE_OPPFYLT ? medlemFom : undefined,
+ ...MedlemskapVurderinger.transformValues(values),
};
default:
return {
diff --git a/yarn.lock b/yarn.lock
index fa2fb4cba2a..f96eb09b11b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1689,6 +1689,7 @@ __metadata:
"@navikt/fp-storybook-utils": "workspace:*"
"@navikt/fp-types": "workspace:*"
"@navikt/fp-types-avklar-aksjonspunkter": "workspace:*"
+ "@navikt/fp-ui-komponenter": "workspace:*"
"@navikt/fp-utils": "workspace:*"
"@navikt/ft-form-hooks": 10.0.2
"@navikt/ft-form-validators": 4.2.13