diff --git a/src/AvtaleProvider.tsx b/src/AvtaleProvider.tsx index 5a52959b..0c168051 100644 --- a/src/AvtaleProvider.tsx +++ b/src/AvtaleProvider.tsx @@ -47,6 +47,7 @@ export interface Context { endretSteg: () => void; godkjenn: () => Promise; godkjennTilskudd: (enhet: string) => Promise; + godkjennFlereTilskudd: (enhet: string, perioder: string[]) => Promise; returnerTilskuddsperiode: (returårsaker: Set, returforklaring: string) => Promise; godkjennPaVegneAvDeltaker: (paVegneGrunn: GodkjentPaVegneAvDeltakerGrunner) => Promise; godkjennPaVegneAvArbeidsgiver: (paVegneGrunn: GodkjentPaVegneAvArbeidsgiverGrunner) => Promise; @@ -235,6 +236,12 @@ const AvtaleProvider: FunctionComponent = (props) => { await hentAvtale(avtale.id); }; + const godkjennFlereTilskudd = async (enhet: string, tilskuddsperioderIder: string[]): Promise => { + await RestService.godkjennFlereTilskuddsperioder(avtale.id, enhet, tilskuddsperioderIder); + sendToAmplitude('#tiltak-tilskudd-godkjent-flere'); + await hentAvtale(avtale.id); + }; + const returnerTilskuddsperiode = async ( returårsaker: Set, returforklaring: string, @@ -285,6 +292,7 @@ const AvtaleProvider: FunctionComponent = (props) => { godkjennPaVegneAvArbeidsgiver, godkjennPaVegneAvDeltakerOgArbeidsgiver, godkjennTilskudd, + godkjennFlereTilskudd, returnerTilskuddsperiode, ulagredeEndringer, mellomLagring, diff --git a/src/BeslutterSide/beslutterTilskuddsperioder/BeslutterTilskuddsperioder.tsx b/src/BeslutterSide/beslutterTilskuddsperioder/BeslutterTilskuddsperioder.tsx index 8ebba603..0991ff1b 100644 --- a/src/BeslutterSide/beslutterTilskuddsperioder/BeslutterTilskuddsperioder.tsx +++ b/src/BeslutterSide/beslutterTilskuddsperioder/BeslutterTilskuddsperioder.tsx @@ -19,13 +19,15 @@ interface Props { } const BeslutterTilskuddsPerioder: FunctionComponent = (props) => { - const { avtale, godkjennTilskudd } = useContext(AvtaleContext); + const { avtale, godkjennTilskudd, godkjennFlereTilskudd } = useContext(AvtaleContext); const { enhet, setVisEnhetFeil, setVisReturModal: setVisAvslag } = useContext(TilskuddsperiodeContext); const { gjeldendeTilskuddsperiode } = avtale; const [godkjennModalÅpen, setGodkjennModalÅpen] = useState(false); const gjeldendeTilskuddsperiodeRef = useRef(null); + const [valgtTilskuddsperiodeStartdato, setValgtTilskuddsperiodeStartdato] = useState(''); const cls = BEMHelper('beslutter-tilskuddsperioder'); + useEffect(() => { if (gjeldendeTilskuddsperiodeRef.current) { gjeldendeTilskuddsperiodeRef.current.scrollIntoView({ @@ -35,6 +37,8 @@ const BeslutterTilskuddsPerioder: FunctionComponent = (props) => { } }, []); + useEffect(() => {}, [valgtTilskuddsperiodeStartdato]); + if (avtale.tilskuddPeriode.length < 1) return null; const settStylingForTabellrad = (periode: TilskuddsPeriode): string => { @@ -64,6 +68,24 @@ const BeslutterTilskuddsPerioder: FunctionComponent = (props) => { ); }; + const flereTilskuddsperioder = () => { + if (gjeldendeTilskuddsperiode !== undefined) { + return gjeldendeTilskuddsperiode?.startDato < valgtTilskuddsperiodeStartdato; + } + }; + + const valgtTilskuddsperiode = async (enhet: string) => { + const tilskuddsperioderIder = avtale.tilskuddPeriode + .filter((tilskuddsperiode) => tilskuddsperiode.startDato <= valgtTilskuddsperiodeStartdato) + .map((tilskuddsperiode) => tilskuddsperiode.id); + if (tilskuddsperioderIder.length > 1) { + return await godkjennFlereTilskudd(enhet, tilskuddsperioderIder); + } + return await godkjennTilskudd(enhet); + }; + + console.log('avtale tilskuddPeriode', avtale.tilskuddPeriode); + return (
@@ -84,7 +106,9 @@ const BeslutterTilskuddsPerioder: FunctionComponent = (props) => { {avtale.tilskuddPeriode.map((periode) => { - const gjeldende = periode.løpenummer === gjeldendeTilskuddsperiode?.løpenummer; + //const gjeldende = true; + //const gjeldende = periode.løpenummer === gjeldendeTilskuddsperiode?.løpenummer; + const gjeldende = periode.kanBehandles; return ( = (props) => { disabled={!enhet || !periode.kanBehandles} onClick={() => { if (enhet) { + setValgtTilskuddsperiodeStartdato( + periode.startDato, + ); setGodkjennModalÅpen(true); } else { setVisEnhetFeil(true); @@ -161,10 +188,13 @@ const BeslutterTilskuddsPerioder: FunctionComponent = (props) => {
+ { if (enhet) { - await godkjennTilskudd(enhet); + if (flereTilskuddsperioder()) { + await valgtTilskuddsperiode(enhet); + } setGodkjennModalÅpen(false); } }} @@ -174,7 +204,8 @@ const BeslutterTilskuddsPerioder: FunctionComponent = (props) => { avbrytelseTekst="Avbryt" lukkModal={() => setGodkjennModalÅpen(false)} > - Du kan ikke gjøre endringer etter at du har godkjent tilskuddsperioden. + Du kan ikke gjøre endringer etter at du har godkjent{' '} + {flereTilskuddsperioder() ? ' tilskuddsperiodene' : ' tilskuddsperioden.'} ); diff --git a/src/services/rest-service.ts b/src/services/rest-service.ts index d82f2a10..a96777b5 100644 --- a/src/services/rest-service.ts +++ b/src/services/rest-service.ts @@ -1,7 +1,6 @@ import axios from 'axios'; import axiosRetry from 'axios-retry'; import { mutate } from 'swr'; - import { ApiError, AutentiseringError, FeilkodeError, IkkeFunnetError } from '@/types/errors'; import { Avtalerolle } from '@/OpprettAvtale/OpprettAvtaleVeileder/OpprettAvtaleVeileder'; import { EndreBeregning } from '@/AvtaleSide/steg/GodkjenningSteg/endringAvAvtaleInnhold/endreTilskudd/EndreTilskuddsberegning'; @@ -394,6 +393,15 @@ export const godkjennTilskuddsperiode = async (avtaleId: string, enhet: string) await api.post(uri, { enhet }); }; +export const godkjennFlereTilskuddsperioder = async ( + avtaleId: string, + enhet: string, + tilskuddsperioderIder: string[], +) => { + const uri = `/avtaler/${avtaleId}/godkjenn-flere-tilskuddsperioder`; + await api.post(uri, { enhet, tilskuddsperioderIder }); +}; + export const setOmAvtalenKanEtterregistreres = async (avtaleId: string): Promise => { const uri = `/avtaler/${avtaleId}/set-om-avtalen-kan-etterregistreres`; const response = await api.post(uri);