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

MIJN-9836-feature/Add disclaimer when hulpmiddel wmo is both in actueel and non actueel #1678

Merged
Show file tree
Hide file tree
Changes from 1 commit
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
7 changes: 6 additions & 1 deletion src/client/pages/ZorgDetail/ZorgDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useParams } from 'react-router-dom';
import { WMOVoorzieningFrontend } from '../../../server/services/wmo/wmo-config-and-types';
import { AppRoutes } from '../../../universal/config/routes';
import { isError, isLoading } from '../../../universal/helpers/api';
import { ThemaIcon } from '../../components';
import { ErrorAlert, ThemaIcon } from '../../components';
import { Datalist } from '../../components/Datalist/Datalist';
import DocumentListV2 from '../../components/DocumentList/DocumentListV2';
import { ThemaTitles } from '../../config/thema';
Expand All @@ -28,6 +28,11 @@ function WMODetailContent({ voorziening }: WMODetailContentProps) {
<>
{!!rows.length && (
<Grid.Cell span="all">
{voorziening?.disclaimer && (
<ErrorAlert className="ams-mb--sm" severity="warning">
{voorziening.disclaimer}
</ErrorAlert>
)}
<Datalist rows={rows} />
{voorziening?.documents.length > 0 && (
<DocumentListV2
Expand Down
1 change: 1 addition & 0 deletions src/server/services/wmo/wmo-config-and-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export interface WMOVoorzieningFrontend extends ZaakDetail {
statusDate: string;
statusDateFormatted: string;
supplier: string | null; // Leverancier
disclaimer?: string;
}

export const DOCUMENT_TITLE_MEER_INFORMATIE_STARTS_WITH = 'Verzoek:'; // Documents starting with this token correspond to the 'meer informatie' step.
Expand Down
74 changes: 73 additions & 1 deletion src/server/services/wmo/wmo.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Mockdate from 'mockdate';

import { fetchWmo, forTesting } from './wmo';
import { fetchWmo, forTesting, getDisclaimer } from './wmo';
import ZORGNED_AANVRAGEN_WMO from '../../../../mocks/fixtures/zorgned-jzd-aanvragen.json';
import { remoteApi } from '../../../testing/utils';
import { jsonCopy } from '../../../universal/helpers/utils';
Expand Down Expand Up @@ -102,4 +102,76 @@ describe('Transform api items', () => {
`);
});
});

describe('getDisclaimer', () => {
const baseAanvraag: ZorgnedAanvraagTransformed = {
titel: 'Test Voorziening',
isActueel: true,
datumEindeGeldigheid: null,
datumIngangGeldigheid: null,
datumAanvraag: '2024-01-01',
datumBesluit: '2024-01-01',
datumBeginLevering: '2024-01-01',
datumEindeLevering: '2024-01-01',
datumToewijzing: '2024-01-01',
datumOpdrachtLevering: '2024-01-01',
leverancier: 'Test Leverancier',
leveringsVorm: 'Test LeveringsVorm',
productsoortCode: 'Test ProductSoortCode',
productIdentificatie: 'Test ProductIdentificatie',
resultaat: 'toegewezen',
betrokkenen: [],
documenten: [],
id: 'test-id',
};

const baseAanvragen = [baseAanvraag];

it('should return undefined when no matching conditions', () => {
const result = getDisclaimer(baseAanvraag, baseAanvragen);
expect(result).toBeUndefined();
});

it('should return disclaimer for actuele voorziening with matching eerdere voorziening', () => {
const aanvraag = {
...baseAanvraag,
isActueel: true,
};

const aanvragen = [
aanvraag,
{
...baseAanvraag,
isActueel: false,
datumEindeGeldigheid: '1-11-2024',
},
];

const result = getDisclaimer(aanvraag, aanvragen);
expect(result).toBe(
'Dit hulpmiddel staat per ongeluk ook bij "Eerdere en afgewezen voorzieningen". Daar vindt u het originele besluit met de juiste datums.'
);
});

it('should return disclaimer for eerdere voorziening with matching actuele voorziening', () => {
const aanvraag = {
...baseAanvraag,
isActueel: false,
};

const aanvragen = [
aanvraag,
{
...baseAanvraag,
isActueel: true,
datumIngangGeldigheid: '31-10-2024',
},
];

const result = getDisclaimer(aanvraag, aanvragen);
expect(result).toBe(
'Door een fout staat dit hulpmiddel ten onrechte bij Eerdere en afgewezen voorzieningen. Kijk bij "Huidige voorzieningen" of in de brief bovenaan.'
timvanoostrom marked this conversation as resolved.
Show resolved Hide resolved
);
});
});
});
30 changes: 30 additions & 0 deletions src/server/services/wmo/wmo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ function transformVoorzieningenForFrontend(
status: getLatestStatus(lineItems),
statusDate: getLatestStatusDate(lineItems),
statusDateFormatted: getLatestStatusDate(lineItems, true),
...(getDisclaimer(aanvraag, aanvragen) && {
disclaimer: getDisclaimer(aanvraag, aanvragen),
}),
};

voorzieningenFrontend.push(voorzieningFrontend);
Expand All @@ -138,6 +141,33 @@ function transformVoorzieningenForFrontend(
return voorzieningenFrontend;
}

export function getDisclaimer(
aanvraag: ZorgnedAanvraagTransformed,
aanvragen: ZorgnedAanvraagTransformed[]
): string | undefined {
const matchActueleVoorziening = aanvragen.find(
(regeling) => regeling.titel === aanvraag.titel && regeling.isActueel
);

const matchEerdereVoorziening = aanvragen.find(
(regeling) => regeling.titel === aanvraag.titel && !regeling.isActueel
);

if (
aanvraag.isActueel &&
matchEerdereVoorziening?.datumEindeGeldigheid === '1-11-2024'
) {
return 'Dit hulpmiddel staat per ongeluk ook bij "Eerdere en afgewezen voorzieningen". Daar vindt u het originele besluit met de juiste datums.';
} else if (
!aanvraag.isActueel &&
matchActueleVoorziening?.datumIngangGeldigheid === '31-10-2024'
) {
return 'Door een fout staat dit hulpmiddel ten onrechte bij Eerdere en afgewezen voorzieningen. Kijk bij "Huidige voorzieningen" of in de brief bovenaan.';
}

return undefined;
}

export async function fetchWmo(
requestID: RequestID,
authProfileAndToken: AuthProfileAndToken
Expand Down
Loading