Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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 = () => {
Expand Down
2 changes: 1 addition & 1 deletion knip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
91 changes: 7 additions & 84 deletions packages/fakta/medlemskap/i18n/nb_NO.json
Original file line number Diff line number Diff line change
@@ -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 <b>ikke</b> 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",
Expand All @@ -54,23 +8,6 @@
"StatusForBorgerFaktaPanel.HarLovligOpphold": "Søker har lovlig opphold",
"StatusForBorgerFaktaPanel.HarIkkeLovligOpphold": "Søker har <b>ikke</b> 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. ",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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"
}
1 change: 0 additions & 1 deletion packages/fakta/medlemskap/index.ts
Original file line number Diff line number Diff line change
@@ -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';
1 change: 1 addition & 0 deletions packages/fakta/medlemskap/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
});
36 changes: 15 additions & 21 deletions packages/fakta/medlemskap/src/components/MedlemskapInfoPanel.tsx
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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 (
<VStack gap="space-24">
<AksjonspunktHelpText aksjonspunkter={aksjonspunkterForPanel} medlemskap={medlemskap} />
{medlemskap.manuellBehandlingResultat && isReadOnly && aksjonspunkt && (
<VurderMedlemskapAksjonspunktForm
manuellBehandlingResultat={medlemskap.manuellBehandlingResultat}
aksjonspunkt={aksjonspunkt}
/>
)}
{harÅpentAksjonspunkt && <AksjonspunktHelpText aksjonspunkter={aksjonspunkterForPanel} medlemskap={medlemskap} />}

{medlemskap.legacyManuellBehandling && !medlemskap.manuellBehandlingResultat && (
<VurderMedlemsskapLegacyAksjonspunktVisning
Expand All @@ -47,41 +43,39 @@ export const MedlemskapInfoPanel = ({ medlemskap }: Props) => {
<SituasjonOversikt medlemskap={medlemskap} alleKodeverk={alleKodeverk} />

<VStack gap="space-8">
<OpplysningerOmUtenlandsopphold medlemskap={medlemskap} skalViseAvvik={harAksjonspunkt} />
<OpplysningerOmUtenlandsopphold medlemskap={medlemskap} skalViseAvvik={harVilkårAP} />
<OpplysningerOmAdresser
medlemskap={medlemskap}
avvik={medlemskap.avvik}
brukerNavn={fagsak.bruker.navn}
annenpartNavn={fagsak.annenPart?.navn}
alleKodeverk={alleKodeverk}
skalViseAvvik={harAksjonspunkt}
skalViseAvvik={harVilkårAP}
/>
<OpplysningerOmPersonstatus
medlemskap={medlemskap}
avvik={medlemskap.avvik}
brukerNavn={fagsak.bruker.navn}
annenpartNavn={fagsak.annenPart?.navn}
alleKodeverk={alleKodeverk}
skalViseAvvik={harAksjonspunkt}
skalViseAvvik={harVilkårAP}
/>
<OpplysningerFraMedlemskapsregister
medlemskapsperioder={medlemskap.medlemskapsperioder}
avvik={medlemskap.avvik}
alleKodeverk={alleKodeverk}
skalViseAvvik={harAksjonspunkt}
skalViseAvvik={harVilkårAP}
/>
<OpplysningerOmOppholdstillatelser
oppholdstillatelser={medlemskap.oppholdstillatelser}
avvik={medlemskap.avvik}
alleKodeverk={alleKodeverk}
skalViseAvvik={harAksjonspunkt}
skalViseAvvik={harVilkårAP}
/>
</VStack>
{!isReadOnly && aksjonspunkt && (
<VurderMedlemskapAksjonspunktForm
manuellBehandlingResultat={medlemskap.manuellBehandlingResultat}
aksjonspunkt={aksjonspunkt}
/>

{harVilkårAP && (
<VurderMedlemskapAksjonspunktForm manuellBehandlingResultat={medlemskap.manuellBehandlingResultat} />
)}
</VStack>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -29,25 +32,23 @@ interface Props {
}

export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgående, erRevurdering }: Props) => {
const { watch, control } = useFormContext<VurderMedlemskapFormValues>();
const { watch, control } = useFormContext<MedlemskapVurderingerFormValues>();
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 (
<RawIntlProvider value={intl}>
<VStack gap={readOnly ? '2' : '6'}>
<RhfRadioGroup
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}
Expand All @@ -58,16 +59,12 @@ export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgåend
</Radio>
))}
</RhfRadioGroup>
{/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- [JOHANNES] vurder senere */}

{vurdering && [MedlemskapVurdering.DELVIS_OPPFYLT, MedlemskapVurdering.IKKE_OPPFYLT].includes(vurdering) && (
<RhfSelect
name="avslagskode"
control={control}
label={intl.formatMessage({
id: readOnly
? 'VurderMedlemsskapAksjonspunktForm.AvslagsarsakLabel.ReadOnly'
: 'VurderMedlemsskapAksjonspunktForm.AvslagsarsakLabel',
})}
label={intl.formatMessage({ id: 'MedlemskapVurderinger.AvslagsarsakLabel' })}
selectValues={avslagsårsakerOptions}
readOnly={readOnly}
validate={[required]}
Expand All @@ -77,28 +74,19 @@ export const MedlemskapVurderinger = ({ readOnly, ytelse, vilkår, erForutgåend
<RhfDatepicker
name="opphørFom"
control={control}
label={intl.formatMessage({
id: readOnly
? 'VurderMedlemsskapAksjonspunktForm.OpphorFomLabel.ReadOnly'
: 'VurderMedlemsskapAksjonspunktForm.OpphorFomLabel',
})}
label={intl.formatMessage({ id: 'MedlemskapVurderinger.OpphorFomLabel' })}
validate={[hasValidDate, required]}
readOnly={readOnly}
/>
)}
{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 && (
<RhfDatepicker
name="medlemFom"
control={control}
label={intl.formatMessage({
id: readOnly
? 'VurderMedlemsskapAksjonspunktForm.MedlemFomLabel.ReadOnly'
: 'VurderMedlemsskapAksjonspunktForm.MedlemFomLabel',
})}
label={intl.formatMessage({ id: 'MedlemskapVurderinger.MedlemFomLabel' })}
validate={[hasValidDate, required]}
readOnly={readOnly}
/>
Expand All @@ -118,3 +106,26 @@ const getAvslagsårsakerOptions = (alleKodeverk: AlleKodeverk, vilkår: Vilkar)
</option>
));
};

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,
});
Loading
Loading