Skip to content

Commit

Permalink
Overstyring uttak justering 2 (#5479)
Browse files Browse the repository at this point in the history
* Fix: Begrenser ikke datepicker til korrekt sluttdato

* Juster overstyringsikon

* Legg til knapp for å avbryte overstyring

* Standard funksjonalitet for ExpandableRow

* Pointer

* Justere types

* Firmanavn i begrunnelsesboks

* Aktivitetsnavn i overstyr aktivitet liste

* Vise navn på saksbehandler i begrunnelsesboks

* Tilpasse request og types
  • Loading branch information
thomashwi authored Dec 20, 2023
1 parent 18a841a commit 5d65263
Show file tree
Hide file tree
Showing 28 changed files with 204 additions and 113 deletions.
1 change: 1 addition & 0 deletions packages/behandling-pleiepenger/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export { default } from './src/BehandlingPleiepengerIndex';
export * from './src/types';
3 changes: 2 additions & 1 deletion packages/behandling-pleiepenger/src/components/Uttak.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Uttak } from '@k9-sak-web/prosess-uttak';
import { useRestApiErrorDispatcher } from '@k9-sak-web/rest-api-hooks';
import { findEndpointsForMicrofrontend, httpErrorHandler } from '@fpsak-frontend/utils';
import { VilkarResultPicker } from '@k9-sak-web/prosess-felles';
import { OverstyringUttakRequest } from '../types';

