Project

General

Profile

Project activity #35727

closed

Validatie implementeren bij het zetten van een NVB resultaat

Added by Diego Mirandola 2 months ago. Updated 2 days ago.

Status:
Resolved
Priority:
P4 Normal
Category:
-
Target version:
-
Start date:
26/11/2025
Due date:
% Done:

100%

Estimated time:

Description

Als de gebruiker een NVB resultaat wil zetten, dan moet er gecheckt worden dat de zaak bepaalde eisen voldoet.
Bijvoorbeeld:
  • als afleidingswijze: "eigenschap" moet er gecheckt worden dat de bijbehorende eigenschap ingevuld is
  • ...
Dit moet twee keer gecheckt worden:
  1. in de app, in dialog 'afhandelen', als er een NVB resultaat wordt geselecteerd; als de check faalt, dan 'ok' is disabled en een melding met voldoende informatie komt tevoorschijn
  2. in de backend, in de implementatie van 'zaakClose' action; we doen dit omdat de validatie in openzaak gebeurt niet bij het zetten van de resultaat maar bij het zetten van de eindstatus, dus we willen voorkomen dat de resultaat wordt gezet zonder eindstatus; als de eerste punt correct geïmplementeerd is dan is deze overbodig, maar het is correct dat een api altijd zijn eigen validatie implementeert.
We gaan dit zo implementeren:
  • backend service die de validatie logica implementeert
  • webscript die deze backend service gebruikt, de frontend moet deze gebruiken om check 1 uit te voeren
  • 'zaakClose' action executer moet deze service gebruiken om check 2 uit te voeren
Actions #1

Updated by Diego Mirandola 2 months ago

  • Assignee set to Diego Mirandola
Actions #2

Updated by Tahir Malik 2 months ago

Akkoord

Actions #3

Updated by Diego Mirandola 2 months ago

  • Status changed from Backlog to In Progress
Actions #4

Updated by Diego Mirandola 2 months ago · Edited

Eerste opzet is klaar in tezza-services branch feature/nvb-validate-resultaat/#35727. Dit bevat:
  • webscript aangemaakt: POST api/zrc/nvb/validate met body
    {
        "zaak": "http://openzaak.local:8000/zaken/api/v1/zaken/88a85677-1118-4829-b799-27ba9aa6f360",
        "resultaattype": "http://openzaak.local:8000/catalogi/api/v1/resultaattypen/5152088b-8fa3-4d58-b170-60788c26ec5a" 
    }
    

    De webscript valideert de request body en roept nvbService.validateResultaat(zaakUrl, resultaattypeUrl)
  • nvbService.validateResultaat(zaakUrl, resultaattypeUrl) implementeert de logica voor afleidingswijze = eigenschap. Dit moet uitgebreid worden met de logica voor alle andere NVB afleidingswijzen.
Actions #5

Updated by Diego Mirandola 2 months ago

Voortgang in de logica voor de volgende afleidingswijzen:
  • eigenschap: klaar
  • hoofdzaak: klaar maar ik snap niet hoe ik deze kan testen
  • termijn: klaar (doet eigenlijk niets)
  • zaakobject: objecttype wordt gecheckt, ik snap niet hoe ik de datumKenmerk op het zaakobject kan definiëren
Actions #6

Updated by Diego Mirandola 2 months ago

  • Target version deleted (Tezza Backlog)
Actions #8

Updated by Diego Mirandola 14 days ago · Edited

Aanpak in tezza-services besproken met @Rick de Rooij:
  • Nieuw webscript POST api/zrc/nvb/validate met body
    {
        "zaak": "http://openzaak.local:8000/zaken/api/v1/zaken/ae127540-a340-4e48-a86f-e53b38753e49",
        "resultaattype": "http://openzaak.local:8000/catalogi/api/v1/resultaattypen/fc9e8d5d-ee94-498b-a0ec-198fae6171df" 
    }
    

    Doel: valideren als zaak en resultaattype zijn compatibel.
  • Implementatie in nl.contezza.component.zrc.webscript.NvbValidatePost: roept een onderliggende service om de combinatie zaak + resultaattype te valideren, retourneert 204 (goed) of 409 (conflict, met uitleg).
  • Onderliggende service is nl.contezza.component.zrc.service.NaVervallenBelangService. Dit bevat een method validateResultaat die op basis van zaak en resultaattype de logica van de pdf in #32987 implementeert. In het geval van een negatief antwoord, moet de method ook voldoende informatie retourneren over wat ontbreekt.
  • Bestaande action "zaakClose" (ZaakCloseActionExecuter) gebruikt nl.contezza.component.zrc.service.NaVervallenBelangService.validateResultaat om de combinatie zaak + resultaattype te valideren, en gaat door alleen als die geldig is.
