Untitled
unknown
typescript
a year ago
5.8 kB
11
Indexable
// utils
import MKV from "./index";
import * as KV from "../kodeverk";
export const erBehandlingAvSed = (sakstype, behandlingstema) => {
switch (behandlingstema) {
case MKV.Koder.behandlinger.behandlingstema.REGISTRERING_UNNTAK_NORSK_TRYGD_UTSTASJONERING:
case MKV.Koder.behandlinger.behandlingstema.REGISTRERING_UNNTAK_NORSK_TRYGD_ØVRIGE:
case MKV.Koder.behandlinger.behandlingstema.BESLUTNING_LOVVALG_NORGE:
case MKV.Koder.behandlinger.behandlingstema.BESLUTNING_LOVVALG_ANNET_LAND:
case MKV.Koder.behandlinger.behandlingstema.ANMODNING_OM_UNNTAK_HOVEDREGEL:
return sakstype === MKV.Koder.sakstyper.EU_EOS;
default:
return false;
}
};
export const lovvalgsbestemmelseTilObjekt = (bestemmelseKode) => {
return KV.kodeTilObjekt(bestemmelseKode, MKV.Kodekombinasjoner.alleLovvalg);
};
export const erStorbritanniaKonvBestemmelse = (bestemmelseKode) =>
Boolean(MKV.Koder.lovvalgsbestemmelser.lovvalgbestemmelser_konv_efta_storbritannia[bestemmelseKode]);
export const enesteLandErStorbritannia = (landkoder) =>
landkoder?.length === 1 && landkoder[0] === MKV.Koder.landkoder.GB;
export const erUtsendt = (behandlingstema) =>
[
MKV.Koder.behandlinger.behandlingstema.UTSENDT_ARBEIDSTAKER,
MKV.Koder.behandlinger.behandlingstema.UTSENDT_SELVSTENDIG,
].includes(behandlingstema);
export const kanHaFlereSoknadsland = (behandlingstema) =>
[
MKV.Koder.behandlinger.behandlingstema.ARBEID_FLERE_LAND,
MKV.Koder.behandlinger.behandlingstema.BESLUTNING_LOVVALG_NORGE,
MKV.Koder.behandlinger.behandlingstema.BESLUTNING_LOVVALG_ANNET_LAND,
].includes(behandlingstema);
export const erAvsluttetEllerMidlertidigBeslutning = (behandlingsstatus) =>
[
MKV.Koder.behandlinger.behandlingsstatus.AVSLUTTET,
MKV.Koder.behandlinger.behandlingsstatus.MIDLERTIDIG_LOVVALGSBESLUTNING,
].includes(behandlingsstatus);
export const erOpphørtEllerHenlagtEllerBortfaltEllerAnnullert = (saksstatus) =>
[
MKV.Koder.saksstatuser.OPPHØRT,
MKV.Koder.saksstatuser.HENLAGT,
MKV.Koder.saksstatuser.HENLAGT_BORTFALT,
MKV.Koder.saksstatuser.ANNULLERT,
].includes(saksstatus);
// varsler
import * as Api from "../../../../services/api";
import { useFeatureToggle } from "../../../../featuretoggle";
import { MELOSYS_KONVENSJON_EFTA_LAND_OG_STORBRITANNIA } from "../../../../featuretoggle/toggleNavn";
import classNames from "classnames";
import * as Utils from "../../../../utils";
import MKV, { MKVUtils } from "../../../../melosyskodeverk";
import * as KV from "../../../../kodeverk";
import * as Nav from "../../../../navFrontend";
const { OVERSTYRT_AV_SAKSBEHANDLER } = MKV.Koder.begrunnelser.inngangsvilkaar;
interface VarslerProps {
oppfyllerInngangsvilkar: boolean;
inngangsvilkaar: Api.Vilkar.Vilkaar | undefined;
landkoder: Array<string>;
behandlingstema: string;
}
const Varsler = ({ oppfyllerInngangsvilkar, inngangsvilkaar, landkoder, behandlingstema }: VarslerProps) => {
const konvensjonStorbritanniaToggleEnabled = useFeatureToggle(MELOSYS_KONVENSJON_EFTA_LAND_OG_STORBRITANNIA);
const inngangsvilkaarBegrunnelseKoder = inngangsvilkaar?.begrunnelseKoder || [];
const inngangsvilkaarErOverstyrtAvSaksbehandler =
inngangsvilkaarBegrunnelseKoder.includes(OVERSTYRT_AV_SAKSBEHANDLER);
const inngangsvilkaarErOverstyrtEllerIkkeOppfylt =
inngangsvilkaarErOverstyrtAvSaksbehandler || !oppfyllerInngangsvilkar;
const inngangsvilkaarErOppfyltOgIkkeOverstyrt = oppfyllerInngangsvilkar && !inngangsvilkaarErOverstyrtAvSaksbehandler;
const oppfyllerInngangsvilkarCl = classNames({
liste__element: true,
"liste__element--oppfylt": inngangsvilkaarErOppfyltOgIkkeOverstyrt,
"liste__element--ikkeoppfylt": inngangsvilkaarErOverstyrtEllerIkkeOppfylt,
});
if (Utils._isEmpty(inngangsvilkaar)) {
return (
<ul className="betingelser__liste">
<li className={oppfyllerInngangsvilkarCl}>Teknisk feil, finner ingen inngangsvilkår.</li>
</ul>
);
}
const oppfyltTekst = `Søknaden oppfyller${
inngangsvilkaarErOppfyltOgIkkeOverstyrt ? " " : " ikke "
}inngangsvilkårene for EU/EØS-saker etter forordning 883/2004.`;
const visbareInngangsvilkaarBegrunnelseKoder = inngangsvilkaarBegrunnelseKoder.filter(
(kode) => kode !== OVERSTYRT_AV_SAKSBEHANDLER
);
const visStorbritanniaKonvensjonTekst =
konvensjonStorbritanniaToggleEnabled &&
MKVUtils.erUtsendt(behandlingstema) &&
MKVUtils.enesteLandErStorbritannia(landkoder);
return (
<div className="vurderinginngang_eu_eos">
<ul className="betingelser__liste">
<li className={oppfyllerInngangsvilkarCl}>{oppfyltTekst}</li>
{inngangsvilkaarErOverstyrtEllerIkkeOppfylt &&
visbareInngangsvilkaarBegrunnelseKoder.map((begrunnelseKode) => (
<li key={begrunnelseKode} className={oppfyllerInngangsvilkarCl}>
{KV.kodeTilTerm(begrunnelseKode, MKV.KTObjects.begrunnelser.inngangsvilkaar)}
</li>
))}
</ul>
{inngangsvilkaarErOverstyrtEllerIkkeOppfylt && (
<Nav.Alert variant="info">
{visStorbritanniaKonvensjonTekst && (
<p className="storbritannia-konv-tekst">
Husk at du må vurdere om inngangsvilkårene i konvensjonen med Storbritannia av 30. juni 2023, eller
separasjonsavtalen av 28. januar 2020, er oppfylt.
</p>
)}
Du har to valg:
<ul>
<li>Hvis inngangsvilkår ikke er oppfylt, må du avslutte saken fra behandlingsmenyen</li>
<li>Hvis inngangsvilkår er oppfylt, kan du fortsette behandlingen som normalt</li>
</ul>
</Nav.Alert>
)}
</div>
);
};
export default Varsler;
Editor is loading...
Leave a Comment