From 5a433e8b18490dd4ba1acba43b995809f46dc68c Mon Sep 17 00:00:00 2001 From: ramziabuqassim Date: Tue, 28 Nov 2023 15:41:33 +0100 Subject: [PATCH] matcher tilbakekrevingsfelter med backend --- src/api/tilbakekrevingApi.ts | 2 +- .../OppsummeringAvKravgrunnlag-nb.ts | 10 +- .../OppsummeringAvKravgrunnlag.tsx | 67 +++++-------- ...summeringAvTilbakekrevingsbehandling-nb.ts | 36 ++++--- ...ppsummeringAvTilbakekrevingsbehandling.tsx | 98 ++++++++----------- .../tilbakekreving/Tilbakekreving-nb.ts | 10 +- .../BrevForTilbakekreving.tsx | 30 +++--- .../VurderTilbakekreving.tsx | 57 +++++------ .../VurderTilbakekrevingUtils.ts | 13 ++- src/types/Kravgrunnlag.ts | 31 +++--- src/types/ManuellTilbakekrevingsbehandling.ts | 45 +++++++-- src/utils/periode/periodeUtils.ts | 6 ++ 12 files changed, 198 insertions(+), 207 deletions(-) diff --git a/src/api/tilbakekrevingApi.ts b/src/api/tilbakekrevingApi.ts index dd31c089a..f223e6a7a 100644 --- a/src/api/tilbakekrevingApi.ts +++ b/src/api/tilbakekrevingApi.ts @@ -36,7 +36,7 @@ export async function vurderTilbakekrevingsbehandling( method: 'POST', body: { versjon: arg.versjon, - måneder: arg.måneder, + perioder: arg.perioder, }, }); } diff --git a/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag-nb.ts b/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag-nb.ts index 19bda6a74..1bb7b90dc 100644 --- a/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag-nb.ts +++ b/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag-nb.ts @@ -8,13 +8,11 @@ export default { 'kravgrunnlag.grunnlagsperiode.tittel': 'Grunnlagsperioder', 'kravgrunnlag.grunnlagsperiode.periode': 'Periode', - 'kravgrunnlag.grunnlagsperiode.beløpSkattMnd': 'Skatt per måned', + 'kravgrunnlag.grunnlagsperiode.betaltSkattForYtelsesgruppen': 'Betalt skatt for ytelsesgruppen', 'kravgrunnlag.grunnlagsperiode.beløp.kode': 'Kode', 'kravgrunnlag.grunnlagsperiode.beløp.type': 'Type', 'kravgrunnlag.grunnlagsperiode.beløp.skatteProsent': 'Skatteprosent', - 'kravgrunnlag.grunnlagsperiode.beløp.beløpTidligereUtbetaling': 'Tidligere utbetalt', - 'kravgrunnlag.grunnlagsperiode.beløp.beløpNyUtbetaling': 'Ny utbetaling', - 'kravgrunnlag.grunnlagsperiode.beløp.beløpSkalTilbakekreves': 'Skal tilbakekreves', - 'kravgrunnlag.grunnlagsperiode.beløp.beløpSkalIkkeTilbakekreves': 'Skal ikke tilbakekreves', - 'kravgrunnlag.grunnlagsperiode.beløp.nettoBeløp': 'Netto beløp', + 'kravgrunnlag.grunnlagsperiode.beløp.bruttoTidligereUtbetalt': 'Brutto tidligere utbetalt', + 'kravgrunnlag.grunnlagsperiode.beløp.bruttoNyUtbetaling': 'Brutto ny utbetaling', + 'kravgrunnlag.grunnlagsperiode.beløp.bruttoFeilutbetaling': 'Brutto feilutbetaling', }; diff --git a/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag.tsx b/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag.tsx index fd87cf3fe..d50f04cf9 100644 --- a/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag.tsx +++ b/src/components/oppsummering/kravgrunnlag/OppsummeringAvKravgrunnlag.tsx @@ -9,8 +9,7 @@ import Oppsummeringspanel, { } from '~src/components/oppsummeringspanel/Oppsummeringspanel'; import { useI18n } from '~src/lib/i18n'; import { Kravgrunnlag, Grunnlagsperiode } from '~src/types/Kravgrunnlag'; -import Måned from '~src/types/Måned'; -import { formatMonthYear } from '~src/utils/date/dateUtils'; +import { formatDate, formatMonthYear } from '~src/utils/date/dateUtils'; import { OppsummeringPar } from '../oppsummeringpar/OppsummeringPar'; @@ -125,12 +124,14 @@ const OppsummeringAvGrunnlagsperioderBasic = (props: { grunnlagsperiode: Grunnla
@@ -139,35 +140,24 @@ const OppsummeringAvGrunnlagsperioderBasic = (props: { grunnlagsperiode: Grunnla - - - @@ -203,8 +193,8 @@ const OppsummeringAvGrunnlagsPerioderAccordion = (props: {
@@ -212,40 +202,27 @@ const OppsummeringAvGrunnlagsPerioderAccordion = (props: {
- - - diff --git a/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling-nb.ts b/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling-nb.ts index b6af5d5ac..0a6d6bf0a 100644 --- a/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling-nb.ts +++ b/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling-nb.ts @@ -5,21 +5,29 @@ export default { 'oppsummering.tilbakekrevingsbehandling.opprettetAv': 'Opprettet av', 'oppsummering.tilbakekrevingsbehandling.sendtTilAttesteringAv': 'Sendt til attestering av', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.måned': 'Måned', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.vurdering': 'Vurdering', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.vurdering.SkalTilbakekreve': 'Skal tilbakekreve', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.vurdering.SkalIkkeTilbakekreve': 'Skal ikke tilbakekreve', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.skatteBeløp': 'Skattebeløp', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.skatteprosent': 'Skatteprosent', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.tidligereUtbetalt': 'Tidligere utbetalt', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.nyUtbetaling': 'Ny utbetaling', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.skalTilbakekreves': 'Skal tilbakekreves', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.skalIkkeTilbakekreves': 'Skal ikke tilbakekreves', - 'oppsummering.tilbakekrevingsbehandling.månedsvurdering.nettoBeløp': 'Netto beløp', + 'oppsummering.tilbakekrevingsbehandling.vurdering.periode': 'Periode', + 'oppsummering.tilbakekrevingsbehandling.vurdering.vurdering': 'Vurdering', + 'oppsummering.tilbakekrevingsbehandling.vurdering.vurdering.SkalTilbakekreve': 'Skal tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.vurdering.SkalIkkeTilbakekreve': 'Skal ikke tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.betaltSkattForYtelsesgruppen': 'Skattebeløp', + 'oppsummering.tilbakekrevingsbehandling.vurdering.skatteprosent': 'Skatteprosent', + 'oppsummering.tilbakekrevingsbehandling.vurdering.bruttoTidligereUtbetalt': 'Brutto tidligere utbetalt', + 'oppsummering.tilbakekrevingsbehandling.vurdering.bruttoNyUtbetaling': 'Brutto ny utbetaling', + 'oppsummering.tilbakekrevingsbehandling.vurdering.bruttoSkalTilbakekreve': 'Brutto skal tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.bruttoSkalIkkeTilbakekreve': 'Brutto skal ikke tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.nettoSkalTilbakekreve': 'Netto skal tilbakekreve', - 'oppsummering.tilbakekrevingsbehandling.totalgrunnlagsperiode.heading': 'Summerte perioder', - 'oppsummering.tilbakekrevingsbehandling.totalgrunnlagsperiode.betaltSkattForYtelsesgruppen': - 'Betalt skatt for ytelsesgruppen', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.heading': 'Summerte perioder', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.betaltSkattForYtelsesgruppen': + 'Summert skatt for ytelsesgruppen', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.bruttoTidligereUtbetalt': + 'Summert brutto tidligere utbetalt', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.bruttoNyUtbetaling': 'Summert brutto ny utbetaling', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.bruttoSkalTilbakekreve': + 'Summert brutto skal tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.bruttoSkalIkkeTilbakekreve': + 'Summert brutto skal ikke tilbakekreve', + 'oppsummering.tilbakekrevingsbehandling.vurdering.summert.nettoSkalTilbakekreve': 'Summert netto skal tilbakekreve', 'oppsummering.tilbakekrevingsbehandling.brev.panel.tittel': 'Forhåndsvarsler & Vedtaksbrev', 'oppsummering.tilbakekrevingsbehandling.brev.skalIkkeSendeBrev': 'Skal ikke sende vedtaksbrev', diff --git a/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling.tsx b/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling.tsx index dd56dde6e..820a54894 100644 --- a/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling.tsx +++ b/src/components/oppsummering/oppsummeringAvTilbakekrevingsbehandling/OppsummeringAvTilbakekrevingsbehandling.tsx @@ -14,8 +14,7 @@ import { useApiCall } from '~src/lib/hooks'; import { useI18n } from '~src/lib/i18n'; import { TidligereSendtForhåndsvarsler } from '~src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/forhåndsvarsleTilbakekreving/ForhåndsvarsleTilbakekreving'; import { ManuellTilbakekrevingsbehandling } from '~src/types/ManuellTilbakekrevingsbehandling'; -import Måned from '~src/types/Måned'; -import { formatDateTime } from '~src/utils/date/dateUtils'; +import { formatDate, formatDateTime } from '~src/utils/date/dateUtils'; import { OppsummeringPar } from '../oppsummeringpar/OppsummeringPar'; @@ -70,39 +69,32 @@ const OppsummeringAvMetaInformasjon = (props: { behandling: ManuellTilbakekrevin const OppsummeringAvVurdering = (props: { behandling: ManuellTilbakekrevingsbehandling }) => { const { formatMessage } = useI18n({ messages }); - const månedsvurderingerMedKravgrunnlagsperiode = []; - - for (const månedsvurdering of props.behandling.månedsvurderinger) { - const matched = props.behandling.kravgrunnlag.grunnlagsperiode.find( - (grunnlagsperiode) => - Måned.fromStringPeriode(grunnlagsperiode.periode).toString() === månedsvurdering.måned, - )!; - - if (!matched) throw new Error('Månedsvurdering mangler grunnlagsperiode'); - - månedsvurderingerMedKravgrunnlagsperiode.push({ ...månedsvurdering, ...matched }); + if (!props.behandling.vurderinger) { + return ( +
+ +
+ ); } return (
- {månedsvurderingerMedKravgrunnlagsperiode.map((månedsvurderingOgGrunnlagsperiode) => ( - + {props.behandling.vurderinger.perioder.map((periode) => ( +
@@ -113,16 +105,16 @@ const OppsummeringAvVurdering = (props: { behandling: ManuellTilbakekrevingsbeha
@@ -130,40 +122,40 @@ const OppsummeringAvVurdering = (props: { behandling: ManuellTilbakekrevingsbeha
@@ -173,60 +165,54 @@ const OppsummeringAvVurdering = (props: { behandling: ManuellTilbakekrevingsbeha - {formatMessage('oppsummering.tilbakekrevingsbehandling.totalgrunnlagsperiode.heading')} + {formatMessage('oppsummering.tilbakekrevingsbehandling.vurdering.summert.heading')}
diff --git a/src/pages/saksbehandling/tilbakekreving/Tilbakekreving-nb.ts b/src/pages/saksbehandling/tilbakekreving/Tilbakekreving-nb.ts index 74ad50d10..95a89b31c 100644 --- a/src/pages/saksbehandling/tilbakekreving/Tilbakekreving-nb.ts +++ b/src/pages/saksbehandling/tilbakekreving/Tilbakekreving-nb.ts @@ -17,13 +17,11 @@ export default { 'vurderTilbakekreving.skalTilbakekreve': 'Beløpet skal tilbakekreves', 'vurderTilbakekreving.skalIkkeTilbakekreve': 'Beløpet skal ikke tilbakekreves', 'vurderTilbakekreving.feiloppsummering': 'Du må rette følgende feil', - 'vurderTilbakekreving.kravgrunnlagsInfo.skatteBeløp': 'Skattebeløp', + 'vurderTilbakekreving.kravgrunnlagsInfo.betaltSkattForYtelsesgruppen': 'Betalt skatt for ytelsesgruppen', 'vurderTilbakekreving.kravgrunnlagsInfo.skatteprosent': 'Skatteprosent', - 'vurderTilbakekreving.kravgrunnlagsInfo.tidligereUtbetalt': 'Tidligere utbetalt', - 'vurderTilbakekreving.kravgrunnlagsInfo.nyUtbetaling': 'Ny utbetaling', - 'vurderTilbakekreving.kravgrunnlagsInfo.skalTilbakekreves': 'Skal tilbakekreves', - 'vurderTilbakekreving.kravgrunnlagsInfo.skalIkkeTilbakekreves': 'Skal ikke tilbakekreves', - 'vurderTilbakekreving.kravgrunnlagsInfo.nettoBeløp': 'Netto beløp', + 'vurderTilbakekreving.kravgrunnlagsInfo.bruttoTidligereUtbetalt': 'Brutto tidligere utbetalt', + 'vurderTilbakekreving.kravgrunnlagsInfo.bruttoNyUtbetaling': 'Brutto ny utbetaling', + 'vurderTilbakekreving.kravgrunnlagsInfo.bruttoFeilutbetaling': 'Brutto feilutbetaling', 'forhåndsvarsleTilbakekreving.tittel': 'Forhåndsvarsling', 'forhåndsvarsleTilbakekreving.skalForhåndsvarsle': 'Skal det forhåndsvarsles?', diff --git a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/brevForTilbakekreving/BrevForTilbakekreving.tsx b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/brevForTilbakekreving/BrevForTilbakekreving.tsx index c40597661..5e6a88d93 100644 --- a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/brevForTilbakekreving/BrevForTilbakekreving.tsx +++ b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/brevForTilbakekreving/BrevForTilbakekreving.tsx @@ -94,22 +94,24 @@ const BrevForTilbakekreving = (props: { }); }; - const onSeBrevClick = async () => { - if (RemoteData.isPending(hentBrevStatus)) return; + const onSeBrevClick = async (data: BrevForTilbakekrevingFormData) => { + save(data, async () => { + if (RemoteData.isPending(hentBrevStatus)) return; - setHentBrevStatus(RemoteData.pending); + setHentBrevStatus(RemoteData.pending); - const res = await forhåndsvisVedtaksbrevTilbakekrevingsbehandling({ - sakId: props.sakId, - behandlingId: props.tilbakekreving.id, - }); + const res = await forhåndsvisVedtaksbrevTilbakekrevingsbehandling({ + sakId: props.sakId, + behandlingId: props.tilbakekreving.id, + }); - if (res.status === 'ok') { - setHentBrevStatus(RemoteData.success(null)); - window.open(URL.createObjectURL(res.data)); - } else { - setHentBrevStatus(RemoteData.failure(res.error)); - } + if (res.status === 'ok') { + setHentBrevStatus(RemoteData.success(null)); + window.open(URL.createObjectURL(res.data)); + } else { + setHentBrevStatus(RemoteData.failure(res.error)); + } + }); }; const { isSaving } = useAutosaveOnChange(form.watch('brevtekst'), () => { @@ -176,7 +178,7 @@ const BrevForTilbakekreving = (props: { type="button" className={styles.seBrevButton} variant="secondary" - onClick={onSeBrevClick} + onClick={() => onSeBrevClick(form.getValues())} loading={RemoteData.isPending(hentBrevStatus)} > {formatMessage('knapp.seBrev')} diff --git a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekreving.tsx b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekreving.tsx index 9ef720ddb..2d938dedf 100644 --- a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekreving.tsx +++ b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekreving.tsx @@ -22,7 +22,7 @@ import { TilbakekrevingSteg, TilbakekrevingsVurdering, } from '~src/types/ManuellTilbakekrevingsbehandling'; -import Måned from '~src/types/Måned'; +import { formatDate } from '~src/utils/date/dateUtils'; import messages from '../../Tilbakekreving-nb'; @@ -49,18 +49,20 @@ const VurderTilbakekreving = (props: { steg: TilbakekrevingSteg.Vedtaksbrev, }); - const defaultValuesFraBehandling = props.tilbakekreving.månedsvurderinger.map((måned) => ({ - måned: Måned.fromString(måned.måned), - vurdering: måned.vurdering, - })); + const defaultValuesFraBehandling = props.tilbakekreving.vurderinger?.perioder.map((periode) => { + return { + periode: periode.periode, + vurdering: periode.vurdering, + }; + }); const defaultValuesFraKravgunnlag = props.tilbakekreving.kravgrunnlag.grunnlagsperiode.map((periode) => ({ - måned: Måned.fromStringPeriode(periode.periode), + periode: periode.periode, vurdering: null, })); const initialValues = - defaultValuesFraBehandling.length > 0 + defaultValuesFraBehandling && defaultValuesFraBehandling.length > 0 ? { grunnlagsperioder: defaultValuesFraBehandling } : { grunnlagsperioder: defaultValuesFraKravgunnlag }; @@ -76,8 +78,8 @@ const VurderTilbakekreving = (props: { sakId: props.sakId, versjon: props.saksversjon, behandlingId: props.tilbakekreving.id, - måneder: data.grunnlagsperioder.map((periode) => ({ - måned: periode.måned.toString(), + perioder: data.grunnlagsperioder.map((periode) => ({ + periode: periode.periode, vurdering: periode.vurdering!, })), }, @@ -116,10 +118,12 @@ const VurderTilbakekreving = (props: {
    {fields.map((periode, idx) => ( -
  • +
  • - {periode.måned.toFormattedString()} + {`${formatDate( + periode.periode.fraOgMed, + )} - ${formatDate(periode.periode.tilOgMed)}`}
    -
    -
    - -
    +
    diff --git a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekrevingUtils.ts b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekrevingUtils.ts index f11dd663d..b400b57bd 100644 --- a/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekrevingUtils.ts +++ b/src/pages/saksbehandling/tilbakekreving/behandleTilbakekreving/vurderTilbakekreving/VurderTilbakekrevingUtils.ts @@ -5,19 +5,19 @@ import * as S from 'fp-ts/lib/string'; import { Nullable, eqNullable } from '~src/lib/types'; import yup from '~src/lib/validering'; import { TilbakekrevingsVurdering } from '~src/types/ManuellTilbakekrevingsbehandling'; -import Måned from '~src/types/Måned'; +import { Periode, eqStringPeriode } from '~src/types/Periode'; export interface VurderTilbakekrevingFormData { grunnlagsperioder: GrunnlagsperiodeFormData[]; } interface GrunnlagsperiodeFormData { - måned: Måned; + periode: Periode; vurdering: Nullable; } export const eqGrunnlagsperiodeFormData = struct({ - måned: Måned.eq(), + periode: eqStringPeriode, vurdering: eqNullable(S.Eq), }); @@ -30,7 +30,12 @@ export const vurderTilbakekrevingSchema = yup.object( yup .object({ - måned: yup.object().required(), + periode: yup + .object>({ + fraOgMed: yup.string().required(), + tilOgMed: yup.string().required(), + }) + .required(), vurdering: yup .mixed() .oneOf([ diff --git a/src/types/Kravgrunnlag.ts b/src/types/Kravgrunnlag.ts index e223d34ed..cb08a45ee 100644 --- a/src/types/Kravgrunnlag.ts +++ b/src/types/Kravgrunnlag.ts @@ -1,12 +1,18 @@ import { Periode } from './Periode'; export interface Kravgrunnlag { + hendelseId: string; eksternKravgrunnlagsId: string; eksternVedtakId: string; kontrollfelt: string; status: KravgrunnlagStatus; grunnlagsperiode: Grunnlagsperiode[]; - summertGrunnlagsmåneder: SummertGrunnlagsmåneder; + summertBetaltSkattForYtelsesgruppen: string; + summertBruttoTidligereUtbetalt: number; + summertBruttoNyUtbetaling: number; + summertBruttoFeilutbetaling: number; + summertNettoFeilutbetaling: number; + summertSkattFeilutbetaling: number; } export enum KravgrunnlagStatus { @@ -23,24 +29,9 @@ export enum KravgrunnlagStatus { export interface Grunnlagsperiode { periode: Periode; - beløpSkattMnd: string; - ytelse: Grunnlagsbeløp; -} - -export interface Grunnlagsbeløp { - beløpTidligereUtbetaling: number; - beløpNyUtbetaling: number; - beløpSkalTilbakekreves: number; - beløpSkalIkkeTilbakekreves: number; - skatteProsent: string; - nettoBeløp: number; -} - -export interface SummertGrunnlagsmåneder { betaltSkattForYtelsesgruppen: string; - beløpTidligereUtbetaling: string; - beløpNyUtbetaling: string; - beløpSkalTilbakekreves: string; - beløpSkalIkkeTilbakekreves: string; - nettoBeløp: string; + bruttoTidligereUtbetalt: number; + bruttoNyUtbetaling: number; + bruttoFeilutbetaling: number; + skatteProsent: string; } diff --git a/src/types/ManuellTilbakekrevingsbehandling.ts b/src/types/ManuellTilbakekrevingsbehandling.ts index 1f17f592e..40edafb00 100644 --- a/src/types/ManuellTilbakekrevingsbehandling.ts +++ b/src/types/ManuellTilbakekrevingsbehandling.ts @@ -2,6 +2,7 @@ import { Nullable } from '~src/lib/types'; import { Attestering, UnderkjennelseGrunn } from './Behandling'; import { Kravgrunnlag } from './Kravgrunnlag'; +import { Periode } from './Periode'; export interface ManuellTilbakekrevingsbehandling { id: string; @@ -10,7 +11,7 @@ export interface ManuellTilbakekrevingsbehandling { opprettetAv: string; kravgrunnlag: Kravgrunnlag; status: TilbakekrevingsbehandlingStatus; - månedsvurderinger: Månedsvurdering[]; + vurderinger: Nullable; forhåndsvarselsInfo: ForhåndsvarselsInfo[]; fritekst: Nullable; versjon: number; @@ -36,14 +37,35 @@ export enum TilbakekrevingsbehandlingStatus { UNDERKJENT = 'UNDERKJENT', } -export interface Månedsvurdering { - måned: string; +/** + * bruttoSkalTilbakekreveSummert, nettoSkalTilbakekreveSummert, bruttoSkalIkkeTilbakekreveSummert er summen av alle periodene + */ +export interface VurderingMedKrav { + perioder: VurderingMedKravForPeriode[]; + eksternKravgrunnlagId: string; + eksternVedtakId: string; + eksternKontrollfelt: string; + bruttoSkalTilbakekreveSummert: number; + nettoSkalTilbakekreveSummert: number; + bruttoSkalIkkeTilbakekreveSummert: number; + betaltSkattForYtelsesgruppenSummert: number; + bruttoNyUtbetalingSummert: number; + bruttoTidligereUtbetaltSummert: number; +} + +/** + * beløpene + skatt er de samme som man skal finne på kravgrunnlaget + */ +export interface VurderingMedKravForPeriode { + periode: Periode; vurdering: TilbakekrevingsVurdering; -} - -export interface OpprettNyTilbakekrevingsbehandlingRequest { - sakId: string; - versjon: number; + betaltSkattForYtelsesgruppen: number; + bruttoTidligereUtbetalt: number; + bruttoNyUtbetaling: number; + bruttoSkalTilbakekreve: number; + nettoSkalTilbakekreve: number; + bruttoSkalIkkeTilbakekreve: number; + skatteProsent: string; } export enum TilbakekrevingsVurdering { @@ -51,11 +73,16 @@ export enum TilbakekrevingsVurdering { SKAL_IKKE_TILBAKEKREVES = 'SkalIkkeTilbakekreve', } +export interface OpprettNyTilbakekrevingsbehandlingRequest { + sakId: string; + versjon: number; +} + export interface VurderTilbakekrevingsbehandlingRequest { sakId: string; versjon: number; behandlingId: string; - måneder: Array<{ måned: string; vurdering: TilbakekrevingsVurdering }>; + perioder: Array<{ periode: Periode; vurdering: TilbakekrevingsVurdering }>; } export interface ForhåndsvarsleTilbakekrevingRequest { diff --git a/src/utils/periode/periodeUtils.ts b/src/utils/periode/periodeUtils.ts index 85fab00e8..9bc0980fe 100644 --- a/src/utils/periode/periodeUtils.ts +++ b/src/utils/periode/periodeUtils.ts @@ -1,5 +1,6 @@ import * as D from 'fp-ts/lib/Date'; import { struct } from 'fp-ts/lib/Eq'; +import * as S from 'fp-ts/lib/string'; import { eqNullable } from '~src/lib/types'; import { NullablePeriode, Periode, PeriodeType } from '~src/types/Periode'; @@ -34,3 +35,8 @@ export const eqPeriode = struct({ fraOgMed: eqNullable(D.Eq), tilOgMed: eqNullable(D.Eq), }); + +export const eqStringPeriode = struct>({ + fraOgMed: S.Eq, + tilOgMed: S.Eq, +});