Actions #9

Updated by Diego Mirandola 13 days ago

#35727#note-8 is klaar in TS branch feature/nvb-validate-resultaat/#35727
NVB validaties voor de volgende afleidingswijzen zijn geïmplementeerd:
  • eigenschap
  • hoofdzaak
  • termijn
  • zaakobject, maar: voorlopig wordt er alleen gecheckt dat een zaakobject bestaan met de aangegeven objecttype en dat deze een geldig url heeft, er is nog geen check op de datumKenmerk
Actions #10

Updated by Diego Mirandola 13 days ago

De volgende wijzigingen in tezza app zijn klaar in contezza-apps branch feature/tezza/nvb-validate-resultaat/#35727.

In zaak afhandelen dialoog, als er een nvb resultaattype wordt geselecteerd, wordt webscript #35727#note-9 gebruikt om de combinatie zaak + resultaattype te valideren.
Als de zaak alle eisen voldoet, dan de huidige melding is zichtbaar:

* De vernietigingstermijn gaat lopen als gerelateerde belangen zijn vervallen.

Anders, wordt de volgende error getoond:
Het is niet mogelijk om dit resultaattype te selecteren want de volgende bron ontbreekt of is ongeldig: <invalidResource>

waar de <invalidResource> komt vanuit de webscript response.

Actions #11

Updated by Diego Mirandola 13 days ago · Edited

Tests zijn klaar in contezza-integration-tests branch feature/nvb-validate-resultaat/#35727.
De volgende flow wordt getest en via api en via ui:
  • zaak aanmaken
  • combinatie zaak + resultaattype met afleidingswijze=eigenschap valideren, error verwacht
  • zaakeigenschap toevoegen
  • combinatie zaak + resultaattype met afleidingswijze=eigenschap valideren, succes verwacht

Let op: de tests zijn gebaseerd op catalogus NVB die aangemaakt is op dev-tezza. Ik heb die catalogus lokaal geïmporteerd om te kunnen ontwikkelen en testen.

Actions #12

Updated by Diego Mirandola 13 days ago

  • Status changed from In Progress to Ready in Dev
  • Assignee changed from Diego Mirandola to Rick de Rooij
Actions #13

Updated by Rick de Rooij 8 days ago

  • Status changed from Ready in Dev to Test approved
  • % Done changed from 0 to 100

Akkoord, zit in TS 3.6.4.

Actions #14

Updated by Rick de Rooij 8 days ago

  • Status changed from Test approved to Resolved
Actions #15

Updated by Diego Mirandola 8 days ago

  • Status changed from Resolved to In Progress
  • Assignee changed from Rick de Rooij to Diego Mirandola
Actions #17

Updated by Diego Mirandola 7 days ago

  • Status changed from In Progress to Ready in Dev
  • Assignee changed from Diego Mirandola to Maaike Bommerson

De backend is nu op dev.
Graag testen in branch feature/tezza/nvb-validate-resultaat/#35727, tezza app gekoppeld met dev-tezza.

Het afhandelen van zaken van zaaktypen in catalogus NVB moet zo werken:

  • Afleidingswijze brondatum Eigenschap: toont nvb error en laat niet afhandelen totdat de zaakeigenschap 'geboortedatum leerling' wordt toegevoegd, daarna toont nvb info en laat afhandelen
  • Afleidingswijze brondatum Hoofdzaak: toont nvb error en laat niet afhandelen
  • Afleidingswijze brondatum Termijn: toont nvb info en laat afhandelen
  • Afleidingswijze brondatum Zaakobject: toont nvb error en laat niet afhandelen

Nvb error en info zijn degene in #35727#note-10.

Actions #18

Updated by Maaike Bommerson 7 days ago

  • Status changed from Ready in Dev to Test approved
  • Assignee changed from Maaike Bommerson to Diego Mirandola

Getest, kan mee met de release

Actions #19

Updated by Diego Mirandola 2 days ago

  • Status changed from Test approved to Resolved

Backend is in TS 3.6.4.
Frontend is in contezza-apps 4.6.3.

Also available in: Atom PDF