Skip to content

Commit

Permalink
Kan godskjenne seks tilskuddsperioder med et knappetrykk
Browse files Browse the repository at this point in the history
  • Loading branch information
MagnusRom committed Nov 25, 2024
1 parent a3cdab3 commit 001da90
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 5 deletions.
8 changes: 8 additions & 0 deletions src/AvtaleProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export interface Context {
endretSteg: () => void;
godkjenn: () => Promise<void>;
godkjennTilskudd: (enhet: string) => Promise<void>;
godkjennFlereTilskudd: (enhet: string, perioder: string[]) => Promise<void>;
returnerTilskuddsperiode: (returårsaker: Set<Returårsaker>, returforklaring: string) => Promise<void>;
godkjennPaVegneAvDeltaker: (paVegneGrunn: GodkjentPaVegneAvDeltakerGrunner) => Promise<void>;
godkjennPaVegneAvArbeidsgiver: (paVegneGrunn: GodkjentPaVegneAvArbeidsgiverGrunner) => Promise<void>;
Expand Down Expand Up @@ -235,6 +236,12 @@ const AvtaleProvider: FunctionComponent<PropsWithChildren> = (props) => {
await hentAvtale(avtale.id);
};

const godkjennFlereTilskudd = async (enhet: string, tilskuddsperioderIder: string[]): Promise<void> => {
await RestService.godkjennFlereTilskuddsperioder(avtale.id, enhet, tilskuddsperioderIder);
sendToAmplitude('#tiltak-tilskudd-godkjent-flere');
await hentAvtale(avtale.id);
};

const returnerTilskuddsperiode = async (
returårsaker: Set<Returårsaker>,
returforklaring: string,
Expand Down Expand Up @@ -285,6 +292,7 @@ const AvtaleProvider: FunctionComponent<PropsWithChildren> = (props) => {
godkjennPaVegneAvArbeidsgiver,
godkjennPaVegneAvDeltakerOgArbeidsgiver,
godkjennTilskudd,
godkjennFlereTilskudd,
returnerTilskuddsperiode,
ulagredeEndringer,
mellomLagring,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ interface Props {
}

const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (props) => {
const { avtale, godkjennTilskudd } = useContext<Context>(AvtaleContext);
const { avtale, godkjennTilskudd, godkjennFlereTilskudd } = useContext<Context>(AvtaleContext);
const { enhet, setVisEnhetFeil, setVisReturModal: setVisAvslag } = useContext<Periode>(TilskuddsperiodeContext);
const { gjeldendeTilskuddsperiode } = avtale;
const [godkjennModalÅpen, setGodkjennModalÅpen] = useState<boolean>(false);
const gjeldendeTilskuddsperiodeRef = useRef<HTMLTableRowElement | null>(null);
const [valgtTilskuddsperiodeStartdato, setValgtTilskuddsperiodeStartdato] = useState<string>('');

const cls = BEMHelper('beslutter-tilskuddsperioder');

useEffect(() => {
if (gjeldendeTilskuddsperiodeRef.current) {
gjeldendeTilskuddsperiodeRef.current.scrollIntoView({
Expand All @@ -35,6 +37,8 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (props) => {
}
}, []);

useEffect(() => {}, [valgtTilskuddsperiodeStartdato]);

if (avtale.tilskuddPeriode.length < 1) return null;

const settStylingForTabellrad = (periode: TilskuddsPeriode): string => {
Expand Down Expand Up @@ -64,6 +68,24 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (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 (
<div className={cls.className}>
<Heading level="2" size="small" className={cls.element('tittel')}>
Expand All @@ -84,7 +106,9 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (props) => {
</thead>
<tbody>
{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 (
<React.Fragment key={periode.id}>
<tr
Expand Down Expand Up @@ -133,6 +157,9 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (props) => {
disabled={!enhet || !periode.kanBehandles}
onClick={() => {
if (enhet) {
setValgtTilskuddsperiodeStartdato(
periode.startDato,
);
setGodkjennModalÅpen(true);
} else {
setVisEnhetFeil(true);
Expand Down Expand Up @@ -161,10 +188,13 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (props) => {
</table>
</div>
<TilskuddsperiodeReturModal tiltakstype={avtale.tiltakstype} />
<Button></Button>
<BekreftelseModal
bekreftOnClick={async () => {
if (enhet) {
await godkjennTilskudd(enhet);
if (flereTilskuddsperioder()) {
await valgtTilskuddsperiode(enhet);
}
setGodkjennModalÅpen(false);
}
}}
Expand All @@ -174,7 +204,8 @@ const BeslutterTilskuddsPerioder: FunctionComponent<Props> = (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.'}
</BekreftelseModal>
</div>
);
Expand Down
10 changes: 9 additions & 1 deletion src/services/rest-service.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -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<Avtale> => {
const uri = `/avtaler/${avtaleId}/set-om-avtalen-kan-etterregistreres`;
const response = await api.post(uri);
Expand Down

0 comments on commit 001da90

Please sign in to comment.