interface UttakProps {
uuid: string;
Expand Down Expand Up @@ -54,7 +55,7 @@ export default ({
const løsAksjonspunktVurderDatoNyRegelUttak = ({ begrunnelse, virkningsdato }) =>
submitCallback([{ kode: aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK, begrunnelse, virkningsdato }]);

const handleOverstyringAksjonspunkt = async values => {
const handleOverstyringAksjonspunkt = async (values: OverstyringUttakRequest) => {
lagreOverstyringUttak({
'@type': aksjonspunktCodes.OVERSTYRING_AV_UTTAK_KODE,
...VilkarResultPicker.transformValues(values),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,27 @@
export type OverstyringUttakArbeidsforhold = {
type: string | null;
organisasjonsnummer: string | null;
orgnr: string | null;
aktørId: string | null;
arbeidsforholdId: string | null;
};

export type OverstyringUttakUtbetalingsgrad = {
arbeidsforhold: OverstyringUttakArbeidsforhold;
utbetalingsgrad: string;
utbetalingsgrad: string | number;
};

export type EnkeltOverstyringUttak = {
periode: { fom: string; tom: string };
lagreEllerOppdater: {
erVilkarOk: boolean;
begrunnelse: string;
periode: { fom: string; tom: string };
søkersUttaksgrad: string;
utbetalingsgrader: OverstyringUttakUtbetalingsgrad[];
};
begrunnelse: string; // denne mangler i backend?
søkersUttaksgrad: string | number;
utbetalingsgrader: OverstyringUttakUtbetalingsgrad[];
};

export type OverstyringUttakRequest = {
'@type@': string;
periode: { fom?: string; tom?: string };
erVilkarOk: boolean | undefined;
avslagsDato: string | undefined;
avslagskode: string | undefined;
periode: { fom: string; tom: string };
erVilkarOk: boolean;
begrunnelse: string;
gåVidere: boolean;
lagreEllerOppdater: EnkeltOverstyringUttak[];
slett: [{ id: number | string }][];
slett: { id: number | string }[];
};
2 changes: 2 additions & 0 deletions packages/prosess-uttak/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
// eslint-disable-next-line import/prefer-default-export
export { default as Uttak } from './src/ui/MainComponent';
export * from './src/types';
export * from './src/constants';
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export enum OverstyrUttakFormFieldName {
AKTIVITET_UTBETALINGSGRAD = 'aktivitetUtbetalingsgrad',
ARBEIDSFORHOLD = 'arbeidsforhold',
TYPE = 'type',
ORGANISASJONSNUMMER = 'organisasjonsnummer',
ORGNR = 'orgnr',
AKTØR_ID = 'aktørId',
ARBEIDSFORHOLD_ID = 'arbeidsforholdId',
}
2 changes: 1 addition & 1 deletion packages/prosess-uttak/src/types/Arbeidsforhold.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export interface Arbeidsforhold {
type: string;
organisasjonsnummer?: string;
organisasjonsnummer?: string; // Bakoverkompatibilitet, skal være orgnr egentlig
orgnr?: string;
aktørId?: string;
arbeidsforholdId?: string;
Expand Down
12 changes: 12 additions & 0 deletions packages/prosess-uttak/src/types/ArbeidsforholdReferanse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export type ArbeidsforholdReferanse = {
identifikator: string | null;
personIdentifikator: string | null;
navn: string;
fødselsdato: string | null;
arbeidsforholdreferanser: [
{
internArbeidsforholdId: string;
eksternArbeidsforholdId: string;
},
];
};
4 changes: 3 additions & 1 deletion packages/prosess-uttak/src/types/ContainerContract.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { Aksjonspunkt } from '@k9-sak-web/types';
import { OverstyringUttakRequest } from '@k9-sak-web/behandling-pleiepenger';

import Uttaksperioder from './Uttaksperioder';
import ArbeidsgiverOpplysninger from './ArbeidsgiverOpplysninger';
import KodeverkMedNavn from './kodeverkMedNavnTsType';
Expand All @@ -16,7 +18,7 @@ interface ContainerContract {
aksjonspunktkoder: string[];
erFagytelsetypeLivetsSluttfase: boolean;
kodeverkUtenlandsoppholdÅrsak: KodeverkMedNavn[];
handleOverstyringAksjonspunkt?: (data: any) => Promise<any>;
handleOverstyringAksjonspunkt?: (data: OverstyringUttakRequest) => Promise<void>;
løsAksjonspunktVurderDatoNyRegelUttak: ({
begrunnelse,
virkningsdato,
Expand Down
6 changes: 3 additions & 3 deletions packages/prosess-uttak/src/types/FormatertOverstyring.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
export type FormatertOverstyring = {
id?: string;
begrunnelse?: string;
begrunnelse: string;
periode: {
fom: string;
tom: string;
};
søkersUttaksgrad: number;
søkersUttaksgrad: number | string;
utbetalingsgrader: {
arbeidsforhold: {
type: string;
organisasjonsnummer: string;
orgnr: string;
aktørId: string;
arbeidsforholdId: string;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { OverstyrUttakFormFieldName } from '../constants/OverstyrUttakFormFieldN
export type OverstyrUttakFormDataUtbetalingsgrad = {
[OverstyrUttakFormFieldName.ARBEIDSFORHOLD]: {
[OverstyrUttakFormFieldName.TYPE]: string;
[OverstyrUttakFormFieldName.ORGANISASJONSNUMMER]: string;
[OverstyrUttakFormFieldName.ORGNR]: string;
[OverstyrUttakFormFieldName.AKTØR_ID]: string;
[OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID]: string;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Arbeidsforhold } from './Arbeidsforhold';
import { Arbeidsforhold, ArbeidsforholdReferanse } from '.';

export interface OverstyrbareAktiviteterResponse {
arbeidsforholdsperioder: Arbeidsforhold[];
arbeidsgiverOversikt: { [key: string]: ArbeidsforholdReferanse };
}
3 changes: 2 additions & 1 deletion packages/prosess-uttak/src/types/OverstyringUttak.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ export type OverstyringUttak = {
fom: Date;
tom: Date;
};
saksbehandler: string;
søkersUttaksgrad: number;
utbetalingsgrader: {
arbeidsforhold: {
type: string;
organisasjonsnummer: string | null;
orgnr: string | null;
aktørId: string | null;
arbeidsforholdId: string | null;
};
Expand Down
17 changes: 2 additions & 15 deletions packages/prosess-uttak/src/types/OverstyrtUttakResponse.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,6 @@
import { OverstyringUttak } from './OverstyringUttak';
import { ArbeidsforholdReferanse, OverstyringUttak } from '.';

export interface OverstyrtUttakResponse {
overstyringer: OverstyringUttak[];
arbeidsgiverOversikt: {
arbeidsgivere: {
[key: string]: {
identifikator: string;
personIdentifikator: string;
navn: string;
fødselsdato: string;
arbeidsforholdreferanser: {
internArbeidsforholdId: string;
eksternArbeidsforholdId: string;
}[];
};
};
};
arbeidsgiverOversikt: { [key: string]: ArbeidsforholdReferanse };
}
1 change: 1 addition & 0 deletions packages/prosess-uttak/src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export * from './Arbeidsforhold';
export * from './ArbeidsforholdReferanse';
export * from './ArbeidsgiverOpplysninger';
export * from './ContainerContract';
export * from './Endringsstatus';
Expand Down
3 changes: 3 additions & 0 deletions packages/prosess-uttak/src/ui/MainComponent.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.overstyringsHeader > button {
cursor: pointer;
}
4 changes: 3 additions & 1 deletion packages/prosess-uttak/src/ui/MainComponent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import { aksjonspunktVurderDatoKode, aksjonspunktkodeVentAnnenPSBSakKode } from
import { OverstyrUttakContextProvider } from './context/OverstyrUttakContext';
import OverstyrUttakForm from './components/overstyrUttakForm/OverstyrUttakForm';

import styles from './MainComponent.css';

interface MainComponentProps {
containerData: ContainerContract;
}
Expand Down Expand Up @@ -43,7 +45,7 @@ const MainComponent = ({ containerData }: MainComponentProps): JSX.Element => {

return (
<ContainerContext.Provider value={containerData}>
<HStack justify="start">
<HStack justify="start" className={styles.overstyringsHeader}>
<Heading size="small" level="1">
Uttak
</Heading>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,16 @@ const AktivitetRad: React.FC<ownProps> = ({
return (
<Table.ExpandableRow
key={`aktivitet-rad-${index}`}
expandOnRowClick
content={
<div className={styles.begrunnelseWrapper}>
<BegrunnelseBoks begrunnelse={begrunnelse} saksbehandler={undefined} dato={undefined} />
<BegrunnelseBoks begrunnelse={begrunnelse} overstyring={overstyring} />
</div>
}
>
<Table.DataCell>{dayjs(fom).format('DD.MM.YYYY')}</Table.DataCell>
<Table.DataCell>{dayjs(tom).format('DD.MM.YYYY')}</Table.DataCell>
<Table.DataCell>{søkersUttaksgrad}</Table.DataCell>
<Table.DataCell>{søkersUttaksgrad} %</Table.DataCell>
<Table.DataCell>
<Button
size="xsmall"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,11 @@
display: inline-block;
margin-right: var(--a-spacing-2);
}

.aktiviteterTable {
width: auto;
}

.aktiviteterTable > td {
border: none;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import { Label, TextField } from '@navikt/ds-react';
import { OverstyrUttakFormFieldName } from '../../../constants';

import styles from './OverstyrAktivitetListe.css';
import { OverstyrUttakFormData } from '../../../types';
import { Arbeidsforhold, OverstyrUttakFormData } from '../../../types';
import { useOverstyrUttak } from '../../context/OverstyrUttakContext';

type ownProps = {
fields: FieldArrayWithId<OverstyrUttakFormData, OverstyrUttakFormFieldName.UTBETALINGSGRADER, 'id'>[];
Expand All @@ -14,34 +15,15 @@ type ownProps = {

const OverstyrAktivitetListe: React.FC<ownProps> = ({ fields, loading }) => {
const { register } = useFormContext();

const utledAtkivitetNavn = (
field: FieldArrayWithId<OverstyrUttakFormData, OverstyrUttakFormFieldName.UTBETALINGSGRADER, 'id'>,
): string => {
const arbeidsforhold = field[OverstyrUttakFormFieldName.ARBEIDSFORHOLD];
if (arbeidsforhold[OverstyrUttakFormFieldName.AKTØR_ID])
return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${
arbeidsforhold[OverstyrUttakFormFieldName.AKTØR_ID]
}`;
if (arbeidsforhold[OverstyrUttakFormFieldName.ORGANISASJONSNUMMER])
return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${
arbeidsforhold[OverstyrUttakFormFieldName.ORGANISASJONSNUMMER]
}`;
if (arbeidsforhold[OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID])
return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${
arbeidsforhold[OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID]
}`;

return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]}`;
};
const { utledAktivitetNavn } = useOverstyrUttak();

return (
<>
<Label size="small">Ny utbetalingsgrad per aktivitet</Label>
<div className={styles.overstyringSkjemaAktiviteter}>
{fields.map((field, index) => (
<div key={field.id} className={styles.overstyringSkjemaAktivitet}>
<div>{utledAtkivitetNavn(field)}</div>
<div>{utledAktivitetNavn(field.arbeidsforhold)}</div>
<div>
<TextField
{...register(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import NavFrontendSpinner from 'nav-frontend-spinner';
import ContainerContext from '../../context/ContainerContext';
import OverstyringUttakForm from './OverstyringUttakForm';
import AktivitetRad from './AktivitetRad';

import styles from './overstyrUttakForm.css';
import { useOverstyrUttak } from '../../context/OverstyrUttakContext';
import { UttakOverstyring } from '../../../types/UttakOverstyring';
import { formaterOverstyringTilFormData } from '../../../util/overstyringUtils';

import styles from './overstyrUttakForm.css';

const tableHeaders = (
<Table.Header>
<Table.Row>
Expand All @@ -25,15 +25,6 @@ const tableHeaders = (
</Table.Header>
);

const nyOverstyring: UttakOverstyring = {
id: '',
navn: '',
fraDato: '',
tilDato: '',
uttaksgrad: 0,
begrunnelse: '',
};

const OverstyrUttakForm: React.FC = () => {
const [loading, setLoading] = useState<boolean>(false);
const { handleOverstyringAksjonspunkt } = React.useContext(ContainerContext);
Expand All @@ -44,19 +35,23 @@ const OverstyrUttakForm: React.FC = () => {
setLoading(true);
handleOverstyringAksjonspunkt({
gåVidere: true,
erVilkarOk: true,
begrunnelse: '',
periode: { fom: '', tom: '' },
lagreEllerOppdater: [],
slett: [],
periode: {},
});
};

const handleSlett = (id: string): void => {
setLoading(true);
handleOverstyringAksjonspunkt({
erVilkarOk: false,
gåVidere: false,
begrunnelse: '',
periode: { fom: '', tom: '' },
lagreEllerOppdater: [],
slett: [{ id }],
periode: {},
});
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,11 @@ const OverstyringUttakForm: React.FC<OwnProps> = ({
const handleSubmit = (values: OverstyrUttakFormData) => {
setLoading(true);
handleOverstyringAksjonspunkt({
periode: {}, // MÅ legge til denne inntill videre, hack, for å komme rundt validering i backen
lagreEllerOppdater: [{ erVilkarOk: false, ...formaterOverstyring(values) }],
gåVidere: false,
erVilkarOk: false,
begrunnelse: '',
periode: { fom: '', tom: '' }, // MÅ legge til denne inntill videre, hack, for å komme rundt validering i backend
lagreEllerOppdater: [{ ...formaterOverstyring(values) }],
slett: [],
});
};
Expand Down
Loading

0 comments on commit 5d65263

Please sign in to comment.