Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sende brev uten fagsak/journalpost #2779

Merged
merged 8 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading