import React from 'react';
import {
Alternativ,
ARBEIDSTIDER,
garanterListe,
getRelevanteTiltak,
GyldighetsRegistrerer,
ledetekst,
navngiTiltak,
OppsummeringBlokk,
OppsummeringFiler,
useOppsummering,
utledTiltaksskissefeilmelding,
} from '..';
import { validerVarslingsplan } from '../validering/VarslingsplanValidering';
import { TilbakemeldingForSteg } from './tilbakemelding/TilbakemeldingForSteg';
import { OppsummeringPunkt } from '../pynt/OppsummeringPunkt';
import { SlettetInformasjonsboks } from './SlettetInformasjonsboks';
import { Tiltak } from '../domene/Soknad';
export function VarslingsplanOppsummering() {
const {
id: soknadId,
kunLesbar,
vegarbeid,
lastNedVedleggUrl,
lastNedVedlegg,
gyldighet,
soknad,
forrigeSoknad,
} = useOppsummering();
const redigeringsLenke = !kunLesbar && `#/${soknadId}/varslingsplan`;
const filer = vegarbeid.varslingsplan?.vedlegg || [];
const plantype = vegarbeid?.plantype;
const [relevanteTiltak] = getRelevanteTiltak(
plantype,
vegarbeid?.vegarbeidsbeskrivelse
);
//til bruk i sammenligning for saksbehandler
const [forrigeRelevanteTiltak] =
getRelevanteTiltak(
forrigeSoknad?.vegarbeid?.plantype,
forrigeSoknad?.vegarbeid?.vegarbeidsbeskrivelse
) || [];
const valideringsfeil =
validerVarslingsplan(soknad) ||
utledTiltaksskissefeilmelding(filer, vegarbeid);
const forrigeVedlegg =
forrigeSoknad?.vegarbeid?.varslingsplan?.vedlegg || [];
return (
<>
{!valideringsfeil && (
{
return (
);
}}
skisseprefiks={ledetekst.getTekst(
'arbeidsvarsling.soknad.Varslingsplan.skisseprefiks'
)}
/>
)}
>
);
}
function Skissetiltak({
plantype,
relevanteTiltak,
forrigeRelevanteTiltak,
skisse,
}) {
return (
<>
{ARBEIDSTIDER.map((arbeidstid, i) => {
return Object.keys(relevanteTiltak).map((kategori, j) => {
const tiltak = relevanteTiltak[kategori];
return garanterListe(tiltak.alternativer).map(
(alternativ: Alternativ, k) => {
if (
!alternativ.vedlagteSkisserIder[
arbeidstid
]?.some((it) => it == skisse.id)
) {
return;
}
const markerEndretTiltak = !!(
!!forrigeRelevanteTiltak &&
!forrigeRelevanteTiltak[
kategori
]?.alternativer
.find(
(it) =>
it.valgt &&
it.felt == alternativ.felt
)
?.vedlagteSkisserIder[arbeidstid]?.some(
(it) => it == skisse.id
)
);
return garanterListe(
alternativ.arbeidstider
).map((enArbeidstid, l) => {
if (enArbeidstid !== arbeidstid) {
return;
}
return (
-
{navngiTiltak(
plantype,
kategori,
alternativ,
arbeidstid
)}
);
});
}
);
});
})}
>
);
}
function harSlettetTiltakFraSkisse(
relevanteTiltak: Tiltak[],
forrigeRelevanteTiltak: Tiltak[],
skisseId: string
) {
const filterTiltakForSkisser = (tiltak: Tiltak[], skisseId: string) =>
tiltak
? Object.values(tiltak)
.flatMap((value: any) => value.alternativer)
.filter((it) =>
Object.values(it.vedlagteSkisserIder)
.flat()
.includes(skisseId)
)
: [];
const antallTiltakForSkisserForrigeSoknad = filterTiltakForSkisser(
forrigeRelevanteTiltak,
skisseId
);
const antallTiltakForSkisserDenneSoknad = filterTiltakForSkisser(
relevanteTiltak,
skisseId
);
return (
forrigeRelevanteTiltak &&
antallTiltakForSkisserForrigeSoknad > antallTiltakForSkisserDenneSoknad
);
}