Skip to content

Commit

Permalink
Sende brev uten fagsak/journalpost (#2779)
Browse files Browse the repository at this point in the history
* La til brev i behandlet jp

* valg av tema fix
  • Loading branch information
poroshinaleksei authored Dec 10, 2024
1 parent 9f013cb commit 469ee97
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 2 deletions.
63 changes: 63 additions & 0 deletions src/app/brev-behandlet-journalpost/SendBrevBehandletJp.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import React, { useEffect } from 'react';

import { FormattedMessage } from 'react-intl';
import { useSelector } from 'react-redux';
import { useLocation, useNavigate } from 'react-router-dom';
import { Heading } from '@navikt/ds-react';

import { RootStateType } from 'app/state/RootState';
import { ROUTES } from 'app/constants/routes';
import BrevComponent from 'app/components/brev/BrevComponent';
import { getForkortelseFraFordelingDokumenttype } from 'app/utils';

import './sendBrevBehandletJp.less';

const SendBrevBehandletJp: React.FC = () => {
const navigate = useNavigate();

const location = useLocation();

const journalpost = useSelector((state: RootStateType) => state.felles.journalpost);
const fordelingState = useSelector((state: RootStateType) => state.fordelingState);

// Redirect tilbake ved side reload
useEffect(() => {
if (!journalpost) {
navigate(location.pathname.replace(ROUTES.BREV_BEHANDLET_JP, ''));
}
}, []);

if (!journalpost) {
return null;
}

const { journalpostId, sak, norskIdent } = journalpost;

const forkortelseFraFordelingDokumenttype = fordelingState.dokumenttype
? getForkortelseFraFordelingDokumenttype(fordelingState.dokumenttype)
: undefined;

const sakstype = sak?.sakstype || forkortelseFraFordelingDokumenttype;

if (!norskIdent || !sakstype) {
return null;
}

return (
<div className="sendBrevBehandletJp">
<Heading size="small" level="1">
<FormattedMessage id="sendBrevBehandletJournalpost.header" />
</Heading>

<BrevComponent
søkerId={norskIdent}
sakstype={sakstype}
fagsakId={sak?.fagsakId || 'GENERELL_SAK'}
journalpostId={journalpostId}
tilbake={true}
/>
</div>
);
};

export default SendBrevBehandletJp;
7 changes: 7 additions & 0 deletions src/app/brev-behandlet-journalpost/sendBrevBehandletJp.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.sendBrevBehandletJp {
margin-top: 2.5rem;

.submitButton.navds-button {
margin-top: 0.5rem;
}
}
21 changes: 19 additions & 2 deletions src/app/components/brev/BrevComponent.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React, { useEffect, useState } from 'react';
import { Formik, Form } from 'formik';
import { useNavigate } from 'react-router-dom';
import hash from 'object-hash';
import { FormattedMessage } from 'react-intl';
import { Alert, Button, ErrorMessage, Modal } from '@navikt/ds-react';
Expand Down Expand Up @@ -31,6 +32,7 @@ interface BrevProps {
journalpostId?: string;
sendBrevUtenModal?: boolean;
brevFraModal?: boolean;
tilbake?: boolean;

setVisBrevIkkeSendtInfoboks?: (erBrevSendt: boolean) => void;
brevSendtCallback?: () => void;
Expand All @@ -45,6 +47,7 @@ const BrevComponent: React.FC<BrevProps> = ({
journalpostId,
sendBrevUtenModal,
brevFraModal: brewFraModal,
tilbake,
setVisBrevIkkeSendtInfoboks,
brevSendtCallback,
lukkJournalpostOppgave,
Expand All @@ -64,6 +67,8 @@ const BrevComponent: React.FC<BrevProps> = ({
const [submitet, setSubmitet] = useState(false);
const [previewMessageFeil, setPreviewMessageFeil] = useState<string | undefined>(undefined);

const navigate = useNavigate();

useEffect(() => {
fetch(`${ApiPath.BREV_MALER}?sakstype=${sakstype}&avsenderApplikasjon=K9PUNSJ`, {
credentials: 'include',
Expand Down Expand Up @@ -338,7 +343,7 @@ const BrevComponent: React.FC<BrevProps> = ({
type={sendBrevUtenModal ? 'submit' : 'button'}
icon={<PaperplaneIcon />}
>
<FormattedMessage id={`brevComponent.btn.sendBrev`} />
<FormattedMessage id="brevComponent.btn.sendBrev" />
</Button>

{lukkJournalpostOppgave !== undefined && (
Expand All @@ -349,7 +354,19 @@ const BrevComponent: React.FC<BrevProps> = ({
onClick={() => lukkJournalpostOppgave()}
type={'button'}
>
<FormattedMessage id={`brevComponent.btn.lukkOppgave`} />
<FormattedMessage id="brevComponent.btn.lukkOppgave" />
</Button>
)}

{tilbake && (
<Button
className="goBackButton"
variant="secondary"
size="small"
onClick={() => navigate(-1)}
type="button"
>
<FormattedMessage id="brevComponent.btn.tilbake" />
</Button>
)}
</div>
Expand Down
1 change: 1 addition & 0 deletions src/app/constants/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ export const ROUTES = {
KORRIGERING_ROOT: 'korrigering/',
VELG_SOKNAD: 'soknader/',
PUNCH: `skjema/:id/`,
BREV_BEHANDLET_JP: 'brev-behandlet-journalpost/',
};
2 changes: 2 additions & 0 deletions src/app/containers/JournalpostRouter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import ErrorFallback from './ErrorFallback';
import KorrigeringAvInntektsmeldingContainer from 'app/søknader/korrigeringAvInntektsmelding/containers/KorrigeringAvInntektsmeldingContainer';
import SendBrevPåFagsak from 'app/brev-fagsak/SendBrevPåFagsak';
import BehandlingAvJournaførtJp from '../fordeling/Komponenter/BehandlingAvJournaførtJp';
import SendBrevBehandletJp from 'app/brev-behandlet-journalpost/SendBrevBehandletJp';

const JournalpostRouter: React.FC = () => {
const { journalpostid } = useParams<{ journalpostid: string }>();
Expand Down Expand Up @@ -140,6 +141,7 @@ const JournalpostRouter: React.FC = () => {
/>
</Route>
<Route path={ROUTES.SEND_BREV_FAGSAK} element={<SendBrevPåFagsak />} />
<Route path={ROUTES.BREV_BEHANDLET_JP} element={<SendBrevBehandletJp />} />
<Route path="/" element={<Fordeling />} />
</Routes>
</ErrorBoundary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,16 @@ import DokumentTypeVelgerForKopiering from '../DokumentTypeVelgerForKopiering';
import ValgAvBehandlingsÅr from '../ValgAvBehandlingsÅr';
import AnnenPart from '../AnnenPart';
import ToSøkere from '../ToSøkere';
import { useNavigate } from 'react-router';
import { ROUTES } from 'app/constants/routes';

const JournalpostAlleredeBehandlet: React.FC = () => {
const [visKanIkkeKopiere, setVisKanIkkeKopiere] = useState(false);
const [behandlingsAar, setBehandlingsAar] = useState<string | undefined>(undefined);
const [toSokereIJournalpost, setToSokereIJournalpost] = useState<boolean>(false);

const navigate = useNavigate();

const dispatch = useDispatch<Dispatch<any>>();

const setIdentAction = (søkerId: string, pleietrengendeId?: string, annenSokerIdent?: string) =>
Expand Down Expand Up @@ -152,6 +156,13 @@ const JournalpostAlleredeBehandlet: React.FC = () => {
window.location.href = getEnvironmentVariable('K9_LOS_URL');
};

const handleGåToSendBrev = () => {
// Redirect to brev side
navigate(
`${ROUTES.JOURNALPOST_ROOT.replace(':journalpostid/*', journalpost.journalpostId)}/${ROUTES.BREV_BEHANDLET_JP}`,
);
};

const visPleietrengende = !kopierJournalpostSuccess && isDokumenttypeMedPleietrengende;

const skalHenteBarn =
Expand All @@ -160,13 +171,22 @@ const JournalpostAlleredeBehandlet: React.FC = () => {
fordelingState.dokumenttype !== FordelingDokumenttype.OMSORGSPENGER_UT &&
fordelingState.dokumenttype !== FordelingDokumenttype.KORRIGERING_IM;

const sendBrevDisabled =
!fellesState.journalpost?.sak?.sakstype &&
(!fordelingState.dokumenttype || fordelingState.dokumenttype === FordelingDokumenttype.OMSORGSPENGER);

return (
<>
<div className="p-4">
<Alert variant="info" data-test-id="infoJournalpostAlleredeBehandlet">
<FormattedMessage id="fordeling.journalpostAlleredeBehandlet.kanIkkeSendeInn.info" />
</Alert>

{!fellesState.journalpost?.sak?.sakstype && (
<Alert variant="warning" data-test-id="infoJournalpostAlleredeBehandlet">
<FormattedMessage id="fordeling.journalpostAlleredeBehandlet.sendBrevInfo" />
</Alert>
)}
<DokumentTypeVelgerForKopiering
handleDokumenttype={(type: FordelingDokumenttype) => {
const prevDokumentType = fordelingState.dokumenttype;
Expand Down Expand Up @@ -276,6 +296,17 @@ const JournalpostAlleredeBehandlet: React.FC = () => {
<FormattedMessage id="fordeling.journalpostAlleredeBehandlet.tilbakeTilLOS.btn" />
</Button>
)}

<Button
variant="secondary"
size="small"
onClick={handleGåToSendBrev}
data-test-id="sendBrevLenkeBtn"
type="button"
disabled={sendBrevDisabled}
>
<FormattedMessage id="fordeling.journalpostAlleredeBehandlet.sendBrevLenke.btn" />
</Button>
</div>
</>
);
Expand Down
5 changes: 5 additions & 0 deletions src/app/i18n/nb.json
Original file line number Diff line number Diff line change
Expand Up @@ -228,11 +228,13 @@
"fordeling.journalpostAlleredeBehandlet.tomtIdentIJp.feil": "Det oppsto en feil.",
"fordeling.journalpostAlleredeBehandlet.kanIkkeSendeInn.info": "Denne journalposten kan ikke håndteres flere ganger. Ved behov for korrigering, kopier journalposten. Det vil da opprettes en ny oppgave i Los.",
"fordeling.journalpostAlleredeBehandlet.kopierJournalpost.btn": "Kopier journalpost",
"fordeling.journalpostAlleredeBehandlet.sendBrevLenke.btn": "Send brev",
"fordeling.journalpostAlleredeBehandlet.tilbakeTilLOS.btn": "Tilbake til LOS",
"fordeling.journalpostAlleredeBehandlet.kanIkkeKopieres.info.tittel": "Journalposten kan ikke kopieres. En journalpost kan kun kopieres dersom den oppfyller alle de følgende kriteriene.",
"fordeling.journalpostAlleredeBehandlet.kanIkkeKopieres.info.1": "Må være inngående journalpost",
"fordeling.journalpostAlleredeBehandlet.kanIkkeKopieres.info.2": "Kan ikke være kopi av en annen journalpost",
"fordeling.journalpostAlleredeBehandlet.kanIkkeKopieres.info.3": "Kan ikke være inntektsmelding uten søknad",
"fordeling.journalpostAlleredeBehandlet.sendBrevInfo": "For å sende et brev, må du velge ytelsestype.",

"fosterbarn.btn.slett": "Slett",
"fosterbarn.btn.leggTil": "Legg til fosterbarn",
Expand Down Expand Up @@ -803,9 +805,12 @@

"sendBrevPåFagsak.header": "Send brev og lukk oppgave i LOS",

"sendBrevBehandletJournalpost.header": "Send brev",

"brevComponent.btn.forhåndsvisBrev": "Forhåndsvis brev",
"brevComponent.btn.lukkOppgave": "Lukk oppgave",
"brevComponent.btn.sendBrev": "Send brev",
"brevComponent.btn.tilbake": "Tilbake",
"brevComponent.alert.visSammeBrevError": " Brevet er sendt. Du må endre mottaker eller innhold for å sende nytt brev.",
"brevComponent.alert.sendBrevFeilet": "Sending av brev feilet.",
"brevComponent.alert.brevErSendt": "Brev sendt! Du kan nå sende nytt brev til annen mottaker.",
Expand Down

0 comments on commit 469ee97

Please sign in to comment.